/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: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Left Termination of the query pattern ackermann(g,a,g) w.r.t. the given Prolog program could not be shown: (0) Prolog (1) PrologToPiTRSProof [SOUND, 0 ms] (2) PiTRS (3) DependencyPairsProof [EQUIVALENT, 0 ms] (4) PiDP (5) DependencyGraphProof [EQUIVALENT, 0 ms] (6) AND (7) PiDP (8) UsableRulesProof [EQUIVALENT, 0 ms] (9) PiDP (10) PiDPToQDPProof [SOUND, 1 ms] (11) QDP (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] (13) YES (14) PiDP (15) UsableRulesProof [EQUIVALENT, 0 ms] (16) PiDP (17) PiDPToQDPProof [SOUND, 0 ms] (18) QDP (19) QDPOrderProof [EQUIVALENT, 61 ms] (20) QDP (21) DependencyGraphProof [EQUIVALENT, 0 ms] (22) QDP (23) UsableRulesProof [EQUIVALENT, 0 ms] (24) QDP (25) QReductionProof [EQUIVALENT, 0 ms] (26) QDP (27) NonTerminationLoopProof [COMPLETE, 0 ms] (28) NO (29) PiDP (30) UsableRulesProof [EQUIVALENT, 0 ms] (31) PiDP (32) PiDPToQDPProof [SOUND, 0 ms] (33) QDP (34) QDPSizeChangeProof [EQUIVALENT, 0 ms] (35) YES (36) PiDP (37) UsableRulesProof [EQUIVALENT, 0 ms] (38) PiDP (39) PiDPToQDPProof [SOUND, 0 ms] (40) QDP (41) QDPSizeChangeProof [EQUIVALENT, 0 ms] (42) YES (43) PrologToPiTRSProof [SOUND, 0 ms] (44) PiTRS (45) DependencyPairsProof [EQUIVALENT, 0 ms] (46) PiDP (47) DependencyGraphProof [EQUIVALENT, 0 ms] (48) AND (49) PiDP (50) UsableRulesProof [EQUIVALENT, 0 ms] (51) PiDP (52) PiDPToQDPProof [SOUND, 7 ms] (53) QDP (54) QDPSizeChangeProof [EQUIVALENT, 0 ms] (55) YES (56) PiDP (57) UsableRulesProof [EQUIVALENT, 0 ms] (58) PiDP (59) PiDPToQDPProof [SOUND, 0 ms] (60) QDP (61) QDPOrderProof [EQUIVALENT, 93 ms] (62) QDP (63) DependencyGraphProof [EQUIVALENT, 0 ms] (64) QDP (65) UsableRulesProof [EQUIVALENT, 0 ms] (66) QDP (67) QReductionProof [EQUIVALENT, 0 ms] (68) QDP (69) NonTerminationLoopProof [COMPLETE, 0 ms] (70) NO (71) PiDP (72) UsableRulesProof [EQUIVALENT, 0 ms] (73) PiDP (74) PiDPToQDPProof [SOUND, 0 ms] (75) QDP (76) QDPSizeChangeProof [EQUIVALENT, 0 ms] (77) YES (78) PiDP (79) UsableRulesProof [EQUIVALENT, 0 ms] (80) PiDP (81) PiDPToQDPProof [SOUND, 0 ms] (82) QDP (83) QDPSizeChangeProof [EQUIVALENT, 0 ms] (84) YES (85) PrologToDTProblemTransformerProof [SOUND, 42 ms] (86) TRIPLES (87) TriplesToPiDPProof [SOUND, 61 ms] (88) PiDP (89) DependencyGraphProof [EQUIVALENT, 0 ms] (90) AND (91) PiDP (92) UsableRulesProof [EQUIVALENT, 1 ms] (93) PiDP (94) PiDPToQDPProof [SOUND, 0 ms] (95) QDP (96) QDPSizeChangeProof [EQUIVALENT, 0 ms] (97) YES (98) PiDP (99) UsableRulesProof [EQUIVALENT, 0 ms] (100) PiDP (101) PiDPToQDPProof [SOUND, 0 ms] (102) QDP (103) QDPSizeChangeProof [EQUIVALENT, 0 ms] (104) YES (105) PiDP (106) UsableRulesProof [EQUIVALENT, 0 ms] (107) PiDP (108) PiDPToQDPProof [SOUND, 0 ms] (109) QDP (110) NonTerminationLoopProof [COMPLETE, 0 ms] (111) NO (112) PiDP (113) UsableRulesProof [EQUIVALENT, 0 ms] (114) PiDP (115) PiDPToQDPProof [SOUND, 0 ms] (116) QDP (117) QDPSizeChangeProof [EQUIVALENT, 0 ms] (118) YES (119) PrologToTRSTransformerProof [SOUND, 46 ms] (120) QTRS (121) DependencyPairsProof [EQUIVALENT, 0 ms] (122) QDP (123) DependencyGraphProof [EQUIVALENT, 1 ms] (124) AND (125) QDP (126) QDPOrderProof [EQUIVALENT, 48 ms] (127) QDP (128) DependencyGraphProof [EQUIVALENT, 0 ms] (129) QDP (130) QDPOrderProof [EQUIVALENT, 55 ms] (131) QDP (132) DependencyGraphProof [EQUIVALENT, 0 ms] (133) QDP (134) UsableRulesProof [EQUIVALENT, 0 ms] (135) QDP (136) QDPSizeChangeProof [EQUIVALENT, 0 ms] (137) YES (138) QDP (139) QDPOrderProof [EQUIVALENT, 54 ms] (140) QDP (141) DependencyGraphProof [EQUIVALENT, 0 ms] (142) QDP (143) UsableRulesProof [EQUIVALENT, 0 ms] (144) QDP (145) NonTerminationLoopProof [COMPLETE, 0 ms] (146) NO (147) QDP (148) QDPSizeChangeProof [EQUIVALENT, 0 ms] (149) YES (150) QDP (151) QDPSizeChangeProof [EQUIVALENT, 0 ms] (152) YES (153) PrologToIRSwTTransformerProof [SOUND, 106 ms] (154) AND (155) IRSwT (156) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (157) IRSwT (158) IntTRSCompressionProof [EQUIVALENT, 24 ms] (159) IRSwT (160) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (161) IRSwT (162) IRSwTTerminationDigraphProof [EQUIVALENT, 6 ms] (163) IRSwT (164) TempFilterProof [SOUND, 3 ms] (165) IRSwT (166) IRSwTToQDPProof [SOUND, 0 ms] (167) QDP (168) QDPSizeChangeProof [EQUIVALENT, 0 ms] (169) YES (170) IRSwT (171) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (172) IRSwT (173) IntTRSCompressionProof [EQUIVALENT, 0 ms] (174) IRSwT (175) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (176) IRSwT (177) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] (178) IRSwT (179) FilterProof [EQUIVALENT, 0 ms] (180) IntTRS (181) IntTRSPeriodicNontermProof [COMPLETE, 0 ms] (182) NO (183) IRSwT (184) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (185) IRSwT (186) IntTRSCompressionProof [EQUIVALENT, 29 ms] (187) IRSwT (188) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (189) IRSwT (190) IRSwT ---------------------------------------- (0) Obligation: Clauses: ackermann(0, N, s(N)). ackermann(s(M), 0, Val) :- ackermann(M, s(0), Val). ackermann(s(M), s(N), Val) :- ','(ackermann(s(M), N, Val1), ackermann(M, Val1, Val)). Query: ackermann(g,a,g) ---------------------------------------- (1) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: ackermann_in_3: (b,f,b) (b,b,b) (b,b,f) (b,f,f) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N)) ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N)) ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val) U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val) U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val) ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val)) U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val) The argument filtering Pi contains the following mapping: ackermann_in_gag(x1, x2, x3) = ackermann_in_gag(x1, x3) 0 = 0 s(x1) = s(x1) ackermann_out_gag(x1, x2, x3) = ackermann_out_gag U1_gag(x1, x2, x3) = U1_gag(x3) ackermann_in_ggg(x1, x2, x3) = ackermann_in_ggg(x1, x2, x3) ackermann_out_ggg(x1, x2, x3) = ackermann_out_ggg U1_ggg(x1, x2, x3) = U1_ggg(x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U1_gga(x1, x2, x3) = U1_gga(x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x4) U3_ggg(x1, x2, x3, x4) = U3_ggg(x4) U2_gag(x1, x2, x3, x4) = U2_gag(x1, x3, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa U1_gaa(x1, x2, x3) = U1_gaa(x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x4) U3_gag(x1, x2, x3, x4) = U3_gag(x4) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (2) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N)) ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N)) ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val) U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val) U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val) ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val)) U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val) The argument filtering Pi contains the following mapping: ackermann_in_gag(x1, x2, x3) = ackermann_in_gag(x1, x3) 0 = 0 s(x1) = s(x1) ackermann_out_gag(x1, x2, x3) = ackermann_out_gag U1_gag(x1, x2, x3) = U1_gag(x3) ackermann_in_ggg(x1, x2, x3) = ackermann_in_ggg(x1, x2, x3) ackermann_out_ggg(x1, x2, x3) = ackermann_out_ggg U1_ggg(x1, x2, x3) = U1_ggg(x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U1_gga(x1, x2, x3) = U1_gga(x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x4) U3_ggg(x1, x2, x3, x4) = U3_ggg(x4) U2_gag(x1, x2, x3, x4) = U2_gag(x1, x3, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa U1_gaa(x1, x2, x3) = U1_gaa(x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x4) U3_gag(x1, x2, x3, x4) = U3_gag(x4) ---------------------------------------- (3) 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: ACKERMANN_IN_GAG(s(M), 0, Val) -> U1_GAG(M, Val, ackermann_in_ggg(M, s(0), Val)) ACKERMANN_IN_GAG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val) ACKERMANN_IN_GGG(s(M), 0, Val) -> U1_GGG(M, Val, ackermann_in_ggg(M, s(0), Val)) ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val) ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ACKERMANN_IN_GGG(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1) ACKERMANN_IN_GGA(s(M), 0, Val) -> U1_GGA(M, Val, ackermann_in_gga(M, s(0), Val)) ACKERMANN_IN_GGA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val) ACKERMANN_IN_GGA(s(M), s(N), Val) -> U2_GGA(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ACKERMANN_IN_GGA(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1) U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_GGA(M, N, Val, ackermann_in_gga(M, Val1, Val)) U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1, Val) U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_GGG(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val) ACKERMANN_IN_GAG(s(M), s(N), Val) -> U2_GAG(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ACKERMANN_IN_GAG(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1) ACKERMANN_IN_GAA(s(M), 0, Val) -> U1_GAA(M, Val, ackermann_in_gga(M, s(0), Val)) ACKERMANN_IN_GAA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val) ACKERMANN_IN_GAA(s(M), s(N), Val) -> U2_GAA(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ACKERMANN_IN_GAA(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1) U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_GAA(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAA(M, Val1, Val) U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_GAG(M, N, Val, ackermann_in_gag(M, Val1, Val)) U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAG(M, Val1, Val) The TRS R consists of the following rules: ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N)) ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N)) ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val) U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val) U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val) ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val)) U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val) The argument filtering Pi contains the following mapping: ackermann_in_gag(x1, x2, x3) = ackermann_in_gag(x1, x3) 0 = 0 s(x1) = s(x1) ackermann_out_gag(x1, x2, x3) = ackermann_out_gag U1_gag(x1, x2, x3) = U1_gag(x3) ackermann_in_ggg(x1, x2, x3) = ackermann_in_ggg(x1, x2, x3) ackermann_out_ggg(x1, x2, x3) = ackermann_out_ggg U1_ggg(x1, x2, x3) = U1_ggg(x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U1_gga(x1, x2, x3) = U1_gga(x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x4) U3_ggg(x1, x2, x3, x4) = U3_ggg(x4) U2_gag(x1, x2, x3, x4) = U2_gag(x1, x3, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa U1_gaa(x1, x2, x3) = U1_gaa(x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x4) U3_gag(x1, x2, x3, x4) = U3_gag(x4) ACKERMANN_IN_GAG(x1, x2, x3) = ACKERMANN_IN_GAG(x1, x3) U1_GAG(x1, x2, x3) = U1_GAG(x3) ACKERMANN_IN_GGG(x1, x2, x3) = ACKERMANN_IN_GGG(x1, x2, x3) U1_GGG(x1, x2, x3) = U1_GGG(x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x3, x4) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U1_GGA(x1, x2, x3) = U1_GGA(x3) U2_GGA(x1, x2, x3, x4) = U2_GGA(x1, x4) U3_GGA(x1, x2, x3, x4) = U3_GGA(x4) U3_GGG(x1, x2, x3, x4) = U3_GGG(x4) U2_GAG(x1, x2, x3, x4) = U2_GAG(x1, x3, x4) ACKERMANN_IN_GAA(x1, x2, x3) = ACKERMANN_IN_GAA(x1) U1_GAA(x1, x2, x3) = U1_GAA(x3) U2_GAA(x1, x2, x3, x4) = U2_GAA(x1, x4) U3_GAA(x1, x2, x3, x4) = U3_GAA(x4) U3_GAG(x1, x2, x3, x4) = U3_GAG(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (4) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAG(s(M), 0, Val) -> U1_GAG(M, Val, ackermann_in_ggg(M, s(0), Val)) ACKERMANN_IN_GAG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val) ACKERMANN_IN_GGG(s(M), 0, Val) -> U1_GGG(M, Val, ackermann_in_ggg(M, s(0), Val)) ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val) ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ACKERMANN_IN_GGG(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1) ACKERMANN_IN_GGA(s(M), 0, Val) -> U1_GGA(M, Val, ackermann_in_gga(M, s(0), Val)) ACKERMANN_IN_GGA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val) ACKERMANN_IN_GGA(s(M), s(N), Val) -> U2_GGA(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ACKERMANN_IN_GGA(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1) U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_GGA(M, N, Val, ackermann_in_gga(M, Val1, Val)) U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1, Val) U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_GGG(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val) ACKERMANN_IN_GAG(s(M), s(N), Val) -> U2_GAG(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ACKERMANN_IN_GAG(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1) ACKERMANN_IN_GAA(s(M), 0, Val) -> U1_GAA(M, Val, ackermann_in_gga(M, s(0), Val)) ACKERMANN_IN_GAA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val) ACKERMANN_IN_GAA(s(M), s(N), Val) -> U2_GAA(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ACKERMANN_IN_GAA(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1) U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_GAA(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAA(M, Val1, Val) U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_GAG(M, N, Val, ackermann_in_gag(M, Val1, Val)) U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAG(M, Val1, Val) The TRS R consists of the following rules: ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N)) ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N)) ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val) U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val) U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val) ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val)) U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val) The argument filtering Pi contains the following mapping: ackermann_in_gag(x1, x2, x3) = ackermann_in_gag(x1, x3) 0 = 0 s(x1) = s(x1) ackermann_out_gag(x1, x2, x3) = ackermann_out_gag U1_gag(x1, x2, x3) = U1_gag(x3) ackermann_in_ggg(x1, x2, x3) = ackermann_in_ggg(x1, x2, x3) ackermann_out_ggg(x1, x2, x3) = ackermann_out_ggg U1_ggg(x1, x2, x3) = U1_ggg(x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U1_gga(x1, x2, x3) = U1_gga(x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x4) U3_ggg(x1, x2, x3, x4) = U3_ggg(x4) U2_gag(x1, x2, x3, x4) = U2_gag(x1, x3, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa U1_gaa(x1, x2, x3) = U1_gaa(x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x4) U3_gag(x1, x2, x3, x4) = U3_gag(x4) ACKERMANN_IN_GAG(x1, x2, x3) = ACKERMANN_IN_GAG(x1, x3) U1_GAG(x1, x2, x3) = U1_GAG(x3) ACKERMANN_IN_GGG(x1, x2, x3) = ACKERMANN_IN_GGG(x1, x2, x3) U1_GGG(x1, x2, x3) = U1_GGG(x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x3, x4) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U1_GGA(x1, x2, x3) = U1_GGA(x3) U2_GGA(x1, x2, x3, x4) = U2_GGA(x1, x4) U3_GGA(x1, x2, x3, x4) = U3_GGA(x4) U3_GGG(x1, x2, x3, x4) = U3_GGG(x4) U2_GAG(x1, x2, x3, x4) = U2_GAG(x1, x3, x4) ACKERMANN_IN_GAA(x1, x2, x3) = ACKERMANN_IN_GAA(x1) U1_GAA(x1, x2, x3) = U1_GAA(x3) U2_GAA(x1, x2, x3, x4) = U2_GAA(x1, x4) U3_GAA(x1, x2, x3, x4) = U3_GAA(x4) U3_GAG(x1, x2, x3, x4) = U3_GAG(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (5) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 12 less nodes. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GGA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val) ACKERMANN_IN_GGA(s(M), s(N), Val) -> U2_GGA(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1, Val) ACKERMANN_IN_GGA(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1) The TRS R consists of the following rules: ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N)) ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N)) ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val) U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val) U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val) ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val)) U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val) The argument filtering Pi contains the following mapping: ackermann_in_gag(x1, x2, x3) = ackermann_in_gag(x1, x3) 0 = 0 s(x1) = s(x1) ackermann_out_gag(x1, x2, x3) = ackermann_out_gag U1_gag(x1, x2, x3) = U1_gag(x3) ackermann_in_ggg(x1, x2, x3) = ackermann_in_ggg(x1, x2, x3) ackermann_out_ggg(x1, x2, x3) = ackermann_out_ggg U1_ggg(x1, x2, x3) = U1_ggg(x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U1_gga(x1, x2, x3) = U1_gga(x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x4) U3_ggg(x1, x2, x3, x4) = U3_ggg(x4) U2_gag(x1, x2, x3, x4) = U2_gag(x1, x3, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa U1_gaa(x1, x2, x3) = U1_gaa(x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x4) U3_gag(x1, x2, x3, x4) = U3_gag(x4) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U2_GGA(x1, x2, x3, x4) = U2_GGA(x1, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (8) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (9) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GGA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val) ACKERMANN_IN_GGA(s(M), s(N), Val) -> U2_GGA(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1, Val) ACKERMANN_IN_GGA(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1) The TRS R consists of the following rules: ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) The argument filtering Pi contains the following mapping: 0 = 0 s(x1) = s(x1) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U1_gga(x1, x2, x3) = U1_gga(x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x4) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U2_GGA(x1, x2, x3, x4) = U2_GGA(x1, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (10) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GGA(s(M), 0) -> ACKERMANN_IN_GGA(M, s(0)) ACKERMANN_IN_GGA(s(M), s(N)) -> U2_GGA(M, ackermann_in_gga(s(M), N)) U2_GGA(M, ackermann_out_gga(Val1)) -> ACKERMANN_IN_GGA(M, Val1) ACKERMANN_IN_GGA(s(M), s(N)) -> ACKERMANN_IN_GGA(s(M), N) The TRS R consists of the following rules: ackermann_in_gga(s(M), 0) -> U1_gga(ackermann_in_gga(M, s(0))) ackermann_in_gga(s(M), s(N)) -> U2_gga(M, ackermann_in_gga(s(M), N)) U1_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val) U2_gga(M, ackermann_out_gga(Val1)) -> U3_gga(ackermann_in_gga(M, Val1)) ackermann_in_gga(0, N) -> ackermann_out_gga(s(N)) U3_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val) The set Q consists of the following terms: ackermann_in_gga(x0, x1) U1_gga(x0) U2_gga(x0, x1) U3_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (12) 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: *ACKERMANN_IN_GGA(s(M), s(N)) -> ACKERMANN_IN_GGA(s(M), N) The graph contains the following edges 1 >= 1, 2 > 2 *ACKERMANN_IN_GGA(s(M), s(N)) -> U2_GGA(M, ackermann_in_gga(s(M), N)) The graph contains the following edges 1 > 1 *U2_GGA(M, ackermann_out_gga(Val1)) -> ACKERMANN_IN_GGA(M, Val1) The graph contains the following edges 1 >= 1, 2 > 2 *ACKERMANN_IN_GGA(s(M), 0) -> ACKERMANN_IN_GGA(M, s(0)) The graph contains the following edges 1 > 1 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAA(s(M), s(N), Val) -> U2_GAA(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAA(M, Val1, Val) ACKERMANN_IN_GAA(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1) The TRS R consists of the following rules: ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N)) ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N)) ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val) U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val) U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val) ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val)) U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val) The argument filtering Pi contains the following mapping: ackermann_in_gag(x1, x2, x3) = ackermann_in_gag(x1, x3) 0 = 0 s(x1) = s(x1) ackermann_out_gag(x1, x2, x3) = ackermann_out_gag U1_gag(x1, x2, x3) = U1_gag(x3) ackermann_in_ggg(x1, x2, x3) = ackermann_in_ggg(x1, x2, x3) ackermann_out_ggg(x1, x2, x3) = ackermann_out_ggg U1_ggg(x1, x2, x3) = U1_ggg(x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U1_gga(x1, x2, x3) = U1_gga(x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x4) U3_ggg(x1, x2, x3, x4) = U3_ggg(x4) U2_gag(x1, x2, x3, x4) = U2_gag(x1, x3, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa U1_gaa(x1, x2, x3) = U1_gaa(x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x4) U3_gag(x1, x2, x3, x4) = U3_gag(x4) ACKERMANN_IN_GAA(x1, x2, x3) = ACKERMANN_IN_GAA(x1) U2_GAA(x1, x2, x3, x4) = U2_GAA(x1, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (15) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (16) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAA(s(M), s(N), Val) -> U2_GAA(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAA(M, Val1, Val) ACKERMANN_IN_GAA(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1) The TRS R consists of the following rules: ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) The argument filtering Pi contains the following mapping: 0 = 0 s(x1) = s(x1) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U1_gga(x1, x2, x3) = U1_gga(x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa U1_gaa(x1, x2, x3) = U1_gaa(x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x4) ACKERMANN_IN_GAA(x1, x2, x3) = ACKERMANN_IN_GAA(x1) U2_GAA(x1, x2, x3, x4) = U2_GAA(x1, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (17) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (18) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAA(s(M)) -> U2_GAA(M, ackermann_in_gaa(s(M))) U2_GAA(M, ackermann_out_gaa) -> ACKERMANN_IN_GAA(M) ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M)) The TRS R consists of the following rules: ackermann_in_gaa(s(M)) -> U1_gaa(ackermann_in_gga(M, s(0))) ackermann_in_gaa(s(M)) -> U2_gaa(M, ackermann_in_gaa(s(M))) U1_gaa(ackermann_out_gga(Val)) -> ackermann_out_gaa U2_gaa(M, ackermann_out_gaa) -> U3_gaa(ackermann_in_gaa(M)) ackermann_in_gga(0, N) -> ackermann_out_gga(s(N)) ackermann_in_gga(s(M), s(N)) -> U2_gga(M, ackermann_in_gga(s(M), N)) U3_gaa(ackermann_out_gaa) -> ackermann_out_gaa U2_gga(M, ackermann_out_gga(Val1)) -> U3_gga(ackermann_in_gga(M, Val1)) ackermann_in_gaa(0) -> ackermann_out_gaa ackermann_in_gga(s(M), 0) -> U1_gga(ackermann_in_gga(M, s(0))) U3_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val) U1_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val) The set Q consists of the following terms: ackermann_in_gaa(x0) U1_gaa(x0) U2_gaa(x0, x1) ackermann_in_gga(x0, x1) U3_gaa(x0) U2_gga(x0, x1) U3_gga(x0) U1_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (19) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. U2_GAA(M, ackermann_out_gaa) -> ACKERMANN_IN_GAA(M) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( U2_GAA_2(x_1, x_2) ) = 2x_1 + x_2 + 2 POL( ackermann_in_gaa_1(x_1) ) = x_1 + 2 POL( s_1(x_1) ) = 2x_1 + 2 POL( U1_gaa_1(x_1) ) = 2 POL( ackermann_in_gga_2(x_1, x_2) ) = 2x_2 + 2 POL( 0 ) = 2 POL( U2_gaa_2(x_1, x_2) ) = 2x_1 + 2 POL( ackermann_out_gaa ) = 1 POL( U3_gaa_1(x_1) ) = x_1 POL( ackermann_out_gga_1(x_1) ) = max{0, 2x_1 - 2} POL( U2_gga_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U1_gga_1(x_1) ) = 1 POL( U3_gga_1(x_1) ) = max{0, -2} POL( ACKERMANN_IN_GAA_1(x_1) ) = 2x_1 + 2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: ackermann_in_gaa(s(M)) -> U1_gaa(ackermann_in_gga(M, s(0))) ackermann_in_gaa(s(M)) -> U2_gaa(M, ackermann_in_gaa(s(M))) U2_gaa(M, ackermann_out_gaa) -> U3_gaa(ackermann_in_gaa(M)) ackermann_in_gaa(0) -> ackermann_out_gaa U3_gaa(ackermann_out_gaa) -> ackermann_out_gaa U1_gaa(ackermann_out_gga(Val)) -> ackermann_out_gaa ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAA(s(M)) -> U2_GAA(M, ackermann_in_gaa(s(M))) ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M)) The TRS R consists of the following rules: ackermann_in_gaa(s(M)) -> U1_gaa(ackermann_in_gga(M, s(0))) ackermann_in_gaa(s(M)) -> U2_gaa(M, ackermann_in_gaa(s(M))) U1_gaa(ackermann_out_gga(Val)) -> ackermann_out_gaa U2_gaa(M, ackermann_out_gaa) -> U3_gaa(ackermann_in_gaa(M)) ackermann_in_gga(0, N) -> ackermann_out_gga(s(N)) ackermann_in_gga(s(M), s(N)) -> U2_gga(M, ackermann_in_gga(s(M), N)) U3_gaa(ackermann_out_gaa) -> ackermann_out_gaa U2_gga(M, ackermann_out_gga(Val1)) -> U3_gga(ackermann_in_gga(M, Val1)) ackermann_in_gaa(0) -> ackermann_out_gaa ackermann_in_gga(s(M), 0) -> U1_gga(ackermann_in_gga(M, s(0))) U3_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val) U1_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val) The set Q consists of the following terms: ackermann_in_gaa(x0) U1_gaa(x0) U2_gaa(x0, x1) ackermann_in_gga(x0, x1) U3_gaa(x0) U2_gga(x0, x1) U3_gga(x0) U1_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (21) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M)) The TRS R consists of the following rules: ackermann_in_gaa(s(M)) -> U1_gaa(ackermann_in_gga(M, s(0))) ackermann_in_gaa(s(M)) -> U2_gaa(M, ackermann_in_gaa(s(M))) U1_gaa(ackermann_out_gga(Val)) -> ackermann_out_gaa U2_gaa(M, ackermann_out_gaa) -> U3_gaa(ackermann_in_gaa(M)) ackermann_in_gga(0, N) -> ackermann_out_gga(s(N)) ackermann_in_gga(s(M), s(N)) -> U2_gga(M, ackermann_in_gga(s(M), N)) U3_gaa(ackermann_out_gaa) -> ackermann_out_gaa U2_gga(M, ackermann_out_gga(Val1)) -> U3_gga(ackermann_in_gga(M, Val1)) ackermann_in_gaa(0) -> ackermann_out_gaa ackermann_in_gga(s(M), 0) -> U1_gga(ackermann_in_gga(M, s(0))) U3_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val) U1_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val) The set Q consists of the following terms: ackermann_in_gaa(x0) U1_gaa(x0) U2_gaa(x0, x1) ackermann_in_gga(x0, x1) U3_gaa(x0) U2_gga(x0, x1) U3_gga(x0) U1_gga(x0) 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: ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M)) R is empty. The set Q consists of the following terms: ackermann_in_gaa(x0) U1_gaa(x0) U2_gaa(x0, x1) ackermann_in_gga(x0, x1) U3_gaa(x0) U2_gga(x0, x1) U3_gga(x0) U1_gga(x0) 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]. ackermann_in_gaa(x0) U1_gaa(x0) U2_gaa(x0, x1) ackermann_in_gga(x0, x1) U3_gaa(x0) U2_gga(x0, x1) U3_gga(x0) U1_gga(x0) ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M)) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (27) 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 = ACKERMANN_IN_GAA(s(M)) evaluates to t =ACKERMANN_IN_GAA(s(M)) 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 ACKERMANN_IN_GAA(s(M)) to ACKERMANN_IN_GAA(s(M)). ---------------------------------------- (28) NO ---------------------------------------- (29) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val) ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val) The TRS R consists of the following rules: ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N)) ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N)) ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val) U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val) U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val) ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val)) U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val) The argument filtering Pi contains the following mapping: ackermann_in_gag(x1, x2, x3) = ackermann_in_gag(x1, x3) 0 = 0 s(x1) = s(x1) ackermann_out_gag(x1, x2, x3) = ackermann_out_gag U1_gag(x1, x2, x3) = U1_gag(x3) ackermann_in_ggg(x1, x2, x3) = ackermann_in_ggg(x1, x2, x3) ackermann_out_ggg(x1, x2, x3) = ackermann_out_ggg U1_ggg(x1, x2, x3) = U1_ggg(x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U1_gga(x1, x2, x3) = U1_gga(x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x4) U3_ggg(x1, x2, x3, x4) = U3_ggg(x4) U2_gag(x1, x2, x3, x4) = U2_gag(x1, x3, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa U1_gaa(x1, x2, x3) = U1_gaa(x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x4) U3_gag(x1, x2, x3, x4) = U3_gag(x4) ACKERMANN_IN_GGG(x1, x2, x3) = ACKERMANN_IN_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (30) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (31) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val) ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val) The TRS R consists of the following rules: ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) The argument filtering Pi contains the following mapping: 0 = 0 s(x1) = s(x1) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U1_gga(x1, x2, x3) = U1_gga(x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x4) ACKERMANN_IN_GGG(x1, x2, x3) = ACKERMANN_IN_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (32) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (33) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val) ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, Val, ackermann_in_gga(s(M), N)) U2_GGG(M, Val, ackermann_out_gga(Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val) The TRS R consists of the following rules: ackermann_in_gga(s(M), 0) -> U1_gga(ackermann_in_gga(M, s(0))) ackermann_in_gga(s(M), s(N)) -> U2_gga(M, ackermann_in_gga(s(M), N)) U1_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val) U2_gga(M, ackermann_out_gga(Val1)) -> U3_gga(ackermann_in_gga(M, Val1)) ackermann_in_gga(0, N) -> ackermann_out_gga(s(N)) U3_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val) The set Q consists of the following terms: ackermann_in_gga(x0, x1) U1_gga(x0) U2_gga(x0, x1) U3_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (34) 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: *ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, Val, ackermann_in_gga(s(M), N)) The graph contains the following edges 1 > 1, 3 >= 2 *U2_GGG(M, Val, ackermann_out_gga(Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val) The graph contains the following edges 1 >= 1, 3 > 2, 2 >= 3 *ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val) The graph contains the following edges 1 > 1, 3 >= 3 ---------------------------------------- (35) YES ---------------------------------------- (36) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAG(s(M), s(N), Val) -> U2_GAG(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAG(M, Val1, Val) The TRS R consists of the following rules: ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N)) ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N)) ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val) U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val) U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val) ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val)) U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val) The argument filtering Pi contains the following mapping: ackermann_in_gag(x1, x2, x3) = ackermann_in_gag(x1, x3) 0 = 0 s(x1) = s(x1) ackermann_out_gag(x1, x2, x3) = ackermann_out_gag U1_gag(x1, x2, x3) = U1_gag(x3) ackermann_in_ggg(x1, x2, x3) = ackermann_in_ggg(x1, x2, x3) ackermann_out_ggg(x1, x2, x3) = ackermann_out_ggg U1_ggg(x1, x2, x3) = U1_ggg(x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U1_gga(x1, x2, x3) = U1_gga(x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x4) U3_ggg(x1, x2, x3, x4) = U3_ggg(x4) U2_gag(x1, x2, x3, x4) = U2_gag(x1, x3, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa U1_gaa(x1, x2, x3) = U1_gaa(x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x4) U3_gag(x1, x2, x3, x4) = U3_gag(x4) ACKERMANN_IN_GAG(x1, x2, x3) = ACKERMANN_IN_GAG(x1, x3) U2_GAG(x1, x2, x3, x4) = U2_GAG(x1, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (37) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (38) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAG(s(M), s(N), Val) -> U2_GAG(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAG(M, Val1, Val) The TRS R consists of the following rules: ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) The argument filtering Pi contains the following mapping: 0 = 0 s(x1) = s(x1) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U1_gga(x1, x2, x3) = U1_gga(x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa U1_gaa(x1, x2, x3) = U1_gaa(x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x4) ACKERMANN_IN_GAG(x1, x2, x3) = ACKERMANN_IN_GAG(x1, x3) U2_GAG(x1, x2, x3, x4) = U2_GAG(x1, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (39) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (40) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAG(s(M), Val) -> U2_GAG(M, Val, ackermann_in_gaa(s(M))) U2_GAG(M, Val, ackermann_out_gaa) -> ACKERMANN_IN_GAG(M, Val) The TRS R consists of the following rules: ackermann_in_gaa(s(M)) -> U1_gaa(ackermann_in_gga(M, s(0))) ackermann_in_gaa(s(M)) -> U2_gaa(M, ackermann_in_gaa(s(M))) U1_gaa(ackermann_out_gga(Val)) -> ackermann_out_gaa U2_gaa(M, ackermann_out_gaa) -> U3_gaa(ackermann_in_gaa(M)) ackermann_in_gga(0, N) -> ackermann_out_gga(s(N)) ackermann_in_gga(s(M), s(N)) -> U2_gga(M, ackermann_in_gga(s(M), N)) U3_gaa(ackermann_out_gaa) -> ackermann_out_gaa U2_gga(M, ackermann_out_gga(Val1)) -> U3_gga(ackermann_in_gga(M, Val1)) ackermann_in_gaa(0) -> ackermann_out_gaa ackermann_in_gga(s(M), 0) -> U1_gga(ackermann_in_gga(M, s(0))) U3_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val) U1_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val) The set Q consists of the following terms: ackermann_in_gaa(x0) U1_gaa(x0) U2_gaa(x0, x1) ackermann_in_gga(x0, x1) U3_gaa(x0) U2_gga(x0, x1) U3_gga(x0) U1_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (41) 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: *U2_GAG(M, Val, ackermann_out_gaa) -> ACKERMANN_IN_GAG(M, Val) The graph contains the following edges 1 >= 1, 2 >= 2 *ACKERMANN_IN_GAG(s(M), Val) -> U2_GAG(M, Val, ackermann_in_gaa(s(M))) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (42) YES ---------------------------------------- (43) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: ackermann_in_3: (b,f,b) (b,b,b) (b,b,f) (b,f,f) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N)) ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N)) ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val) U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val) U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val) ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val)) U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val) The argument filtering Pi contains the following mapping: ackermann_in_gag(x1, x2, x3) = ackermann_in_gag(x1, x3) 0 = 0 s(x1) = s(x1) ackermann_out_gag(x1, x2, x3) = ackermann_out_gag(x1, x3) U1_gag(x1, x2, x3) = U1_gag(x1, x2, x3) ackermann_in_ggg(x1, x2, x3) = ackermann_in_ggg(x1, x2, x3) ackermann_out_ggg(x1, x2, x3) = ackermann_out_ggg(x1, x2, x3) U1_ggg(x1, x2, x3) = U1_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U1_gga(x1, x2, x3) = U1_gga(x1, x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x2, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x1, x2, x4) U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) U2_gag(x1, x2, x3, x4) = U2_gag(x1, x3, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa(x1) U1_gaa(x1, x2, x3) = U1_gaa(x1, x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x1, x4) U3_gag(x1, x2, x3, x4) = U3_gag(x1, x3, x4) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (44) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N)) ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N)) ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val) U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val) U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val) ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val)) U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val) The argument filtering Pi contains the following mapping: ackermann_in_gag(x1, x2, x3) = ackermann_in_gag(x1, x3) 0 = 0 s(x1) = s(x1) ackermann_out_gag(x1, x2, x3) = ackermann_out_gag(x1, x3) U1_gag(x1, x2, x3) = U1_gag(x1, x2, x3) ackermann_in_ggg(x1, x2, x3) = ackermann_in_ggg(x1, x2, x3) ackermann_out_ggg(x1, x2, x3) = ackermann_out_ggg(x1, x2, x3) U1_ggg(x1, x2, x3) = U1_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U1_gga(x1, x2, x3) = U1_gga(x1, x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x2, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x1, x2, x4) U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) U2_gag(x1, x2, x3, x4) = U2_gag(x1, x3, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa(x1) U1_gaa(x1, x2, x3) = U1_gaa(x1, x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x1, x4) U3_gag(x1, x2, x3, x4) = U3_gag(x1, x3, x4) ---------------------------------------- (45) 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: ACKERMANN_IN_GAG(s(M), 0, Val) -> U1_GAG(M, Val, ackermann_in_ggg(M, s(0), Val)) ACKERMANN_IN_GAG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val) ACKERMANN_IN_GGG(s(M), 0, Val) -> U1_GGG(M, Val, ackermann_in_ggg(M, s(0), Val)) ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val) ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ACKERMANN_IN_GGG(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1) ACKERMANN_IN_GGA(s(M), 0, Val) -> U1_GGA(M, Val, ackermann_in_gga(M, s(0), Val)) ACKERMANN_IN_GGA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val) ACKERMANN_IN_GGA(s(M), s(N), Val) -> U2_GGA(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ACKERMANN_IN_GGA(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1) U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_GGA(M, N, Val, ackermann_in_gga(M, Val1, Val)) U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1, Val) U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_GGG(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val) ACKERMANN_IN_GAG(s(M), s(N), Val) -> U2_GAG(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ACKERMANN_IN_GAG(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1) ACKERMANN_IN_GAA(s(M), 0, Val) -> U1_GAA(M, Val, ackermann_in_gga(M, s(0), Val)) ACKERMANN_IN_GAA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val) ACKERMANN_IN_GAA(s(M), s(N), Val) -> U2_GAA(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ACKERMANN_IN_GAA(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1) U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_GAA(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAA(M, Val1, Val) U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_GAG(M, N, Val, ackermann_in_gag(M, Val1, Val)) U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAG(M, Val1, Val) The TRS R consists of the following rules: ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N)) ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N)) ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val) U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val) U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val) ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val)) U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val) The argument filtering Pi contains the following mapping: ackermann_in_gag(x1, x2, x3) = ackermann_in_gag(x1, x3) 0 = 0 s(x1) = s(x1) ackermann_out_gag(x1, x2, x3) = ackermann_out_gag(x1, x3) U1_gag(x1, x2, x3) = U1_gag(x1, x2, x3) ackermann_in_ggg(x1, x2, x3) = ackermann_in_ggg(x1, x2, x3) ackermann_out_ggg(x1, x2, x3) = ackermann_out_ggg(x1, x2, x3) U1_ggg(x1, x2, x3) = U1_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U1_gga(x1, x2, x3) = U1_gga(x1, x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x2, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x1, x2, x4) U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) U2_gag(x1, x2, x3, x4) = U2_gag(x1, x3, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa(x1) U1_gaa(x1, x2, x3) = U1_gaa(x1, x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x1, x4) U3_gag(x1, x2, x3, x4) = U3_gag(x1, x3, x4) ACKERMANN_IN_GAG(x1, x2, x3) = ACKERMANN_IN_GAG(x1, x3) U1_GAG(x1, x2, x3) = U1_GAG(x1, x2, x3) ACKERMANN_IN_GGG(x1, x2, x3) = ACKERMANN_IN_GGG(x1, x2, x3) U1_GGG(x1, x2, x3) = U1_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x2, x3, x4) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U1_GGA(x1, x2, x3) = U1_GGA(x1, x3) U2_GGA(x1, x2, x3, x4) = U2_GGA(x1, x2, x4) U3_GGA(x1, x2, x3, x4) = U3_GGA(x1, x2, x4) U3_GGG(x1, x2, x3, x4) = U3_GGG(x1, x2, x3, x4) U2_GAG(x1, x2, x3, x4) = U2_GAG(x1, x3, x4) ACKERMANN_IN_GAA(x1, x2, x3) = ACKERMANN_IN_GAA(x1) U1_GAA(x1, x2, x3) = U1_GAA(x1, x3) U2_GAA(x1, x2, x3, x4) = U2_GAA(x1, x4) U3_GAA(x1, x2, x3, x4) = U3_GAA(x1, x4) U3_GAG(x1, x2, x3, x4) = U3_GAG(x1, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (46) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAG(s(M), 0, Val) -> U1_GAG(M, Val, ackermann_in_ggg(M, s(0), Val)) ACKERMANN_IN_GAG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val) ACKERMANN_IN_GGG(s(M), 0, Val) -> U1_GGG(M, Val, ackermann_in_ggg(M, s(0), Val)) ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val) ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ACKERMANN_IN_GGG(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1) ACKERMANN_IN_GGA(s(M), 0, Val) -> U1_GGA(M, Val, ackermann_in_gga(M, s(0), Val)) ACKERMANN_IN_GGA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val) ACKERMANN_IN_GGA(s(M), s(N), Val) -> U2_GGA(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ACKERMANN_IN_GGA(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1) U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_GGA(M, N, Val, ackermann_in_gga(M, Val1, Val)) U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1, Val) U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_GGG(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val) ACKERMANN_IN_GAG(s(M), s(N), Val) -> U2_GAG(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ACKERMANN_IN_GAG(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1) ACKERMANN_IN_GAA(s(M), 0, Val) -> U1_GAA(M, Val, ackermann_in_gga(M, s(0), Val)) ACKERMANN_IN_GAA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val) ACKERMANN_IN_GAA(s(M), s(N), Val) -> U2_GAA(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ACKERMANN_IN_GAA(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1) U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_GAA(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAA(M, Val1, Val) U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_GAG(M, N, Val, ackermann_in_gag(M, Val1, Val)) U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAG(M, Val1, Val) The TRS R consists of the following rules: ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N)) ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N)) ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val) U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val) U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val) ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val)) U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val) The argument filtering Pi contains the following mapping: ackermann_in_gag(x1, x2, x3) = ackermann_in_gag(x1, x3) 0 = 0 s(x1) = s(x1) ackermann_out_gag(x1, x2, x3) = ackermann_out_gag(x1, x3) U1_gag(x1, x2, x3) = U1_gag(x1, x2, x3) ackermann_in_ggg(x1, x2, x3) = ackermann_in_ggg(x1, x2, x3) ackermann_out_ggg(x1, x2, x3) = ackermann_out_ggg(x1, x2, x3) U1_ggg(x1, x2, x3) = U1_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U1_gga(x1, x2, x3) = U1_gga(x1, x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x2, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x1, x2, x4) U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) U2_gag(x1, x2, x3, x4) = U2_gag(x1, x3, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa(x1) U1_gaa(x1, x2, x3) = U1_gaa(x1, x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x1, x4) U3_gag(x1, x2, x3, x4) = U3_gag(x1, x3, x4) ACKERMANN_IN_GAG(x1, x2, x3) = ACKERMANN_IN_GAG(x1, x3) U1_GAG(x1, x2, x3) = U1_GAG(x1, x2, x3) ACKERMANN_IN_GGG(x1, x2, x3) = ACKERMANN_IN_GGG(x1, x2, x3) U1_GGG(x1, x2, x3) = U1_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x2, x3, x4) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U1_GGA(x1, x2, x3) = U1_GGA(x1, x3) U2_GGA(x1, x2, x3, x4) = U2_GGA(x1, x2, x4) U3_GGA(x1, x2, x3, x4) = U3_GGA(x1, x2, x4) U3_GGG(x1, x2, x3, x4) = U3_GGG(x1, x2, x3, x4) U2_GAG(x1, x2, x3, x4) = U2_GAG(x1, x3, x4) ACKERMANN_IN_GAA(x1, x2, x3) = ACKERMANN_IN_GAA(x1) U1_GAA(x1, x2, x3) = U1_GAA(x1, x3) U2_GAA(x1, x2, x3, x4) = U2_GAA(x1, x4) U3_GAA(x1, x2, x3, x4) = U3_GAA(x1, x4) U3_GAG(x1, x2, x3, x4) = U3_GAG(x1, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (47) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 12 less nodes. ---------------------------------------- (48) Complex Obligation (AND) ---------------------------------------- (49) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GGA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val) ACKERMANN_IN_GGA(s(M), s(N), Val) -> U2_GGA(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1, Val) ACKERMANN_IN_GGA(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1) The TRS R consists of the following rules: ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N)) ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N)) ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val) U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val) U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val) ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val)) U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val) The argument filtering Pi contains the following mapping: ackermann_in_gag(x1, x2, x3) = ackermann_in_gag(x1, x3) 0 = 0 s(x1) = s(x1) ackermann_out_gag(x1, x2, x3) = ackermann_out_gag(x1, x3) U1_gag(x1, x2, x3) = U1_gag(x1, x2, x3) ackermann_in_ggg(x1, x2, x3) = ackermann_in_ggg(x1, x2, x3) ackermann_out_ggg(x1, x2, x3) = ackermann_out_ggg(x1, x2, x3) U1_ggg(x1, x2, x3) = U1_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U1_gga(x1, x2, x3) = U1_gga(x1, x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x2, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x1, x2, x4) U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) U2_gag(x1, x2, x3, x4) = U2_gag(x1, x3, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa(x1) U1_gaa(x1, x2, x3) = U1_gaa(x1, x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x1, x4) U3_gag(x1, x2, x3, x4) = U3_gag(x1, x3, x4) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U2_GGA(x1, x2, x3, x4) = U2_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (50) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (51) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GGA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val) ACKERMANN_IN_GGA(s(M), s(N), Val) -> U2_GGA(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1, Val) ACKERMANN_IN_GGA(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1) The TRS R consists of the following rules: ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) The argument filtering Pi contains the following mapping: 0 = 0 s(x1) = s(x1) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U1_gga(x1, x2, x3) = U1_gga(x1, x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x2, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x1, x2, x4) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U2_GGA(x1, x2, x3, x4) = U2_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (52) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (53) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GGA(s(M), 0) -> ACKERMANN_IN_GGA(M, s(0)) ACKERMANN_IN_GGA(s(M), s(N)) -> U2_GGA(M, N, ackermann_in_gga(s(M), N)) U2_GGA(M, N, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1) ACKERMANN_IN_GGA(s(M), s(N)) -> ACKERMANN_IN_GGA(s(M), N) The TRS R consists of the following rules: ackermann_in_gga(s(M), 0) -> U1_gga(M, ackermann_in_gga(M, s(0))) ackermann_in_gga(s(M), s(N)) -> U2_gga(M, N, ackermann_in_gga(s(M), N)) U1_gga(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_gga(M, N, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, ackermann_in_gga(M, Val1)) ackermann_in_gga(0, N) -> ackermann_out_gga(0, N, s(N)) U3_gga(M, N, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) The set Q consists of the following terms: ackermann_in_gga(x0, x1) U1_gga(x0, x1) U2_gga(x0, x1, x2) U3_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (54) 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: *ACKERMANN_IN_GGA(s(M), s(N)) -> ACKERMANN_IN_GGA(s(M), N) The graph contains the following edges 1 >= 1, 2 > 2 *ACKERMANN_IN_GGA(s(M), s(N)) -> U2_GGA(M, N, ackermann_in_gga(s(M), N)) The graph contains the following edges 1 > 1, 2 > 2 *U2_GGA(M, N, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1) The graph contains the following edges 1 >= 1, 3 > 1, 3 > 2 *ACKERMANN_IN_GGA(s(M), 0) -> ACKERMANN_IN_GGA(M, s(0)) The graph contains the following edges 1 > 1 ---------------------------------------- (55) YES ---------------------------------------- (56) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAA(s(M), s(N), Val) -> U2_GAA(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAA(M, Val1, Val) ACKERMANN_IN_GAA(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1) The TRS R consists of the following rules: ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N)) ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N)) ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val) U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val) U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val) ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val)) U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val) The argument filtering Pi contains the following mapping: ackermann_in_gag(x1, x2, x3) = ackermann_in_gag(x1, x3) 0 = 0 s(x1) = s(x1) ackermann_out_gag(x1, x2, x3) = ackermann_out_gag(x1, x3) U1_gag(x1, x2, x3) = U1_gag(x1, x2, x3) ackermann_in_ggg(x1, x2, x3) = ackermann_in_ggg(x1, x2, x3) ackermann_out_ggg(x1, x2, x3) = ackermann_out_ggg(x1, x2, x3) U1_ggg(x1, x2, x3) = U1_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U1_gga(x1, x2, x3) = U1_gga(x1, x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x2, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x1, x2, x4) U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) U2_gag(x1, x2, x3, x4) = U2_gag(x1, x3, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa(x1) U1_gaa(x1, x2, x3) = U1_gaa(x1, x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x1, x4) U3_gag(x1, x2, x3, x4) = U3_gag(x1, x3, x4) ACKERMANN_IN_GAA(x1, x2, x3) = ACKERMANN_IN_GAA(x1) U2_GAA(x1, x2, x3, x4) = U2_GAA(x1, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (57) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (58) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAA(s(M), s(N), Val) -> U2_GAA(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAA(M, Val1, Val) ACKERMANN_IN_GAA(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1) The TRS R consists of the following rules: ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) The argument filtering Pi contains the following mapping: 0 = 0 s(x1) = s(x1) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U1_gga(x1, x2, x3) = U1_gga(x1, x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x2, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x1, x2, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa(x1) U1_gaa(x1, x2, x3) = U1_gaa(x1, x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x1, x4) ACKERMANN_IN_GAA(x1, x2, x3) = ACKERMANN_IN_GAA(x1) U2_GAA(x1, x2, x3, x4) = U2_GAA(x1, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (59) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (60) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAA(s(M)) -> U2_GAA(M, ackermann_in_gaa(s(M))) U2_GAA(M, ackermann_out_gaa(s(M))) -> ACKERMANN_IN_GAA(M) ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M)) The TRS R consists of the following rules: ackermann_in_gaa(s(M)) -> U1_gaa(M, ackermann_in_gga(M, s(0))) ackermann_in_gaa(s(M)) -> U2_gaa(M, ackermann_in_gaa(s(M))) U1_gaa(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M)) U2_gaa(M, ackermann_out_gaa(s(M))) -> U3_gaa(M, ackermann_in_gaa(M)) ackermann_in_gga(0, N) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), s(N)) -> U2_gga(M, N, ackermann_in_gga(s(M), N)) U3_gaa(M, ackermann_out_gaa(M)) -> ackermann_out_gaa(s(M)) U2_gga(M, N, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, ackermann_in_gga(M, Val1)) ackermann_in_gaa(0) -> ackermann_out_gaa(0) ackermann_in_gga(s(M), 0) -> U1_gga(M, ackermann_in_gga(M, s(0))) U3_gga(M, N, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) The set Q consists of the following terms: ackermann_in_gaa(x0) U1_gaa(x0, x1) U2_gaa(x0, x1) ackermann_in_gga(x0, x1) U3_gaa(x0, x1) U2_gga(x0, x1, x2) U3_gga(x0, x1, x2) U1_gga(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (61) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACKERMANN_IN_GAA(s(M)) -> U2_GAA(M, ackermann_in_gaa(s(M))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( U2_GAA_2(x_1, x_2) ) = 2x_1 POL( ackermann_in_gaa_1(x_1) ) = 2 POL( s_1(x_1) ) = x_1 + 2 POL( U1_gaa_2(x_1, x_2) ) = max{0, -2} POL( ackermann_in_gga_2(x_1, x_2) ) = max{0, x_1 + 2x_2 - 2} POL( 0 ) = 2 POL( U2_gaa_2(x_1, x_2) ) = 2x_2 + 2 POL( ackermann_out_gaa_1(x_1) ) = x_1 + 2 POL( U3_gaa_2(x_1, x_2) ) = max{0, -2} POL( ackermann_out_gga_3(x_1, ..., x_3) ) = max{0, x_3 - 2} POL( U2_gga_3(x_1, ..., x_3) ) = 2x_1 + 2x_3 + 2 POL( U1_gga_2(x_1, x_2) ) = 2x_1 + 1 POL( U3_gga_3(x_1, ..., x_3) ) = x_2 + 2 POL( ACKERMANN_IN_GAA_1(x_1) ) = 2x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (62) Obligation: Q DP problem: The TRS P consists of the following rules: U2_GAA(M, ackermann_out_gaa(s(M))) -> ACKERMANN_IN_GAA(M) ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M)) The TRS R consists of the following rules: ackermann_in_gaa(s(M)) -> U1_gaa(M, ackermann_in_gga(M, s(0))) ackermann_in_gaa(s(M)) -> U2_gaa(M, ackermann_in_gaa(s(M))) U1_gaa(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M)) U2_gaa(M, ackermann_out_gaa(s(M))) -> U3_gaa(M, ackermann_in_gaa(M)) ackermann_in_gga(0, N) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), s(N)) -> U2_gga(M, N, ackermann_in_gga(s(M), N)) U3_gaa(M, ackermann_out_gaa(M)) -> ackermann_out_gaa(s(M)) U2_gga(M, N, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, ackermann_in_gga(M, Val1)) ackermann_in_gaa(0) -> ackermann_out_gaa(0) ackermann_in_gga(s(M), 0) -> U1_gga(M, ackermann_in_gga(M, s(0))) U3_gga(M, N, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) The set Q consists of the following terms: ackermann_in_gaa(x0) U1_gaa(x0, x1) U2_gaa(x0, x1) ackermann_in_gga(x0, x1) U3_gaa(x0, x1) U2_gga(x0, x1, x2) U3_gga(x0, x1, x2) U1_gga(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (63) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (64) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M)) The TRS R consists of the following rules: ackermann_in_gaa(s(M)) -> U1_gaa(M, ackermann_in_gga(M, s(0))) ackermann_in_gaa(s(M)) -> U2_gaa(M, ackermann_in_gaa(s(M))) U1_gaa(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M)) U2_gaa(M, ackermann_out_gaa(s(M))) -> U3_gaa(M, ackermann_in_gaa(M)) ackermann_in_gga(0, N) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), s(N)) -> U2_gga(M, N, ackermann_in_gga(s(M), N)) U3_gaa(M, ackermann_out_gaa(M)) -> ackermann_out_gaa(s(M)) U2_gga(M, N, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, ackermann_in_gga(M, Val1)) ackermann_in_gaa(0) -> ackermann_out_gaa(0) ackermann_in_gga(s(M), 0) -> U1_gga(M, ackermann_in_gga(M, s(0))) U3_gga(M, N, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) The set Q consists of the following terms: ackermann_in_gaa(x0) U1_gaa(x0, x1) U2_gaa(x0, x1) ackermann_in_gga(x0, x1) U3_gaa(x0, x1) U2_gga(x0, x1, x2) U3_gga(x0, x1, x2) U1_gga(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (65) 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. ---------------------------------------- (66) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M)) R is empty. The set Q consists of the following terms: ackermann_in_gaa(x0) U1_gaa(x0, x1) U2_gaa(x0, x1) ackermann_in_gga(x0, x1) U3_gaa(x0, x1) U2_gga(x0, x1, x2) U3_gga(x0, x1, x2) U1_gga(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (67) 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]. ackermann_in_gaa(x0) U1_gaa(x0, x1) U2_gaa(x0, x1) ackermann_in_gga(x0, x1) U3_gaa(x0, x1) U2_gga(x0, x1, x2) U3_gga(x0, x1, x2) U1_gga(x0, x1) ---------------------------------------- (68) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M)) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (69) 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 = ACKERMANN_IN_GAA(s(M)) evaluates to t =ACKERMANN_IN_GAA(s(M)) 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 ACKERMANN_IN_GAA(s(M)) to ACKERMANN_IN_GAA(s(M)). ---------------------------------------- (70) NO ---------------------------------------- (71) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val) ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val) The TRS R consists of the following rules: ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N)) ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N)) ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val) U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val) U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val) ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val)) U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val) The argument filtering Pi contains the following mapping: ackermann_in_gag(x1, x2, x3) = ackermann_in_gag(x1, x3) 0 = 0 s(x1) = s(x1) ackermann_out_gag(x1, x2, x3) = ackermann_out_gag(x1, x3) U1_gag(x1, x2, x3) = U1_gag(x1, x2, x3) ackermann_in_ggg(x1, x2, x3) = ackermann_in_ggg(x1, x2, x3) ackermann_out_ggg(x1, x2, x3) = ackermann_out_ggg(x1, x2, x3) U1_ggg(x1, x2, x3) = U1_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U1_gga(x1, x2, x3) = U1_gga(x1, x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x2, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x1, x2, x4) U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) U2_gag(x1, x2, x3, x4) = U2_gag(x1, x3, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa(x1) U1_gaa(x1, x2, x3) = U1_gaa(x1, x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x1, x4) U3_gag(x1, x2, x3, x4) = U3_gag(x1, x3, x4) ACKERMANN_IN_GGG(x1, x2, x3) = ACKERMANN_IN_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (72) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (73) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val) ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val) The TRS R consists of the following rules: ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) The argument filtering Pi contains the following mapping: 0 = 0 s(x1) = s(x1) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U1_gga(x1, x2, x3) = U1_gga(x1, x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x2, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x1, x2, x4) ACKERMANN_IN_GGG(x1, x2, x3) = ACKERMANN_IN_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (74) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (75) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val) ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N)) U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val) The TRS R consists of the following rules: ackermann_in_gga(s(M), 0) -> U1_gga(M, ackermann_in_gga(M, s(0))) ackermann_in_gga(s(M), s(N)) -> U2_gga(M, N, ackermann_in_gga(s(M), N)) U1_gga(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_gga(M, N, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, ackermann_in_gga(M, Val1)) ackermann_in_gga(0, N) -> ackermann_out_gga(0, N, s(N)) U3_gga(M, N, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) The set Q consists of the following terms: ackermann_in_gga(x0, x1) U1_gga(x0, x1) U2_gga(x0, x1, x2) U3_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (76) 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: *ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N)) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 *U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val) The graph contains the following edges 1 >= 1, 4 > 1, 4 > 2, 3 >= 3 *ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val) The graph contains the following edges 1 > 1, 3 >= 3 ---------------------------------------- (77) YES ---------------------------------------- (78) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAG(s(M), s(N), Val) -> U2_GAG(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAG(M, Val1, Val) The TRS R consists of the following rules: ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N)) ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N)) ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val)) ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val)) U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val) U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val) U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val) ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val)) U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val) The argument filtering Pi contains the following mapping: ackermann_in_gag(x1, x2, x3) = ackermann_in_gag(x1, x3) 0 = 0 s(x1) = s(x1) ackermann_out_gag(x1, x2, x3) = ackermann_out_gag(x1, x3) U1_gag(x1, x2, x3) = U1_gag(x1, x2, x3) ackermann_in_ggg(x1, x2, x3) = ackermann_in_ggg(x1, x2, x3) ackermann_out_ggg(x1, x2, x3) = ackermann_out_ggg(x1, x2, x3) U1_ggg(x1, x2, x3) = U1_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U1_gga(x1, x2, x3) = U1_gga(x1, x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x2, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x1, x2, x4) U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) U2_gag(x1, x2, x3, x4) = U2_gag(x1, x3, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa(x1) U1_gaa(x1, x2, x3) = U1_gaa(x1, x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x1, x4) U3_gag(x1, x2, x3, x4) = U3_gag(x1, x3, x4) ACKERMANN_IN_GAG(x1, x2, x3) = ACKERMANN_IN_GAG(x1, x3) U2_GAG(x1, x2, x3, x4) = U2_GAG(x1, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (79) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (80) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAG(s(M), s(N), Val) -> U2_GAG(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAG(M, Val1, Val) The TRS R consists of the following rules: ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val)) ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1)) U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val) U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val)) ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1)) U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val) U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val)) ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N)) ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val)) U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) The argument filtering Pi contains the following mapping: 0 = 0 s(x1) = s(x1) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U1_gga(x1, x2, x3) = U1_gga(x1, x3) U2_gga(x1, x2, x3, x4) = U2_gga(x1, x2, x4) U3_gga(x1, x2, x3, x4) = U3_gga(x1, x2, x4) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa(x1) U1_gaa(x1, x2, x3) = U1_gaa(x1, x3) U2_gaa(x1, x2, x3, x4) = U2_gaa(x1, x4) U3_gaa(x1, x2, x3, x4) = U3_gaa(x1, x4) ACKERMANN_IN_GAG(x1, x2, x3) = ACKERMANN_IN_GAG(x1, x3) U2_GAG(x1, x2, x3, x4) = U2_GAG(x1, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (81) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (82) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAG(s(M), Val) -> U2_GAG(M, Val, ackermann_in_gaa(s(M))) U2_GAG(M, Val, ackermann_out_gaa(s(M))) -> ACKERMANN_IN_GAG(M, Val) The TRS R consists of the following rules: ackermann_in_gaa(s(M)) -> U1_gaa(M, ackermann_in_gga(M, s(0))) ackermann_in_gaa(s(M)) -> U2_gaa(M, ackermann_in_gaa(s(M))) U1_gaa(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M)) U2_gaa(M, ackermann_out_gaa(s(M))) -> U3_gaa(M, ackermann_in_gaa(M)) ackermann_in_gga(0, N) -> ackermann_out_gga(0, N, s(N)) ackermann_in_gga(s(M), s(N)) -> U2_gga(M, N, ackermann_in_gga(s(M), N)) U3_gaa(M, ackermann_out_gaa(M)) -> ackermann_out_gaa(s(M)) U2_gga(M, N, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, ackermann_in_gga(M, Val1)) ackermann_in_gaa(0) -> ackermann_out_gaa(0) ackermann_in_gga(s(M), 0) -> U1_gga(M, ackermann_in_gga(M, s(0))) U3_gga(M, N, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val) U1_gga(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val) The set Q consists of the following terms: ackermann_in_gaa(x0) U1_gaa(x0, x1) U2_gaa(x0, x1) ackermann_in_gga(x0, x1) U3_gaa(x0, x1) U2_gga(x0, x1, x2) U3_gga(x0, x1, x2) U1_gga(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (83) 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: *U2_GAG(M, Val, ackermann_out_gaa(s(M))) -> ACKERMANN_IN_GAG(M, Val) The graph contains the following edges 1 >= 1, 3 > 1, 2 >= 2 *ACKERMANN_IN_GAG(s(M), Val) -> U2_GAG(M, Val, ackermann_in_gaa(s(M))) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (84) YES ---------------------------------------- (85) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "root": 2, "program": { "directives": [], "clauses": [ [ "(ackermann (0) N (s N))", null ], [ "(ackermann (s M) (0) Val)", "(ackermann M (s (0)) Val)" ], [ "(ackermann (s M) (s N) Val)", "(',' (ackermann (s M) N Val1) (ackermann M Val1 Val))" ] ] }, "graph": { "nodes": { "type": "Nodes", "231": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "354": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "355": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "235": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T19) (0) X36)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": ["X36"], "exprvars": [] } }, "356": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "510": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "236": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T19 T21 T20)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T19", "T20", "T21" ], "free": [], "exprvars": [] } }, "357": { "goal": [{ "clause": 1, "scope": 5, "term": "(ackermann T30 T31 X83)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T30", "T31" ], "free": ["X83"], "exprvars": [] } }, "358": { "goal": [{ "clause": 2, "scope": 5, "term": "(ackermann T30 T31 X83)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T30", "T31" ], "free": ["X83"], "exprvars": [] } }, "238": { "goal": [ { "clause": 0, "scope": 3, "term": "(ackermann (s T19) (0) X36)" }, { "clause": 1, "scope": 3, "term": "(ackermann (s T19) (0) X36)" }, { "clause": 2, "scope": 3, "term": "(ackermann (s T19) (0) X36)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": ["X36"], "exprvars": [] } }, "239": { "goal": [ { "clause": 1, "scope": 3, "term": "(ackermann (s T19) (0) X36)" }, { "clause": 2, "scope": 3, "term": "(ackermann (s T19) (0) X36)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": ["X36"], "exprvars": [] } }, "12": { "goal": [ { "clause": -1, "scope": -1, "term": "(true)" }, { "clause": 1, "scope": 1, "term": "(ackermann (0) T2 (s T5))" }, { "clause": 2, "scope": 1, "term": "(ackermann (0) T2 (s T5))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T5"], "free": [], "exprvars": [] } }, "14": { "goal": [ { "clause": 1, "scope": 1, "term": "(ackermann T1 T2 T3)" }, { "clause": 2, "scope": 1, "term": "(ackermann T1 T2 T3)" } ], "kb": { "nonunifying": [[ "(ackermann T1 T2 T3)", "(ackermann (0) X2 (s X2))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T3" ], "free": ["X2"], "exprvars": [] } }, "363": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T43 (s (0)) X109)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T43"], "free": ["X109"], "exprvars": [] } }, "243": { "goal": [{ "clause": 1, "scope": 3, "term": "(ackermann (s T19) (0) X36)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": ["X36"], "exprvars": [] } }, "364": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "2": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T1 T2 T3)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T3" ], "free": [], "exprvars": [] } }, "244": { "goal": [{ "clause": 2, "scope": 3, "term": "(ackermann (s T19) (0) X36)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T19"], "free": ["X36"], "exprvars": [] } }, "521": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T96) T98 X224) (ackermann T96 X224 X225))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T96"], "free": [ "X225", "X224" ], "exprvars": [] } }, "5": { "goal": [ { "clause": 0, "scope": 1, "term": "(ackermann T1 T2 T3)" }, { "clause": 1, "scope": 1, "term": "(ackermann T1 T2 T3)" }, { "clause": 2, "scope": 1, "term": "(ackermann T1 T2 T3)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T3" ], "free": [], "exprvars": [] } }, "489": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T71 (s (0)) X167)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T71"], "free": ["X167"], "exprvars": [] } }, "522": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "369": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T48) T49 X124) (ackermann T48 X124 X125))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T48", "T49" ], "free": [ "X125", "X124" ], "exprvars": [] } }, "523": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T104) T107 X236) (ackermann T104 X236 T106))" }], "kb": { "nonunifying": [[ "(ackermann (s T104) T2 T106)", "(ackermann (s X10) (0) X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T104", "T106" ], "free": [ "X10", "X11", "X236" ], "exprvars": [] } }, "524": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "525": { "goal": [ { "clause": 0, "scope": 8, "term": "(',' (ackermann (s T104) T107 X236) (ackermann T104 X236 T106))" }, { "clause": 1, "scope": 8, "term": "(',' (ackermann (s T104) T107 X236) (ackermann T104 X236 T106))" }, { "clause": 2, "scope": 8, "term": "(',' (ackermann (s T104) T107 X236) (ackermann T104 X236 T106))" } ], "kb": { "nonunifying": [[ "(ackermann (s T104) T2 T106)", "(ackermann (s X10) (0) X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T104", "T106" ], "free": [ "X10", "X11", "X236" ], "exprvars": [] } }, "405": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "526": { "goal": [ { "clause": 1, "scope": 8, "term": "(',' (ackermann (s T104) T107 X236) (ackermann T104 X236 T106))" }, { "clause": 2, "scope": 8, "term": "(',' (ackermann (s T104) T107 X236) (ackermann T104 X236 T106))" } ], "kb": { "nonunifying": [[ "(ackermann (s T104) T2 T106)", "(ackermann (s X10) (0) X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T104", "T106" ], "free": [ "X10", "X11", "X236" ], "exprvars": [] } }, "408": { "goal": [{ "clause": 2, "scope": 1, "term": "(ackermann (s T8) T2 T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T8", "T9" ], "free": [], "exprvars": [] } }, "490": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "491": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T76) T78 X182) (ackermann T76 X182 X183))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T76"], "free": [ "X183", "X182" ], "exprvars": [] } }, "492": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "372": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "493": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T76) T78 X182)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T76"], "free": ["X182"], "exprvars": [] } }, "494": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T76 T79 X183)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T76"], "free": ["X183"], "exprvars": [] } }, "255": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T26 (s (0)) X60)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T26"], "free": ["X60"], "exprvars": [] } }, "531": { "goal": [{ "clause": 1, "scope": 8, "term": "(',' (ackermann (s T104) T107 X236) (ackermann T104 X236 T106))" }], "kb": { "nonunifying": [[ "(ackermann (s T104) T2 T106)", "(ackermann (s X10) (0) X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T104", "T106" ], "free": [ "X10", "X11", "X236" ], "exprvars": [] } }, "411": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T62) T65 X147) (ackermann T62 X147 T64))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T62", "T64" ], "free": ["X147"], "exprvars": [] } }, "499": { "goal": [ { "clause": 0, "scope": 7, "term": "(ackermann T76 T79 X183)" }, { "clause": 1, "scope": 7, "term": "(ackermann T76 T79 X183)" }, { "clause": 2, "scope": 7, "term": "(ackermann T76 T79 X183)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T76"], "free": ["X183"], "exprvars": [] } }, "532": { "goal": [{ "clause": 2, "scope": 8, "term": "(',' (ackermann (s T104) T107 X236) (ackermann T104 X236 T106))" }], "kb": { "nonunifying": [[ "(ackermann (s T104) T2 T106)", "(ackermann (s X10) (0) X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T104", "T106" ], "free": [ "X10", "X11", "X236" ], "exprvars": [] } }, "379": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T48) T49 X124)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T48", "T49" ], "free": ["X124"], "exprvars": [] } }, "412": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "533": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann T112 (s (0)) X252) (ackermann T112 X252 T106))" }], "kb": { "nonunifying": [[ "(ackermann (s T112) T2 T106)", "(ackermann (s X10) (0) X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T106", "T112" ], "free": [ "X10", "X11", "X252" ], "exprvars": [] } }, "534": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "535": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T112 (s (0)) X252)" }], "kb": { "nonunifying": [[ "(ackermann (s T112) T2 T106)", "(ackermann (s X10) (0) X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T106", "T112" ], "free": [ "X10", "X11", "X252" ], "exprvars": [] } }, "415": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T62) T65 X147)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T62"], "free": ["X147"], "exprvars": [] } }, "536": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T112 T113 T106)" }], "kb": { "nonunifying": [[ "(ackermann (s T112) T2 T106)", "(ackermann (s X10) (0) X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T106", "T112", "T113" ], "free": [ "X10", "X11" ], "exprvars": [] } }, "416": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T62 T66 T64)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T62", "T64" ], "free": [], "exprvars": [] } }, "537": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (ackermann (s T120) T122 X271) (ackermann T120 X271 X272)) (ackermann T120 X272 T106))" }], "kb": { "nonunifying": [[ "(ackermann (s T120) T2 T106)", "(ackermann (s X10) (0) X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T106", "T120" ], "free": [ "X10", "X11", "X272", "X271" ], "exprvars": [] } }, "417": { "goal": [ { "clause": 0, "scope": 6, "term": "(ackermann (s T62) T65 X147)" }, { "clause": 1, "scope": 6, "term": "(ackermann (s T62) T65 X147)" }, { "clause": 2, "scope": 6, "term": "(ackermann (s T62) T65 X147)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T62"], "free": ["X147"], "exprvars": [] } }, "538": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "539": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T120) T122 X271)" }], "kb": { "nonunifying": [[ "(ackermann (s T120) T2 T106)", "(ackermann (s X10) (0) X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T106", "T120" ], "free": [ "X10", "X11", "X271" ], "exprvars": [] } }, "381": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T48 T50 X125)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T48", "T50" ], "free": ["X125"], "exprvars": [] } }, "263": { "goal": [ { "clause": 0, "scope": 4, "term": "(ackermann T26 (s (0)) X60)" }, { "clause": 1, "scope": 4, "term": "(ackermann T26 (s (0)) X60)" }, { "clause": 2, "scope": 4, "term": "(ackermann T26 (s (0)) X60)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T26"], "free": ["X60"], "exprvars": [] } }, "540": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann T120 T123 X272) (ackermann T120 X272 T106))" }], "kb": { "nonunifying": [[ "(ackermann (s T120) T124 T106)", "(ackermann (s X10) (0) X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T106", "T120" ], "free": [ "X10", "X11", "X272" ], "exprvars": [] } }, "420": { "goal": [ { "clause": 1, "scope": 6, "term": "(ackermann (s T62) T65 X147)" }, { "clause": 2, "scope": 6, "term": "(ackermann (s T62) T65 X147)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T62"], "free": ["X147"], "exprvars": [] } }, "541": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T120 T123 X272)" }], "kb": { "nonunifying": [[ "(ackermann (s T120) T124 T106)", "(ackermann (s X10) (0) X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T106", "T120" ], "free": [ "X10", "X11", "X272" ], "exprvars": [] } }, "421": { "goal": [{ "clause": 1, "scope": 6, "term": "(ackermann (s T62) T65 X147)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T62"], "free": ["X147"], "exprvars": [] } }, "542": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T120 T127 T106)" }], "kb": { "nonunifying": [[ "(ackermann (s T120) T128 T106)", "(ackermann (s X10) (0) X11)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T106", "T120" ], "free": [ "X10", "X11" ], "exprvars": [] } }, "422": { "goal": [{ "clause": 2, "scope": 6, "term": "(ackermann (s T62) T65 X147)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T62"], "free": ["X147"], "exprvars": [] } }, "48": { "goal": [ { "clause": 1, "scope": 1, "term": "(ackermann (0) T2 (s T5))" }, { "clause": 2, "scope": 1, "term": "(ackermann (0) T2 (s T5))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T5"], "free": [], "exprvars": [] } }, "49": { "goal": [{ "clause": 2, "scope": 1, "term": "(ackermann (0) T2 (s T5))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T5"], "free": [], "exprvars": [] } }, "316": { "goal": [{ "clause": 0, "scope": 4, "term": "(ackermann T26 (s (0)) X60)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T26"], "free": ["X60"], "exprvars": [] } }, "318": { "goal": [ { "clause": 1, "scope": 4, "term": "(ackermann T26 (s (0)) X60)" }, { "clause": 2, "scope": 4, "term": "(ackermann T26 (s (0)) X60)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T26"], "free": ["X60"], "exprvars": [] } }, "50": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "319": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "53": { "goal": [ { "clause": -1, "scope": -1, "term": "(ackermann T8 (s (0)) T9)" }, { "clause": 2, "scope": 1, "term": "(ackermann (s T8) T2 T9)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T8", "T9" ], "free": [], "exprvars": [] } }, "320": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "321": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "322": { "goal": [{ "clause": 2, "scope": 4, "term": "(ackermann T26 (s (0)) X60)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T26"], "free": ["X60"], "exprvars": [] } }, "323": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T30) (0) X82) (ackermann T30 X82 X83))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T30"], "free": [ "X83", "X82" ], "exprvars": [] } }, "324": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "325": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T30) (0) X82)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T30"], "free": ["X82"], "exprvars": [] } }, "326": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T30 T31 X83)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T30", "T31" ], "free": ["X83"], "exprvars": [] } }, "64": { "goal": [{ "clause": 2, "scope": 1, "term": "(ackermann T1 T2 T3)" }], "kb": { "nonunifying": [ [ "(ackermann T1 T2 T3)", "(ackermann (0) X2 (s X2))" ], [ "(ackermann T1 T2 T3)", "(ackermann (s X10) (0) X11)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T3" ], "free": [ "X2", "X10", "X11" ], "exprvars": [] } }, "65": { "goal": [ { "clause": 0, "scope": 2, "term": "(ackermann T8 (s (0)) T9)" }, { "clause": 1, "scope": 2, "term": "(ackermann T8 (s (0)) T9)" }, { "clause": 2, "scope": 2, "term": "(ackermann T8 (s (0)) T9)" }, { "clause": -1, "scope": 2, "term": null }, { "clause": 2, "scope": 1, "term": "(ackermann (s T8) T2 T9)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T8", "T9" ], "free": [], "exprvars": [] } }, "66": { "goal": [{ "clause": 0, "scope": 2, "term": "(ackermann T8 (s (0)) T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T8", "T9" ], "free": [], "exprvars": [] } }, "67": { "goal": [ { "clause": 1, "scope": 2, "term": "(ackermann T8 (s (0)) T9)" }, { "clause": 2, "scope": 2, "term": "(ackermann T8 (s (0)) T9)" }, { "clause": -1, "scope": 2, "term": null }, { "clause": 2, "scope": 1, "term": "(ackermann (s T8) T2 T9)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T8", "T9" ], "free": [], "exprvars": [] } }, "68": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "69": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "214": { "goal": [{ "clause": 2, "scope": 2, "term": "(ackermann T8 (s (0)) T9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T8", "T9" ], "free": [], "exprvars": [] } }, "215": { "goal": [ { "clause": -1, "scope": 2, "term": null }, { "clause": 2, "scope": 1, "term": "(ackermann (s T8) T2 T9)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T8", "T9" ], "free": [], "exprvars": [] } }, "70": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "71": { "goal": [ { "clause": 2, "scope": 2, "term": "(ackermann T8 (s (0)) T9)" }, { "clause": -1, "scope": 2, "term": null }, { "clause": 2, "scope": 1, "term": "(ackermann (s T8) T2 T9)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T8", "T9" ], "free": [], "exprvars": [] } }, "500": { "goal": [{ "clause": 0, "scope": 7, "term": "(ackermann T76 T79 X183)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T76"], "free": ["X183"], "exprvars": [] } }, "347": { "goal": [ { "clause": 0, "scope": 5, "term": "(ackermann T30 T31 X83)" }, { "clause": 1, "scope": 5, "term": "(ackermann T30 T31 X83)" }, { "clause": 2, "scope": 5, "term": "(ackermann T30 T31 X83)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T30", "T31" ], "free": ["X83"], "exprvars": [] } }, "501": { "goal": [ { "clause": 1, "scope": 7, "term": "(ackermann T76 T79 X183)" }, { "clause": 2, "scope": 7, "term": "(ackermann T76 T79 X183)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T76"], "free": ["X183"], "exprvars": [] } }, "348": { "goal": [{ "clause": 0, "scope": 5, "term": "(ackermann T30 T31 X83)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T30", "T31" ], "free": ["X83"], "exprvars": [] } }, "502": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "349": { "goal": [ { "clause": 1, "scope": 5, "term": "(ackermann T30 T31 X83)" }, { "clause": 2, "scope": 5, "term": "(ackermann T30 T31 X83)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T30", "T31" ], "free": ["X83"], "exprvars": [] } }, "503": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "229": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T19) (0) X36) (ackermann T19 X36 T20))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T19", "T20" ], "free": ["X36"], "exprvars": [] } }, "504": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "505": { "goal": [{ "clause": 1, "scope": 7, "term": "(ackermann T76 T79 X183)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T76"], "free": ["X183"], "exprvars": [] } }, "506": { "goal": [{ "clause": 2, "scope": 7, "term": "(ackermann T76 T79 X183)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T76"], "free": ["X183"], "exprvars": [] } }, "509": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T91 (s (0)) X209)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T91"], "free": ["X209"], "exprvars": [] } } }, "edges": [ { "from": 2, "to": 5, "label": "CASE" }, { "from": 5, "to": 12, "label": "EVAL with clause\nackermann(0, X2, s(X2)).\nand substitutionT1 -> 0,\nT2 -> T5,\nX2 -> T5,\nT3 -> s(T5)" }, { "from": 5, "to": 14, "label": "EVAL-BACKTRACK" }, { "from": 12, "to": 48, "label": "SUCCESS" }, { "from": 14, "to": 53, "label": "EVAL with clause\nackermann(s(X10), 0, X11) :- ackermann(X10, s(0), X11).\nand substitutionX10 -> T8,\nT1 -> s(T8),\nT2 -> 0,\nT3 -> T9,\nX11 -> T9" }, { "from": 14, "to": 64, "label": "EVAL-BACKTRACK" }, { "from": 48, "to": 49, "label": "BACKTRACK\nfor clause: ackermann(s(M), 0, Val) :- ackermann(M, s(0), Val)because of non-unification" }, { "from": 49, "to": 50, "label": "BACKTRACK\nfor clause: ackermann(s(M), s(N), Val) :- ','(ackermann(s(M), N, Val1), ackermann(M, Val1, Val))because of non-unification" }, { "from": 53, "to": 65, "label": "CASE" }, { "from": 64, "to": 523, "label": "EVAL with clause\nackermann(s(X233), s(X234), X235) :- ','(ackermann(s(X233), X234, X236), ackermann(X233, X236, X235)).\nand substitutionX233 -> T104,\nT1 -> s(T104),\nX234 -> T107,\nT2 -> s(T107),\nT3 -> T106,\nX235 -> T106,\nT105 -> T107" }, { "from": 64, "to": 524, "label": "EVAL-BACKTRACK" }, { "from": 65, "to": 66, "label": "PARALLEL" }, { "from": 65, "to": 67, "label": "PARALLEL" }, { "from": 66, "to": 68, "label": "EVAL with clause\nackermann(0, X16, s(X16)).\nand substitutionT8 -> 0,\nX16 -> s(0),\nT9 -> s(s(0))" }, { "from": 66, "to": 69, "label": "EVAL-BACKTRACK" }, { "from": 67, "to": 71, "label": "BACKTRACK\nfor clause: ackermann(s(M), 0, Val) :- ackermann(M, s(0), Val)because of non-unification" }, { "from": 68, "to": 70, "label": "SUCCESS" }, { "from": 71, "to": 214, "label": "PARALLEL" }, { "from": 71, "to": 215, "label": "PARALLEL" }, { "from": 214, "to": 229, "label": "EVAL with clause\nackermann(s(X33), s(X34), X35) :- ','(ackermann(s(X33), X34, X36), ackermann(X33, X36, X35)).\nand substitutionX33 -> T19,\nT8 -> s(T19),\nX34 -> 0,\nT9 -> T20,\nX35 -> T20" }, { "from": 214, "to": 231, "label": "EVAL-BACKTRACK" }, { "from": 215, "to": 408, "label": "FAILURE" }, { "from": 229, "to": 235, "label": "SPLIT 1" }, { "from": 229, "to": 236, "label": "SPLIT 2\nnew knowledge:\nT19 is ground\nT21 is ground\nreplacements:X36 -> T21" }, { "from": 235, "to": 238, "label": "CASE" }, { "from": 236, "to": 2, "label": "INSTANCE with matching:\nT1 -> T19\nT2 -> T21\nT3 -> T20" }, { "from": 238, "to": 239, "label": "BACKTRACK\nfor clause: ackermann(0, N, s(N))because of non-unification" }, { "from": 239, "to": 243, "label": "PARALLEL" }, { "from": 239, "to": 244, "label": "PARALLEL" }, { "from": 243, "to": 255, "label": "ONLY EVAL with clause\nackermann(s(X58), 0, X59) :- ackermann(X58, s(0), X59).\nand substitutionT19 -> T26,\nX58 -> T26,\nX36 -> X60,\nX59 -> X60" }, { "from": 244, "to": 405, "label": "BACKTRACK\nfor clause: ackermann(s(M), s(N), Val) :- ','(ackermann(s(M), N, Val1), ackermann(M, Val1, Val))because of non-unification" }, { "from": 255, "to": 263, "label": "CASE" }, { "from": 263, "to": 316, "label": "PARALLEL" }, { "from": 263, "to": 318, "label": "PARALLEL" }, { "from": 316, "to": 319, "label": "EVAL with clause\nackermann(0, X67, s(X67)).\nand substitutionT26 -> 0,\nX67 -> s(0),\nX60 -> s(s(0))" }, { "from": 316, "to": 320, "label": "EVAL-BACKTRACK" }, { "from": 318, "to": 322, "label": "BACKTRACK\nfor clause: ackermann(s(M), 0, Val) :- ackermann(M, s(0), Val)because of non-unification" }, { "from": 319, "to": 321, "label": "SUCCESS" }, { "from": 322, "to": 323, "label": "EVAL with clause\nackermann(s(X79), s(X80), X81) :- ','(ackermann(s(X79), X80, X82), ackermann(X79, X82, X81)).\nand substitutionX79 -> T30,\nT26 -> s(T30),\nX80 -> 0,\nX60 -> X83,\nX81 -> X83" }, { "from": 322, "to": 324, "label": "EVAL-BACKTRACK" }, { "from": 323, "to": 325, "label": "SPLIT 1" }, { "from": 323, "to": 326, "label": "SPLIT 2\nnew knowledge:\nT30 is ground\nT31 is ground\nreplacements:X82 -> T31" }, { "from": 325, "to": 235, "label": "INSTANCE with matching:\nT19 -> T30\nX36 -> X82" }, { "from": 326, "to": 347, "label": "CASE" }, { "from": 347, "to": 348, "label": "PARALLEL" }, { "from": 347, "to": 349, "label": "PARALLEL" }, { "from": 348, "to": 354, "label": "EVAL with clause\nackermann(0, X94, s(X94)).\nand substitutionT30 -> 0,\nT31 -> T38,\nX94 -> T38,\nX83 -> s(T38)" }, { "from": 348, "to": 355, "label": "EVAL-BACKTRACK" }, { "from": 349, "to": 357, "label": "PARALLEL" }, { "from": 349, "to": 358, "label": "PARALLEL" }, { "from": 354, "to": 356, "label": "SUCCESS" }, { "from": 357, "to": 363, "label": "EVAL with clause\nackermann(s(X107), 0, X108) :- ackermann(X107, s(0), X108).\nand substitutionX107 -> T43,\nT30 -> s(T43),\nT31 -> 0,\nX83 -> X109,\nX108 -> X109" }, { "from": 357, "to": 364, "label": "EVAL-BACKTRACK" }, { "from": 358, "to": 369, "label": "EVAL with clause\nackermann(s(X121), s(X122), X123) :- ','(ackermann(s(X121), X122, X124), ackermann(X121, X124, X123)).\nand substitutionX121 -> T48,\nT30 -> s(T48),\nX122 -> T49,\nT31 -> s(T49),\nX83 -> X125,\nX123 -> X125" }, { "from": 358, "to": 372, "label": "EVAL-BACKTRACK" }, { "from": 363, "to": 255, "label": "INSTANCE with matching:\nT26 -> T43\nX60 -> X109" }, { "from": 369, "to": 379, "label": "SPLIT 1" }, { "from": 369, "to": 381, "label": "SPLIT 2\nnew knowledge:\nT48 is ground\nT49 is ground\nT50 is ground\nreplacements:X124 -> T50" }, { "from": 379, "to": 326, "label": "INSTANCE with matching:\nT30 -> s(T48)\nT31 -> T49\nX83 -> X124" }, { "from": 381, "to": 326, "label": "INSTANCE with matching:\nT30 -> T48\nT31 -> T50\nX83 -> X125" }, { "from": 408, "to": 411, "label": "EVAL with clause\nackermann(s(X144), s(X145), X146) :- ','(ackermann(s(X144), X145, X147), ackermann(X144, X147, X146)).\nand substitutionT8 -> T62,\nX144 -> T62,\nX145 -> T65,\nT2 -> s(T65),\nT9 -> T64,\nX146 -> T64,\nT63 -> T65" }, { "from": 408, "to": 412, "label": "EVAL-BACKTRACK" }, { "from": 411, "to": 415, "label": "SPLIT 1" }, { "from": 411, "to": 416, "label": "SPLIT 2\nnew knowledge:\nT62 is ground\nreplacements:X147 -> T66" }, { "from": 415, "to": 417, "label": "CASE" }, { "from": 416, "to": 2, "label": "INSTANCE with matching:\nT1 -> T62\nT2 -> T66\nT3 -> T64" }, { "from": 417, "to": 420, "label": "BACKTRACK\nfor clause: ackermann(0, N, s(N))because of non-unification" }, { "from": 420, "to": 421, "label": "PARALLEL" }, { "from": 420, "to": 422, "label": "PARALLEL" }, { "from": 421, "to": 489, "label": "EVAL with clause\nackermann(s(X165), 0, X166) :- ackermann(X165, s(0), X166).\nand substitutionT62 -> T71,\nX165 -> T71,\nT65 -> 0,\nX147 -> X167,\nX166 -> X167" }, { "from": 421, "to": 490, "label": "EVAL-BACKTRACK" }, { "from": 422, "to": 491, "label": "EVAL with clause\nackermann(s(X179), s(X180), X181) :- ','(ackermann(s(X179), X180, X182), ackermann(X179, X182, X181)).\nand substitutionT62 -> T76,\nX179 -> T76,\nX180 -> T78,\nT65 -> s(T78),\nX147 -> X183,\nX181 -> X183,\nT77 -> T78" }, { "from": 422, "to": 492, "label": "EVAL-BACKTRACK" }, { "from": 489, "to": 255, "label": "INSTANCE with matching:\nT26 -> T71\nX60 -> X167" }, { "from": 491, "to": 493, "label": "SPLIT 1" }, { "from": 491, "to": 494, "label": "SPLIT 2\nnew knowledge:\nT76 is ground\nreplacements:X182 -> T79" }, { "from": 493, "to": 415, "label": "INSTANCE with matching:\nT62 -> T76\nT65 -> T78\nX147 -> X182" }, { "from": 494, "to": 499, "label": "CASE" }, { "from": 499, "to": 500, "label": "PARALLEL" }, { "from": 499, "to": 501, "label": "PARALLEL" }, { "from": 500, "to": 502, "label": "EVAL with clause\nackermann(0, X194, s(X194)).\nand substitutionT76 -> 0,\nT79 -> T86,\nX194 -> T86,\nX183 -> s(T86)" }, { "from": 500, "to": 503, "label": "EVAL-BACKTRACK" }, { "from": 501, "to": 505, "label": "PARALLEL" }, { "from": 501, "to": 506, "label": "PARALLEL" }, { "from": 502, "to": 504, "label": "SUCCESS" }, { "from": 505, "to": 509, "label": "EVAL with clause\nackermann(s(X207), 0, X208) :- ackermann(X207, s(0), X208).\nand substitutionX207 -> T91,\nT76 -> s(T91),\nT79 -> 0,\nX183 -> X209,\nX208 -> X209" }, { "from": 505, "to": 510, "label": "EVAL-BACKTRACK" }, { "from": 506, "to": 521, "label": "EVAL with clause\nackermann(s(X221), s(X222), X223) :- ','(ackermann(s(X221), X222, X224), ackermann(X221, X224, X223)).\nand substitutionX221 -> T96,\nT76 -> s(T96),\nX222 -> T98,\nT79 -> s(T98),\nX183 -> X225,\nX223 -> X225,\nT97 -> T98" }, { "from": 506, "to": 522, "label": "EVAL-BACKTRACK" }, { "from": 509, "to": 255, "label": "INSTANCE with matching:\nT26 -> T91\nX60 -> X209" }, { "from": 521, "to": 491, "label": "INSTANCE with matching:\nT76 -> T96\nT78 -> T98\nX182 -> X224\nX183 -> X225" }, { "from": 523, "to": 525, "label": "CASE" }, { "from": 525, "to": 526, "label": "BACKTRACK\nfor clause: ackermann(0, N, s(N))because of non-unification" }, { "from": 526, "to": 531, "label": "PARALLEL" }, { "from": 526, "to": 532, "label": "PARALLEL" }, { "from": 531, "to": 533, "label": "EVAL with clause\nackermann(s(X250), 0, X251) :- ackermann(X250, s(0), X251).\nand substitutionT104 -> T112,\nX250 -> T112,\nT107 -> 0,\nX236 -> X252,\nX251 -> X252" }, { "from": 531, "to": 534, "label": "EVAL-BACKTRACK" }, { "from": 532, "to": 537, "label": "EVAL with clause\nackermann(s(X268), s(X269), X270) :- ','(ackermann(s(X268), X269, X271), ackermann(X268, X271, X270)).\nand substitutionT104 -> T120,\nX268 -> T120,\nX269 -> T122,\nT107 -> s(T122),\nX236 -> X272,\nX270 -> X272,\nT121 -> T122" }, { "from": 532, "to": 538, "label": "EVAL-BACKTRACK" }, { "from": 533, "to": 535, "label": "SPLIT 1" }, { "from": 533, "to": 536, "label": "SPLIT 2\nnew knowledge:\nT112 is ground\nT113 is ground\nreplacements:X252 -> T113" }, { "from": 535, "to": 255, "label": "INSTANCE with matching:\nT26 -> T112\nX60 -> X252" }, { "from": 536, "to": 2, "label": "INSTANCE with matching:\nT1 -> T112\nT2 -> T113\nT3 -> T106" }, { "from": 537, "to": 539, "label": "SPLIT 1" }, { "from": 537, "to": 540, "label": "SPLIT 2\nnew knowledge:\nT120 is ground\nreplacements:X271 -> T123,\nT2 -> T124" }, { "from": 539, "to": 415, "label": "INSTANCE with matching:\nT62 -> T120\nT65 -> T122\nX147 -> X271" }, { "from": 540, "to": 541, "label": "SPLIT 1" }, { "from": 540, "to": 542, "label": "SPLIT 2\nnew knowledge:\nT120 is ground\nreplacements:X272 -> T127,\nT124 -> T128" }, { "from": 541, "to": 494, "label": "INSTANCE with matching:\nT76 -> T120\nT79 -> T123\nX183 -> X272" }, { "from": 542, "to": 2, "label": "INSTANCE with matching:\nT1 -> T120\nT2 -> T127\nT3 -> T106" } ], "type": "Graph" } } ---------------------------------------- (86) Obligation: Triples: ackermannB(X1, X2) :- ackermannD(X1, X2). ackermannD(s(X1), X2) :- ackermannB(X1, X3). ackermannD(s(X1), X2) :- ','(ackermanncB(X1, X3), ackermannF(X1, X3, X2)). ackermannF(s(X1), 0, X2) :- ackermannD(X1, X2). ackermannF(s(X1), s(X2), X3) :- ackermannF(s(X1), X2, X4). ackermannF(s(X1), s(X2), X3) :- ','(ackermanncF(s(X1), X2, X4), ackermannF(X1, X4, X3)). ackermannC(X1, 0, X2) :- ackermannD(X1, X2). ackermannC(X1, s(X2), X3) :- pG(X1, X2, X4, X3). pG(X1, X2, X3, X4) :- ackermannC(X1, X2, X3). pG(X1, X2, X3, X4) :- ','(ackermanncC(X1, X2, X3), ackermannE(X1, X3, X4)). ackermannE(s(X1), 0, X2) :- ackermannD(X1, X2). ackermannE(s(X1), s(X2), X3) :- pG(X1, X2, X4, X3). ackermannA(s(s(X1)), 0, X2) :- ackermannB(X1, X3). ackermannA(s(s(X1)), 0, X2) :- ','(ackermanncB(X1, X3), ackermannA(X1, X3, X2)). ackermannA(s(X1), s(X2), X3) :- ackermannC(X1, X2, X4). ackermannA(s(X1), s(X2), X3) :- ','(ackermanncC(X1, X2, X4), ackermannA(X1, X4, X3)). ackermannA(s(X1), s(0), X2) :- ackermannD(X1, X3). ackermannA(s(X1), s(0), X2) :- ','(ackermanncD(X1, X3), ackermannA(X1, X3, X2)). ackermannA(s(X1), s(s(X2)), X3) :- ackermannC(X1, X2, X4). ackermannA(s(X1), s(s(X2)), X3) :- ','(ackermanncC(X1, X2, X4), ackermannE(X1, X4, X5)). ackermannA(s(X1), s(s(X2)), X3) :- ','(ackermanncC(X1, X2, X4), ','(ackermanncE(X1, X4, X5), ackermannA(X1, X5, X3))). Clauses: ackermanncA(0, X1, s(X1)). ackermanncA(s(0), 0, s(s(0))). ackermanncA(s(s(X1)), 0, X2) :- ','(ackermanncB(X1, X3), ackermanncA(X1, X3, X2)). ackermanncA(s(X1), s(X2), X3) :- ','(ackermanncC(X1, X2, X4), ackermanncA(X1, X4, X3)). ackermanncA(s(X1), s(0), X2) :- ','(ackermanncD(X1, X3), ackermanncA(X1, X3, X2)). ackermanncA(s(X1), s(s(X2)), X3) :- ','(ackermanncC(X1, X2, X4), ','(ackermanncE(X1, X4, X5), ackermanncA(X1, X5, X3))). ackermanncB(X1, X2) :- ackermanncD(X1, X2). ackermanncD(0, s(s(0))). ackermanncD(s(X1), X2) :- ','(ackermanncB(X1, X3), ackermanncF(X1, X3, X2)). ackermanncF(0, X1, s(X1)). ackermanncF(s(X1), 0, X2) :- ackermanncD(X1, X2). ackermanncF(s(X1), s(X2), X3) :- ','(ackermanncF(s(X1), X2, X4), ackermanncF(X1, X4, X3)). ackermanncC(X1, 0, X2) :- ackermanncD(X1, X2). ackermanncC(X1, s(X2), X3) :- qcG(X1, X2, X4, X3). qcG(X1, X2, X3, X4) :- ','(ackermanncC(X1, X2, X3), ackermanncE(X1, X3, X4)). ackermanncE(0, X1, s(X1)). ackermanncE(s(X1), 0, X2) :- ackermanncD(X1, X2). ackermanncE(s(X1), s(X2), X3) :- qcG(X1, X2, X4, X3). Afs: ackermannA(x1, x2, x3) = ackermannA(x1, x3) ---------------------------------------- (87) TriplesToPiDPProof (SOUND) We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: ackermannA_in_3: (b,f,b) (b,b,b) ackermannB_in_2: (b,f) ackermannD_in_2: (b,f) ackermanncB_in_2: (b,f) ackermanncD_in_2: (b,f) ackermanncF_in_3: (b,b,f) ackermannF_in_3: (b,b,f) ackermannC_in_3: (b,b,f) (b,f,f) pG_in_4: (b,b,f,f) (b,f,f,f) ackermanncC_in_3: (b,b,f) (b,f,f) qcG_in_4: (b,b,f,f) (b,f,f,f) ackermanncE_in_3: (b,b,f) ackermannE_in_3: (b,b,f) Transforming TRIPLES into the following Term Rewriting System: Pi DP problem: The TRS P consists of the following rules: ACKERMANNA_IN_GAG(s(s(X1)), 0, X2) -> U16_GAG(X1, X2, ackermannB_in_ga(X1, X3)) ACKERMANNA_IN_GAG(s(s(X1)), 0, X2) -> ACKERMANNB_IN_GA(X1, X3) ACKERMANNB_IN_GA(X1, X2) -> U1_GA(X1, X2, ackermannD_in_ga(X1, X2)) ACKERMANNB_IN_GA(X1, X2) -> ACKERMANND_IN_GA(X1, X2) ACKERMANND_IN_GA(s(X1), X2) -> U2_GA(X1, X2, ackermannB_in_ga(X1, X3)) ACKERMANND_IN_GA(s(X1), X2) -> ACKERMANNB_IN_GA(X1, X3) ACKERMANND_IN_GA(s(X1), X2) -> U3_GA(X1, X2, ackermanncB_in_ga(X1, X3)) U3_GA(X1, X2, ackermanncB_out_ga(X1, X3)) -> U4_GA(X1, X2, ackermannF_in_gga(X1, X3, X2)) U3_GA(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNF_IN_GGA(X1, X3, X2) ACKERMANNF_IN_GGA(s(X1), 0, X2) -> U5_GGA(X1, X2, ackermannD_in_ga(X1, X2)) ACKERMANNF_IN_GGA(s(X1), 0, X2) -> ACKERMANND_IN_GA(X1, X2) ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> U6_GGA(X1, X2, X3, ackermannF_in_gga(s(X1), X2, X4)) ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> ACKERMANNF_IN_GGA(s(X1), X2, X4) ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> U7_GGA(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4)) U7_GGA(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U8_GGA(X1, X2, X3, ackermannF_in_gga(X1, X4, X3)) U7_GGA(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> ACKERMANNF_IN_GGA(X1, X4, X3) ACKERMANNA_IN_GAG(s(s(X1)), 0, X2) -> U17_GAG(X1, X2, ackermanncB_in_ga(X1, X3)) U17_GAG(X1, X2, ackermanncB_out_ga(X1, X3)) -> U18_GAG(X1, X2, ackermannA_in_ggg(X1, X3, X2)) U17_GAG(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2) ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> U16_GGG(X1, X2, ackermannB_in_ga(X1, X3)) ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> ACKERMANNB_IN_GA(X1, X3) ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> U17_GGG(X1, X2, ackermanncB_in_ga(X1, X3)) U17_GGG(X1, X2, ackermanncB_out_ga(X1, X3)) -> U18_GGG(X1, X2, ackermannA_in_ggg(X1, X3, X2)) U17_GGG(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2) ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> U19_GGG(X1, X2, X3, ackermannC_in_gga(X1, X2, X4)) ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> ACKERMANNC_IN_GGA(X1, X2, X4) ACKERMANNC_IN_GGA(X1, 0, X2) -> U9_GGA(X1, X2, ackermannD_in_ga(X1, X2)) ACKERMANNC_IN_GGA(X1, 0, X2) -> ACKERMANND_IN_GA(X1, X2) ACKERMANNC_IN_GGA(X1, s(X2), X3) -> U10_GGA(X1, X2, X3, pG_in_ggaa(X1, X2, X4, X3)) ACKERMANNC_IN_GGA(X1, s(X2), X3) -> PG_IN_GGAA(X1, X2, X4, X3) PG_IN_GGAA(X1, X2, X3, X4) -> U11_GGAA(X1, X2, X3, X4, ackermannC_in_gga(X1, X2, X3)) PG_IN_GGAA(X1, X2, X3, X4) -> ACKERMANNC_IN_GGA(X1, X2, X3) PG_IN_GGAA(X1, X2, X3, X4) -> U12_GGAA(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3)) U12_GGAA(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U13_GGAA(X1, X2, X3, X4, ackermannE_in_gga(X1, X3, X4)) U12_GGAA(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> ACKERMANNE_IN_GGA(X1, X3, X4) ACKERMANNE_IN_GGA(s(X1), 0, X2) -> U14_GGA(X1, X2, ackermannD_in_ga(X1, X2)) ACKERMANNE_IN_GGA(s(X1), 0, X2) -> ACKERMANND_IN_GA(X1, X2) ACKERMANNE_IN_GGA(s(X1), s(X2), X3) -> U15_GGA(X1, X2, X3, pG_in_ggaa(X1, X2, X4, X3)) ACKERMANNE_IN_GGA(s(X1), s(X2), X3) -> PG_IN_GGAA(X1, X2, X4, X3) ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> U20_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2, X4)) U20_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U21_GGG(X1, X2, X3, ackermannA_in_ggg(X1, X4, X3)) U20_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> ACKERMANNA_IN_GGG(X1, X4, X3) ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> U22_GGG(X1, X2, ackermannD_in_ga(X1, X3)) ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> ACKERMANND_IN_GA(X1, X3) ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> U23_GGG(X1, X2, ackermanncD_in_ga(X1, X3)) U23_GGG(X1, X2, ackermanncD_out_ga(X1, X3)) -> U24_GGG(X1, X2, ackermannA_in_ggg(X1, X3, X2)) U23_GGG(X1, X2, ackermanncD_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2) ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> U25_GGG(X1, X2, X3, ackermannC_in_gga(X1, X2, X4)) ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> ACKERMANNC_IN_GGA(X1, X2, X4) ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> U26_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2, X4)) U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U27_GGG(X1, X2, X3, ackermannE_in_gga(X1, X4, X5)) U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> ACKERMANNE_IN_GGA(X1, X4, X5) U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U28_GGG(X1, X2, X3, ackermanncE_in_gga(X1, X4, X5)) U28_GGG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> U29_GGG(X1, X2, X3, ackermannA_in_ggg(X1, X5, X3)) U28_GGG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> ACKERMANNA_IN_GGG(X1, X5, X3) ACKERMANNA_IN_GAG(s(X1), s(X2), X3) -> U19_GAG(X1, X2, X3, ackermannC_in_gaa(X1, X2, X4)) ACKERMANNA_IN_GAG(s(X1), s(X2), X3) -> ACKERMANNC_IN_GAA(X1, X2, X4) ACKERMANNC_IN_GAA(X1, 0, X2) -> U9_GAA(X1, X2, ackermannD_in_ga(X1, X2)) ACKERMANNC_IN_GAA(X1, 0, X2) -> ACKERMANND_IN_GA(X1, X2) ACKERMANNC_IN_GAA(X1, s(X2), X3) -> U10_GAA(X1, X2, X3, pG_in_gaaa(X1, X2, X4, X3)) ACKERMANNC_IN_GAA(X1, s(X2), X3) -> PG_IN_GAAA(X1, X2, X4, X3) PG_IN_GAAA(X1, X2, X3, X4) -> U11_GAAA(X1, X2, X3, X4, ackermannC_in_gaa(X1, X2, X3)) PG_IN_GAAA(X1, X2, X3, X4) -> ACKERMANNC_IN_GAA(X1, X2, X3) PG_IN_GAAA(X1, X2, X3, X4) -> U12_GAAA(X1, X2, X3, X4, ackermanncC_in_gaa(X1, X2, X3)) U12_GAAA(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> U13_GAAA(X1, X2, X3, X4, ackermannE_in_gga(X1, X3, X4)) U12_GAAA(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> ACKERMANNE_IN_GGA(X1, X3, X4) ACKERMANNA_IN_GAG(s(X1), s(X2), X3) -> U20_GAG(X1, X2, X3, ackermanncC_in_gaa(X1, X2, X4)) U20_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> U21_GAG(X1, X2, X3, ackermannA_in_ggg(X1, X4, X3)) U20_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> ACKERMANNA_IN_GGG(X1, X4, X3) ACKERMANNA_IN_GAG(s(X1), s(0), X2) -> U22_GAG(X1, X2, ackermannD_in_ga(X1, X3)) ACKERMANNA_IN_GAG(s(X1), s(0), X2) -> ACKERMANND_IN_GA(X1, X3) ACKERMANNA_IN_GAG(s(X1), s(0), X2) -> U23_GAG(X1, X2, ackermanncD_in_ga(X1, X3)) U23_GAG(X1, X2, ackermanncD_out_ga(X1, X3)) -> U24_GAG(X1, X2, ackermannA_in_ggg(X1, X3, X2)) U23_GAG(X1, X2, ackermanncD_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2) ACKERMANNA_IN_GAG(s(X1), s(s(X2)), X3) -> U25_GAG(X1, X2, X3, ackermannC_in_gaa(X1, X2, X4)) ACKERMANNA_IN_GAG(s(X1), s(s(X2)), X3) -> ACKERMANNC_IN_GAA(X1, X2, X4) ACKERMANNA_IN_GAG(s(X1), s(s(X2)), X3) -> U26_GAG(X1, X2, X3, ackermanncC_in_gaa(X1, X2, X4)) U26_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> U27_GAG(X1, X2, X3, ackermannE_in_gga(X1, X4, X5)) U26_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> ACKERMANNE_IN_GGA(X1, X4, X5) U26_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> U28_GAG(X1, X2, X3, ackermanncE_in_gga(X1, X4, X5)) U28_GAG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> U29_GAG(X1, X2, X3, ackermannA_in_ggg(X1, X5, X3)) U28_GAG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> ACKERMANNA_IN_GGG(X1, X5, X3) The TRS R consists of the following rules: ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2)) ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0))) ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3)) U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2)) ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1)) ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2) ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4)) U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3)) U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3) U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2) U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2) ackermanncC_in_gga(X1, 0, X2) -> U46_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U46_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2) ackermanncC_in_gga(X1, s(X2), X3) -> U47_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3)) qcG_in_ggaa(X1, X2, X3, X4) -> U48_ggaa(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3)) U48_ggaa(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4)) ackermanncE_in_gga(0, X1, s(X1)) -> ackermanncE_out_gga(0, X1, s(X1)) ackermanncE_in_gga(s(X1), 0, X2) -> U50_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U50_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2) ackermanncE_in_gga(s(X1), s(X2), X3) -> U51_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3)) U51_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3) U49_ggaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4) U47_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3) ackermanncC_in_gaa(X1, 0, X2) -> U46_gaa(X1, X2, ackermanncD_in_ga(X1, X2)) U46_gaa(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gaa(X1, 0, X2) ackermanncC_in_gaa(X1, s(X2), X3) -> U47_gaa(X1, X2, X3, qcG_in_gaaa(X1, X2, X4, X3)) qcG_in_gaaa(X1, X2, X3, X4) -> U48_gaaa(X1, X2, X3, X4, ackermanncC_in_gaa(X1, X2, X3)) U48_gaaa(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> U49_gaaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4)) U49_gaaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_gaaa(X1, X2, X3, X4) U47_gaa(X1, X2, X3, qcG_out_gaaa(X1, X2, X4, X3)) -> ackermanncC_out_gaa(X1, s(X2), X3) The argument filtering Pi contains the following mapping: s(x1) = s(x1) ackermannB_in_ga(x1, x2) = ackermannB_in_ga(x1) ackermannD_in_ga(x1, x2) = ackermannD_in_ga(x1) ackermanncB_in_ga(x1, x2) = ackermanncB_in_ga(x1) U40_ga(x1, x2, x3) = U40_ga(x1, x3) ackermanncD_in_ga(x1, x2) = ackermanncD_in_ga(x1) 0 = 0 ackermanncD_out_ga(x1, x2) = ackermanncD_out_ga(x1, x2) U41_ga(x1, x2, x3) = U41_ga(x1, x3) ackermanncB_out_ga(x1, x2) = ackermanncB_out_ga(x1, x2) U42_ga(x1, x2, x3) = U42_ga(x1, x3) ackermanncF_in_gga(x1, x2, x3) = ackermanncF_in_gga(x1, x2) ackermanncF_out_gga(x1, x2, x3) = ackermanncF_out_gga(x1, x2, x3) U43_gga(x1, x2, x3) = U43_gga(x1, x3) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) ackermannF_in_gga(x1, x2, x3) = ackermannF_in_gga(x1, x2) ackermannA_in_ggg(x1, x2, x3) = ackermannA_in_ggg(x1, x2, x3) ackermannC_in_gga(x1, x2, x3) = ackermannC_in_gga(x1, x2) pG_in_ggaa(x1, x2, x3, x4) = pG_in_ggaa(x1, x2) ackermanncC_in_gga(x1, x2, x3) = ackermanncC_in_gga(x1, x2) U46_gga(x1, x2, x3) = U46_gga(x1, x3) ackermanncC_out_gga(x1, x2, x3) = ackermanncC_out_gga(x1, x2, x3) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) qcG_in_ggaa(x1, x2, x3, x4) = qcG_in_ggaa(x1, x2) U48_ggaa(x1, x2, x3, x4, x5) = U48_ggaa(x1, x2, x5) U49_ggaa(x1, x2, x3, x4, x5) = U49_ggaa(x1, x2, x3, x5) ackermanncE_in_gga(x1, x2, x3) = ackermanncE_in_gga(x1, x2) ackermanncE_out_gga(x1, x2, x3) = ackermanncE_out_gga(x1, x2, x3) U50_gga(x1, x2, x3) = U50_gga(x1, x3) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) qcG_out_ggaa(x1, x2, x3, x4) = qcG_out_ggaa(x1, x2, x3, x4) ackermannE_in_gga(x1, x2, x3) = ackermannE_in_gga(x1, x2) ackermannC_in_gaa(x1, x2, x3) = ackermannC_in_gaa(x1) pG_in_gaaa(x1, x2, x3, x4) = pG_in_gaaa(x1) ackermanncC_in_gaa(x1, x2, x3) = ackermanncC_in_gaa(x1) U46_gaa(x1, x2, x3) = U46_gaa(x1, x3) ackermanncC_out_gaa(x1, x2, x3) = ackermanncC_out_gaa(x1, x2, x3) U47_gaa(x1, x2, x3, x4) = U47_gaa(x1, x4) qcG_in_gaaa(x1, x2, x3, x4) = qcG_in_gaaa(x1) U48_gaaa(x1, x2, x3, x4, x5) = U48_gaaa(x1, x5) U49_gaaa(x1, x2, x3, x4, x5) = U49_gaaa(x1, x2, x3, x5) qcG_out_gaaa(x1, x2, x3, x4) = qcG_out_gaaa(x1, x2, x3, x4) ACKERMANNA_IN_GAG(x1, x2, x3) = ACKERMANNA_IN_GAG(x1, x3) U16_GAG(x1, x2, x3) = U16_GAG(x1, x2, x3) ACKERMANNB_IN_GA(x1, x2) = ACKERMANNB_IN_GA(x1) U1_GA(x1, x2, x3) = U1_GA(x1, x3) ACKERMANND_IN_GA(x1, x2) = ACKERMANND_IN_GA(x1) U2_GA(x1, x2, x3) = U2_GA(x1, x3) U3_GA(x1, x2, x3) = U3_GA(x1, x3) U4_GA(x1, x2, x3) = U4_GA(x1, x3) ACKERMANNF_IN_GGA(x1, x2, x3) = ACKERMANNF_IN_GGA(x1, x2) U5_GGA(x1, x2, x3) = U5_GGA(x1, x3) U6_GGA(x1, x2, x3, x4) = U6_GGA(x1, x2, x4) U7_GGA(x1, x2, x3, x4) = U7_GGA(x1, x2, x4) U8_GGA(x1, x2, x3, x4) = U8_GGA(x1, x2, x4) U17_GAG(x1, x2, x3) = U17_GAG(x1, x2, x3) U18_GAG(x1, x2, x3) = U18_GAG(x1, x2, x3) ACKERMANNA_IN_GGG(x1, x2, x3) = ACKERMANNA_IN_GGG(x1, x2, x3) U16_GGG(x1, x2, x3) = U16_GGG(x1, x2, x3) U17_GGG(x1, x2, x3) = U17_GGG(x1, x2, x3) U18_GGG(x1, x2, x3) = U18_GGG(x1, x2, x3) U19_GGG(x1, x2, x3, x4) = U19_GGG(x1, x2, x3, x4) ACKERMANNC_IN_GGA(x1, x2, x3) = ACKERMANNC_IN_GGA(x1, x2) U9_GGA(x1, x2, x3) = U9_GGA(x1, x3) U10_GGA(x1, x2, x3, x4) = U10_GGA(x1, x2, x4) PG_IN_GGAA(x1, x2, x3, x4) = PG_IN_GGAA(x1, x2) U11_GGAA(x1, x2, x3, x4, x5) = U11_GGAA(x1, x2, x5) U12_GGAA(x1, x2, x3, x4, x5) = U12_GGAA(x1, x2, x5) U13_GGAA(x1, x2, x3, x4, x5) = U13_GGAA(x1, x2, x5) ACKERMANNE_IN_GGA(x1, x2, x3) = ACKERMANNE_IN_GGA(x1, x2) U14_GGA(x1, x2, x3) = U14_GGA(x1, x3) U15_GGA(x1, x2, x3, x4) = U15_GGA(x1, x2, x4) U20_GGG(x1, x2, x3, x4) = U20_GGG(x1, x2, x3, x4) U21_GGG(x1, x2, x3, x4) = U21_GGG(x1, x2, x3, x4) U22_GGG(x1, x2, x3) = U22_GGG(x1, x2, x3) U23_GGG(x1, x2, x3) = U23_GGG(x1, x2, x3) U24_GGG(x1, x2, x3) = U24_GGG(x1, x2, x3) U25_GGG(x1, x2, x3, x4) = U25_GGG(x1, x2, x3, x4) U26_GGG(x1, x2, x3, x4) = U26_GGG(x1, x2, x3, x4) U27_GGG(x1, x2, x3, x4) = U27_GGG(x1, x2, x3, x4) U28_GGG(x1, x2, x3, x4) = U28_GGG(x1, x2, x3, x4) U29_GGG(x1, x2, x3, x4) = U29_GGG(x1, x2, x3, x4) U19_GAG(x1, x2, x3, x4) = U19_GAG(x1, x3, x4) ACKERMANNC_IN_GAA(x1, x2, x3) = ACKERMANNC_IN_GAA(x1) U9_GAA(x1, x2, x3) = U9_GAA(x1, x3) U10_GAA(x1, x2, x3, x4) = U10_GAA(x1, x4) PG_IN_GAAA(x1, x2, x3, x4) = PG_IN_GAAA(x1) U11_GAAA(x1, x2, x3, x4, x5) = U11_GAAA(x1, x5) U12_GAAA(x1, x2, x3, x4, x5) = U12_GAAA(x1, x5) U13_GAAA(x1, x2, x3, x4, x5) = U13_GAAA(x1, x2, x5) U20_GAG(x1, x2, x3, x4) = U20_GAG(x1, x3, x4) U21_GAG(x1, x2, x3, x4) = U21_GAG(x1, x2, x3, x4) U22_GAG(x1, x2, x3) = U22_GAG(x1, x2, x3) U23_GAG(x1, x2, x3) = U23_GAG(x1, x2, x3) U24_GAG(x1, x2, x3) = U24_GAG(x1, x2, x3) U25_GAG(x1, x2, x3, x4) = U25_GAG(x1, x3, x4) U26_GAG(x1, x2, x3, x4) = U26_GAG(x1, x3, x4) U27_GAG(x1, x2, x3, x4) = U27_GAG(x1, x2, x3, x4) U28_GAG(x1, x2, x3, x4) = U28_GAG(x1, x2, x3, x4) U29_GAG(x1, x2, x3, x4) = U29_GAG(x1, x2, x3, x4) We have to consider all (P,R,Pi)-chains Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES ---------------------------------------- (88) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANNA_IN_GAG(s(s(X1)), 0, X2) -> U16_GAG(X1, X2, ackermannB_in_ga(X1, X3)) ACKERMANNA_IN_GAG(s(s(X1)), 0, X2) -> ACKERMANNB_IN_GA(X1, X3) ACKERMANNB_IN_GA(X1, X2) -> U1_GA(X1, X2, ackermannD_in_ga(X1, X2)) ACKERMANNB_IN_GA(X1, X2) -> ACKERMANND_IN_GA(X1, X2) ACKERMANND_IN_GA(s(X1), X2) -> U2_GA(X1, X2, ackermannB_in_ga(X1, X3)) ACKERMANND_IN_GA(s(X1), X2) -> ACKERMANNB_IN_GA(X1, X3) ACKERMANND_IN_GA(s(X1), X2) -> U3_GA(X1, X2, ackermanncB_in_ga(X1, X3)) U3_GA(X1, X2, ackermanncB_out_ga(X1, X3)) -> U4_GA(X1, X2, ackermannF_in_gga(X1, X3, X2)) U3_GA(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNF_IN_GGA(X1, X3, X2) ACKERMANNF_IN_GGA(s(X1), 0, X2) -> U5_GGA(X1, X2, ackermannD_in_ga(X1, X2)) ACKERMANNF_IN_GGA(s(X1), 0, X2) -> ACKERMANND_IN_GA(X1, X2) ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> U6_GGA(X1, X2, X3, ackermannF_in_gga(s(X1), X2, X4)) ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> ACKERMANNF_IN_GGA(s(X1), X2, X4) ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> U7_GGA(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4)) U7_GGA(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U8_GGA(X1, X2, X3, ackermannF_in_gga(X1, X4, X3)) U7_GGA(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> ACKERMANNF_IN_GGA(X1, X4, X3) ACKERMANNA_IN_GAG(s(s(X1)), 0, X2) -> U17_GAG(X1, X2, ackermanncB_in_ga(X1, X3)) U17_GAG(X1, X2, ackermanncB_out_ga(X1, X3)) -> U18_GAG(X1, X2, ackermannA_in_ggg(X1, X3, X2)) U17_GAG(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2) ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> U16_GGG(X1, X2, ackermannB_in_ga(X1, X3)) ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> ACKERMANNB_IN_GA(X1, X3) ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> U17_GGG(X1, X2, ackermanncB_in_ga(X1, X3)) U17_GGG(X1, X2, ackermanncB_out_ga(X1, X3)) -> U18_GGG(X1, X2, ackermannA_in_ggg(X1, X3, X2)) U17_GGG(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2) ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> U19_GGG(X1, X2, X3, ackermannC_in_gga(X1, X2, X4)) ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> ACKERMANNC_IN_GGA(X1, X2, X4) ACKERMANNC_IN_GGA(X1, 0, X2) -> U9_GGA(X1, X2, ackermannD_in_ga(X1, X2)) ACKERMANNC_IN_GGA(X1, 0, X2) -> ACKERMANND_IN_GA(X1, X2) ACKERMANNC_IN_GGA(X1, s(X2), X3) -> U10_GGA(X1, X2, X3, pG_in_ggaa(X1, X2, X4, X3)) ACKERMANNC_IN_GGA(X1, s(X2), X3) -> PG_IN_GGAA(X1, X2, X4, X3) PG_IN_GGAA(X1, X2, X3, X4) -> U11_GGAA(X1, X2, X3, X4, ackermannC_in_gga(X1, X2, X3)) PG_IN_GGAA(X1, X2, X3, X4) -> ACKERMANNC_IN_GGA(X1, X2, X3) PG_IN_GGAA(X1, X2, X3, X4) -> U12_GGAA(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3)) U12_GGAA(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U13_GGAA(X1, X2, X3, X4, ackermannE_in_gga(X1, X3, X4)) U12_GGAA(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> ACKERMANNE_IN_GGA(X1, X3, X4) ACKERMANNE_IN_GGA(s(X1), 0, X2) -> U14_GGA(X1, X2, ackermannD_in_ga(X1, X2)) ACKERMANNE_IN_GGA(s(X1), 0, X2) -> ACKERMANND_IN_GA(X1, X2) ACKERMANNE_IN_GGA(s(X1), s(X2), X3) -> U15_GGA(X1, X2, X3, pG_in_ggaa(X1, X2, X4, X3)) ACKERMANNE_IN_GGA(s(X1), s(X2), X3) -> PG_IN_GGAA(X1, X2, X4, X3) ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> U20_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2, X4)) U20_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U21_GGG(X1, X2, X3, ackermannA_in_ggg(X1, X4, X3)) U20_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> ACKERMANNA_IN_GGG(X1, X4, X3) ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> U22_GGG(X1, X2, ackermannD_in_ga(X1, X3)) ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> ACKERMANND_IN_GA(X1, X3) ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> U23_GGG(X1, X2, ackermanncD_in_ga(X1, X3)) U23_GGG(X1, X2, ackermanncD_out_ga(X1, X3)) -> U24_GGG(X1, X2, ackermannA_in_ggg(X1, X3, X2)) U23_GGG(X1, X2, ackermanncD_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2) ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> U25_GGG(X1, X2, X3, ackermannC_in_gga(X1, X2, X4)) ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> ACKERMANNC_IN_GGA(X1, X2, X4) ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> U26_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2, X4)) U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U27_GGG(X1, X2, X3, ackermannE_in_gga(X1, X4, X5)) U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> ACKERMANNE_IN_GGA(X1, X4, X5) U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U28_GGG(X1, X2, X3, ackermanncE_in_gga(X1, X4, X5)) U28_GGG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> U29_GGG(X1, X2, X3, ackermannA_in_ggg(X1, X5, X3)) U28_GGG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> ACKERMANNA_IN_GGG(X1, X5, X3) ACKERMANNA_IN_GAG(s(X1), s(X2), X3) -> U19_GAG(X1, X2, X3, ackermannC_in_gaa(X1, X2, X4)) ACKERMANNA_IN_GAG(s(X1), s(X2), X3) -> ACKERMANNC_IN_GAA(X1, X2, X4) ACKERMANNC_IN_GAA(X1, 0, X2) -> U9_GAA(X1, X2, ackermannD_in_ga(X1, X2)) ACKERMANNC_IN_GAA(X1, 0, X2) -> ACKERMANND_IN_GA(X1, X2) ACKERMANNC_IN_GAA(X1, s(X2), X3) -> U10_GAA(X1, X2, X3, pG_in_gaaa(X1, X2, X4, X3)) ACKERMANNC_IN_GAA(X1, s(X2), X3) -> PG_IN_GAAA(X1, X2, X4, X3) PG_IN_GAAA(X1, X2, X3, X4) -> U11_GAAA(X1, X2, X3, X4, ackermannC_in_gaa(X1, X2, X3)) PG_IN_GAAA(X1, X2, X3, X4) -> ACKERMANNC_IN_GAA(X1, X2, X3) PG_IN_GAAA(X1, X2, X3, X4) -> U12_GAAA(X1, X2, X3, X4, ackermanncC_in_gaa(X1, X2, X3)) U12_GAAA(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> U13_GAAA(X1, X2, X3, X4, ackermannE_in_gga(X1, X3, X4)) U12_GAAA(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> ACKERMANNE_IN_GGA(X1, X3, X4) ACKERMANNA_IN_GAG(s(X1), s(X2), X3) -> U20_GAG(X1, X2, X3, ackermanncC_in_gaa(X1, X2, X4)) U20_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> U21_GAG(X1, X2, X3, ackermannA_in_ggg(X1, X4, X3)) U20_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> ACKERMANNA_IN_GGG(X1, X4, X3) ACKERMANNA_IN_GAG(s(X1), s(0), X2) -> U22_GAG(X1, X2, ackermannD_in_ga(X1, X3)) ACKERMANNA_IN_GAG(s(X1), s(0), X2) -> ACKERMANND_IN_GA(X1, X3) ACKERMANNA_IN_GAG(s(X1), s(0), X2) -> U23_GAG(X1, X2, ackermanncD_in_ga(X1, X3)) U23_GAG(X1, X2, ackermanncD_out_ga(X1, X3)) -> U24_GAG(X1, X2, ackermannA_in_ggg(X1, X3, X2)) U23_GAG(X1, X2, ackermanncD_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2) ACKERMANNA_IN_GAG(s(X1), s(s(X2)), X3) -> U25_GAG(X1, X2, X3, ackermannC_in_gaa(X1, X2, X4)) ACKERMANNA_IN_GAG(s(X1), s(s(X2)), X3) -> ACKERMANNC_IN_GAA(X1, X2, X4) ACKERMANNA_IN_GAG(s(X1), s(s(X2)), X3) -> U26_GAG(X1, X2, X3, ackermanncC_in_gaa(X1, X2, X4)) U26_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> U27_GAG(X1, X2, X3, ackermannE_in_gga(X1, X4, X5)) U26_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> ACKERMANNE_IN_GGA(X1, X4, X5) U26_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> U28_GAG(X1, X2, X3, ackermanncE_in_gga(X1, X4, X5)) U28_GAG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> U29_GAG(X1, X2, X3, ackermannA_in_ggg(X1, X5, X3)) U28_GAG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> ACKERMANNA_IN_GGG(X1, X5, X3) The TRS R consists of the following rules: ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2)) ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0))) ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3)) U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2)) ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1)) ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2) ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4)) U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3)) U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3) U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2) U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2) ackermanncC_in_gga(X1, 0, X2) -> U46_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U46_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2) ackermanncC_in_gga(X1, s(X2), X3) -> U47_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3)) qcG_in_ggaa(X1, X2, X3, X4) -> U48_ggaa(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3)) U48_ggaa(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4)) ackermanncE_in_gga(0, X1, s(X1)) -> ackermanncE_out_gga(0, X1, s(X1)) ackermanncE_in_gga(s(X1), 0, X2) -> U50_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U50_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2) ackermanncE_in_gga(s(X1), s(X2), X3) -> U51_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3)) U51_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3) U49_ggaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4) U47_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3) ackermanncC_in_gaa(X1, 0, X2) -> U46_gaa(X1, X2, ackermanncD_in_ga(X1, X2)) U46_gaa(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gaa(X1, 0, X2) ackermanncC_in_gaa(X1, s(X2), X3) -> U47_gaa(X1, X2, X3, qcG_in_gaaa(X1, X2, X4, X3)) qcG_in_gaaa(X1, X2, X3, X4) -> U48_gaaa(X1, X2, X3, X4, ackermanncC_in_gaa(X1, X2, X3)) U48_gaaa(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> U49_gaaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4)) U49_gaaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_gaaa(X1, X2, X3, X4) U47_gaa(X1, X2, X3, qcG_out_gaaa(X1, X2, X4, X3)) -> ackermanncC_out_gaa(X1, s(X2), X3) The argument filtering Pi contains the following mapping: s(x1) = s(x1) ackermannB_in_ga(x1, x2) = ackermannB_in_ga(x1) ackermannD_in_ga(x1, x2) = ackermannD_in_ga(x1) ackermanncB_in_ga(x1, x2) = ackermanncB_in_ga(x1) U40_ga(x1, x2, x3) = U40_ga(x1, x3) ackermanncD_in_ga(x1, x2) = ackermanncD_in_ga(x1) 0 = 0 ackermanncD_out_ga(x1, x2) = ackermanncD_out_ga(x1, x2) U41_ga(x1, x2, x3) = U41_ga(x1, x3) ackermanncB_out_ga(x1, x2) = ackermanncB_out_ga(x1, x2) U42_ga(x1, x2, x3) = U42_ga(x1, x3) ackermanncF_in_gga(x1, x2, x3) = ackermanncF_in_gga(x1, x2) ackermanncF_out_gga(x1, x2, x3) = ackermanncF_out_gga(x1, x2, x3) U43_gga(x1, x2, x3) = U43_gga(x1, x3) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) ackermannF_in_gga(x1, x2, x3) = ackermannF_in_gga(x1, x2) ackermannA_in_ggg(x1, x2, x3) = ackermannA_in_ggg(x1, x2, x3) ackermannC_in_gga(x1, x2, x3) = ackermannC_in_gga(x1, x2) pG_in_ggaa(x1, x2, x3, x4) = pG_in_ggaa(x1, x2) ackermanncC_in_gga(x1, x2, x3) = ackermanncC_in_gga(x1, x2) U46_gga(x1, x2, x3) = U46_gga(x1, x3) ackermanncC_out_gga(x1, x2, x3) = ackermanncC_out_gga(x1, x2, x3) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) qcG_in_ggaa(x1, x2, x3, x4) = qcG_in_ggaa(x1, x2) U48_ggaa(x1, x2, x3, x4, x5) = U48_ggaa(x1, x2, x5) U49_ggaa(x1, x2, x3, x4, x5) = U49_ggaa(x1, x2, x3, x5) ackermanncE_in_gga(x1, x2, x3) = ackermanncE_in_gga(x1, x2) ackermanncE_out_gga(x1, x2, x3) = ackermanncE_out_gga(x1, x2, x3) U50_gga(x1, x2, x3) = U50_gga(x1, x3) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) qcG_out_ggaa(x1, x2, x3, x4) = qcG_out_ggaa(x1, x2, x3, x4) ackermannE_in_gga(x1, x2, x3) = ackermannE_in_gga(x1, x2) ackermannC_in_gaa(x1, x2, x3) = ackermannC_in_gaa(x1) pG_in_gaaa(x1, x2, x3, x4) = pG_in_gaaa(x1) ackermanncC_in_gaa(x1, x2, x3) = ackermanncC_in_gaa(x1) U46_gaa(x1, x2, x3) = U46_gaa(x1, x3) ackermanncC_out_gaa(x1, x2, x3) = ackermanncC_out_gaa(x1, x2, x3) U47_gaa(x1, x2, x3, x4) = U47_gaa(x1, x4) qcG_in_gaaa(x1, x2, x3, x4) = qcG_in_gaaa(x1) U48_gaaa(x1, x2, x3, x4, x5) = U48_gaaa(x1, x5) U49_gaaa(x1, x2, x3, x4, x5) = U49_gaaa(x1, x2, x3, x5) qcG_out_gaaa(x1, x2, x3, x4) = qcG_out_gaaa(x1, x2, x3, x4) ACKERMANNA_IN_GAG(x1, x2, x3) = ACKERMANNA_IN_GAG(x1, x3) U16_GAG(x1, x2, x3) = U16_GAG(x1, x2, x3) ACKERMANNB_IN_GA(x1, x2) = ACKERMANNB_IN_GA(x1) U1_GA(x1, x2, x3) = U1_GA(x1, x3) ACKERMANND_IN_GA(x1, x2) = ACKERMANND_IN_GA(x1) U2_GA(x1, x2, x3) = U2_GA(x1, x3) U3_GA(x1, x2, x3) = U3_GA(x1, x3) U4_GA(x1, x2, x3) = U4_GA(x1, x3) ACKERMANNF_IN_GGA(x1, x2, x3) = ACKERMANNF_IN_GGA(x1, x2) U5_GGA(x1, x2, x3) = U5_GGA(x1, x3) U6_GGA(x1, x2, x3, x4) = U6_GGA(x1, x2, x4) U7_GGA(x1, x2, x3, x4) = U7_GGA(x1, x2, x4) U8_GGA(x1, x2, x3, x4) = U8_GGA(x1, x2, x4) U17_GAG(x1, x2, x3) = U17_GAG(x1, x2, x3) U18_GAG(x1, x2, x3) = U18_GAG(x1, x2, x3) ACKERMANNA_IN_GGG(x1, x2, x3) = ACKERMANNA_IN_GGG(x1, x2, x3) U16_GGG(x1, x2, x3) = U16_GGG(x1, x2, x3) U17_GGG(x1, x2, x3) = U17_GGG(x1, x2, x3) U18_GGG(x1, x2, x3) = U18_GGG(x1, x2, x3) U19_GGG(x1, x2, x3, x4) = U19_GGG(x1, x2, x3, x4) ACKERMANNC_IN_GGA(x1, x2, x3) = ACKERMANNC_IN_GGA(x1, x2) U9_GGA(x1, x2, x3) = U9_GGA(x1, x3) U10_GGA(x1, x2, x3, x4) = U10_GGA(x1, x2, x4) PG_IN_GGAA(x1, x2, x3, x4) = PG_IN_GGAA(x1, x2) U11_GGAA(x1, x2, x3, x4, x5) = U11_GGAA(x1, x2, x5) U12_GGAA(x1, x2, x3, x4, x5) = U12_GGAA(x1, x2, x5) U13_GGAA(x1, x2, x3, x4, x5) = U13_GGAA(x1, x2, x5) ACKERMANNE_IN_GGA(x1, x2, x3) = ACKERMANNE_IN_GGA(x1, x2) U14_GGA(x1, x2, x3) = U14_GGA(x1, x3) U15_GGA(x1, x2, x3, x4) = U15_GGA(x1, x2, x4) U20_GGG(x1, x2, x3, x4) = U20_GGG(x1, x2, x3, x4) U21_GGG(x1, x2, x3, x4) = U21_GGG(x1, x2, x3, x4) U22_GGG(x1, x2, x3) = U22_GGG(x1, x2, x3) U23_GGG(x1, x2, x3) = U23_GGG(x1, x2, x3) U24_GGG(x1, x2, x3) = U24_GGG(x1, x2, x3) U25_GGG(x1, x2, x3, x4) = U25_GGG(x1, x2, x3, x4) U26_GGG(x1, x2, x3, x4) = U26_GGG(x1, x2, x3, x4) U27_GGG(x1, x2, x3, x4) = U27_GGG(x1, x2, x3, x4) U28_GGG(x1, x2, x3, x4) = U28_GGG(x1, x2, x3, x4) U29_GGG(x1, x2, x3, x4) = U29_GGG(x1, x2, x3, x4) U19_GAG(x1, x2, x3, x4) = U19_GAG(x1, x3, x4) ACKERMANNC_IN_GAA(x1, x2, x3) = ACKERMANNC_IN_GAA(x1) U9_GAA(x1, x2, x3) = U9_GAA(x1, x3) U10_GAA(x1, x2, x3, x4) = U10_GAA(x1, x4) PG_IN_GAAA(x1, x2, x3, x4) = PG_IN_GAAA(x1) U11_GAAA(x1, x2, x3, x4, x5) = U11_GAAA(x1, x5) U12_GAAA(x1, x2, x3, x4, x5) = U12_GAAA(x1, x5) U13_GAAA(x1, x2, x3, x4, x5) = U13_GAAA(x1, x2, x5) U20_GAG(x1, x2, x3, x4) = U20_GAG(x1, x3, x4) U21_GAG(x1, x2, x3, x4) = U21_GAG(x1, x2, x3, x4) U22_GAG(x1, x2, x3) = U22_GAG(x1, x2, x3) U23_GAG(x1, x2, x3) = U23_GAG(x1, x2, x3) U24_GAG(x1, x2, x3) = U24_GAG(x1, x2, x3) U25_GAG(x1, x2, x3, x4) = U25_GAG(x1, x3, x4) U26_GAG(x1, x2, x3, x4) = U26_GAG(x1, x3, x4) U27_GAG(x1, x2, x3, x4) = U27_GAG(x1, x2, x3, x4) U28_GAG(x1, x2, x3, x4) = U28_GAG(x1, x2, x3, x4) U29_GAG(x1, x2, x3, x4) = U29_GAG(x1, x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (89) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 58 less nodes. ---------------------------------------- (90) Complex Obligation (AND) ---------------------------------------- (91) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANNB_IN_GA(X1, X2) -> ACKERMANND_IN_GA(X1, X2) ACKERMANND_IN_GA(s(X1), X2) -> ACKERMANNB_IN_GA(X1, X3) ACKERMANND_IN_GA(s(X1), X2) -> U3_GA(X1, X2, ackermanncB_in_ga(X1, X3)) U3_GA(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNF_IN_GGA(X1, X3, X2) ACKERMANNF_IN_GGA(s(X1), 0, X2) -> ACKERMANND_IN_GA(X1, X2) ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> ACKERMANNF_IN_GGA(s(X1), X2, X4) ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> U7_GGA(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4)) U7_GGA(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> ACKERMANNF_IN_GGA(X1, X4, X3) The TRS R consists of the following rules: ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2)) ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0))) ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3)) U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2)) ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1)) ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2) ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4)) U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3)) U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3) U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2) U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2) ackermanncC_in_gga(X1, 0, X2) -> U46_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U46_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2) ackermanncC_in_gga(X1, s(X2), X3) -> U47_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3)) qcG_in_ggaa(X1, X2, X3, X4) -> U48_ggaa(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3)) U48_ggaa(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4)) ackermanncE_in_gga(0, X1, s(X1)) -> ackermanncE_out_gga(0, X1, s(X1)) ackermanncE_in_gga(s(X1), 0, X2) -> U50_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U50_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2) ackermanncE_in_gga(s(X1), s(X2), X3) -> U51_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3)) U51_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3) U49_ggaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4) U47_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3) ackermanncC_in_gaa(X1, 0, X2) -> U46_gaa(X1, X2, ackermanncD_in_ga(X1, X2)) U46_gaa(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gaa(X1, 0, X2) ackermanncC_in_gaa(X1, s(X2), X3) -> U47_gaa(X1, X2, X3, qcG_in_gaaa(X1, X2, X4, X3)) qcG_in_gaaa(X1, X2, X3, X4) -> U48_gaaa(X1, X2, X3, X4, ackermanncC_in_gaa(X1, X2, X3)) U48_gaaa(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> U49_gaaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4)) U49_gaaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_gaaa(X1, X2, X3, X4) U47_gaa(X1, X2, X3, qcG_out_gaaa(X1, X2, X4, X3)) -> ackermanncC_out_gaa(X1, s(X2), X3) The argument filtering Pi contains the following mapping: s(x1) = s(x1) ackermanncB_in_ga(x1, x2) = ackermanncB_in_ga(x1) U40_ga(x1, x2, x3) = U40_ga(x1, x3) ackermanncD_in_ga(x1, x2) = ackermanncD_in_ga(x1) 0 = 0 ackermanncD_out_ga(x1, x2) = ackermanncD_out_ga(x1, x2) U41_ga(x1, x2, x3) = U41_ga(x1, x3) ackermanncB_out_ga(x1, x2) = ackermanncB_out_ga(x1, x2) U42_ga(x1, x2, x3) = U42_ga(x1, x3) ackermanncF_in_gga(x1, x2, x3) = ackermanncF_in_gga(x1, x2) ackermanncF_out_gga(x1, x2, x3) = ackermanncF_out_gga(x1, x2, x3) U43_gga(x1, x2, x3) = U43_gga(x1, x3) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) ackermanncC_in_gga(x1, x2, x3) = ackermanncC_in_gga(x1, x2) U46_gga(x1, x2, x3) = U46_gga(x1, x3) ackermanncC_out_gga(x1, x2, x3) = ackermanncC_out_gga(x1, x2, x3) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) qcG_in_ggaa(x1, x2, x3, x4) = qcG_in_ggaa(x1, x2) U48_ggaa(x1, x2, x3, x4, x5) = U48_ggaa(x1, x2, x5) U49_ggaa(x1, x2, x3, x4, x5) = U49_ggaa(x1, x2, x3, x5) ackermanncE_in_gga(x1, x2, x3) = ackermanncE_in_gga(x1, x2) ackermanncE_out_gga(x1, x2, x3) = ackermanncE_out_gga(x1, x2, x3) U50_gga(x1, x2, x3) = U50_gga(x1, x3) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) qcG_out_ggaa(x1, x2, x3, x4) = qcG_out_ggaa(x1, x2, x3, x4) ackermanncC_in_gaa(x1, x2, x3) = ackermanncC_in_gaa(x1) U46_gaa(x1, x2, x3) = U46_gaa(x1, x3) ackermanncC_out_gaa(x1, x2, x3) = ackermanncC_out_gaa(x1, x2, x3) U47_gaa(x1, x2, x3, x4) = U47_gaa(x1, x4) qcG_in_gaaa(x1, x2, x3, x4) = qcG_in_gaaa(x1) U48_gaaa(x1, x2, x3, x4, x5) = U48_gaaa(x1, x5) U49_gaaa(x1, x2, x3, x4, x5) = U49_gaaa(x1, x2, x3, x5) qcG_out_gaaa(x1, x2, x3, x4) = qcG_out_gaaa(x1, x2, x3, x4) ACKERMANNB_IN_GA(x1, x2) = ACKERMANNB_IN_GA(x1) ACKERMANND_IN_GA(x1, x2) = ACKERMANND_IN_GA(x1) U3_GA(x1, x2, x3) = U3_GA(x1, x3) ACKERMANNF_IN_GGA(x1, x2, x3) = ACKERMANNF_IN_GGA(x1, x2) U7_GGA(x1, x2, x3, x4) = U7_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (92) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (93) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANNB_IN_GA(X1, X2) -> ACKERMANND_IN_GA(X1, X2) ACKERMANND_IN_GA(s(X1), X2) -> ACKERMANNB_IN_GA(X1, X3) ACKERMANND_IN_GA(s(X1), X2) -> U3_GA(X1, X2, ackermanncB_in_ga(X1, X3)) U3_GA(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNF_IN_GGA(X1, X3, X2) ACKERMANNF_IN_GGA(s(X1), 0, X2) -> ACKERMANND_IN_GA(X1, X2) ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> ACKERMANNF_IN_GGA(s(X1), X2, X4) ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> U7_GGA(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4)) U7_GGA(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> ACKERMANNF_IN_GGA(X1, X4, X3) The TRS R consists of the following rules: ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2)) ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2)) ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4)) U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2) U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2) U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3)) ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0))) ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3)) U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3) U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2)) ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1)) U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2) The argument filtering Pi contains the following mapping: s(x1) = s(x1) ackermanncB_in_ga(x1, x2) = ackermanncB_in_ga(x1) U40_ga(x1, x2, x3) = U40_ga(x1, x3) ackermanncD_in_ga(x1, x2) = ackermanncD_in_ga(x1) 0 = 0 ackermanncD_out_ga(x1, x2) = ackermanncD_out_ga(x1, x2) U41_ga(x1, x2, x3) = U41_ga(x1, x3) ackermanncB_out_ga(x1, x2) = ackermanncB_out_ga(x1, x2) U42_ga(x1, x2, x3) = U42_ga(x1, x3) ackermanncF_in_gga(x1, x2, x3) = ackermanncF_in_gga(x1, x2) ackermanncF_out_gga(x1, x2, x3) = ackermanncF_out_gga(x1, x2, x3) U43_gga(x1, x2, x3) = U43_gga(x1, x3) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) ACKERMANNB_IN_GA(x1, x2) = ACKERMANNB_IN_GA(x1) ACKERMANND_IN_GA(x1, x2) = ACKERMANND_IN_GA(x1) U3_GA(x1, x2, x3) = U3_GA(x1, x3) ACKERMANNF_IN_GGA(x1, x2, x3) = ACKERMANNF_IN_GGA(x1, x2) U7_GGA(x1, x2, x3, x4) = U7_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (94) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (95) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANNB_IN_GA(X1) -> ACKERMANND_IN_GA(X1) ACKERMANND_IN_GA(s(X1)) -> ACKERMANNB_IN_GA(X1) ACKERMANND_IN_GA(s(X1)) -> U3_GA(X1, ackermanncB_in_ga(X1)) U3_GA(X1, ackermanncB_out_ga(X1, X3)) -> ACKERMANNF_IN_GGA(X1, X3) ACKERMANNF_IN_GGA(s(X1), 0) -> ACKERMANND_IN_GA(X1) ACKERMANNF_IN_GGA(s(X1), s(X2)) -> ACKERMANNF_IN_GGA(s(X1), X2) ACKERMANNF_IN_GGA(s(X1), s(X2)) -> U7_GGA(X1, X2, ackermanncF_in_gga(s(X1), X2)) U7_GGA(X1, X2, ackermanncF_out_gga(s(X1), X2, X4)) -> ACKERMANNF_IN_GGA(X1, X4) The TRS R consists of the following rules: ackermanncB_in_ga(X1) -> U40_ga(X1, ackermanncD_in_ga(X1)) ackermanncF_in_gga(s(X1), 0) -> U43_gga(X1, ackermanncD_in_ga(X1)) ackermanncF_in_gga(s(X1), s(X2)) -> U44_gga(X1, X2, ackermanncF_in_gga(s(X1), X2)) U40_ga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2) U43_gga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2) U44_gga(X1, X2, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, ackermanncF_in_gga(X1, X4)) ackermanncD_in_ga(0) -> ackermanncD_out_ga(0, s(s(0))) ackermanncD_in_ga(s(X1)) -> U41_ga(X1, ackermanncB_in_ga(X1)) U45_gga(X1, X2, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3) U41_ga(X1, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, ackermanncF_in_gga(X1, X3)) ackermanncF_in_gga(0, X1) -> ackermanncF_out_gga(0, X1, s(X1)) U42_ga(X1, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2) The set Q consists of the following terms: ackermanncB_in_ga(x0) ackermanncF_in_gga(x0, x1) U40_ga(x0, x1) U43_gga(x0, x1) U44_gga(x0, x1, x2) ackermanncD_in_ga(x0) U45_gga(x0, x1, x2) U41_ga(x0, x1) U42_ga(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (96) 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: *ACKERMANND_IN_GA(s(X1)) -> ACKERMANNB_IN_GA(X1) The graph contains the following edges 1 > 1 *ACKERMANND_IN_GA(s(X1)) -> U3_GA(X1, ackermanncB_in_ga(X1)) The graph contains the following edges 1 > 1 *ACKERMANNB_IN_GA(X1) -> ACKERMANND_IN_GA(X1) The graph contains the following edges 1 >= 1 *ACKERMANNF_IN_GGA(s(X1), 0) -> ACKERMANND_IN_GA(X1) The graph contains the following edges 1 > 1 *U3_GA(X1, ackermanncB_out_ga(X1, X3)) -> ACKERMANNF_IN_GGA(X1, X3) The graph contains the following edges 1 >= 1, 2 > 1, 2 > 2 *U7_GGA(X1, X2, ackermanncF_out_gga(s(X1), X2, X4)) -> ACKERMANNF_IN_GGA(X1, X4) The graph contains the following edges 1 >= 1, 3 > 1, 3 > 2 *ACKERMANNF_IN_GGA(s(X1), s(X2)) -> ACKERMANNF_IN_GGA(s(X1), X2) The graph contains the following edges 1 >= 1, 2 > 2 *ACKERMANNF_IN_GGA(s(X1), s(X2)) -> U7_GGA(X1, X2, ackermanncF_in_gga(s(X1), X2)) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (97) YES ---------------------------------------- (98) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANNC_IN_GGA(X1, s(X2), X3) -> PG_IN_GGAA(X1, X2, X4, X3) PG_IN_GGAA(X1, X2, X3, X4) -> ACKERMANNC_IN_GGA(X1, X2, X3) PG_IN_GGAA(X1, X2, X3, X4) -> U12_GGAA(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3)) U12_GGAA(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> ACKERMANNE_IN_GGA(X1, X3, X4) ACKERMANNE_IN_GGA(s(X1), s(X2), X3) -> PG_IN_GGAA(X1, X2, X4, X3) The TRS R consists of the following rules: ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2)) ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0))) ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3)) U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2)) ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1)) ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2) ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4)) U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3)) U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3) U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2) U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2) ackermanncC_in_gga(X1, 0, X2) -> U46_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U46_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2) ackermanncC_in_gga(X1, s(X2), X3) -> U47_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3)) qcG_in_ggaa(X1, X2, X3, X4) -> U48_ggaa(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3)) U48_ggaa(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4)) ackermanncE_in_gga(0, X1, s(X1)) -> ackermanncE_out_gga(0, X1, s(X1)) ackermanncE_in_gga(s(X1), 0, X2) -> U50_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U50_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2) ackermanncE_in_gga(s(X1), s(X2), X3) -> U51_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3)) U51_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3) U49_ggaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4) U47_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3) ackermanncC_in_gaa(X1, 0, X2) -> U46_gaa(X1, X2, ackermanncD_in_ga(X1, X2)) U46_gaa(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gaa(X1, 0, X2) ackermanncC_in_gaa(X1, s(X2), X3) -> U47_gaa(X1, X2, X3, qcG_in_gaaa(X1, X2, X4, X3)) qcG_in_gaaa(X1, X2, X3, X4) -> U48_gaaa(X1, X2, X3, X4, ackermanncC_in_gaa(X1, X2, X3)) U48_gaaa(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> U49_gaaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4)) U49_gaaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_gaaa(X1, X2, X3, X4) U47_gaa(X1, X2, X3, qcG_out_gaaa(X1, X2, X4, X3)) -> ackermanncC_out_gaa(X1, s(X2), X3) The argument filtering Pi contains the following mapping: s(x1) = s(x1) ackermanncB_in_ga(x1, x2) = ackermanncB_in_ga(x1) U40_ga(x1, x2, x3) = U40_ga(x1, x3) ackermanncD_in_ga(x1, x2) = ackermanncD_in_ga(x1) 0 = 0 ackermanncD_out_ga(x1, x2) = ackermanncD_out_ga(x1, x2) U41_ga(x1, x2, x3) = U41_ga(x1, x3) ackermanncB_out_ga(x1, x2) = ackermanncB_out_ga(x1, x2) U42_ga(x1, x2, x3) = U42_ga(x1, x3) ackermanncF_in_gga(x1, x2, x3) = ackermanncF_in_gga(x1, x2) ackermanncF_out_gga(x1, x2, x3) = ackermanncF_out_gga(x1, x2, x3) U43_gga(x1, x2, x3) = U43_gga(x1, x3) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) ackermanncC_in_gga(x1, x2, x3) = ackermanncC_in_gga(x1, x2) U46_gga(x1, x2, x3) = U46_gga(x1, x3) ackermanncC_out_gga(x1, x2, x3) = ackermanncC_out_gga(x1, x2, x3) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) qcG_in_ggaa(x1, x2, x3, x4) = qcG_in_ggaa(x1, x2) U48_ggaa(x1, x2, x3, x4, x5) = U48_ggaa(x1, x2, x5) U49_ggaa(x1, x2, x3, x4, x5) = U49_ggaa(x1, x2, x3, x5) ackermanncE_in_gga(x1, x2, x3) = ackermanncE_in_gga(x1, x2) ackermanncE_out_gga(x1, x2, x3) = ackermanncE_out_gga(x1, x2, x3) U50_gga(x1, x2, x3) = U50_gga(x1, x3) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) qcG_out_ggaa(x1, x2, x3, x4) = qcG_out_ggaa(x1, x2, x3, x4) ackermanncC_in_gaa(x1, x2, x3) = ackermanncC_in_gaa(x1) U46_gaa(x1, x2, x3) = U46_gaa(x1, x3) ackermanncC_out_gaa(x1, x2, x3) = ackermanncC_out_gaa(x1, x2, x3) U47_gaa(x1, x2, x3, x4) = U47_gaa(x1, x4) qcG_in_gaaa(x1, x2, x3, x4) = qcG_in_gaaa(x1) U48_gaaa(x1, x2, x3, x4, x5) = U48_gaaa(x1, x5) U49_gaaa(x1, x2, x3, x4, x5) = U49_gaaa(x1, x2, x3, x5) qcG_out_gaaa(x1, x2, x3, x4) = qcG_out_gaaa(x1, x2, x3, x4) ACKERMANNC_IN_GGA(x1, x2, x3) = ACKERMANNC_IN_GGA(x1, x2) PG_IN_GGAA(x1, x2, x3, x4) = PG_IN_GGAA(x1, x2) U12_GGAA(x1, x2, x3, x4, x5) = U12_GGAA(x1, x2, x5) ACKERMANNE_IN_GGA(x1, x2, x3) = ACKERMANNE_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (99) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (100) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANNC_IN_GGA(X1, s(X2), X3) -> PG_IN_GGAA(X1, X2, X4, X3) PG_IN_GGAA(X1, X2, X3, X4) -> ACKERMANNC_IN_GGA(X1, X2, X3) PG_IN_GGAA(X1, X2, X3, X4) -> U12_GGAA(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3)) U12_GGAA(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> ACKERMANNE_IN_GGA(X1, X3, X4) ACKERMANNE_IN_GGA(s(X1), s(X2), X3) -> PG_IN_GGAA(X1, X2, X4, X3) The TRS R consists of the following rules: ackermanncC_in_gga(X1, 0, X2) -> U46_gga(X1, X2, ackermanncD_in_ga(X1, X2)) ackermanncC_in_gga(X1, s(X2), X3) -> U47_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3)) U46_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2) U47_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3) ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0))) ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3)) qcG_in_ggaa(X1, X2, X3, X4) -> U48_ggaa(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3)) U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2)) U48_ggaa(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4)) ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2)) U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2) U49_ggaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4) U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2) ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1)) ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2)) ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4)) ackermanncE_in_gga(0, X1, s(X1)) -> ackermanncE_out_gga(0, X1, s(X1)) ackermanncE_in_gga(s(X1), 0, X2) -> U50_gga(X1, X2, ackermanncD_in_ga(X1, X2)) ackermanncE_in_gga(s(X1), s(X2), X3) -> U51_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3)) U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2) U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3)) U50_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2) U51_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3) U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3) The argument filtering Pi contains the following mapping: s(x1) = s(x1) ackermanncB_in_ga(x1, x2) = ackermanncB_in_ga(x1) U40_ga(x1, x2, x3) = U40_ga(x1, x3) ackermanncD_in_ga(x1, x2) = ackermanncD_in_ga(x1) 0 = 0 ackermanncD_out_ga(x1, x2) = ackermanncD_out_ga(x1, x2) U41_ga(x1, x2, x3) = U41_ga(x1, x3) ackermanncB_out_ga(x1, x2) = ackermanncB_out_ga(x1, x2) U42_ga(x1, x2, x3) = U42_ga(x1, x3) ackermanncF_in_gga(x1, x2, x3) = ackermanncF_in_gga(x1, x2) ackermanncF_out_gga(x1, x2, x3) = ackermanncF_out_gga(x1, x2, x3) U43_gga(x1, x2, x3) = U43_gga(x1, x3) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) ackermanncC_in_gga(x1, x2, x3) = ackermanncC_in_gga(x1, x2) U46_gga(x1, x2, x3) = U46_gga(x1, x3) ackermanncC_out_gga(x1, x2, x3) = ackermanncC_out_gga(x1, x2, x3) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) qcG_in_ggaa(x1, x2, x3, x4) = qcG_in_ggaa(x1, x2) U48_ggaa(x1, x2, x3, x4, x5) = U48_ggaa(x1, x2, x5) U49_ggaa(x1, x2, x3, x4, x5) = U49_ggaa(x1, x2, x3, x5) ackermanncE_in_gga(x1, x2, x3) = ackermanncE_in_gga(x1, x2) ackermanncE_out_gga(x1, x2, x3) = ackermanncE_out_gga(x1, x2, x3) U50_gga(x1, x2, x3) = U50_gga(x1, x3) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) qcG_out_ggaa(x1, x2, x3, x4) = qcG_out_ggaa(x1, x2, x3, x4) ACKERMANNC_IN_GGA(x1, x2, x3) = ACKERMANNC_IN_GGA(x1, x2) PG_IN_GGAA(x1, x2, x3, x4) = PG_IN_GGAA(x1, x2) U12_GGAA(x1, x2, x3, x4, x5) = U12_GGAA(x1, x2, x5) ACKERMANNE_IN_GGA(x1, x2, x3) = ACKERMANNE_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (101) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (102) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANNC_IN_GGA(X1, s(X2)) -> PG_IN_GGAA(X1, X2) PG_IN_GGAA(X1, X2) -> ACKERMANNC_IN_GGA(X1, X2) PG_IN_GGAA(X1, X2) -> U12_GGAA(X1, X2, ackermanncC_in_gga(X1, X2)) U12_GGAA(X1, X2, ackermanncC_out_gga(X1, X2, X3)) -> ACKERMANNE_IN_GGA(X1, X3) ACKERMANNE_IN_GGA(s(X1), s(X2)) -> PG_IN_GGAA(X1, X2) The TRS R consists of the following rules: ackermanncC_in_gga(X1, 0) -> U46_gga(X1, ackermanncD_in_ga(X1)) ackermanncC_in_gga(X1, s(X2)) -> U47_gga(X1, X2, qcG_in_ggaa(X1, X2)) U46_gga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2) U47_gga(X1, X2, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3) ackermanncD_in_ga(0) -> ackermanncD_out_ga(0, s(s(0))) ackermanncD_in_ga(s(X1)) -> U41_ga(X1, ackermanncB_in_ga(X1)) qcG_in_ggaa(X1, X2) -> U48_ggaa(X1, X2, ackermanncC_in_gga(X1, X2)) U41_ga(X1, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, ackermanncF_in_gga(X1, X3)) U48_ggaa(X1, X2, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, ackermanncE_in_gga(X1, X3)) ackermanncB_in_ga(X1) -> U40_ga(X1, ackermanncD_in_ga(X1)) U42_ga(X1, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2) U49_ggaa(X1, X2, X3, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4) U40_ga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2) ackermanncF_in_gga(0, X1) -> ackermanncF_out_gga(0, X1, s(X1)) ackermanncF_in_gga(s(X1), 0) -> U43_gga(X1, ackermanncD_in_ga(X1)) ackermanncF_in_gga(s(X1), s(X2)) -> U44_gga(X1, X2, ackermanncF_in_gga(s(X1), X2)) ackermanncE_in_gga(0, X1) -> ackermanncE_out_gga(0, X1, s(X1)) ackermanncE_in_gga(s(X1), 0) -> U50_gga(X1, ackermanncD_in_ga(X1)) ackermanncE_in_gga(s(X1), s(X2)) -> U51_gga(X1, X2, qcG_in_ggaa(X1, X2)) U43_gga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2) U44_gga(X1, X2, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, ackermanncF_in_gga(X1, X4)) U50_gga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2) U51_gga(X1, X2, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3) U45_gga(X1, X2, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3) The set Q consists of the following terms: ackermanncC_in_gga(x0, x1) U46_gga(x0, x1) U47_gga(x0, x1, x2) ackermanncD_in_ga(x0) qcG_in_ggaa(x0, x1) U41_ga(x0, x1) U48_ggaa(x0, x1, x2) ackermanncB_in_ga(x0) U42_ga(x0, x1) U49_ggaa(x0, x1, x2, x3) U40_ga(x0, x1) ackermanncF_in_gga(x0, x1) ackermanncE_in_gga(x0, x1) U43_gga(x0, x1) U44_gga(x0, x1, x2) U50_gga(x0, x1) U51_gga(x0, x1, x2) U45_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (103) 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: *PG_IN_GGAA(X1, X2) -> ACKERMANNC_IN_GGA(X1, X2) The graph contains the following edges 1 >= 1, 2 >= 2 *PG_IN_GGAA(X1, X2) -> U12_GGAA(X1, X2, ackermanncC_in_gga(X1, X2)) The graph contains the following edges 1 >= 1, 2 >= 2 *ACKERMANNC_IN_GGA(X1, s(X2)) -> PG_IN_GGAA(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *ACKERMANNE_IN_GGA(s(X1), s(X2)) -> PG_IN_GGAA(X1, X2) The graph contains the following edges 1 > 1, 2 > 2 *U12_GGAA(X1, X2, ackermanncC_out_gga(X1, X2, X3)) -> ACKERMANNE_IN_GGA(X1, X3) The graph contains the following edges 1 >= 1, 3 > 1, 3 > 2 ---------------------------------------- (104) YES ---------------------------------------- (105) Obligation: Pi DP problem: The TRS P consists of the following rules: PG_IN_GAAA(X1, X2, X3, X4) -> ACKERMANNC_IN_GAA(X1, X2, X3) ACKERMANNC_IN_GAA(X1, s(X2), X3) -> PG_IN_GAAA(X1, X2, X4, X3) The TRS R consists of the following rules: ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2)) ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0))) ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3)) U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2)) ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1)) ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2) ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4)) U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3)) U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3) U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2) U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2) ackermanncC_in_gga(X1, 0, X2) -> U46_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U46_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2) ackermanncC_in_gga(X1, s(X2), X3) -> U47_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3)) qcG_in_ggaa(X1, X2, X3, X4) -> U48_ggaa(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3)) U48_ggaa(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4)) ackermanncE_in_gga(0, X1, s(X1)) -> ackermanncE_out_gga(0, X1, s(X1)) ackermanncE_in_gga(s(X1), 0, X2) -> U50_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U50_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2) ackermanncE_in_gga(s(X1), s(X2), X3) -> U51_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3)) U51_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3) U49_ggaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4) U47_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3) ackermanncC_in_gaa(X1, 0, X2) -> U46_gaa(X1, X2, ackermanncD_in_ga(X1, X2)) U46_gaa(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gaa(X1, 0, X2) ackermanncC_in_gaa(X1, s(X2), X3) -> U47_gaa(X1, X2, X3, qcG_in_gaaa(X1, X2, X4, X3)) qcG_in_gaaa(X1, X2, X3, X4) -> U48_gaaa(X1, X2, X3, X4, ackermanncC_in_gaa(X1, X2, X3)) U48_gaaa(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> U49_gaaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4)) U49_gaaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_gaaa(X1, X2, X3, X4) U47_gaa(X1, X2, X3, qcG_out_gaaa(X1, X2, X4, X3)) -> ackermanncC_out_gaa(X1, s(X2), X3) The argument filtering Pi contains the following mapping: s(x1) = s(x1) ackermanncB_in_ga(x1, x2) = ackermanncB_in_ga(x1) U40_ga(x1, x2, x3) = U40_ga(x1, x3) ackermanncD_in_ga(x1, x2) = ackermanncD_in_ga(x1) 0 = 0 ackermanncD_out_ga(x1, x2) = ackermanncD_out_ga(x1, x2) U41_ga(x1, x2, x3) = U41_ga(x1, x3) ackermanncB_out_ga(x1, x2) = ackermanncB_out_ga(x1, x2) U42_ga(x1, x2, x3) = U42_ga(x1, x3) ackermanncF_in_gga(x1, x2, x3) = ackermanncF_in_gga(x1, x2) ackermanncF_out_gga(x1, x2, x3) = ackermanncF_out_gga(x1, x2, x3) U43_gga(x1, x2, x3) = U43_gga(x1, x3) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) ackermanncC_in_gga(x1, x2, x3) = ackermanncC_in_gga(x1, x2) U46_gga(x1, x2, x3) = U46_gga(x1, x3) ackermanncC_out_gga(x1, x2, x3) = ackermanncC_out_gga(x1, x2, x3) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) qcG_in_ggaa(x1, x2, x3, x4) = qcG_in_ggaa(x1, x2) U48_ggaa(x1, x2, x3, x4, x5) = U48_ggaa(x1, x2, x5) U49_ggaa(x1, x2, x3, x4, x5) = U49_ggaa(x1, x2, x3, x5) ackermanncE_in_gga(x1, x2, x3) = ackermanncE_in_gga(x1, x2) ackermanncE_out_gga(x1, x2, x3) = ackermanncE_out_gga(x1, x2, x3) U50_gga(x1, x2, x3) = U50_gga(x1, x3) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) qcG_out_ggaa(x1, x2, x3, x4) = qcG_out_ggaa(x1, x2, x3, x4) ackermanncC_in_gaa(x1, x2, x3) = ackermanncC_in_gaa(x1) U46_gaa(x1, x2, x3) = U46_gaa(x1, x3) ackermanncC_out_gaa(x1, x2, x3) = ackermanncC_out_gaa(x1, x2, x3) U47_gaa(x1, x2, x3, x4) = U47_gaa(x1, x4) qcG_in_gaaa(x1, x2, x3, x4) = qcG_in_gaaa(x1) U48_gaaa(x1, x2, x3, x4, x5) = U48_gaaa(x1, x5) U49_gaaa(x1, x2, x3, x4, x5) = U49_gaaa(x1, x2, x3, x5) qcG_out_gaaa(x1, x2, x3, x4) = qcG_out_gaaa(x1, x2, x3, x4) ACKERMANNC_IN_GAA(x1, x2, x3) = ACKERMANNC_IN_GAA(x1) PG_IN_GAAA(x1, x2, x3, x4) = PG_IN_GAAA(x1) We have to consider all (P,R,Pi)-chains ---------------------------------------- (106) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (107) Obligation: Pi DP problem: The TRS P consists of the following rules: PG_IN_GAAA(X1, X2, X3, X4) -> ACKERMANNC_IN_GAA(X1, X2, X3) ACKERMANNC_IN_GAA(X1, s(X2), X3) -> PG_IN_GAAA(X1, X2, X4, X3) R is empty. The argument filtering Pi contains the following mapping: s(x1) = s(x1) ACKERMANNC_IN_GAA(x1, x2, x3) = ACKERMANNC_IN_GAA(x1) PG_IN_GAAA(x1, x2, x3, x4) = PG_IN_GAAA(x1) We have to consider all (P,R,Pi)-chains ---------------------------------------- (108) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (109) Obligation: Q DP problem: The TRS P consists of the following rules: PG_IN_GAAA(X1) -> ACKERMANNC_IN_GAA(X1) ACKERMANNC_IN_GAA(X1) -> PG_IN_GAAA(X1) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (110) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by narrowing to the left: s = ACKERMANNC_IN_GAA(X1') evaluates to t =ACKERMANNC_IN_GAA(X1') Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence ACKERMANNC_IN_GAA(X1') -> PG_IN_GAAA(X1') with rule ACKERMANNC_IN_GAA(X1'') -> PG_IN_GAAA(X1'') at position [] and matcher [X1'' / X1'] PG_IN_GAAA(X1') -> ACKERMANNC_IN_GAA(X1') with rule PG_IN_GAAA(X1) -> ACKERMANNC_IN_GAA(X1) Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence All these steps are and every following step will be a correct step w.r.t to Q. ---------------------------------------- (111) NO ---------------------------------------- (112) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> U17_GGG(X1, X2, ackermanncB_in_ga(X1, X3)) U17_GGG(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2) ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> U20_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2, X4)) U20_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> ACKERMANNA_IN_GGG(X1, X4, X3) ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> U23_GGG(X1, X2, ackermanncD_in_ga(X1, X3)) U23_GGG(X1, X2, ackermanncD_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2) ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> U26_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2, X4)) U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U28_GGG(X1, X2, X3, ackermanncE_in_gga(X1, X4, X5)) U28_GGG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> ACKERMANNA_IN_GGG(X1, X5, X3) The TRS R consists of the following rules: ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2)) ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0))) ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3)) U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2)) ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1)) ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2) ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4)) U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3)) U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3) U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2) U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2) ackermanncC_in_gga(X1, 0, X2) -> U46_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U46_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2) ackermanncC_in_gga(X1, s(X2), X3) -> U47_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3)) qcG_in_ggaa(X1, X2, X3, X4) -> U48_ggaa(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3)) U48_ggaa(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4)) ackermanncE_in_gga(0, X1, s(X1)) -> ackermanncE_out_gga(0, X1, s(X1)) ackermanncE_in_gga(s(X1), 0, X2) -> U50_gga(X1, X2, ackermanncD_in_ga(X1, X2)) U50_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2) ackermanncE_in_gga(s(X1), s(X2), X3) -> U51_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3)) U51_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3) U49_ggaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4) U47_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3) ackermanncC_in_gaa(X1, 0, X2) -> U46_gaa(X1, X2, ackermanncD_in_ga(X1, X2)) U46_gaa(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gaa(X1, 0, X2) ackermanncC_in_gaa(X1, s(X2), X3) -> U47_gaa(X1, X2, X3, qcG_in_gaaa(X1, X2, X4, X3)) qcG_in_gaaa(X1, X2, X3, X4) -> U48_gaaa(X1, X2, X3, X4, ackermanncC_in_gaa(X1, X2, X3)) U48_gaaa(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> U49_gaaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4)) U49_gaaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_gaaa(X1, X2, X3, X4) U47_gaa(X1, X2, X3, qcG_out_gaaa(X1, X2, X4, X3)) -> ackermanncC_out_gaa(X1, s(X2), X3) The argument filtering Pi contains the following mapping: s(x1) = s(x1) ackermanncB_in_ga(x1, x2) = ackermanncB_in_ga(x1) U40_ga(x1, x2, x3) = U40_ga(x1, x3) ackermanncD_in_ga(x1, x2) = ackermanncD_in_ga(x1) 0 = 0 ackermanncD_out_ga(x1, x2) = ackermanncD_out_ga(x1, x2) U41_ga(x1, x2, x3) = U41_ga(x1, x3) ackermanncB_out_ga(x1, x2) = ackermanncB_out_ga(x1, x2) U42_ga(x1, x2, x3) = U42_ga(x1, x3) ackermanncF_in_gga(x1, x2, x3) = ackermanncF_in_gga(x1, x2) ackermanncF_out_gga(x1, x2, x3) = ackermanncF_out_gga(x1, x2, x3) U43_gga(x1, x2, x3) = U43_gga(x1, x3) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) ackermanncC_in_gga(x1, x2, x3) = ackermanncC_in_gga(x1, x2) U46_gga(x1, x2, x3) = U46_gga(x1, x3) ackermanncC_out_gga(x1, x2, x3) = ackermanncC_out_gga(x1, x2, x3) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) qcG_in_ggaa(x1, x2, x3, x4) = qcG_in_ggaa(x1, x2) U48_ggaa(x1, x2, x3, x4, x5) = U48_ggaa(x1, x2, x5) U49_ggaa(x1, x2, x3, x4, x5) = U49_ggaa(x1, x2, x3, x5) ackermanncE_in_gga(x1, x2, x3) = ackermanncE_in_gga(x1, x2) ackermanncE_out_gga(x1, x2, x3) = ackermanncE_out_gga(x1, x2, x3) U50_gga(x1, x2, x3) = U50_gga(x1, x3) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) qcG_out_ggaa(x1, x2, x3, x4) = qcG_out_ggaa(x1, x2, x3, x4) ackermanncC_in_gaa(x1, x2, x3) = ackermanncC_in_gaa(x1) U46_gaa(x1, x2, x3) = U46_gaa(x1, x3) ackermanncC_out_gaa(x1, x2, x3) = ackermanncC_out_gaa(x1, x2, x3) U47_gaa(x1, x2, x3, x4) = U47_gaa(x1, x4) qcG_in_gaaa(x1, x2, x3, x4) = qcG_in_gaaa(x1) U48_gaaa(x1, x2, x3, x4, x5) = U48_gaaa(x1, x5) U49_gaaa(x1, x2, x3, x4, x5) = U49_gaaa(x1, x2, x3, x5) qcG_out_gaaa(x1, x2, x3, x4) = qcG_out_gaaa(x1, x2, x3, x4) ACKERMANNA_IN_GGG(x1, x2, x3) = ACKERMANNA_IN_GGG(x1, x2, x3) U17_GGG(x1, x2, x3) = U17_GGG(x1, x2, x3) U20_GGG(x1, x2, x3, x4) = U20_GGG(x1, x2, x3, x4) U23_GGG(x1, x2, x3) = U23_GGG(x1, x2, x3) U26_GGG(x1, x2, x3, x4) = U26_GGG(x1, x2, x3, x4) U28_GGG(x1, x2, x3, x4) = U28_GGG(x1, x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (113) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (114) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> U17_GGG(X1, X2, ackermanncB_in_ga(X1, X3)) U17_GGG(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2) ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> U20_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2, X4)) U20_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> ACKERMANNA_IN_GGG(X1, X4, X3) ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> U23_GGG(X1, X2, ackermanncD_in_ga(X1, X3)) U23_GGG(X1, X2, ackermanncD_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2) ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> U26_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2, X4)) U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U28_GGG(X1, X2, X3, ackermanncE_in_gga(X1, X4, X5)) U28_GGG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> ACKERMANNA_IN_GGG(X1, X5, X3) The TRS R consists of the following rules: ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2)) ackermanncC_in_gga(X1, 0, X2) -> U46_gga(X1, X2, ackermanncD_in_ga(X1, X2)) ackermanncC_in_gga(X1, s(X2), X3) -> U47_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3)) ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0))) ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3)) ackermanncE_in_gga(0, X1, s(X1)) -> ackermanncE_out_gga(0, X1, s(X1)) ackermanncE_in_gga(s(X1), 0, X2) -> U50_gga(X1, X2, ackermanncD_in_ga(X1, X2)) ackermanncE_in_gga(s(X1), s(X2), X3) -> U51_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3)) U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2) U46_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2) U47_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3) U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2)) U50_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2) U51_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3) qcG_in_ggaa(X1, X2, X3, X4) -> U48_ggaa(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3)) U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2) U48_ggaa(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4)) ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1)) ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2)) ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4)) U49_ggaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4) U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2) U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3)) U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3) The argument filtering Pi contains the following mapping: s(x1) = s(x1) ackermanncB_in_ga(x1, x2) = ackermanncB_in_ga(x1) U40_ga(x1, x2, x3) = U40_ga(x1, x3) ackermanncD_in_ga(x1, x2) = ackermanncD_in_ga(x1) 0 = 0 ackermanncD_out_ga(x1, x2) = ackermanncD_out_ga(x1, x2) U41_ga(x1, x2, x3) = U41_ga(x1, x3) ackermanncB_out_ga(x1, x2) = ackermanncB_out_ga(x1, x2) U42_ga(x1, x2, x3) = U42_ga(x1, x3) ackermanncF_in_gga(x1, x2, x3) = ackermanncF_in_gga(x1, x2) ackermanncF_out_gga(x1, x2, x3) = ackermanncF_out_gga(x1, x2, x3) U43_gga(x1, x2, x3) = U43_gga(x1, x3) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) ackermanncC_in_gga(x1, x2, x3) = ackermanncC_in_gga(x1, x2) U46_gga(x1, x2, x3) = U46_gga(x1, x3) ackermanncC_out_gga(x1, x2, x3) = ackermanncC_out_gga(x1, x2, x3) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) qcG_in_ggaa(x1, x2, x3, x4) = qcG_in_ggaa(x1, x2) U48_ggaa(x1, x2, x3, x4, x5) = U48_ggaa(x1, x2, x5) U49_ggaa(x1, x2, x3, x4, x5) = U49_ggaa(x1, x2, x3, x5) ackermanncE_in_gga(x1, x2, x3) = ackermanncE_in_gga(x1, x2) ackermanncE_out_gga(x1, x2, x3) = ackermanncE_out_gga(x1, x2, x3) U50_gga(x1, x2, x3) = U50_gga(x1, x3) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) qcG_out_ggaa(x1, x2, x3, x4) = qcG_out_ggaa(x1, x2, x3, x4) ACKERMANNA_IN_GGG(x1, x2, x3) = ACKERMANNA_IN_GGG(x1, x2, x3) U17_GGG(x1, x2, x3) = U17_GGG(x1, x2, x3) U20_GGG(x1, x2, x3, x4) = U20_GGG(x1, x2, x3, x4) U23_GGG(x1, x2, x3) = U23_GGG(x1, x2, x3) U26_GGG(x1, x2, x3, x4) = U26_GGG(x1, x2, x3, x4) U28_GGG(x1, x2, x3, x4) = U28_GGG(x1, x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (115) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (116) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> U17_GGG(X1, X2, ackermanncB_in_ga(X1)) U17_GGG(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2) ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> U20_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2)) U20_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> ACKERMANNA_IN_GGG(X1, X4, X3) ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> U23_GGG(X1, X2, ackermanncD_in_ga(X1)) U23_GGG(X1, X2, ackermanncD_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2) ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> U26_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2)) U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U28_GGG(X1, X2, X3, ackermanncE_in_gga(X1, X4)) U28_GGG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> ACKERMANNA_IN_GGG(X1, X5, X3) The TRS R consists of the following rules: ackermanncB_in_ga(X1) -> U40_ga(X1, ackermanncD_in_ga(X1)) ackermanncC_in_gga(X1, 0) -> U46_gga(X1, ackermanncD_in_ga(X1)) ackermanncC_in_gga(X1, s(X2)) -> U47_gga(X1, X2, qcG_in_ggaa(X1, X2)) ackermanncD_in_ga(0) -> ackermanncD_out_ga(0, s(s(0))) ackermanncD_in_ga(s(X1)) -> U41_ga(X1, ackermanncB_in_ga(X1)) ackermanncE_in_gga(0, X1) -> ackermanncE_out_gga(0, X1, s(X1)) ackermanncE_in_gga(s(X1), 0) -> U50_gga(X1, ackermanncD_in_ga(X1)) ackermanncE_in_gga(s(X1), s(X2)) -> U51_gga(X1, X2, qcG_in_ggaa(X1, X2)) U40_ga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2) U46_gga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2) U47_gga(X1, X2, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3) U41_ga(X1, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, ackermanncF_in_gga(X1, X3)) U50_gga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2) U51_gga(X1, X2, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3) qcG_in_ggaa(X1, X2) -> U48_ggaa(X1, X2, ackermanncC_in_gga(X1, X2)) U42_ga(X1, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2) U48_ggaa(X1, X2, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, ackermanncE_in_gga(X1, X3)) ackermanncF_in_gga(0, X1) -> ackermanncF_out_gga(0, X1, s(X1)) ackermanncF_in_gga(s(X1), 0) -> U43_gga(X1, ackermanncD_in_ga(X1)) ackermanncF_in_gga(s(X1), s(X2)) -> U44_gga(X1, X2, ackermanncF_in_gga(s(X1), X2)) U49_ggaa(X1, X2, X3, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4) U43_gga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2) U44_gga(X1, X2, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, ackermanncF_in_gga(X1, X4)) U45_gga(X1, X2, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3) The set Q consists of the following terms: ackermanncB_in_ga(x0) ackermanncC_in_gga(x0, x1) ackermanncD_in_ga(x0) ackermanncE_in_gga(x0, x1) U40_ga(x0, x1) U46_gga(x0, x1) U47_gga(x0, x1, x2) U41_ga(x0, x1) U50_gga(x0, x1) U51_gga(x0, x1, x2) qcG_in_ggaa(x0, x1) U42_ga(x0, x1) U48_ggaa(x0, x1, x2) ackermanncF_in_gga(x0, x1) U49_ggaa(x0, x1, x2, x3) U43_gga(x0, x1) U44_gga(x0, x1, x2) U45_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (117) 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: *U17_GGG(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2) The graph contains the following edges 1 >= 1, 3 > 1, 3 > 2, 2 >= 3 *ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> U17_GGG(X1, X2, ackermanncB_in_ga(X1)) The graph contains the following edges 1 > 1, 3 >= 2 *U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U28_GGG(X1, X2, X3, ackermanncE_in_gga(X1, X4)) The graph contains the following edges 1 >= 1, 4 > 1, 2 >= 2, 4 > 2, 3 >= 3 *U20_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> ACKERMANNA_IN_GGG(X1, X4, X3) The graph contains the following edges 1 >= 1, 4 > 1, 4 > 2, 3 >= 3 *ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> U20_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2)) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 *U23_GGG(X1, X2, ackermanncD_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2) The graph contains the following edges 1 >= 1, 3 > 1, 3 > 2, 2 >= 3 *U28_GGG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> ACKERMANNA_IN_GGG(X1, X5, X3) The graph contains the following edges 1 >= 1, 4 > 1, 4 > 2, 3 >= 3 *ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> U23_GGG(X1, X2, ackermanncD_in_ga(X1)) The graph contains the following edges 1 > 1, 3 >= 2 *ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> U26_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2)) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 ---------------------------------------- (118) YES ---------------------------------------- (119) PrologToTRSTransformerProof (SOUND) Transformed Prolog program to TRS. { "root": 1, "program": { "directives": [], "clauses": [ [ "(ackermann (0) N (s N))", null ], [ "(ackermann (s M) (0) Val)", "(ackermann M (s (0)) Val)" ], [ "(ackermann (s M) (s N) Val)", "(',' (ackermann (s M) N Val1) (ackermann M Val1 Val))" ] ] }, "graph": { "nodes": { "46": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T24) (0) X35) (ackermann T24 X35 T25))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T24", "T25" ], "free": ["X35"], "exprvars": [] } }, "47": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "type": "Nodes", "351": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T53) T54 X123) (ackermann T53 X123 X124))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T53", "T54" ], "free": [ "X124", "X123" ], "exprvars": [] } }, "353": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "277": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T35) (0) X81)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T35"], "free": ["X81"], "exprvars": [] } }, "278": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T35 T36 X82)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T35", "T36" ], "free": ["X82"], "exprvars": [] } }, "511": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T108) T110 X215)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T108"], "free": ["X215"], "exprvars": [] } }, "237": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T31 (s (0)) X59)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T31"], "free": ["X59"], "exprvars": [] } }, "512": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T108 T111 X216)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T108"], "free": ["X216"], "exprvars": [] } }, "513": { "goal": [ { "clause": 0, "scope": 8, "term": "(ackermann T108 T111 X216)" }, { "clause": 1, "scope": 8, "term": "(ackermann T108 T111 X216)" }, { "clause": 2, "scope": 8, "term": "(ackermann T108 T111 X216)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T108"], "free": ["X216"], "exprvars": [] } }, "514": { "goal": [{ "clause": 0, "scope": 8, "term": "(ackermann T108 T111 X216)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T108"], "free": ["X216"], "exprvars": [] } }, "515": { "goal": [ { "clause": 1, "scope": 8, "term": "(ackermann T108 T111 X216)" }, { "clause": 2, "scope": 8, "term": "(ackermann T108 T111 X216)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T108"], "free": ["X216"], "exprvars": [] } }, "516": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "517": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "51": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T24) (0) X35)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T24"], "free": ["X35"], "exprvars": [] } }, "518": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "52": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T24 T26 T25)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T24", "T25", "T26" ], "free": [], "exprvars": [] } }, "519": { "goal": [{ "clause": 1, "scope": 8, "term": "(ackermann T108 T111 X216)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T108"], "free": ["X216"], "exprvars": [] } }, "10": { "goal": [ { "clause": 1, "scope": 1, "term": "(ackermann T1 T2 T3)" }, { "clause": 2, "scope": 1, "term": "(ackermann T1 T2 T3)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T3" ], "free": [], "exprvars": [] } }, "11": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "13": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "15": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "19": { "goal": [{ "clause": 1, "scope": 1, "term": "(ackermann T1 T2 T3)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T3" ], "free": [], "exprvars": [] } }, "240": { "goal": [ { "clause": 0, "scope": 4, "term": "(ackermann T31 (s (0)) X59)" }, { "clause": 1, "scope": 4, "term": "(ackermann T31 (s (0)) X59)" }, { "clause": 2, "scope": 4, "term": "(ackermann T31 (s (0)) X59)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T31"], "free": ["X59"], "exprvars": [] } }, "361": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T53) T54 X123)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T53", "T54" ], "free": ["X123"], "exprvars": [] } }, "241": { "goal": [{ "clause": 0, "scope": 4, "term": "(ackermann T31 (s (0)) X59)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T31"], "free": ["X59"], "exprvars": [] } }, "362": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T53 T55 X124)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T53", "T55" ], "free": ["X124"], "exprvars": [] } }, "242": { "goal": [ { "clause": 1, "scope": 4, "term": "(ackermann T31 (s (0)) X59)" }, { "clause": 2, "scope": 4, "term": "(ackermann T31 (s (0)) X59)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T31"], "free": ["X59"], "exprvars": [] } }, "1": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T1 T2 T3)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T3" ], "free": [], "exprvars": [] } }, "366": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "520": { "goal": [{ "clause": 2, "scope": 8, "term": "(ackermann T108 T111 X216)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T108"], "free": ["X216"], "exprvars": [] } }, "246": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "368": { "goal": [ { "clause": 0, "scope": 6, "term": "(ackermann T24 T26 T25)" }, { "clause": 1, "scope": 6, "term": "(ackermann T24 T26 T25)" }, { "clause": 2, "scope": 6, "term": "(ackermann T24 T26 T25)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T24", "T25", "T26" ], "free": [], "exprvars": [] } }, "6": { "goal": [ { "clause": 0, "scope": 1, "term": "(ackermann T1 T2 T3)" }, { "clause": 1, "scope": 1, "term": "(ackermann T1 T2 T3)" }, { "clause": 2, "scope": 1, "term": "(ackermann T1 T2 T3)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T3" ], "free": [], "exprvars": [] } }, "248": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "249": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "327": { "goal": [ { "clause": 0, "scope": 5, "term": "(ackermann T35 T36 X82)" }, { "clause": 1, "scope": 5, "term": "(ackermann T35 T36 X82)" }, { "clause": 2, "scope": 5, "term": "(ackermann T35 T36 X82)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T35", "T36" ], "free": ["X82"], "exprvars": [] } }, "9": { "goal": [{ "clause": 0, "scope": 1, "term": "(ackermann T1 T2 T3)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T3" ], "free": [], "exprvars": [] } }, "328": { "goal": [{ "clause": 0, "scope": 5, "term": "(ackermann T35 T36 X82)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T35", "T36" ], "free": ["X82"], "exprvars": [] } }, "329": { "goal": [ { "clause": 1, "scope": 5, "term": "(ackermann T35 T36 X82)" }, { "clause": 2, "scope": 5, "term": "(ackermann T35 T36 X82)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T35", "T36" ], "free": ["X82"], "exprvars": [] } }, "527": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T123 (s (0)) X242)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T123"], "free": ["X242"], "exprvars": [] } }, "528": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "62": { "goal": [ { "clause": 0, "scope": 3, "term": "(ackermann (s T24) (0) X35)" }, { "clause": 1, "scope": 3, "term": "(ackermann (s T24) (0) X35)" }, { "clause": 2, "scope": 3, "term": "(ackermann (s T24) (0) X35)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T24"], "free": ["X35"], "exprvars": [] } }, "529": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T128) T130 X257) (ackermann T128 X257 X258))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T128"], "free": [ "X258", "X257" ], "exprvars": [] } }, "63": { "goal": [ { "clause": 1, "scope": 3, "term": "(ackermann (s T24) (0) X35)" }, { "clause": 2, "scope": 3, "term": "(ackermann (s T24) (0) X35)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T24"], "free": ["X35"], "exprvars": [] } }, "409": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T74 (s (0)) T75)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T74", "T75" ], "free": [], "exprvars": [] } }, "20": { "goal": [{ "clause": 2, "scope": 1, "term": "(ackermann T1 T2 T3)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T3" ], "free": [], "exprvars": [] } }, "21": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T17 (s (0)) T18)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T17", "T18" ], "free": [], "exprvars": [] } }, "22": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "250": { "goal": [{ "clause": 2, "scope": 4, "term": "(ackermann T31 (s (0)) X59)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T31"], "free": ["X59"], "exprvars": [] } }, "373": { "goal": [{ "clause": 0, "scope": 6, "term": "(ackermann T24 T26 T25)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T24", "T25", "T26" ], "free": [], "exprvars": [] } }, "330": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "374": { "goal": [ { "clause": 1, "scope": 6, "term": "(ackermann T24 T26 T25)" }, { "clause": 2, "scope": 6, "term": "(ackermann T24 T26 T25)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T24", "T25", "T26" ], "free": [], "exprvars": [] } }, "495": { "goal": [{ "clause": 1, "scope": 7, "term": "(ackermann (s T94) T97 X180)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": ["X180"], "exprvars": [] } }, "331": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "496": { "goal": [{ "clause": 2, "scope": 7, "term": "(ackermann (s T94) T97 X180)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": ["X180"], "exprvars": [] } }, "332": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "497": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T103 (s (0)) X200)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T103"], "free": ["X200"], "exprvars": [] } }, "530": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "333": { "goal": [{ "clause": 1, "scope": 5, "term": "(ackermann T35 T36 X82)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T35", "T36" ], "free": ["X82"], "exprvars": [] } }, "410": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "498": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "334": { "goal": [{ "clause": 2, "scope": 5, "term": "(ackermann T35 T36 X82)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T35", "T36" ], "free": ["X82"], "exprvars": [] } }, "378": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "455": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T94) T97 X180) (ackermann T94 X180 T96))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T94", "T96" ], "free": ["X180"], "exprvars": [] } }, "456": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "413": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T82) T83 X163) (ackermann T82 X163 T84))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T82", "T83", "T84" ], "free": ["X163"], "exprvars": [] } }, "457": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T94) T97 X180)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": ["X180"], "exprvars": [] } }, "414": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "458": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T94 T98 T96)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T94", "T96" ], "free": [], "exprvars": [] } }, "418": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T82) T83 X163)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T82", "T83" ], "free": ["X163"], "exprvars": [] } }, "419": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T82 T85 T84)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T82", "T84", "T85" ], "free": [], "exprvars": [] } }, "32": { "goal": [ { "clause": 0, "scope": 2, "term": "(ackermann T17 (s (0)) T18)" }, { "clause": 1, "scope": 2, "term": "(ackermann T17 (s (0)) T18)" }, { "clause": 2, "scope": 2, "term": "(ackermann T17 (s (0)) T18)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T17", "T18" ], "free": [], "exprvars": [] } }, "33": { "goal": [{ "clause": 0, "scope": 2, "term": "(ackermann T17 (s (0)) T18)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T17", "T18" ], "free": [], "exprvars": [] } }, "34": { "goal": [ { "clause": 1, "scope": 2, "term": "(ackermann T17 (s (0)) T18)" }, { "clause": 2, "scope": 2, "term": "(ackermann T17 (s (0)) T18)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T17", "T18" ], "free": [], "exprvars": [] } }, "37": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "38": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "39": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "380": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "382": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "461": { "goal": [ { "clause": 0, "scope": 7, "term": "(ackermann (s T94) T97 X180)" }, { "clause": 1, "scope": 7, "term": "(ackermann (s T94) T97 X180)" }, { "clause": 2, "scope": 7, "term": "(ackermann (s T94) T97 X180)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": ["X180"], "exprvars": [] } }, "264": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T35) (0) X81) (ackermann T35 X81 X82))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T35"], "free": [ "X82", "X81" ], "exprvars": [] } }, "385": { "goal": [{ "clause": 1, "scope": 6, "term": "(ackermann T24 T26 T25)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T24", "T25", "T26" ], "free": [], "exprvars": [] } }, "462": { "goal": [ { "clause": 1, "scope": 7, "term": "(ackermann (s T94) T97 X180)" }, { "clause": 2, "scope": 7, "term": "(ackermann (s T94) T97 X180)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": ["X180"], "exprvars": [] } }, "386": { "goal": [{ "clause": 2, "scope": 6, "term": "(ackermann T24 T26 T25)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T24", "T25", "T26" ], "free": [], "exprvars": [] } }, "266": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "224": { "goal": [{ "clause": 1, "scope": 3, "term": "(ackermann (s T24) (0) X35)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T24"], "free": ["X35"], "exprvars": [] } }, "345": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T48 (s (0)) X108)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T48"], "free": ["X108"], "exprvars": [] } }, "346": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "226": { "goal": [{ "clause": 2, "scope": 3, "term": "(ackermann (s T24) (0) X35)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T24"], "free": ["X35"], "exprvars": [] } }, "40": { "goal": [{ "clause": 2, "scope": 2, "term": "(ackermann T17 (s (0)) T18)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T17", "T18" ], "free": [], "exprvars": [] } }, "507": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T108) T110 X215) (ackermann T108 X215 X216))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T108"], "free": [ "X216", "X215" ], "exprvars": [] } }, "508": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 1, "to": 6, "label": "CASE" }, { "from": 6, "to": 9, "label": "PARALLEL" }, { "from": 6, "to": 10, "label": "PARALLEL" }, { "from": 9, "to": 11, "label": "EVAL with clause\nackermann(0, X5, s(X5)).\nand substitutionT1 -> 0,\nT2 -> T8,\nX5 -> T8,\nT3 -> s(T8)" }, { "from": 9, "to": 13, "label": "EVAL-BACKTRACK" }, { "from": 10, "to": 19, "label": "PARALLEL" }, { "from": 10, "to": 20, "label": "PARALLEL" }, { "from": 11, "to": 15, "label": "SUCCESS" }, { "from": 19, "to": 21, "label": "EVAL with clause\nackermann(s(X14), 0, X15) :- ackermann(X14, s(0), X15).\nand substitutionX14 -> T17,\nT1 -> s(T17),\nT2 -> 0,\nT3 -> T18,\nX15 -> T18" }, { "from": 19, "to": 22, "label": "EVAL-BACKTRACK" }, { "from": 20, "to": 455, "label": "EVAL with clause\nackermann(s(X177), s(X178), X179) :- ','(ackermann(s(X177), X178, X180), ackermann(X177, X180, X179)).\nand substitutionX177 -> T94,\nT1 -> s(T94),\nX178 -> T97,\nT2 -> s(T97),\nT3 -> T96,\nX179 -> T96,\nT95 -> T97" }, { "from": 20, "to": 456, "label": "EVAL-BACKTRACK" }, { "from": 21, "to": 32, "label": "CASE" }, { "from": 32, "to": 33, "label": "PARALLEL" }, { "from": 32, "to": 34, "label": "PARALLEL" }, { "from": 33, "to": 37, "label": "EVAL with clause\nackermann(0, X22, s(X22)).\nand substitutionT17 -> 0,\nX22 -> s(0),\nT18 -> s(s(0))" }, { "from": 33, "to": 38, "label": "EVAL-BACKTRACK" }, { "from": 34, "to": 40, "label": "BACKTRACK\nfor clause: ackermann(s(M), 0, Val) :- ackermann(M, s(0), Val)because of non-unification" }, { "from": 37, "to": 39, "label": "SUCCESS" }, { "from": 40, "to": 46, "label": "EVAL with clause\nackermann(s(X32), s(X33), X34) :- ','(ackermann(s(X32), X33, X35), ackermann(X32, X35, X34)).\nand substitutionX32 -> T24,\nT17 -> s(T24),\nX33 -> 0,\nT18 -> T25,\nX34 -> T25" }, { "from": 40, "to": 47, "label": "EVAL-BACKTRACK" }, { "from": 46, "to": 51, "label": "SPLIT 1" }, { "from": 46, "to": 52, "label": "SPLIT 2\nnew knowledge:\nT24 is ground\nT26 is ground\nreplacements:X35 -> T26" }, { "from": 51, "to": 62, "label": "CASE" }, { "from": 52, "to": 368, "label": "CASE" }, { "from": 62, "to": 63, "label": "BACKTRACK\nfor clause: ackermann(0, N, s(N))because of non-unification" }, { "from": 63, "to": 224, "label": "PARALLEL" }, { "from": 63, "to": 226, "label": "PARALLEL" }, { "from": 224, "to": 237, "label": "ONLY EVAL with clause\nackermann(s(X57), 0, X58) :- ackermann(X57, s(0), X58).\nand substitutionT24 -> T31,\nX57 -> T31,\nX35 -> X59,\nX58 -> X59" }, { "from": 226, "to": 366, "label": "BACKTRACK\nfor clause: ackermann(s(M), s(N), Val) :- ','(ackermann(s(M), N, Val1), ackermann(M, Val1, Val))because of non-unification" }, { "from": 237, "to": 240, "label": "CASE" }, { "from": 240, "to": 241, "label": "PARALLEL" }, { "from": 240, "to": 242, "label": "PARALLEL" }, { "from": 241, "to": 246, "label": "EVAL with clause\nackermann(0, X66, s(X66)).\nand substitutionT31 -> 0,\nX66 -> s(0),\nX59 -> s(s(0))" }, { "from": 241, "to": 248, "label": "EVAL-BACKTRACK" }, { "from": 242, "to": 250, "label": "BACKTRACK\nfor clause: ackermann(s(M), 0, Val) :- ackermann(M, s(0), Val)because of non-unification" }, { "from": 246, "to": 249, "label": "SUCCESS" }, { "from": 250, "to": 264, "label": "EVAL with clause\nackermann(s(X78), s(X79), X80) :- ','(ackermann(s(X78), X79, X81), ackermann(X78, X81, X80)).\nand substitutionX78 -> T35,\nT31 -> s(T35),\nX79 -> 0,\nX59 -> X82,\nX80 -> X82" }, { "from": 250, "to": 266, "label": "EVAL-BACKTRACK" }, { "from": 264, "to": 277, "label": "SPLIT 1" }, { "from": 264, "to": 278, "label": "SPLIT 2\nnew knowledge:\nT35 is ground\nT36 is ground\nreplacements:X81 -> T36" }, { "from": 277, "to": 51, "label": "INSTANCE with matching:\nT24 -> T35\nX35 -> X81" }, { "from": 278, "to": 327, "label": "CASE" }, { "from": 327, "to": 328, "label": "PARALLEL" }, { "from": 327, "to": 329, "label": "PARALLEL" }, { "from": 328, "to": 330, "label": "EVAL with clause\nackermann(0, X93, s(X93)).\nand substitutionT35 -> 0,\nT36 -> T43,\nX93 -> T43,\nX82 -> s(T43)" }, { "from": 328, "to": 331, "label": "EVAL-BACKTRACK" }, { "from": 329, "to": 333, "label": "PARALLEL" }, { "from": 329, "to": 334, "label": "PARALLEL" }, { "from": 330, "to": 332, "label": "SUCCESS" }, { "from": 333, "to": 345, "label": "EVAL with clause\nackermann(s(X106), 0, X107) :- ackermann(X106, s(0), X107).\nand substitutionX106 -> T48,\nT35 -> s(T48),\nT36 -> 0,\nX82 -> X108,\nX107 -> X108" }, { "from": 333, "to": 346, "label": "EVAL-BACKTRACK" }, { "from": 334, "to": 351, "label": "EVAL with clause\nackermann(s(X120), s(X121), X122) :- ','(ackermann(s(X120), X121, X123), ackermann(X120, X123, X122)).\nand substitutionX120 -> T53,\nT35 -> s(T53),\nX121 -> T54,\nT36 -> s(T54),\nX82 -> X124,\nX122 -> X124" }, { "from": 334, "to": 353, "label": "EVAL-BACKTRACK" }, { "from": 345, "to": 237, "label": "INSTANCE with matching:\nT31 -> T48\nX59 -> X108" }, { "from": 351, "to": 361, "label": "SPLIT 1" }, { "from": 351, "to": 362, "label": "SPLIT 2\nnew knowledge:\nT53 is ground\nT54 is ground\nT55 is ground\nreplacements:X123 -> T55" }, { "from": 361, "to": 278, "label": "INSTANCE with matching:\nT35 -> s(T53)\nT36 -> T54\nX82 -> X123" }, { "from": 362, "to": 278, "label": "INSTANCE with matching:\nT35 -> T53\nT36 -> T55\nX82 -> X124" }, { "from": 368, "to": 373, "label": "PARALLEL" }, { "from": 368, "to": 374, "label": "PARALLEL" }, { "from": 373, "to": 378, "label": "EVAL with clause\nackermann(0, X140, s(X140)).\nand substitutionT24 -> 0,\nT26 -> T65,\nX140 -> T65,\nT25 -> s(T65)" }, { "from": 373, "to": 380, "label": "EVAL-BACKTRACK" }, { "from": 374, "to": 385, "label": "PARALLEL" }, { "from": 374, "to": 386, "label": "PARALLEL" }, { "from": 378, "to": 382, "label": "SUCCESS" }, { "from": 385, "to": 409, "label": "EVAL with clause\nackermann(s(X149), 0, X150) :- ackermann(X149, s(0), X150).\nand substitutionX149 -> T74,\nT24 -> s(T74),\nT26 -> 0,\nT25 -> T75,\nX150 -> T75" }, { "from": 385, "to": 410, "label": "EVAL-BACKTRACK" }, { "from": 386, "to": 413, "label": "EVAL with clause\nackermann(s(X160), s(X161), X162) :- ','(ackermann(s(X160), X161, X163), ackermann(X160, X163, X162)).\nand substitutionX160 -> T82,\nT24 -> s(T82),\nX161 -> T83,\nT26 -> s(T83),\nT25 -> T84,\nX162 -> T84" }, { "from": 386, "to": 414, "label": "EVAL-BACKTRACK" }, { "from": 409, "to": 21, "label": "INSTANCE with matching:\nT17 -> T74\nT18 -> T75" }, { "from": 413, "to": 418, "label": "SPLIT 1" }, { "from": 413, "to": 419, "label": "SPLIT 2\nnew knowledge:\nT82 is ground\nT83 is ground\nT85 is ground\nreplacements:X163 -> T85" }, { "from": 418, "to": 278, "label": "INSTANCE with matching:\nT35 -> s(T82)\nT36 -> T83\nX82 -> X163" }, { "from": 419, "to": 52, "label": "INSTANCE with matching:\nT24 -> T82\nT26 -> T85\nT25 -> T84" }, { "from": 455, "to": 457, "label": "SPLIT 1" }, { "from": 455, "to": 458, "label": "SPLIT 2\nnew knowledge:\nT94 is ground\nreplacements:X180 -> T98" }, { "from": 457, "to": 461, "label": "CASE" }, { "from": 458, "to": 1, "label": "INSTANCE with matching:\nT1 -> T94\nT2 -> T98\nT3 -> T96" }, { "from": 461, "to": 462, "label": "BACKTRACK\nfor clause: ackermann(0, N, s(N))because of non-unification" }, { "from": 462, "to": 495, "label": "PARALLEL" }, { "from": 462, "to": 496, "label": "PARALLEL" }, { "from": 495, "to": 497, "label": "EVAL with clause\nackermann(s(X198), 0, X199) :- ackermann(X198, s(0), X199).\nand substitutionT94 -> T103,\nX198 -> T103,\nT97 -> 0,\nX180 -> X200,\nX199 -> X200" }, { "from": 495, "to": 498, "label": "EVAL-BACKTRACK" }, { "from": 496, "to": 507, "label": "EVAL with clause\nackermann(s(X212), s(X213), X214) :- ','(ackermann(s(X212), X213, X215), ackermann(X212, X215, X214)).\nand substitutionT94 -> T108,\nX212 -> T108,\nX213 -> T110,\nT97 -> s(T110),\nX180 -> X216,\nX214 -> X216,\nT109 -> T110" }, { "from": 496, "to": 508, "label": "EVAL-BACKTRACK" }, { "from": 497, "to": 237, "label": "INSTANCE with matching:\nT31 -> T103\nX59 -> X200" }, { "from": 507, "to": 511, "label": "SPLIT 1" }, { "from": 507, "to": 512, "label": "SPLIT 2\nnew knowledge:\nT108 is ground\nreplacements:X215 -> T111" }, { "from": 511, "to": 457, "label": "INSTANCE with matching:\nT94 -> T108\nT97 -> T110\nX180 -> X215" }, { "from": 512, "to": 513, "label": "CASE" }, { "from": 513, "to": 514, "label": "PARALLEL" }, { "from": 513, "to": 515, "label": "PARALLEL" }, { "from": 514, "to": 516, "label": "EVAL with clause\nackermann(0, X227, s(X227)).\nand substitutionT108 -> 0,\nT111 -> T118,\nX227 -> T118,\nX216 -> s(T118)" }, { "from": 514, "to": 517, "label": "EVAL-BACKTRACK" }, { "from": 515, "to": 519, "label": "PARALLEL" }, { "from": 515, "to": 520, "label": "PARALLEL" }, { "from": 516, "to": 518, "label": "SUCCESS" }, { "from": 519, "to": 527, "label": "EVAL with clause\nackermann(s(X240), 0, X241) :- ackermann(X240, s(0), X241).\nand substitutionX240 -> T123,\nT108 -> s(T123),\nT111 -> 0,\nX216 -> X242,\nX241 -> X242" }, { "from": 519, "to": 528, "label": "EVAL-BACKTRACK" }, { "from": 520, "to": 529, "label": "EVAL with clause\nackermann(s(X254), s(X255), X256) :- ','(ackermann(s(X254), X255, X257), ackermann(X254, X257, X256)).\nand substitutionX254 -> T128,\nT108 -> s(T128),\nX255 -> T130,\nT111 -> s(T130),\nX216 -> X258,\nX256 -> X258,\nT129 -> T130" }, { "from": 520, "to": 530, "label": "EVAL-BACKTRACK" }, { "from": 527, "to": 237, "label": "INSTANCE with matching:\nT31 -> T123\nX59 -> X242" }, { "from": 529, "to": 507, "label": "INSTANCE with matching:\nT108 -> T128\nT110 -> T130\nX215 -> X257\nX216 -> X258" } ], "type": "Graph" } } ---------------------------------------- (120) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: f1_in(0, s(T8)) -> f1_out1 f1_in(s(T17), T18) -> U1(f21_in(T17, T18), s(T17), T18) U1(f21_out1, s(T17), T18) -> f1_out1 f1_in(s(T94), T96) -> U2(f455_in(T94, T96), s(T94), T96) U2(f455_out1, s(T94), T96) -> f1_out1 f51_in(T31) -> U3(f237_in(T31), T31) U3(f237_out1(X59), T31) -> f51_out1(X59) f237_in(0) -> f237_out1(s(s(0))) f237_in(s(T35)) -> U4(f264_in(T35), s(T35)) U4(f264_out1(X81, X82), s(T35)) -> f237_out1(X82) f278_in(0, T43) -> f278_out1(s(T43)) f278_in(s(T48), 0) -> U5(f237_in(T48), s(T48), 0) U5(f237_out1(X108), s(T48), 0) -> f278_out1(X108) f278_in(s(T53), s(T54)) -> U6(f351_in(T53, T54), s(T53), s(T54)) U6(f351_out1(X123, X124), s(T53), s(T54)) -> f278_out1(X124) f21_in(0, s(s(0))) -> f21_out1 f21_in(s(T24), T25) -> U7(f46_in(T24, T25), s(T24), T25) U7(f46_out1(X35), s(T24), T25) -> f21_out1 f52_in(0, T65, s(T65)) -> f52_out1 f52_in(s(T74), 0, T75) -> U8(f21_in(T74, T75), s(T74), 0, T75) U8(f21_out1, s(T74), 0, T75) -> f52_out1 f52_in(s(T82), s(T83), T84) -> U9(f413_in(T82, T83, T84), s(T82), s(T83), T84) U9(f413_out1(X163), s(T82), s(T83), T84) -> f52_out1 f457_in(T103) -> U10(f237_in(T103), T103) U10(f237_out1(X200), T103) -> f457_out1 f457_in(T108) -> U11(f507_in(T108), T108) U11(f507_out1, T108) -> f457_out1 f512_in(0) -> f512_out1 f512_in(s(T123)) -> U12(f237_in(T123), s(T123)) U12(f237_out1(X242), s(T123)) -> f512_out1 f512_in(s(T128)) -> U13(f507_in(T128), s(T128)) U13(f507_out1, s(T128)) -> f512_out1 f46_in(T24, T25) -> U14(f51_in(T24), T24, T25) U14(f51_out1(T26), T24, T25) -> U15(f52_in(T24, T26, T25), T24, T25, T26) U15(f52_out1, T24, T25, T26) -> f46_out1(T26) f264_in(T35) -> U16(f51_in(T35), T35) U16(f51_out1(T36), T35) -> U17(f278_in(T35, T36), T35, T36) U17(f278_out1(X82), T35, T36) -> f264_out1(T36, X82) f351_in(T53, T54) -> U18(f278_in(s(T53), T54), T53, T54) U18(f278_out1(T55), T53, T54) -> U19(f278_in(T53, T55), T53, T54, T55) U19(f278_out1(X124), T53, T54, T55) -> f351_out1(T55, X124) f413_in(T82, T83, T84) -> U20(f278_in(s(T82), T83), T82, T83, T84) U20(f278_out1(T85), T82, T83, T84) -> U21(f52_in(T82, T85, T84), T82, T83, T84, T85) U21(f52_out1, T82, T83, T84, T85) -> f413_out1(T85) f455_in(T94, T96) -> U22(f457_in(T94), T94, T96) U22(f457_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96) U23(f1_out1, T94, T96) -> f455_out1 f507_in(T108) -> U24(f457_in(T108), T108) U24(f457_out1, T108) -> U25(f512_in(T108), T108) U25(f512_out1, T108) -> f507_out1 Q is empty. ---------------------------------------- (121) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (122) Obligation: Q DP problem: The TRS P consists of the following rules: F1_IN(s(T17), T18) -> U1^1(f21_in(T17, T18), s(T17), T18) F1_IN(s(T17), T18) -> F21_IN(T17, T18) F1_IN(s(T94), T96) -> U2^1(f455_in(T94, T96), s(T94), T96) F1_IN(s(T94), T96) -> F455_IN(T94, T96) F51_IN(T31) -> U3^1(f237_in(T31), T31) F51_IN(T31) -> F237_IN(T31) F237_IN(s(T35)) -> U4^1(f264_in(T35), s(T35)) F237_IN(s(T35)) -> F264_IN(T35) F278_IN(s(T48), 0) -> U5^1(f237_in(T48), s(T48), 0) F278_IN(s(T48), 0) -> F237_IN(T48) F278_IN(s(T53), s(T54)) -> U6^1(f351_in(T53, T54), s(T53), s(T54)) F278_IN(s(T53), s(T54)) -> F351_IN(T53, T54) F21_IN(s(T24), T25) -> U7^1(f46_in(T24, T25), s(T24), T25) F21_IN(s(T24), T25) -> F46_IN(T24, T25) F52_IN(s(T74), 0, T75) -> U8^1(f21_in(T74, T75), s(T74), 0, T75) F52_IN(s(T74), 0, T75) -> F21_IN(T74, T75) F52_IN(s(T82), s(T83), T84) -> U9^1(f413_in(T82, T83, T84), s(T82), s(T83), T84) F52_IN(s(T82), s(T83), T84) -> F413_IN(T82, T83, T84) F457_IN(T103) -> U10^1(f237_in(T103), T103) F457_IN(T103) -> F237_IN(T103) F457_IN(T108) -> U11^1(f507_in(T108), T108) F457_IN(T108) -> F507_IN(T108) F512_IN(s(T123)) -> U12^1(f237_in(T123), s(T123)) F512_IN(s(T123)) -> F237_IN(T123) F512_IN(s(T128)) -> U13^1(f507_in(T128), s(T128)) F512_IN(s(T128)) -> F507_IN(T128) F46_IN(T24, T25) -> U14^1(f51_in(T24), T24, T25) F46_IN(T24, T25) -> F51_IN(T24) U14^1(f51_out1(T26), T24, T25) -> U15^1(f52_in(T24, T26, T25), T24, T25, T26) U14^1(f51_out1(T26), T24, T25) -> F52_IN(T24, T26, T25) F264_IN(T35) -> U16^1(f51_in(T35), T35) F264_IN(T35) -> F51_IN(T35) U16^1(f51_out1(T36), T35) -> U17^1(f278_in(T35, T36), T35, T36) U16^1(f51_out1(T36), T35) -> F278_IN(T35, T36) F351_IN(T53, T54) -> U18^1(f278_in(s(T53), T54), T53, T54) F351_IN(T53, T54) -> F278_IN(s(T53), T54) U18^1(f278_out1(T55), T53, T54) -> U19^1(f278_in(T53, T55), T53, T54, T55) U18^1(f278_out1(T55), T53, T54) -> F278_IN(T53, T55) F413_IN(T82, T83, T84) -> U20^1(f278_in(s(T82), T83), T82, T83, T84) F413_IN(T82, T83, T84) -> F278_IN(s(T82), T83) U20^1(f278_out1(T85), T82, T83, T84) -> U21^1(f52_in(T82, T85, T84), T82, T83, T84, T85) U20^1(f278_out1(T85), T82, T83, T84) -> F52_IN(T82, T85, T84) F455_IN(T94, T96) -> U22^1(f457_in(T94), T94, T96) F455_IN(T94, T96) -> F457_IN(T94) U22^1(f457_out1, T94, T96) -> U23^1(f1_in(T94, T96), T94, T96) U22^1(f457_out1, T94, T96) -> F1_IN(T94, T96) F507_IN(T108) -> U24^1(f457_in(T108), T108) F507_IN(T108) -> F457_IN(T108) U24^1(f457_out1, T108) -> U25^1(f512_in(T108), T108) U24^1(f457_out1, T108) -> F512_IN(T108) The TRS R consists of the following rules: f1_in(0, s(T8)) -> f1_out1 f1_in(s(T17), T18) -> U1(f21_in(T17, T18), s(T17), T18) U1(f21_out1, s(T17), T18) -> f1_out1 f1_in(s(T94), T96) -> U2(f455_in(T94, T96), s(T94), T96) U2(f455_out1, s(T94), T96) -> f1_out1 f51_in(T31) -> U3(f237_in(T31), T31) U3(f237_out1(X59), T31) -> f51_out1(X59) f237_in(0) -> f237_out1(s(s(0))) f237_in(s(T35)) -> U4(f264_in(T35), s(T35)) U4(f264_out1(X81, X82), s(T35)) -> f237_out1(X82) f278_in(0, T43) -> f278_out1(s(T43)) f278_in(s(T48), 0) -> U5(f237_in(T48), s(T48), 0) U5(f237_out1(X108), s(T48), 0) -> f278_out1(X108) f278_in(s(T53), s(T54)) -> U6(f351_in(T53, T54), s(T53), s(T54)) U6(f351_out1(X123, X124), s(T53), s(T54)) -> f278_out1(X124) f21_in(0, s(s(0))) -> f21_out1 f21_in(s(T24), T25) -> U7(f46_in(T24, T25), s(T24), T25) U7(f46_out1(X35), s(T24), T25) -> f21_out1 f52_in(0, T65, s(T65)) -> f52_out1 f52_in(s(T74), 0, T75) -> U8(f21_in(T74, T75), s(T74), 0, T75) U8(f21_out1, s(T74), 0, T75) -> f52_out1 f52_in(s(T82), s(T83), T84) -> U9(f413_in(T82, T83, T84), s(T82), s(T83), T84) U9(f413_out1(X163), s(T82), s(T83), T84) -> f52_out1 f457_in(T103) -> U10(f237_in(T103), T103) U10(f237_out1(X200), T103) -> f457_out1 f457_in(T108) -> U11(f507_in(T108), T108) U11(f507_out1, T108) -> f457_out1 f512_in(0) -> f512_out1 f512_in(s(T123)) -> U12(f237_in(T123), s(T123)) U12(f237_out1(X242), s(T123)) -> f512_out1 f512_in(s(T128)) -> U13(f507_in(T128), s(T128)) U13(f507_out1, s(T128)) -> f512_out1 f46_in(T24, T25) -> U14(f51_in(T24), T24, T25) U14(f51_out1(T26), T24, T25) -> U15(f52_in(T24, T26, T25), T24, T25, T26) U15(f52_out1, T24, T25, T26) -> f46_out1(T26) f264_in(T35) -> U16(f51_in(T35), T35) U16(f51_out1(T36), T35) -> U17(f278_in(T35, T36), T35, T36) U17(f278_out1(X82), T35, T36) -> f264_out1(T36, X82) f351_in(T53, T54) -> U18(f278_in(s(T53), T54), T53, T54) U18(f278_out1(T55), T53, T54) -> U19(f278_in(T53, T55), T53, T54, T55) U19(f278_out1(X124), T53, T54, T55) -> f351_out1(T55, X124) f413_in(T82, T83, T84) -> U20(f278_in(s(T82), T83), T82, T83, T84) U20(f278_out1(T85), T82, T83, T84) -> U21(f52_in(T82, T85, T84), T82, T83, T84, T85) U21(f52_out1, T82, T83, T84, T85) -> f413_out1(T85) f455_in(T94, T96) -> U22(f457_in(T94), T94, T96) U22(f457_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96) U23(f1_out1, T94, T96) -> f455_out1 f507_in(T108) -> U24(f457_in(T108), T108) U24(f457_out1, T108) -> U25(f512_in(T108), T108) U25(f512_out1, T108) -> f507_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (123) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 4 SCCs with 25 less nodes. ---------------------------------------- (124) Complex Obligation (AND) ---------------------------------------- (125) Obligation: Q DP problem: The TRS P consists of the following rules: F51_IN(T31) -> F237_IN(T31) F237_IN(s(T35)) -> F264_IN(T35) F264_IN(T35) -> U16^1(f51_in(T35), T35) U16^1(f51_out1(T36), T35) -> F278_IN(T35, T36) F278_IN(s(T48), 0) -> F237_IN(T48) F278_IN(s(T53), s(T54)) -> F351_IN(T53, T54) F351_IN(T53, T54) -> U18^1(f278_in(s(T53), T54), T53, T54) U18^1(f278_out1(T55), T53, T54) -> F278_IN(T53, T55) F351_IN(T53, T54) -> F278_IN(s(T53), T54) F264_IN(T35) -> F51_IN(T35) The TRS R consists of the following rules: f1_in(0, s(T8)) -> f1_out1 f1_in(s(T17), T18) -> U1(f21_in(T17, T18), s(T17), T18) U1(f21_out1, s(T17), T18) -> f1_out1 f1_in(s(T94), T96) -> U2(f455_in(T94, T96), s(T94), T96) U2(f455_out1, s(T94), T96) -> f1_out1 f51_in(T31) -> U3(f237_in(T31), T31) U3(f237_out1(X59), T31) -> f51_out1(X59) f237_in(0) -> f237_out1(s(s(0))) f237_in(s(T35)) -> U4(f264_in(T35), s(T35)) U4(f264_out1(X81, X82), s(T35)) -> f237_out1(X82) f278_in(0, T43) -> f278_out1(s(T43)) f278_in(s(T48), 0) -> U5(f237_in(T48), s(T48), 0) U5(f237_out1(X108), s(T48), 0) -> f278_out1(X108) f278_in(s(T53), s(T54)) -> U6(f351_in(T53, T54), s(T53), s(T54)) U6(f351_out1(X123, X124), s(T53), s(T54)) -> f278_out1(X124) f21_in(0, s(s(0))) -> f21_out1 f21_in(s(T24), T25) -> U7(f46_in(T24, T25), s(T24), T25) U7(f46_out1(X35), s(T24), T25) -> f21_out1 f52_in(0, T65, s(T65)) -> f52_out1 f52_in(s(T74), 0, T75) -> U8(f21_in(T74, T75), s(T74), 0, T75) U8(f21_out1, s(T74), 0, T75) -> f52_out1 f52_in(s(T82), s(T83), T84) -> U9(f413_in(T82, T83, T84), s(T82), s(T83), T84) U9(f413_out1(X163), s(T82), s(T83), T84) -> f52_out1 f457_in(T103) -> U10(f237_in(T103), T103) U10(f237_out1(X200), T103) -> f457_out1 f457_in(T108) -> U11(f507_in(T108), T108) U11(f507_out1, T108) -> f457_out1 f512_in(0) -> f512_out1 f512_in(s(T123)) -> U12(f237_in(T123), s(T123)) U12(f237_out1(X242), s(T123)) -> f512_out1 f512_in(s(T128)) -> U13(f507_in(T128), s(T128)) U13(f507_out1, s(T128)) -> f512_out1 f46_in(T24, T25) -> U14(f51_in(T24), T24, T25) U14(f51_out1(T26), T24, T25) -> U15(f52_in(T24, T26, T25), T24, T25, T26) U15(f52_out1, T24, T25, T26) -> f46_out1(T26) f264_in(T35) -> U16(f51_in(T35), T35) U16(f51_out1(T36), T35) -> U17(f278_in(T35, T36), T35, T36) U17(f278_out1(X82), T35, T36) -> f264_out1(T36, X82) f351_in(T53, T54) -> U18(f278_in(s(T53), T54), T53, T54) U18(f278_out1(T55), T53, T54) -> U19(f278_in(T53, T55), T53, T54, T55) U19(f278_out1(X124), T53, T54, T55) -> f351_out1(T55, X124) f413_in(T82, T83, T84) -> U20(f278_in(s(T82), T83), T82, T83, T84) U20(f278_out1(T85), T82, T83, T84) -> U21(f52_in(T82, T85, T84), T82, T83, T84, T85) U21(f52_out1, T82, T83, T84, T85) -> f413_out1(T85) f455_in(T94, T96) -> U22(f457_in(T94), T94, T96) U22(f457_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96) U23(f1_out1, T94, T96) -> f455_out1 f507_in(T108) -> U24(f457_in(T108), T108) U24(f457_out1, T108) -> U25(f512_in(T108), T108) U25(f512_out1, T108) -> f507_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (126) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. F51_IN(T31) -> F237_IN(T31) F237_IN(s(T35)) -> F264_IN(T35) U16^1(f51_out1(T36), T35) -> F278_IN(T35, T36) F264_IN(T35) -> F51_IN(T35) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( U16^1_2(x_1, x_2) ) = 2x_1 + x_2 + 2 POL( U18^1_3(x_1, ..., x_3) ) = x_2 POL( f51_in_1(x_1) ) = 0 POL( U3_2(x_1, x_2) ) = 0 POL( f237_in_1(x_1) ) = x_1 POL( f278_in_2(x_1, x_2) ) = max{0, x_1 + 2x_2 - 2} POL( s_1(x_1) ) = 2x_1 + 2 POL( 0 ) = 2 POL( U5_3(x_1, ..., x_3) ) = 2x_1 POL( U6_3(x_1, ..., x_3) ) = 2 POL( f351_in_2(x_1, x_2) ) = 2x_1 + 2 POL( U4_2(x_1, x_2) ) = 2 POL( f264_in_1(x_1) ) = x_1 + 2 POL( f264_out1_2(x_1, x_2) ) = 0 POL( f237_out1_1(x_1) ) = 1 POL( U16_2(x_1, x_2) ) = 2 POL( f51_out1_1(x_1) ) = 0 POL( U17_3(x_1, ..., x_3) ) = 0 POL( U19_4(x_1, ..., x_4) ) = 0 POL( f278_out1_1(x_1) ) = 2 POL( f351_out1_2(x_1, x_2) ) = 0 POL( U18_3(x_1, ..., x_3) ) = 2x_2 POL( F51_IN_1(x_1) ) = 2x_1 + 1 POL( F237_IN_1(x_1) ) = 2x_1 POL( F264_IN_1(x_1) ) = 2x_1 + 2 POL( F278_IN_2(x_1, x_2) ) = max{0, x_1 - 2} POL( F351_IN_2(x_1, x_2) ) = 2x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: f51_in(T31) -> U3(f237_in(T31), T31) f278_in(s(T48), 0) -> U5(f237_in(T48), s(T48), 0) f278_in(s(T53), s(T54)) -> U6(f351_in(T53, T54), s(T53), s(T54)) f237_in(s(T35)) -> U4(f264_in(T35), s(T35)) U4(f264_out1(X81, X82), s(T35)) -> f237_out1(X82) f264_in(T35) -> U16(f51_in(T35), T35) f237_in(0) -> f237_out1(s(s(0))) U3(f237_out1(X59), T31) -> f51_out1(X59) U16(f51_out1(T36), T35) -> U17(f278_in(T35, T36), T35, T36) U17(f278_out1(X82), T35, T36) -> f264_out1(T36, X82) U5(f237_out1(X108), s(T48), 0) -> f278_out1(X108) U6(f351_out1(X123, X124), s(T53), s(T54)) -> f278_out1(X124) f351_in(T53, T54) -> U18(f278_in(s(T53), T54), T53, T54) U18(f278_out1(T55), T53, T54) -> U19(f278_in(T53, T55), T53, T54, T55) U19(f278_out1(X124), T53, T54, T55) -> f351_out1(T55, X124) ---------------------------------------- (127) Obligation: Q DP problem: The TRS P consists of the following rules: F264_IN(T35) -> U16^1(f51_in(T35), T35) F278_IN(s(T48), 0) -> F237_IN(T48) F278_IN(s(T53), s(T54)) -> F351_IN(T53, T54) F351_IN(T53, T54) -> U18^1(f278_in(s(T53), T54), T53, T54) U18^1(f278_out1(T55), T53, T54) -> F278_IN(T53, T55) F351_IN(T53, T54) -> F278_IN(s(T53), T54) The TRS R consists of the following rules: f1_in(0, s(T8)) -> f1_out1 f1_in(s(T17), T18) -> U1(f21_in(T17, T18), s(T17), T18) U1(f21_out1, s(T17), T18) -> f1_out1 f1_in(s(T94), T96) -> U2(f455_in(T94, T96), s(T94), T96) U2(f455_out1, s(T94), T96) -> f1_out1 f51_in(T31) -> U3(f237_in(T31), T31) U3(f237_out1(X59), T31) -> f51_out1(X59) f237_in(0) -> f237_out1(s(s(0))) f237_in(s(T35)) -> U4(f264_in(T35), s(T35)) U4(f264_out1(X81, X82), s(T35)) -> f237_out1(X82) f278_in(0, T43) -> f278_out1(s(T43)) f278_in(s(T48), 0) -> U5(f237_in(T48), s(T48), 0) U5(f237_out1(X108), s(T48), 0) -> f278_out1(X108) f278_in(s(T53), s(T54)) -> U6(f351_in(T53, T54), s(T53), s(T54)) U6(f351_out1(X123, X124), s(T53), s(T54)) -> f278_out1(X124) f21_in(0, s(s(0))) -> f21_out1 f21_in(s(T24), T25) -> U7(f46_in(T24, T25), s(T24), T25) U7(f46_out1(X35), s(T24), T25) -> f21_out1 f52_in(0, T65, s(T65)) -> f52_out1 f52_in(s(T74), 0, T75) -> U8(f21_in(T74, T75), s(T74), 0, T75) U8(f21_out1, s(T74), 0, T75) -> f52_out1 f52_in(s(T82), s(T83), T84) -> U9(f413_in(T82, T83, T84), s(T82), s(T83), T84) U9(f413_out1(X163), s(T82), s(T83), T84) -> f52_out1 f457_in(T103) -> U10(f237_in(T103), T103) U10(f237_out1(X200), T103) -> f457_out1 f457_in(T108) -> U11(f507_in(T108), T108) U11(f507_out1, T108) -> f457_out1 f512_in(0) -> f512_out1 f512_in(s(T123)) -> U12(f237_in(T123), s(T123)) U12(f237_out1(X242), s(T123)) -> f512_out1 f512_in(s(T128)) -> U13(f507_in(T128), s(T128)) U13(f507_out1, s(T128)) -> f512_out1 f46_in(T24, T25) -> U14(f51_in(T24), T24, T25) U14(f51_out1(T26), T24, T25) -> U15(f52_in(T24, T26, T25), T24, T25, T26) U15(f52_out1, T24, T25, T26) -> f46_out1(T26) f264_in(T35) -> U16(f51_in(T35), T35) U16(f51_out1(T36), T35) -> U17(f278_in(T35, T36), T35, T36) U17(f278_out1(X82), T35, T36) -> f264_out1(T36, X82) f351_in(T53, T54) -> U18(f278_in(s(T53), T54), T53, T54) U18(f278_out1(T55), T53, T54) -> U19(f278_in(T53, T55), T53, T54, T55) U19(f278_out1(X124), T53, T54, T55) -> f351_out1(T55, X124) f413_in(T82, T83, T84) -> U20(f278_in(s(T82), T83), T82, T83, T84) U20(f278_out1(T85), T82, T83, T84) -> U21(f52_in(T82, T85, T84), T82, T83, T84, T85) U21(f52_out1, T82, T83, T84, T85) -> f413_out1(T85) f455_in(T94, T96) -> U22(f457_in(T94), T94, T96) U22(f457_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96) U23(f1_out1, T94, T96) -> f455_out1 f507_in(T108) -> U24(f457_in(T108), T108) U24(f457_out1, T108) -> U25(f512_in(T108), T108) U25(f512_out1, T108) -> f507_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (128) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (129) Obligation: Q DP problem: The TRS P consists of the following rules: F278_IN(s(T53), s(T54)) -> F351_IN(T53, T54) F351_IN(T53, T54) -> U18^1(f278_in(s(T53), T54), T53, T54) U18^1(f278_out1(T55), T53, T54) -> F278_IN(T53, T55) F351_IN(T53, T54) -> F278_IN(s(T53), T54) The TRS R consists of the following rules: f1_in(0, s(T8)) -> f1_out1 f1_in(s(T17), T18) -> U1(f21_in(T17, T18), s(T17), T18) U1(f21_out1, s(T17), T18) -> f1_out1 f1_in(s(T94), T96) -> U2(f455_in(T94, T96), s(T94), T96) U2(f455_out1, s(T94), T96) -> f1_out1 f51_in(T31) -> U3(f237_in(T31), T31) U3(f237_out1(X59), T31) -> f51_out1(X59) f237_in(0) -> f237_out1(s(s(0))) f237_in(s(T35)) -> U4(f264_in(T35), s(T35)) U4(f264_out1(X81, X82), s(T35)) -> f237_out1(X82) f278_in(0, T43) -> f278_out1(s(T43)) f278_in(s(T48), 0) -> U5(f237_in(T48), s(T48), 0) U5(f237_out1(X108), s(T48), 0) -> f278_out1(X108) f278_in(s(T53), s(T54)) -> U6(f351_in(T53, T54), s(T53), s(T54)) U6(f351_out1(X123, X124), s(T53), s(T54)) -> f278_out1(X124) f21_in(0, s(s(0))) -> f21_out1 f21_in(s(T24), T25) -> U7(f46_in(T24, T25), s(T24), T25) U7(f46_out1(X35), s(T24), T25) -> f21_out1 f52_in(0, T65, s(T65)) -> f52_out1 f52_in(s(T74), 0, T75) -> U8(f21_in(T74, T75), s(T74), 0, T75) U8(f21_out1, s(T74), 0, T75) -> f52_out1 f52_in(s(T82), s(T83), T84) -> U9(f413_in(T82, T83, T84), s(T82), s(T83), T84) U9(f413_out1(X163), s(T82), s(T83), T84) -> f52_out1 f457_in(T103) -> U10(f237_in(T103), T103) U10(f237_out1(X200), T103) -> f457_out1 f457_in(T108) -> U11(f507_in(T108), T108) U11(f507_out1, T108) -> f457_out1 f512_in(0) -> f512_out1 f512_in(s(T123)) -> U12(f237_in(T123), s(T123)) U12(f237_out1(X242), s(T123)) -> f512_out1 f512_in(s(T128)) -> U13(f507_in(T128), s(T128)) U13(f507_out1, s(T128)) -> f512_out1 f46_in(T24, T25) -> U14(f51_in(T24), T24, T25) U14(f51_out1(T26), T24, T25) -> U15(f52_in(T24, T26, T25), T24, T25, T26) U15(f52_out1, T24, T25, T26) -> f46_out1(T26) f264_in(T35) -> U16(f51_in(T35), T35) U16(f51_out1(T36), T35) -> U17(f278_in(T35, T36), T35, T36) U17(f278_out1(X82), T35, T36) -> f264_out1(T36, X82) f351_in(T53, T54) -> U18(f278_in(s(T53), T54), T53, T54) U18(f278_out1(T55), T53, T54) -> U19(f278_in(T53, T55), T53, T54, T55) U19(f278_out1(X124), T53, T54, T55) -> f351_out1(T55, X124) f413_in(T82, T83, T84) -> U20(f278_in(s(T82), T83), T82, T83, T84) U20(f278_out1(T85), T82, T83, T84) -> U21(f52_in(T82, T85, T84), T82, T83, T84, T85) U21(f52_out1, T82, T83, T84, T85) -> f413_out1(T85) f455_in(T94, T96) -> U22(f457_in(T94), T94, T96) U22(f457_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96) U23(f1_out1, T94, T96) -> f455_out1 f507_in(T108) -> U24(f457_in(T108), T108) U24(f457_out1, T108) -> U25(f512_in(T108), T108) U25(f512_out1, T108) -> f507_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (130) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. U18^1(f278_out1(T55), T53, T54) -> F278_IN(T53, T55) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( U18^1_3(x_1, ..., x_3) ) = x_2 + 1 POL( f278_in_2(x_1, x_2) ) = 0 POL( s_1(x_1) ) = x_1 + 1 POL( 0 ) = 1 POL( U5_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( f237_in_1(x_1) ) = 0 POL( U6_3(x_1, ..., x_3) ) = max{0, x_1 - 2} POL( f351_in_2(x_1, x_2) ) = 0 POL( U4_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( f264_in_1(x_1) ) = 0 POL( f264_out1_2(x_1, x_2) ) = 2x_1 POL( f237_out1_1(x_1) ) = max{0, x_1 - 1} POL( U16_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( f51_in_1(x_1) ) = 0 POL( U3_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( f51_out1_1(x_1) ) = 2x_1 + 2 POL( U17_3(x_1, ..., x_3) ) = max{0, 2x_1 - 2} POL( U19_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_4 - 2} POL( f278_out1_1(x_1) ) = max{0, x_1 - 2} POL( f351_out1_2(x_1, x_2) ) = x_1 POL( U18_3(x_1, ..., x_3) ) = 2x_2 + 2 POL( F278_IN_2(x_1, x_2) ) = x_1 POL( F351_IN_2(x_1, x_2) ) = x_1 + 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (131) Obligation: Q DP problem: The TRS P consists of the following rules: F278_IN(s(T53), s(T54)) -> F351_IN(T53, T54) F351_IN(T53, T54) -> U18^1(f278_in(s(T53), T54), T53, T54) F351_IN(T53, T54) -> F278_IN(s(T53), T54) The TRS R consists of the following rules: f1_in(0, s(T8)) -> f1_out1 f1_in(s(T17), T18) -> U1(f21_in(T17, T18), s(T17), T18) U1(f21_out1, s(T17), T18) -> f1_out1 f1_in(s(T94), T96) -> U2(f455_in(T94, T96), s(T94), T96) U2(f455_out1, s(T94), T96) -> f1_out1 f51_in(T31) -> U3(f237_in(T31), T31) U3(f237_out1(X59), T31) -> f51_out1(X59) f237_in(0) -> f237_out1(s(s(0))) f237_in(s(T35)) -> U4(f264_in(T35), s(T35)) U4(f264_out1(X81, X82), s(T35)) -> f237_out1(X82) f278_in(0, T43) -> f278_out1(s(T43)) f278_in(s(T48), 0) -> U5(f237_in(T48), s(T48), 0) U5(f237_out1(X108), s(T48), 0) -> f278_out1(X108) f278_in(s(T53), s(T54)) -> U6(f351_in(T53, T54), s(T53), s(T54)) U6(f351_out1(X123, X124), s(T53), s(T54)) -> f278_out1(X124) f21_in(0, s(s(0))) -> f21_out1 f21_in(s(T24), T25) -> U7(f46_in(T24, T25), s(T24), T25) U7(f46_out1(X35), s(T24), T25) -> f21_out1 f52_in(0, T65, s(T65)) -> f52_out1 f52_in(s(T74), 0, T75) -> U8(f21_in(T74, T75), s(T74), 0, T75) U8(f21_out1, s(T74), 0, T75) -> f52_out1 f52_in(s(T82), s(T83), T84) -> U9(f413_in(T82, T83, T84), s(T82), s(T83), T84) U9(f413_out1(X163), s(T82), s(T83), T84) -> f52_out1 f457_in(T103) -> U10(f237_in(T103), T103) U10(f237_out1(X200), T103) -> f457_out1 f457_in(T108) -> U11(f507_in(T108), T108) U11(f507_out1, T108) -> f457_out1 f512_in(0) -> f512_out1 f512_in(s(T123)) -> U12(f237_in(T123), s(T123)) U12(f237_out1(X242), s(T123)) -> f512_out1 f512_in(s(T128)) -> U13(f507_in(T128), s(T128)) U13(f507_out1, s(T128)) -> f512_out1 f46_in(T24, T25) -> U14(f51_in(T24), T24, T25) U14(f51_out1(T26), T24, T25) -> U15(f52_in(T24, T26, T25), T24, T25, T26) U15(f52_out1, T24, T25, T26) -> f46_out1(T26) f264_in(T35) -> U16(f51_in(T35), T35) U16(f51_out1(T36), T35) -> U17(f278_in(T35, T36), T35, T36) U17(f278_out1(X82), T35, T36) -> f264_out1(T36, X82) f351_in(T53, T54) -> U18(f278_in(s(T53), T54), T53, T54) U18(f278_out1(T55), T53, T54) -> U19(f278_in(T53, T55), T53, T54, T55) U19(f278_out1(X124), T53, T54, T55) -> f351_out1(T55, X124) f413_in(T82, T83, T84) -> U20(f278_in(s(T82), T83), T82, T83, T84) U20(f278_out1(T85), T82, T83, T84) -> U21(f52_in(T82, T85, T84), T82, T83, T84, T85) U21(f52_out1, T82, T83, T84, T85) -> f413_out1(T85) f455_in(T94, T96) -> U22(f457_in(T94), T94, T96) U22(f457_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96) U23(f1_out1, T94, T96) -> f455_out1 f507_in(T108) -> U24(f457_in(T108), T108) U24(f457_out1, T108) -> U25(f512_in(T108), T108) U25(f512_out1, T108) -> f507_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (132) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (133) Obligation: Q DP problem: The TRS P consists of the following rules: F351_IN(T53, T54) -> F278_IN(s(T53), T54) F278_IN(s(T53), s(T54)) -> F351_IN(T53, T54) The TRS R consists of the following rules: f1_in(0, s(T8)) -> f1_out1 f1_in(s(T17), T18) -> U1(f21_in(T17, T18), s(T17), T18) U1(f21_out1, s(T17), T18) -> f1_out1 f1_in(s(T94), T96) -> U2(f455_in(T94, T96), s(T94), T96) U2(f455_out1, s(T94), T96) -> f1_out1 f51_in(T31) -> U3(f237_in(T31), T31) U3(f237_out1(X59), T31) -> f51_out1(X59) f237_in(0) -> f237_out1(s(s(0))) f237_in(s(T35)) -> U4(f264_in(T35), s(T35)) U4(f264_out1(X81, X82), s(T35)) -> f237_out1(X82) f278_in(0, T43) -> f278_out1(s(T43)) f278_in(s(T48), 0) -> U5(f237_in(T48), s(T48), 0) U5(f237_out1(X108), s(T48), 0) -> f278_out1(X108) f278_in(s(T53), s(T54)) -> U6(f351_in(T53, T54), s(T53), s(T54)) U6(f351_out1(X123, X124), s(T53), s(T54)) -> f278_out1(X124) f21_in(0, s(s(0))) -> f21_out1 f21_in(s(T24), T25) -> U7(f46_in(T24, T25), s(T24), T25) U7(f46_out1(X35), s(T24), T25) -> f21_out1 f52_in(0, T65, s(T65)) -> f52_out1 f52_in(s(T74), 0, T75) -> U8(f21_in(T74, T75), s(T74), 0, T75) U8(f21_out1, s(T74), 0, T75) -> f52_out1 f52_in(s(T82), s(T83), T84) -> U9(f413_in(T82, T83, T84), s(T82), s(T83), T84) U9(f413_out1(X163), s(T82), s(T83), T84) -> f52_out1 f457_in(T103) -> U10(f237_in(T103), T103) U10(f237_out1(X200), T103) -> f457_out1 f457_in(T108) -> U11(f507_in(T108), T108) U11(f507_out1, T108) -> f457_out1 f512_in(0) -> f512_out1 f512_in(s(T123)) -> U12(f237_in(T123), s(T123)) U12(f237_out1(X242), s(T123)) -> f512_out1 f512_in(s(T128)) -> U13(f507_in(T128), s(T128)) U13(f507_out1, s(T128)) -> f512_out1 f46_in(T24, T25) -> U14(f51_in(T24), T24, T25) U14(f51_out1(T26), T24, T25) -> U15(f52_in(T24, T26, T25), T24, T25, T26) U15(f52_out1, T24, T25, T26) -> f46_out1(T26) f264_in(T35) -> U16(f51_in(T35), T35) U16(f51_out1(T36), T35) -> U17(f278_in(T35, T36), T35, T36) U17(f278_out1(X82), T35, T36) -> f264_out1(T36, X82) f351_in(T53, T54) -> U18(f278_in(s(T53), T54), T53, T54) U18(f278_out1(T55), T53, T54) -> U19(f278_in(T53, T55), T53, T54, T55) U19(f278_out1(X124), T53, T54, T55) -> f351_out1(T55, X124) f413_in(T82, T83, T84) -> U20(f278_in(s(T82), T83), T82, T83, T84) U20(f278_out1(T85), T82, T83, T84) -> U21(f52_in(T82, T85, T84), T82, T83, T84, T85) U21(f52_out1, T82, T83, T84, T85) -> f413_out1(T85) f455_in(T94, T96) -> U22(f457_in(T94), T94, T96) U22(f457_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96) U23(f1_out1, T94, T96) -> f455_out1 f507_in(T108) -> U24(f457_in(T108), T108) U24(f457_out1, T108) -> U25(f512_in(T108), T108) U25(f512_out1, T108) -> f507_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (134) UsableRulesProof (EQUIVALENT) We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (135) Obligation: Q DP problem: The TRS P consists of the following rules: F351_IN(T53, T54) -> F278_IN(s(T53), T54) F278_IN(s(T53), s(T54)) -> F351_IN(T53, T54) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (136) 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: *F278_IN(s(T53), s(T54)) -> F351_IN(T53, T54) The graph contains the following edges 1 > 1, 2 > 2 *F351_IN(T53, T54) -> F278_IN(s(T53), T54) The graph contains the following edges 2 >= 2 ---------------------------------------- (137) YES ---------------------------------------- (138) Obligation: Q DP problem: The TRS P consists of the following rules: F457_IN(T108) -> F507_IN(T108) F507_IN(T108) -> U24^1(f457_in(T108), T108) U24^1(f457_out1, T108) -> F512_IN(T108) F512_IN(s(T128)) -> F507_IN(T128) F507_IN(T108) -> F457_IN(T108) The TRS R consists of the following rules: f1_in(0, s(T8)) -> f1_out1 f1_in(s(T17), T18) -> U1(f21_in(T17, T18), s(T17), T18) U1(f21_out1, s(T17), T18) -> f1_out1 f1_in(s(T94), T96) -> U2(f455_in(T94, T96), s(T94), T96) U2(f455_out1, s(T94), T96) -> f1_out1 f51_in(T31) -> U3(f237_in(T31), T31) U3(f237_out1(X59), T31) -> f51_out1(X59) f237_in(0) -> f237_out1(s(s(0))) f237_in(s(T35)) -> U4(f264_in(T35), s(T35)) U4(f264_out1(X81, X82), s(T35)) -> f237_out1(X82) f278_in(0, T43) -> f278_out1(s(T43)) f278_in(s(T48), 0) -> U5(f237_in(T48), s(T48), 0) U5(f237_out1(X108), s(T48), 0) -> f278_out1(X108) f278_in(s(T53), s(T54)) -> U6(f351_in(T53, T54), s(T53), s(T54)) U6(f351_out1(X123, X124), s(T53), s(T54)) -> f278_out1(X124) f21_in(0, s(s(0))) -> f21_out1 f21_in(s(T24), T25) -> U7(f46_in(T24, T25), s(T24), T25) U7(f46_out1(X35), s(T24), T25) -> f21_out1 f52_in(0, T65, s(T65)) -> f52_out1 f52_in(s(T74), 0, T75) -> U8(f21_in(T74, T75), s(T74), 0, T75) U8(f21_out1, s(T74), 0, T75) -> f52_out1 f52_in(s(T82), s(T83), T84) -> U9(f413_in(T82, T83, T84), s(T82), s(T83), T84) U9(f413_out1(X163), s(T82), s(T83), T84) -> f52_out1 f457_in(T103) -> U10(f237_in(T103), T103) U10(f237_out1(X200), T103) -> f457_out1 f457_in(T108) -> U11(f507_in(T108), T108) U11(f507_out1, T108) -> f457_out1 f512_in(0) -> f512_out1 f512_in(s(T123)) -> U12(f237_in(T123), s(T123)) U12(f237_out1(X242), s(T123)) -> f512_out1 f512_in(s(T128)) -> U13(f507_in(T128), s(T128)) U13(f507_out1, s(T128)) -> f512_out1 f46_in(T24, T25) -> U14(f51_in(T24), T24, T25) U14(f51_out1(T26), T24, T25) -> U15(f52_in(T24, T26, T25), T24, T25, T26) U15(f52_out1, T24, T25, T26) -> f46_out1(T26) f264_in(T35) -> U16(f51_in(T35), T35) U16(f51_out1(T36), T35) -> U17(f278_in(T35, T36), T35, T36) U17(f278_out1(X82), T35, T36) -> f264_out1(T36, X82) f351_in(T53, T54) -> U18(f278_in(s(T53), T54), T53, T54) U18(f278_out1(T55), T53, T54) -> U19(f278_in(T53, T55), T53, T54, T55) U19(f278_out1(X124), T53, T54, T55) -> f351_out1(T55, X124) f413_in(T82, T83, T84) -> U20(f278_in(s(T82), T83), T82, T83, T84) U20(f278_out1(T85), T82, T83, T84) -> U21(f52_in(T82, T85, T84), T82, T83, T84, T85) U21(f52_out1, T82, T83, T84, T85) -> f413_out1(T85) f455_in(T94, T96) -> U22(f457_in(T94), T94, T96) U22(f457_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96) U23(f1_out1, T94, T96) -> f455_out1 f507_in(T108) -> U24(f457_in(T108), T108) U24(f457_out1, T108) -> U25(f512_in(T108), T108) U25(f512_out1, T108) -> f507_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (139) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. U24^1(f457_out1, T108) -> F512_IN(T108) F512_IN(s(T128)) -> F507_IN(T128) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( U24^1_2(x_1, x_2) ) = 2x_2 + 2 POL( f457_in_1(x_1) ) = 2 POL( U10_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( f237_in_1(x_1) ) = 2x_1 POL( U11_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( f507_in_1(x_1) ) = 0 POL( f507_out1 ) = 2 POL( f457_out1 ) = 2 POL( U24_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U25_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( f512_in_1(x_1) ) = 2 POL( 0 ) = 0 POL( f512_out1 ) = 1 POL( s_1(x_1) ) = x_1 + 2 POL( U12_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 2} POL( U13_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( f237_out1_1(x_1) ) = max{0, x_1 - 2} POL( U4_2(x_1, x_2) ) = 2x_1 + 2 POL( f264_in_1(x_1) ) = 0 POL( f264_out1_2(x_1, x_2) ) = x_2 POL( U16_2(x_1, x_2) ) = 2x_2 + 2 POL( f51_in_1(x_1) ) = 2x_1 + 1 POL( U3_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( f51_out1_1(x_1) ) = 2x_1 + 2 POL( U17_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_3 - 2} POL( f278_in_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U19_4(x_1, ..., x_4) ) = max{0, 2x_1 - 2} POL( f278_out1_1(x_1) ) = max{0, 2x_1 - 2} POL( U5_3(x_1, ..., x_3) ) = 2x_3 + 2 POL( U6_3(x_1, ..., x_3) ) = 2x_1 + x_2 + 2 POL( f351_in_2(x_1, x_2) ) = x_1 + 2 POL( f351_out1_2(x_1, x_2) ) = 2x_1 + 1 POL( U18_3(x_1, ..., x_3) ) = 2 POL( F457_IN_1(x_1) ) = 2x_1 + 2 POL( F507_IN_1(x_1) ) = 2x_1 + 2 POL( F512_IN_1(x_1) ) = 2x_1 + 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (140) Obligation: Q DP problem: The TRS P consists of the following rules: F457_IN(T108) -> F507_IN(T108) F507_IN(T108) -> U24^1(f457_in(T108), T108) F507_IN(T108) -> F457_IN(T108) The TRS R consists of the following rules: f1_in(0, s(T8)) -> f1_out1 f1_in(s(T17), T18) -> U1(f21_in(T17, T18), s(T17), T18) U1(f21_out1, s(T17), T18) -> f1_out1 f1_in(s(T94), T96) -> U2(f455_in(T94, T96), s(T94), T96) U2(f455_out1, s(T94), T96) -> f1_out1 f51_in(T31) -> U3(f237_in(T31), T31) U3(f237_out1(X59), T31) -> f51_out1(X59) f237_in(0) -> f237_out1(s(s(0))) f237_in(s(T35)) -> U4(f264_in(T35), s(T35)) U4(f264_out1(X81, X82), s(T35)) -> f237_out1(X82) f278_in(0, T43) -> f278_out1(s(T43)) f278_in(s(T48), 0) -> U5(f237_in(T48), s(T48), 0) U5(f237_out1(X108), s(T48), 0) -> f278_out1(X108) f278_in(s(T53), s(T54)) -> U6(f351_in(T53, T54), s(T53), s(T54)) U6(f351_out1(X123, X124), s(T53), s(T54)) -> f278_out1(X124) f21_in(0, s(s(0))) -> f21_out1 f21_in(s(T24), T25) -> U7(f46_in(T24, T25), s(T24), T25) U7(f46_out1(X35), s(T24), T25) -> f21_out1 f52_in(0, T65, s(T65)) -> f52_out1 f52_in(s(T74), 0, T75) -> U8(f21_in(T74, T75), s(T74), 0, T75) U8(f21_out1, s(T74), 0, T75) -> f52_out1 f52_in(s(T82), s(T83), T84) -> U9(f413_in(T82, T83, T84), s(T82), s(T83), T84) U9(f413_out1(X163), s(T82), s(T83), T84) -> f52_out1 f457_in(T103) -> U10(f237_in(T103), T103) U10(f237_out1(X200), T103) -> f457_out1 f457_in(T108) -> U11(f507_in(T108), T108) U11(f507_out1, T108) -> f457_out1 f512_in(0) -> f512_out1 f512_in(s(T123)) -> U12(f237_in(T123), s(T123)) U12(f237_out1(X242), s(T123)) -> f512_out1 f512_in(s(T128)) -> U13(f507_in(T128), s(T128)) U13(f507_out1, s(T128)) -> f512_out1 f46_in(T24, T25) -> U14(f51_in(T24), T24, T25) U14(f51_out1(T26), T24, T25) -> U15(f52_in(T24, T26, T25), T24, T25, T26) U15(f52_out1, T24, T25, T26) -> f46_out1(T26) f264_in(T35) -> U16(f51_in(T35), T35) U16(f51_out1(T36), T35) -> U17(f278_in(T35, T36), T35, T36) U17(f278_out1(X82), T35, T36) -> f264_out1(T36, X82) f351_in(T53, T54) -> U18(f278_in(s(T53), T54), T53, T54) U18(f278_out1(T55), T53, T54) -> U19(f278_in(T53, T55), T53, T54, T55) U19(f278_out1(X124), T53, T54, T55) -> f351_out1(T55, X124) f413_in(T82, T83, T84) -> U20(f278_in(s(T82), T83), T82, T83, T84) U20(f278_out1(T85), T82, T83, T84) -> U21(f52_in(T82, T85, T84), T82, T83, T84, T85) U21(f52_out1, T82, T83, T84, T85) -> f413_out1(T85) f455_in(T94, T96) -> U22(f457_in(T94), T94, T96) U22(f457_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96) U23(f1_out1, T94, T96) -> f455_out1 f507_in(T108) -> U24(f457_in(T108), T108) U24(f457_out1, T108) -> U25(f512_in(T108), T108) U25(f512_out1, T108) -> f507_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (141) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (142) Obligation: Q DP problem: The TRS P consists of the following rules: F507_IN(T108) -> F457_IN(T108) F457_IN(T108) -> F507_IN(T108) The TRS R consists of the following rules: f1_in(0, s(T8)) -> f1_out1 f1_in(s(T17), T18) -> U1(f21_in(T17, T18), s(T17), T18) U1(f21_out1, s(T17), T18) -> f1_out1 f1_in(s(T94), T96) -> U2(f455_in(T94, T96), s(T94), T96) U2(f455_out1, s(T94), T96) -> f1_out1 f51_in(T31) -> U3(f237_in(T31), T31) U3(f237_out1(X59), T31) -> f51_out1(X59) f237_in(0) -> f237_out1(s(s(0))) f237_in(s(T35)) -> U4(f264_in(T35), s(T35)) U4(f264_out1(X81, X82), s(T35)) -> f237_out1(X82) f278_in(0, T43) -> f278_out1(s(T43)) f278_in(s(T48), 0) -> U5(f237_in(T48), s(T48), 0) U5(f237_out1(X108), s(T48), 0) -> f278_out1(X108) f278_in(s(T53), s(T54)) -> U6(f351_in(T53, T54), s(T53), s(T54)) U6(f351_out1(X123, X124), s(T53), s(T54)) -> f278_out1(X124) f21_in(0, s(s(0))) -> f21_out1 f21_in(s(T24), T25) -> U7(f46_in(T24, T25), s(T24), T25) U7(f46_out1(X35), s(T24), T25) -> f21_out1 f52_in(0, T65, s(T65)) -> f52_out1 f52_in(s(T74), 0, T75) -> U8(f21_in(T74, T75), s(T74), 0, T75) U8(f21_out1, s(T74), 0, T75) -> f52_out1 f52_in(s(T82), s(T83), T84) -> U9(f413_in(T82, T83, T84), s(T82), s(T83), T84) U9(f413_out1(X163), s(T82), s(T83), T84) -> f52_out1 f457_in(T103) -> U10(f237_in(T103), T103) U10(f237_out1(X200), T103) -> f457_out1 f457_in(T108) -> U11(f507_in(T108), T108) U11(f507_out1, T108) -> f457_out1 f512_in(0) -> f512_out1 f512_in(s(T123)) -> U12(f237_in(T123), s(T123)) U12(f237_out1(X242), s(T123)) -> f512_out1 f512_in(s(T128)) -> U13(f507_in(T128), s(T128)) U13(f507_out1, s(T128)) -> f512_out1 f46_in(T24, T25) -> U14(f51_in(T24), T24, T25) U14(f51_out1(T26), T24, T25) -> U15(f52_in(T24, T26, T25), T24, T25, T26) U15(f52_out1, T24, T25, T26) -> f46_out1(T26) f264_in(T35) -> U16(f51_in(T35), T35) U16(f51_out1(T36), T35) -> U17(f278_in(T35, T36), T35, T36) U17(f278_out1(X82), T35, T36) -> f264_out1(T36, X82) f351_in(T53, T54) -> U18(f278_in(s(T53), T54), T53, T54) U18(f278_out1(T55), T53, T54) -> U19(f278_in(T53, T55), T53, T54, T55) U19(f278_out1(X124), T53, T54, T55) -> f351_out1(T55, X124) f413_in(T82, T83, T84) -> U20(f278_in(s(T82), T83), T82, T83, T84) U20(f278_out1(T85), T82, T83, T84) -> U21(f52_in(T82, T85, T84), T82, T83, T84, T85) U21(f52_out1, T82, T83, T84, T85) -> f413_out1(T85) f455_in(T94, T96) -> U22(f457_in(T94), T94, T96) U22(f457_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96) U23(f1_out1, T94, T96) -> f455_out1 f507_in(T108) -> U24(f457_in(T108), T108) U24(f457_out1, T108) -> U25(f512_in(T108), T108) U25(f512_out1, T108) -> f507_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (143) UsableRulesProof (EQUIVALENT) We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (144) Obligation: Q DP problem: The TRS P consists of the following rules: F507_IN(T108) -> F457_IN(T108) F457_IN(T108) -> F507_IN(T108) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (145) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by narrowing to the left: s = F457_IN(T108') evaluates to t =F457_IN(T108') Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence F457_IN(T108') -> F507_IN(T108') with rule F457_IN(T108'') -> F507_IN(T108'') at position [] and matcher [T108'' / T108'] F507_IN(T108') -> F457_IN(T108') with rule F507_IN(T108) -> F457_IN(T108) Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence All these steps are and every following step will be a correct step w.r.t to Q. ---------------------------------------- (146) NO ---------------------------------------- (147) Obligation: Q DP problem: The TRS P consists of the following rules: F46_IN(T24, T25) -> U14^1(f51_in(T24), T24, T25) U14^1(f51_out1(T26), T24, T25) -> F52_IN(T24, T26, T25) F52_IN(s(T74), 0, T75) -> F21_IN(T74, T75) F21_IN(s(T24), T25) -> F46_IN(T24, T25) F52_IN(s(T82), s(T83), T84) -> F413_IN(T82, T83, T84) F413_IN(T82, T83, T84) -> U20^1(f278_in(s(T82), T83), T82, T83, T84) U20^1(f278_out1(T85), T82, T83, T84) -> F52_IN(T82, T85, T84) The TRS R consists of the following rules: f1_in(0, s(T8)) -> f1_out1 f1_in(s(T17), T18) -> U1(f21_in(T17, T18), s(T17), T18) U1(f21_out1, s(T17), T18) -> f1_out1 f1_in(s(T94), T96) -> U2(f455_in(T94, T96), s(T94), T96) U2(f455_out1, s(T94), T96) -> f1_out1 f51_in(T31) -> U3(f237_in(T31), T31) U3(f237_out1(X59), T31) -> f51_out1(X59) f237_in(0) -> f237_out1(s(s(0))) f237_in(s(T35)) -> U4(f264_in(T35), s(T35)) U4(f264_out1(X81, X82), s(T35)) -> f237_out1(X82) f278_in(0, T43) -> f278_out1(s(T43)) f278_in(s(T48), 0) -> U5(f237_in(T48), s(T48), 0) U5(f237_out1(X108), s(T48), 0) -> f278_out1(X108) f278_in(s(T53), s(T54)) -> U6(f351_in(T53, T54), s(T53), s(T54)) U6(f351_out1(X123, X124), s(T53), s(T54)) -> f278_out1(X124) f21_in(0, s(s(0))) -> f21_out1 f21_in(s(T24), T25) -> U7(f46_in(T24, T25), s(T24), T25) U7(f46_out1(X35), s(T24), T25) -> f21_out1 f52_in(0, T65, s(T65)) -> f52_out1 f52_in(s(T74), 0, T75) -> U8(f21_in(T74, T75), s(T74), 0, T75) U8(f21_out1, s(T74), 0, T75) -> f52_out1 f52_in(s(T82), s(T83), T84) -> U9(f413_in(T82, T83, T84), s(T82), s(T83), T84) U9(f413_out1(X163), s(T82), s(T83), T84) -> f52_out1 f457_in(T103) -> U10(f237_in(T103), T103) U10(f237_out1(X200), T103) -> f457_out1 f457_in(T108) -> U11(f507_in(T108), T108) U11(f507_out1, T108) -> f457_out1 f512_in(0) -> f512_out1 f512_in(s(T123)) -> U12(f237_in(T123), s(T123)) U12(f237_out1(X242), s(T123)) -> f512_out1 f512_in(s(T128)) -> U13(f507_in(T128), s(T128)) U13(f507_out1, s(T128)) -> f512_out1 f46_in(T24, T25) -> U14(f51_in(T24), T24, T25) U14(f51_out1(T26), T24, T25) -> U15(f52_in(T24, T26, T25), T24, T25, T26) U15(f52_out1, T24, T25, T26) -> f46_out1(T26) f264_in(T35) -> U16(f51_in(T35), T35) U16(f51_out1(T36), T35) -> U17(f278_in(T35, T36), T35, T36) U17(f278_out1(X82), T35, T36) -> f264_out1(T36, X82) f351_in(T53, T54) -> U18(f278_in(s(T53), T54), T53, T54) U18(f278_out1(T55), T53, T54) -> U19(f278_in(T53, T55), T53, T54, T55) U19(f278_out1(X124), T53, T54, T55) -> f351_out1(T55, X124) f413_in(T82, T83, T84) -> U20(f278_in(s(T82), T83), T82, T83, T84) U20(f278_out1(T85), T82, T83, T84) -> U21(f52_in(T82, T85, T84), T82, T83, T84, T85) U21(f52_out1, T82, T83, T84, T85) -> f413_out1(T85) f455_in(T94, T96) -> U22(f457_in(T94), T94, T96) U22(f457_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96) U23(f1_out1, T94, T96) -> f455_out1 f507_in(T108) -> U24(f457_in(T108), T108) U24(f457_out1, T108) -> U25(f512_in(T108), T108) U25(f512_out1, T108) -> f507_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (148) 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: *U14^1(f51_out1(T26), T24, T25) -> F52_IN(T24, T26, T25) The graph contains the following edges 2 >= 1, 1 > 2, 3 >= 3 *F21_IN(s(T24), T25) -> F46_IN(T24, T25) The graph contains the following edges 1 > 1, 2 >= 2 *F46_IN(T24, T25) -> U14^1(f51_in(T24), T24, T25) The graph contains the following edges 1 >= 2, 2 >= 3 *U20^1(f278_out1(T85), T82, T83, T84) -> F52_IN(T82, T85, T84) The graph contains the following edges 2 >= 1, 1 > 2, 4 >= 3 *F413_IN(T82, T83, T84) -> U20^1(f278_in(s(T82), T83), T82, T83, T84) The graph contains the following edges 1 >= 2, 2 >= 3, 3 >= 4 *F52_IN(s(T74), 0, T75) -> F21_IN(T74, T75) The graph contains the following edges 1 > 1, 3 >= 2 *F52_IN(s(T82), s(T83), T84) -> F413_IN(T82, T83, T84) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 ---------------------------------------- (149) YES ---------------------------------------- (150) Obligation: Q DP problem: The TRS P consists of the following rules: F1_IN(s(T94), T96) -> F455_IN(T94, T96) F455_IN(T94, T96) -> U22^1(f457_in(T94), T94, T96) U22^1(f457_out1, T94, T96) -> F1_IN(T94, T96) The TRS R consists of the following rules: f1_in(0, s(T8)) -> f1_out1 f1_in(s(T17), T18) -> U1(f21_in(T17, T18), s(T17), T18) U1(f21_out1, s(T17), T18) -> f1_out1 f1_in(s(T94), T96) -> U2(f455_in(T94, T96), s(T94), T96) U2(f455_out1, s(T94), T96) -> f1_out1 f51_in(T31) -> U3(f237_in(T31), T31) U3(f237_out1(X59), T31) -> f51_out1(X59) f237_in(0) -> f237_out1(s(s(0))) f237_in(s(T35)) -> U4(f264_in(T35), s(T35)) U4(f264_out1(X81, X82), s(T35)) -> f237_out1(X82) f278_in(0, T43) -> f278_out1(s(T43)) f278_in(s(T48), 0) -> U5(f237_in(T48), s(T48), 0) U5(f237_out1(X108), s(T48), 0) -> f278_out1(X108) f278_in(s(T53), s(T54)) -> U6(f351_in(T53, T54), s(T53), s(T54)) U6(f351_out1(X123, X124), s(T53), s(T54)) -> f278_out1(X124) f21_in(0, s(s(0))) -> f21_out1 f21_in(s(T24), T25) -> U7(f46_in(T24, T25), s(T24), T25) U7(f46_out1(X35), s(T24), T25) -> f21_out1 f52_in(0, T65, s(T65)) -> f52_out1 f52_in(s(T74), 0, T75) -> U8(f21_in(T74, T75), s(T74), 0, T75) U8(f21_out1, s(T74), 0, T75) -> f52_out1 f52_in(s(T82), s(T83), T84) -> U9(f413_in(T82, T83, T84), s(T82), s(T83), T84) U9(f413_out1(X163), s(T82), s(T83), T84) -> f52_out1 f457_in(T103) -> U10(f237_in(T103), T103) U10(f237_out1(X200), T103) -> f457_out1 f457_in(T108) -> U11(f507_in(T108), T108) U11(f507_out1, T108) -> f457_out1 f512_in(0) -> f512_out1 f512_in(s(T123)) -> U12(f237_in(T123), s(T123)) U12(f237_out1(X242), s(T123)) -> f512_out1 f512_in(s(T128)) -> U13(f507_in(T128), s(T128)) U13(f507_out1, s(T128)) -> f512_out1 f46_in(T24, T25) -> U14(f51_in(T24), T24, T25) U14(f51_out1(T26), T24, T25) -> U15(f52_in(T24, T26, T25), T24, T25, T26) U15(f52_out1, T24, T25, T26) -> f46_out1(T26) f264_in(T35) -> U16(f51_in(T35), T35) U16(f51_out1(T36), T35) -> U17(f278_in(T35, T36), T35, T36) U17(f278_out1(X82), T35, T36) -> f264_out1(T36, X82) f351_in(T53, T54) -> U18(f278_in(s(T53), T54), T53, T54) U18(f278_out1(T55), T53, T54) -> U19(f278_in(T53, T55), T53, T54, T55) U19(f278_out1(X124), T53, T54, T55) -> f351_out1(T55, X124) f413_in(T82, T83, T84) -> U20(f278_in(s(T82), T83), T82, T83, T84) U20(f278_out1(T85), T82, T83, T84) -> U21(f52_in(T82, T85, T84), T82, T83, T84, T85) U21(f52_out1, T82, T83, T84, T85) -> f413_out1(T85) f455_in(T94, T96) -> U22(f457_in(T94), T94, T96) U22(f457_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96) U23(f1_out1, T94, T96) -> f455_out1 f507_in(T108) -> U24(f457_in(T108), T108) U24(f457_out1, T108) -> U25(f512_in(T108), T108) U25(f512_out1, T108) -> f507_out1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (151) 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: *F455_IN(T94, T96) -> U22^1(f457_in(T94), T94, T96) The graph contains the following edges 1 >= 2, 2 >= 3 *U22^1(f457_out1, T94, T96) -> F1_IN(T94, T96) The graph contains the following edges 2 >= 1, 3 >= 2 *F1_IN(s(T94), T96) -> F455_IN(T94, T96) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (152) YES ---------------------------------------- (153) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 3, "program": { "directives": [], "clauses": [ [ "(ackermann (0) N (s N))", null ], [ "(ackermann (s M) (0) Val)", "(ackermann M (s (0)) Val)" ], [ "(ackermann (s M) (s N) Val)", "(',' (ackermann (s M) N Val1) (ackermann M Val1 Val))" ] ] }, "graph": { "nodes": { "44": { "goal": [{ "clause": 0, "scope": 2, "term": "(ackermann T17 (s (0)) T18)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T17", "T18" ], "free": [], "exprvars": [] } }, "45": { "goal": [ { "clause": 1, "scope": 2, "term": "(ackermann T17 (s (0)) T18)" }, { "clause": 2, "scope": 2, "term": "(ackermann T17 (s (0)) T18)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T17", "T18" ], "free": [], "exprvars": [] } }, "390": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "391": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T82) T83 X163)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T82", "T83" ], "free": ["X163"], "exprvars": [] } }, "type": "Nodes", "271": { "goal": [{ "clause": 2, "scope": 4, "term": "(ackermann T31 (s (0)) X59)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T31"], "free": ["X59"], "exprvars": [] } }, "392": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T82 T85 T84)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T82", "T84", "T85" ], "free": [], "exprvars": [] } }, "393": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T94) T97 X180) (ackermann T94 X180 T96))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T94", "T96" ], "free": ["X180"], "exprvars": [] } }, "350": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T53) T54 X123) (ackermann T53 X123 X124))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T53", "T54" ], "free": [ "X124", "X123" ], "exprvars": [] } }, "394": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "395": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T94) T97 X180)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": ["X180"], "exprvars": [] } }, "352": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "396": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T94 T98 T96)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T94", "T96" ], "free": [], "exprvars": [] } }, "397": { "goal": [ { "clause": 0, "scope": 7, "term": "(ackermann (s T94) T97 X180)" }, { "clause": 1, "scope": 7, "term": "(ackermann (s T94) T97 X180)" }, { "clause": 2, "scope": 7, "term": "(ackermann (s T94) T97 X180)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": ["X180"], "exprvars": [] } }, "398": { "goal": [ { "clause": 1, "scope": 7, "term": "(ackermann (s T94) T97 X180)" }, { "clause": 2, "scope": 7, "term": "(ackermann (s T94) T97 X180)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": ["X180"], "exprvars": [] } }, "399": { "goal": [{ "clause": 1, "scope": 7, "term": "(ackermann (s T94) T97 X180)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": ["X180"], "exprvars": [] } }, "114": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T24) (0) X35)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T24"], "free": ["X35"], "exprvars": [] } }, "115": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T24 T26 T25)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T24", "T25", "T26" ], "free": [], "exprvars": [] } }, "116": { "goal": [ { "clause": 0, "scope": 3, "term": "(ackermann (s T24) (0) X35)" }, { "clause": 1, "scope": 3, "term": "(ackermann (s T24) (0) X35)" }, { "clause": 2, "scope": 3, "term": "(ackermann (s T24) (0) X35)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T24"], "free": ["X35"], "exprvars": [] } }, "117": { "goal": [ { "clause": 1, "scope": 3, "term": "(ackermann (s T24) (0) X35)" }, { "clause": 2, "scope": 3, "term": "(ackermann (s T24) (0) X35)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T24"], "free": ["X35"], "exprvars": [] } }, "359": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T53) T54 X123)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T53", "T54" ], "free": ["X123"], "exprvars": [] } }, "118": { "goal": [{ "clause": 1, "scope": 3, "term": "(ackermann (s T24) (0) X35)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T24"], "free": ["X35"], "exprvars": [] } }, "119": { "goal": [{ "clause": 2, "scope": 3, "term": "(ackermann (s T24) (0) X35)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T24"], "free": ["X35"], "exprvars": [] } }, "59": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "16": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "17": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "18": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "360": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T53 T55 X124)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T53", "T55" ], "free": ["X124"], "exprvars": [] } }, "165": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "287": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T35) (0) X81) (ackermann T35 X81 X82))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T35"], "free": [ "X82", "X81" ], "exprvars": [] } }, "365": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T1 T2 T3)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T3" ], "free": [], "exprvars": [] } }, "124": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T31 (s (0)) X59)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T31"], "free": ["X59"], "exprvars": [] } }, "289": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "487": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T128) T130 X257) (ackermann T128 X257 X258))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T128"], "free": [ "X258", "X257" ], "exprvars": [] } }, "4": { "goal": [ { "clause": 0, "scope": 1, "term": "(ackermann T1 T2 T3)" }, { "clause": 1, "scope": 1, "term": "(ackermann T1 T2 T3)" }, { "clause": 2, "scope": 1, "term": "(ackermann T1 T2 T3)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T3" ], "free": [], "exprvars": [] } }, "367": { "goal": [ { "clause": 0, "scope": 6, "term": "(ackermann T24 T26 T25)" }, { "clause": 1, "scope": 6, "term": "(ackermann T24 T26 T25)" }, { "clause": 2, "scope": 6, "term": "(ackermann T24 T26 T25)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T24", "T25", "T26" ], "free": [], "exprvars": [] } }, "400": { "goal": [{ "clause": 2, "scope": 7, "term": "(ackermann (s T94) T97 X180)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": ["X180"], "exprvars": [] } }, "488": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "401": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T103 (s (0)) X200)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T103"], "free": ["X200"], "exprvars": [] } }, "402": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "7": { "goal": [{ "clause": 0, "scope": 1, "term": "(ackermann T1 T2 T3)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T3" ], "free": [], "exprvars": [] } }, "403": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T108) T110 X215) (ackermann T108 X215 X216))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T108"], "free": [ "X216", "X215" ], "exprvars": [] } }, "8": { "goal": [ { "clause": 1, "scope": 1, "term": "(ackermann T1 T2 T3)" }, { "clause": 2, "scope": 1, "term": "(ackermann T1 T2 T3)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T3" ], "free": [], "exprvars": [] } }, "404": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "60": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "406": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T108) T110 X215)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T108"], "free": ["X215"], "exprvars": [] } }, "61": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "407": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T108 T111 X216)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T108"], "free": ["X216"], "exprvars": [] } }, "170": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "370": { "goal": [{ "clause": 0, "scope": 6, "term": "(ackermann T24 T26 T25)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T24", "T25", "T26" ], "free": [], "exprvars": [] } }, "173": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "371": { "goal": [ { "clause": 1, "scope": 6, "term": "(ackermann T24 T26 T25)" }, { "clause": 2, "scope": 6, "term": "(ackermann T24 T26 T25)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T24", "T25", "T26" ], "free": [], "exprvars": [] } }, "133": { "goal": [ { "clause": 0, "scope": 4, "term": "(ackermann T31 (s (0)) X59)" }, { "clause": 1, "scope": 4, "term": "(ackermann T31 (s (0)) X59)" }, { "clause": 2, "scope": 4, "term": "(ackermann T31 (s (0)) X59)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T31"], "free": ["X59"], "exprvars": [] } }, "375": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "376": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "453": { "goal": [{ "clause": 1, "scope": 8, "term": "(ackermann T108 T111 X216)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T108"], "free": ["X216"], "exprvars": [] } }, "377": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "454": { "goal": [{ "clause": 2, "scope": 8, "term": "(ackermann T108 T111 X216)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T108"], "free": ["X216"], "exprvars": [] } }, "335": { "goal": [ { "clause": 0, "scope": 5, "term": "(ackermann T35 T36 X82)" }, { "clause": 1, "scope": 5, "term": "(ackermann T35 T36 X82)" }, { "clause": 2, "scope": 5, "term": "(ackermann T35 T36 X82)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T35", "T36" ], "free": ["X82"], "exprvars": [] } }, "336": { "goal": [{ "clause": 0, "scope": 5, "term": "(ackermann T35 T36 X82)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T35", "T36" ], "free": ["X82"], "exprvars": [] } }, "337": { "goal": [ { "clause": 1, "scope": 5, "term": "(ackermann T35 T36 X82)" }, { "clause": 2, "scope": 5, "term": "(ackermann T35 T36 X82)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T35", "T36" ], "free": ["X82"], "exprvars": [] } }, "338": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "459": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T123 (s (0)) X242)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T123"], "free": ["X242"], "exprvars": [] } }, "339": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "74": { "goal": [{ "clause": 2, "scope": 2, "term": "(ackermann T17 (s (0)) T18)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T17", "T18" ], "free": [], "exprvars": [] } }, "35": { "goal": [{ "clause": 1, "scope": 1, "term": "(ackermann T1 T2 T3)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T3" ], "free": [], "exprvars": [] } }, "36": { "goal": [{ "clause": 2, "scope": 1, "term": "(ackermann T1 T2 T3)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T3" ], "free": [], "exprvars": [] } }, "141": { "goal": [{ "clause": 0, "scope": 4, "term": "(ackermann T31 (s (0)) X59)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T31"], "free": ["X59"], "exprvars": [] } }, "383": { "goal": [{ "clause": 1, "scope": 6, "term": "(ackermann T24 T26 T25)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T24", "T25", "T26" ], "free": [], "exprvars": [] } }, "460": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "340": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "384": { "goal": [{ "clause": 2, "scope": 6, "term": "(ackermann T24 T26 T25)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T24", "T25", "T26" ], "free": [], "exprvars": [] } }, "341": { "goal": [{ "clause": 1, "scope": 5, "term": "(ackermann T35 T36 X82)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T35", "T36" ], "free": ["X82"], "exprvars": [] } }, "342": { "goal": [{ "clause": 2, "scope": 5, "term": "(ackermann T35 T36 X82)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T35", "T36" ], "free": ["X82"], "exprvars": [] } }, "145": { "goal": [ { "clause": 1, "scope": 4, "term": "(ackermann T31 (s (0)) X59)" }, { "clause": 2, "scope": 4, "term": "(ackermann T31 (s (0)) X59)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T31"], "free": ["X59"], "exprvars": [] } }, "343": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T48 (s (0)) X108)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T48"], "free": ["X108"], "exprvars": [] } }, "387": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T74 (s (0)) T75)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T74", "T75" ], "free": [], "exprvars": [] } }, "300": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann (s T35) (0) X81)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T35"], "free": ["X81"], "exprvars": [] } }, "344": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "388": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "103": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T24) (0) X35) (ackermann T24 X35 T25))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T24", "T25" ], "free": ["X35"], "exprvars": [] } }, "301": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T35 T36 X82)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T35", "T36" ], "free": ["X82"], "exprvars": [] } }, "389": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann (s T82) T83 X163) (ackermann T82 X163 T84))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T82", "T83", "T84" ], "free": ["X163"], "exprvars": [] } }, "423": { "goal": [ { "clause": 0, "scope": 8, "term": "(ackermann T108 T111 X216)" }, { "clause": 1, "scope": 8, "term": "(ackermann T108 T111 X216)" }, { "clause": 2, "scope": 8, "term": "(ackermann T108 T111 X216)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T108"], "free": ["X216"], "exprvars": [] } }, "424": { "goal": [{ "clause": 0, "scope": 8, "term": "(ackermann T108 T111 X216)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T108"], "free": ["X216"], "exprvars": [] } }, "425": { "goal": [ { "clause": 1, "scope": 8, "term": "(ackermann T108 T111 X216)" }, { "clause": 2, "scope": 8, "term": "(ackermann T108 T111 X216)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T108"], "free": ["X216"], "exprvars": [] } }, "426": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "427": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "109": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "428": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "41": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T17 (s (0)) T18)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T17", "T18" ], "free": [], "exprvars": [] } }, "42": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "43": { "goal": [ { "clause": 0, "scope": 2, "term": "(ackermann T17 (s (0)) T18)" }, { "clause": 1, "scope": 2, "term": "(ackermann T17 (s (0)) T18)" }, { "clause": 2, "scope": 2, "term": "(ackermann T17 (s (0)) T18)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T17", "T18" ], "free": [], "exprvars": [] } } }, "edges": [ { "from": 3, "to": 4, "label": "CASE" }, { "from": 4, "to": 7, "label": "PARALLEL" }, { "from": 4, "to": 8, "label": "PARALLEL" }, { "from": 7, "to": 16, "label": "EVAL with clause\nackermann(0, X5, s(X5)).\nand substitutionT1 -> 0,\nT2 -> T8,\nX5 -> T8,\nT3 -> s(T8)" }, { "from": 7, "to": 17, "label": "EVAL-BACKTRACK" }, { "from": 8, "to": 35, "label": "PARALLEL" }, { "from": 8, "to": 36, "label": "PARALLEL" }, { "from": 16, "to": 18, "label": "SUCCESS" }, { "from": 35, "to": 41, "label": "EVAL with clause\nackermann(s(X14), 0, X15) :- ackermann(X14, s(0), X15).\nand substitutionX14 -> T17,\nT1 -> s(T17),\nT2 -> 0,\nT3 -> T18,\nX15 -> T18" }, { "from": 35, "to": 42, "label": "EVAL-BACKTRACK" }, { "from": 36, "to": 393, "label": "EVAL with clause\nackermann(s(X177), s(X178), X179) :- ','(ackermann(s(X177), X178, X180), ackermann(X177, X180, X179)).\nand substitutionX177 -> T94,\nT1 -> s(T94),\nX178 -> T97,\nT2 -> s(T97),\nT3 -> T96,\nX179 -> T96,\nT95 -> T97" }, { "from": 36, "to": 394, "label": "EVAL-BACKTRACK" }, { "from": 41, "to": 43, "label": "CASE" }, { "from": 43, "to": 44, "label": "PARALLEL" }, { "from": 43, "to": 45, "label": "PARALLEL" }, { "from": 44, "to": 59, "label": "EVAL with clause\nackermann(0, X22, s(X22)).\nand substitutionT17 -> 0,\nX22 -> s(0),\nT18 -> s(s(0))" }, { "from": 44, "to": 60, "label": "EVAL-BACKTRACK" }, { "from": 45, "to": 74, "label": "BACKTRACK\nfor clause: ackermann(s(M), 0, Val) :- ackermann(M, s(0), Val)because of non-unification" }, { "from": 59, "to": 61, "label": "SUCCESS" }, { "from": 74, "to": 103, "label": "EVAL with clause\nackermann(s(X32), s(X33), X34) :- ','(ackermann(s(X32), X33, X35), ackermann(X32, X35, X34)).\nand substitutionX32 -> T24,\nT17 -> s(T24),\nX33 -> 0,\nT18 -> T25,\nX34 -> T25" }, { "from": 74, "to": 109, "label": "EVAL-BACKTRACK" }, { "from": 103, "to": 114, "label": "SPLIT 1" }, { "from": 103, "to": 115, "label": "SPLIT 2\nnew knowledge:\nT24 is ground\nT26 is ground\nreplacements:X35 -> T26" }, { "from": 114, "to": 116, "label": "CASE" }, { "from": 115, "to": 367, "label": "CASE" }, { "from": 116, "to": 117, "label": "BACKTRACK\nfor clause: ackermann(0, N, s(N))because of non-unification" }, { "from": 117, "to": 118, "label": "PARALLEL" }, { "from": 117, "to": 119, "label": "PARALLEL" }, { "from": 118, "to": 124, "label": "ONLY EVAL with clause\nackermann(s(X57), 0, X58) :- ackermann(X57, s(0), X58).\nand substitutionT24 -> T31,\nX57 -> T31,\nX35 -> X59,\nX58 -> X59" }, { "from": 119, "to": 365, "label": "BACKTRACK\nfor clause: ackermann(s(M), s(N), Val) :- ','(ackermann(s(M), N, Val1), ackermann(M, Val1, Val))because of non-unification" }, { "from": 124, "to": 133, "label": "CASE" }, { "from": 133, "to": 141, "label": "PARALLEL" }, { "from": 133, "to": 145, "label": "PARALLEL" }, { "from": 141, "to": 165, "label": "EVAL with clause\nackermann(0, X66, s(X66)).\nand substitutionT31 -> 0,\nX66 -> s(0),\nX59 -> s(s(0))" }, { "from": 141, "to": 170, "label": "EVAL-BACKTRACK" }, { "from": 145, "to": 271, "label": "BACKTRACK\nfor clause: ackermann(s(M), 0, Val) :- ackermann(M, s(0), Val)because of non-unification" }, { "from": 165, "to": 173, "label": "SUCCESS" }, { "from": 271, "to": 287, "label": "EVAL with clause\nackermann(s(X78), s(X79), X80) :- ','(ackermann(s(X78), X79, X81), ackermann(X78, X81, X80)).\nand substitutionX78 -> T35,\nT31 -> s(T35),\nX79 -> 0,\nX59 -> X82,\nX80 -> X82" }, { "from": 271, "to": 289, "label": "EVAL-BACKTRACK" }, { "from": 287, "to": 300, "label": "SPLIT 1" }, { "from": 287, "to": 301, "label": "SPLIT 2\nnew knowledge:\nT35 is ground\nT36 is ground\nreplacements:X81 -> T36" }, { "from": 300, "to": 114, "label": "INSTANCE with matching:\nT24 -> T35\nX35 -> X81" }, { "from": 301, "to": 335, "label": "CASE" }, { "from": 335, "to": 336, "label": "PARALLEL" }, { "from": 335, "to": 337, "label": "PARALLEL" }, { "from": 336, "to": 338, "label": "EVAL with clause\nackermann(0, X93, s(X93)).\nand substitutionT35 -> 0,\nT36 -> T43,\nX93 -> T43,\nX82 -> s(T43)" }, { "from": 336, "to": 339, "label": "EVAL-BACKTRACK" }, { "from": 337, "to": 341, "label": "PARALLEL" }, { "from": 337, "to": 342, "label": "PARALLEL" }, { "from": 338, "to": 340, "label": "SUCCESS" }, { "from": 341, "to": 343, "label": "EVAL with clause\nackermann(s(X106), 0, X107) :- ackermann(X106, s(0), X107).\nand substitutionX106 -> T48,\nT35 -> s(T48),\nT36 -> 0,\nX82 -> X108,\nX107 -> X108" }, { "from": 341, "to": 344, "label": "EVAL-BACKTRACK" }, { "from": 342, "to": 350, "label": "EVAL with clause\nackermann(s(X120), s(X121), X122) :- ','(ackermann(s(X120), X121, X123), ackermann(X120, X123, X122)).\nand substitutionX120 -> T53,\nT35 -> s(T53),\nX121 -> T54,\nT36 -> s(T54),\nX82 -> X124,\nX122 -> X124" }, { "from": 342, "to": 352, "label": "EVAL-BACKTRACK" }, { "from": 343, "to": 124, "label": "INSTANCE with matching:\nT31 -> T48\nX59 -> X108" }, { "from": 350, "to": 359, "label": "SPLIT 1" }, { "from": 350, "to": 360, "label": "SPLIT 2\nnew knowledge:\nT53 is ground\nT54 is ground\nT55 is ground\nreplacements:X123 -> T55" }, { "from": 359, "to": 301, "label": "INSTANCE with matching:\nT35 -> s(T53)\nT36 -> T54\nX82 -> X123" }, { "from": 360, "to": 301, "label": "INSTANCE with matching:\nT35 -> T53\nT36 -> T55\nX82 -> X124" }, { "from": 367, "to": 370, "label": "PARALLEL" }, { "from": 367, "to": 371, "label": "PARALLEL" }, { "from": 370, "to": 375, "label": "EVAL with clause\nackermann(0, X140, s(X140)).\nand substitutionT24 -> 0,\nT26 -> T65,\nX140 -> T65,\nT25 -> s(T65)" }, { "from": 370, "to": 376, "label": "EVAL-BACKTRACK" }, { "from": 371, "to": 383, "label": "PARALLEL" }, { "from": 371, "to": 384, "label": "PARALLEL" }, { "from": 375, "to": 377, "label": "SUCCESS" }, { "from": 383, "to": 387, "label": "EVAL with clause\nackermann(s(X149), 0, X150) :- ackermann(X149, s(0), X150).\nand substitutionX149 -> T74,\nT24 -> s(T74),\nT26 -> 0,\nT25 -> T75,\nX150 -> T75" }, { "from": 383, "to": 388, "label": "EVAL-BACKTRACK" }, { "from": 384, "to": 389, "label": "EVAL with clause\nackermann(s(X160), s(X161), X162) :- ','(ackermann(s(X160), X161, X163), ackermann(X160, X163, X162)).\nand substitutionX160 -> T82,\nT24 -> s(T82),\nX161 -> T83,\nT26 -> s(T83),\nT25 -> T84,\nX162 -> T84" }, { "from": 384, "to": 390, "label": "EVAL-BACKTRACK" }, { "from": 387, "to": 41, "label": "INSTANCE with matching:\nT17 -> T74\nT18 -> T75" }, { "from": 389, "to": 391, "label": "SPLIT 1" }, { "from": 389, "to": 392, "label": "SPLIT 2\nnew knowledge:\nT82 is ground\nT83 is ground\nT85 is ground\nreplacements:X163 -> T85" }, { "from": 391, "to": 301, "label": "INSTANCE with matching:\nT35 -> s(T82)\nT36 -> T83\nX82 -> X163" }, { "from": 392, "to": 115, "label": "INSTANCE with matching:\nT24 -> T82\nT26 -> T85\nT25 -> T84" }, { "from": 393, "to": 395, "label": "SPLIT 1" }, { "from": 393, "to": 396, "label": "SPLIT 2\nnew knowledge:\nT94 is ground\nreplacements:X180 -> T98" }, { "from": 395, "to": 397, "label": "CASE" }, { "from": 396, "to": 3, "label": "INSTANCE with matching:\nT1 -> T94\nT2 -> T98\nT3 -> T96" }, { "from": 397, "to": 398, "label": "BACKTRACK\nfor clause: ackermann(0, N, s(N))because of non-unification" }, { "from": 398, "to": 399, "label": "PARALLEL" }, { "from": 398, "to": 400, "label": "PARALLEL" }, { "from": 399, "to": 401, "label": "EVAL with clause\nackermann(s(X198), 0, X199) :- ackermann(X198, s(0), X199).\nand substitutionT94 -> T103,\nX198 -> T103,\nT97 -> 0,\nX180 -> X200,\nX199 -> X200" }, { "from": 399, "to": 402, "label": "EVAL-BACKTRACK" }, { "from": 400, "to": 403, "label": "EVAL with clause\nackermann(s(X212), s(X213), X214) :- ','(ackermann(s(X212), X213, X215), ackermann(X212, X215, X214)).\nand substitutionT94 -> T108,\nX212 -> T108,\nX213 -> T110,\nT97 -> s(T110),\nX180 -> X216,\nX214 -> X216,\nT109 -> T110" }, { "from": 400, "to": 404, "label": "EVAL-BACKTRACK" }, { "from": 401, "to": 124, "label": "INSTANCE with matching:\nT31 -> T103\nX59 -> X200" }, { "from": 403, "to": 406, "label": "SPLIT 1" }, { "from": 403, "to": 407, "label": "SPLIT 2\nnew knowledge:\nT108 is ground\nreplacements:X215 -> T111" }, { "from": 406, "to": 395, "label": "INSTANCE with matching:\nT94 -> T108\nT97 -> T110\nX180 -> X215" }, { "from": 407, "to": 423, "label": "CASE" }, { "from": 423, "to": 424, "label": "PARALLEL" }, { "from": 423, "to": 425, "label": "PARALLEL" }, { "from": 424, "to": 426, "label": "EVAL with clause\nackermann(0, X227, s(X227)).\nand substitutionT108 -> 0,\nT111 -> T118,\nX227 -> T118,\nX216 -> s(T118)" }, { "from": 424, "to": 427, "label": "EVAL-BACKTRACK" }, { "from": 425, "to": 453, "label": "PARALLEL" }, { "from": 425, "to": 454, "label": "PARALLEL" }, { "from": 426, "to": 428, "label": "SUCCESS" }, { "from": 453, "to": 459, "label": "EVAL with clause\nackermann(s(X240), 0, X241) :- ackermann(X240, s(0), X241).\nand substitutionX240 -> T123,\nT108 -> s(T123),\nT111 -> 0,\nX216 -> X242,\nX241 -> X242" }, { "from": 453, "to": 460, "label": "EVAL-BACKTRACK" }, { "from": 454, "to": 487, "label": "EVAL with clause\nackermann(s(X254), s(X255), X256) :- ','(ackermann(s(X254), X255, X257), ackermann(X254, X257, X256)).\nand substitutionX254 -> T128,\nT108 -> s(T128),\nX255 -> T130,\nT111 -> s(T130),\nX216 -> X258,\nX256 -> X258,\nT129 -> T130" }, { "from": 454, "to": 488, "label": "EVAL-BACKTRACK" }, { "from": 459, "to": 124, "label": "INSTANCE with matching:\nT31 -> T123\nX59 -> X242" }, { "from": 487, "to": 403, "label": "INSTANCE with matching:\nT108 -> T128\nT110 -> T130\nX215 -> X257\nX216 -> X258" } ], "type": "Graph" } } ---------------------------------------- (154) Complex Obligation (AND) ---------------------------------------- (155) Obligation: Rules: f118_in(T31) -> f124_in(T31) :|: TRUE f124_out(x) -> f118_out(x) :|: TRUE f301_in(T35, T36) -> f335_in(T35, T36) :|: TRUE f335_out(x1, x2) -> f301_out(x1, x2) :|: TRUE f341_out(x3, x4) -> f337_out(x3, x4) :|: TRUE f337_in(x5, x6) -> f342_in(x5, x6) :|: TRUE f342_out(x7, x8) -> f337_out(x7, x8) :|: TRUE f337_in(x9, x10) -> f341_in(x9, x10) :|: TRUE f301_out(s(T53), T54) -> f359_out(T53, T54) :|: TRUE f359_in(x11, x12) -> f301_in(s(x11), x12) :|: TRUE f335_in(x13, x14) -> f336_in(x13, x14) :|: TRUE f336_out(x15, x16) -> f335_out(x15, x16) :|: TRUE f335_in(x17, x18) -> f337_in(x17, x18) :|: TRUE f337_out(x19, x20) -> f335_out(x19, x20) :|: TRUE f360_out(x21, x22) -> f350_out(x21, x23) :|: TRUE f350_in(x24, x25) -> f359_in(x24, x25) :|: TRUE f359_out(x26, x27) -> f360_in(x26, x28) :|: TRUE f145_in(x29) -> f271_in(x29) :|: TRUE f271_out(x30) -> f145_out(x30) :|: TRUE f352_out -> f342_out(x31, x32) :|: TRUE f342_in(x33, x34) -> f352_in :|: TRUE f342_in(s(x35), s(x36)) -> f350_in(x35, x36) :|: TRUE f350_out(x37, x38) -> f342_out(s(x37), s(x38)) :|: TRUE f116_out(T24) -> f114_out(T24) :|: TRUE f114_in(x39) -> f116_in(x39) :|: TRUE f301_out(x40, x41) -> f360_out(x40, x41) :|: TRUE f360_in(x42, x43) -> f301_in(x42, x43) :|: TRUE f343_out(T48) -> f341_out(s(T48), 0) :|: TRUE f341_in(x44, x45) -> f344_in :|: TRUE f341_in(s(x46), 0) -> f343_in(x46) :|: TRUE f344_out -> f341_out(x47, x48) :|: TRUE f124_out(x49) -> f343_out(x49) :|: TRUE f343_in(x50) -> f124_in(x50) :|: TRUE f300_out(x51) -> f301_in(x51, x52) :|: TRUE f301_out(x53, x54) -> f287_out(x53) :|: TRUE f287_in(x55) -> f300_in(x55) :|: TRUE f116_in(x56) -> f117_in(x56) :|: TRUE f117_out(x57) -> f116_out(x57) :|: TRUE f271_in(s(x58)) -> f287_in(x58) :|: TRUE f289_out -> f271_out(x59) :|: TRUE f271_in(x60) -> f289_in :|: TRUE f287_out(x61) -> f271_out(s(x61)) :|: TRUE f133_in(x62) -> f141_in(x62) :|: TRUE f141_out(x63) -> f133_out(x63) :|: TRUE f145_out(x64) -> f133_out(x64) :|: TRUE f133_in(x65) -> f145_in(x65) :|: TRUE f300_in(x66) -> f114_in(x66) :|: TRUE f114_out(x67) -> f300_out(x67) :|: TRUE f133_out(x68) -> f124_out(x68) :|: TRUE f124_in(x69) -> f133_in(x69) :|: TRUE f117_in(x70) -> f118_in(x70) :|: TRUE f119_out(x71) -> f117_out(x71) :|: TRUE f117_in(x72) -> f119_in(x72) :|: TRUE f118_out(x73) -> f117_out(x73) :|: TRUE f4_out(T1, T3) -> f3_out(T1, T3) :|: TRUE f3_in(x74, x75) -> f4_in(x74, x75) :|: TRUE f4_in(x76, x77) -> f8_in(x76, x77) :|: TRUE f7_out(x78, x79) -> f4_out(x78, x79) :|: TRUE f4_in(x80, x81) -> f7_in(x80, x81) :|: TRUE f8_out(x82, x83) -> f4_out(x82, x83) :|: TRUE f8_in(x84, x85) -> f36_in(x84, x85) :|: TRUE f8_in(x86, x87) -> f35_in(x86, x87) :|: TRUE f36_out(x88, x89) -> f8_out(x88, x89) :|: TRUE f35_out(x90, x91) -> f8_out(x90, x91) :|: TRUE f393_out(T94, T96) -> f36_out(s(T94), T96) :|: TRUE f36_in(s(x92), x93) -> f393_in(x92, x93) :|: TRUE f36_in(x94, x95) -> f394_in :|: TRUE f394_out -> f36_out(x96, x97) :|: TRUE f393_in(x98, x99) -> f395_in(x98) :|: TRUE f395_out(x100) -> f396_in(x100, x101) :|: TRUE f396_out(x102, x103) -> f393_out(x102, x103) :|: TRUE f397_out(x104) -> f395_out(x104) :|: TRUE f395_in(x105) -> f397_in(x105) :|: TRUE f398_out(x106) -> f397_out(x106) :|: TRUE f397_in(x107) -> f398_in(x107) :|: TRUE f400_out(x108) -> f398_out(x108) :|: TRUE f398_in(x109) -> f399_in(x109) :|: TRUE f398_in(x110) -> f400_in(x110) :|: TRUE f399_out(x111) -> f398_out(x111) :|: TRUE f400_in(T108) -> f403_in(T108) :|: TRUE f400_in(x112) -> f404_in :|: TRUE f404_out -> f400_out(x113) :|: TRUE f403_out(x114) -> f400_out(x114) :|: TRUE f403_in(x115) -> f406_in(x115) :|: TRUE f406_out(x116) -> f407_in(x116) :|: TRUE f407_out(x117) -> f403_out(x117) :|: TRUE f407_in(x118) -> f423_in(x118) :|: TRUE f423_out(x119) -> f407_out(x119) :|: TRUE f423_in(x120) -> f424_in(x120) :|: TRUE f423_in(x121) -> f425_in(x121) :|: TRUE f425_out(x122) -> f423_out(x122) :|: TRUE f424_out(x123) -> f423_out(x123) :|: TRUE f425_in(x124) -> f454_in(x124) :|: TRUE f425_in(x125) -> f453_in(x125) :|: TRUE f454_out(x126) -> f425_out(x126) :|: TRUE f453_out(x127) -> f425_out(x127) :|: TRUE f453_in(x128) -> f460_in :|: TRUE f453_in(s(T123)) -> f459_in(T123) :|: TRUE f460_out -> f453_out(x129) :|: TRUE f459_out(x130) -> f453_out(s(x130)) :|: TRUE f124_out(x131) -> f459_out(x131) :|: TRUE f459_in(x132) -> f124_in(x132) :|: TRUE f402_out -> f399_out(x133) :|: TRUE f399_in(T103) -> f401_in(T103) :|: TRUE f401_out(x134) -> f399_out(x134) :|: TRUE f399_in(x135) -> f402_in :|: TRUE f401_in(x136) -> f124_in(x136) :|: TRUE f124_out(x137) -> f401_out(x137) :|: TRUE f42_out -> f35_out(x138, x139) :|: TRUE f41_out(T17, T18) -> f35_out(s(T17), T18) :|: TRUE f35_in(s(x140), x141) -> f41_in(x140, x141) :|: TRUE f35_in(x142, x143) -> f42_in :|: TRUE f41_in(x144, x145) -> f43_in(x144, x145) :|: TRUE f43_out(x146, x147) -> f41_out(x146, x147) :|: TRUE f43_in(x148, x149) -> f45_in(x148, x149) :|: TRUE f45_out(x150, x151) -> f43_out(x150, x151) :|: TRUE f44_out(x152, x153) -> f43_out(x152, x153) :|: TRUE f43_in(x154, x155) -> f44_in(x154, x155) :|: TRUE f74_out(x156, x157) -> f45_out(x156, x157) :|: TRUE f45_in(x158, x159) -> f74_in(x158, x159) :|: TRUE f109_out -> f74_out(x160, x161) :|: TRUE f74_in(s(x162), x163) -> f103_in(x162, x163) :|: TRUE f103_out(x164, x165) -> f74_out(s(x164), x165) :|: TRUE f74_in(x166, x167) -> f109_in :|: TRUE f103_in(x168, x169) -> f114_in(x168) :|: TRUE f114_out(x170) -> f115_in(x170, x171, x172) :|: TRUE f115_out(x173, x174, x175) -> f103_out(x173, x175) :|: TRUE f115_in(x176, x177, x178) -> f367_in(x176, x177, x178) :|: TRUE f367_out(x179, x180, x181) -> f115_out(x179, x180, x181) :|: TRUE f367_in(x182, x183, x184) -> f370_in(x182, x183, x184) :|: TRUE f370_out(x185, x186, x187) -> f367_out(x185, x186, x187) :|: TRUE f367_in(x188, x189, x190) -> f371_in(x188, x189, x190) :|: TRUE f371_out(x191, x192, x193) -> f367_out(x191, x192, x193) :|: TRUE f384_out(x194, x195, x196) -> f371_out(x194, x195, x196) :|: TRUE f383_out(x197, x198, x199) -> f371_out(x197, x198, x199) :|: TRUE f371_in(x200, x201, x202) -> f384_in(x200, x201, x202) :|: TRUE f371_in(x203, x204, x205) -> f383_in(x203, x204, x205) :|: TRUE f390_out -> f384_out(x206, x207, x208) :|: TRUE f384_in(s(T82), s(T83), T84) -> f389_in(T82, T83, T84) :|: TRUE f389_out(x209, x210, x211) -> f384_out(s(x209), s(x210), x211) :|: TRUE f384_in(x212, x213, x214) -> f390_in :|: TRUE f389_in(x215, x216, x217) -> f391_in(x215, x216) :|: TRUE f391_out(x218, x219) -> f392_in(x218, x220, x221) :|: TRUE f392_out(x222, x223, x224) -> f389_out(x222, x225, x224) :|: TRUE f391_in(x226, x227) -> f301_in(s(x226), x227) :|: TRUE f301_out(s(x228), x229) -> f391_out(x228, x229) :|: TRUE Start term: f3_in(T1, T3) ---------------------------------------- (156) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f118_in(T31) -> f124_in(T31) :|: TRUE f145_in(x29) -> f271_in(x29) :|: TRUE f114_in(x39) -> f116_in(x39) :|: TRUE f287_in(x55) -> f300_in(x55) :|: TRUE f116_in(x56) -> f117_in(x56) :|: TRUE f271_in(s(x58)) -> f287_in(x58) :|: TRUE f133_in(x65) -> f145_in(x65) :|: TRUE f300_in(x66) -> f114_in(x66) :|: TRUE f124_in(x69) -> f133_in(x69) :|: TRUE f117_in(x70) -> f118_in(x70) :|: TRUE ---------------------------------------- (157) Obligation: Rules: f118_in(T31) -> f124_in(T31) :|: TRUE f145_in(x29) -> f271_in(x29) :|: TRUE f114_in(x39) -> f116_in(x39) :|: TRUE f287_in(x55) -> f300_in(x55) :|: TRUE f116_in(x56) -> f117_in(x56) :|: TRUE f271_in(s(x58)) -> f287_in(x58) :|: TRUE f133_in(x65) -> f145_in(x65) :|: TRUE f300_in(x66) -> f114_in(x66) :|: TRUE f124_in(x69) -> f133_in(x69) :|: TRUE f117_in(x70) -> f118_in(x70) :|: TRUE ---------------------------------------- (158) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (159) Obligation: Rules: f118_in(s(x58:0)) -> f118_in(x58:0) :|: TRUE ---------------------------------------- (160) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (161) Obligation: Rules: f118_in(s(x58:0)) -> f118_in(x58:0) :|: TRUE ---------------------------------------- (162) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f118_in(s(x58:0)) -> f118_in(x58:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (163) Obligation: Termination digraph: Nodes: (1) f118_in(s(x58:0)) -> f118_in(x58:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (164) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f118_in(VARIABLE) s(VARIABLE) Removed predefined arithmetic. ---------------------------------------- (165) Obligation: Rules: f118_in(s(x58:0)) -> f118_in(x58:0) ---------------------------------------- (166) IRSwTToQDPProof (SOUND) Removed the integers and created a QDP-Problem. ---------------------------------------- (167) Obligation: Q DP problem: The TRS P consists of the following rules: f118_in(s(x58:0)) -> f118_in(x58:0) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (168) 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: *f118_in(s(x58:0)) -> f118_in(x58:0) The graph contains the following edges 1 > 1 ---------------------------------------- (169) YES ---------------------------------------- (170) Obligation: Rules: f397_out(T94) -> f395_out(T94) :|: TRUE f395_in(x) -> f397_in(x) :|: TRUE f423_in(T108) -> f424_in(T108) :|: TRUE f423_in(x1) -> f425_in(x1) :|: TRUE f425_out(x2) -> f423_out(x2) :|: TRUE f424_out(x3) -> f423_out(x3) :|: TRUE f487_in(T128) -> f403_in(T128) :|: TRUE f403_out(x4) -> f487_out(x4) :|: TRUE f425_in(x5) -> f454_in(x5) :|: TRUE f425_in(x6) -> f453_in(x6) :|: TRUE f454_out(x7) -> f425_out(x7) :|: TRUE f453_out(x8) -> f425_out(x8) :|: TRUE f454_in(s(x9)) -> f487_in(x9) :|: TRUE f487_out(x10) -> f454_out(s(x10)) :|: TRUE f454_in(x11) -> f488_in :|: TRUE f488_out -> f454_out(x12) :|: TRUE f398_out(x13) -> f397_out(x13) :|: TRUE f397_in(x14) -> f398_in(x14) :|: TRUE f400_in(x15) -> f403_in(x15) :|: TRUE f400_in(x16) -> f404_in :|: TRUE f404_out -> f400_out(x17) :|: TRUE f403_out(x18) -> f400_out(x18) :|: TRUE f400_out(x19) -> f398_out(x19) :|: TRUE f398_in(x20) -> f399_in(x20) :|: TRUE f398_in(x21) -> f400_in(x21) :|: TRUE f399_out(x22) -> f398_out(x22) :|: TRUE f403_in(x23) -> f406_in(x23) :|: TRUE f406_out(x24) -> f407_in(x24) :|: TRUE f407_out(x25) -> f403_out(x25) :|: TRUE f407_in(x26) -> f423_in(x26) :|: TRUE f423_out(x27) -> f407_out(x27) :|: TRUE f406_in(x28) -> f395_in(x28) :|: TRUE f395_out(x29) -> f406_out(x29) :|: TRUE f4_out(T1, T3) -> f3_out(T1, T3) :|: TRUE f3_in(x30, x31) -> f4_in(x30, x31) :|: TRUE f4_in(x32, x33) -> f8_in(x32, x33) :|: TRUE f7_out(x34, x35) -> f4_out(x34, x35) :|: TRUE f4_in(x36, x37) -> f7_in(x36, x37) :|: TRUE f8_out(x38, x39) -> f4_out(x38, x39) :|: TRUE f8_in(x40, x41) -> f36_in(x40, x41) :|: TRUE f8_in(x42, x43) -> f35_in(x42, x43) :|: TRUE f36_out(x44, x45) -> f8_out(x44, x45) :|: TRUE f35_out(x46, x47) -> f8_out(x46, x47) :|: TRUE f393_out(x48, x49) -> f36_out(s(x48), x49) :|: TRUE f36_in(s(x50), x51) -> f393_in(x50, x51) :|: TRUE f36_in(x52, x53) -> f394_in :|: TRUE f394_out -> f36_out(x54, x55) :|: TRUE f393_in(x56, x57) -> f395_in(x56) :|: TRUE f395_out(x58) -> f396_in(x58, x59) :|: TRUE f396_out(x60, x61) -> f393_out(x60, x61) :|: TRUE Start term: f3_in(T1, T3) ---------------------------------------- (171) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f395_in(x) -> f397_in(x) :|: TRUE f397_in(x14) -> f398_in(x14) :|: TRUE f400_in(x15) -> f403_in(x15) :|: TRUE f398_in(x21) -> f400_in(x21) :|: TRUE f403_in(x23) -> f406_in(x23) :|: TRUE f406_in(x28) -> f395_in(x28) :|: TRUE ---------------------------------------- (172) Obligation: Rules: f395_in(x) -> f397_in(x) :|: TRUE f397_in(x14) -> f398_in(x14) :|: TRUE f400_in(x15) -> f403_in(x15) :|: TRUE f398_in(x21) -> f400_in(x21) :|: TRUE f403_in(x23) -> f406_in(x23) :|: TRUE f406_in(x28) -> f395_in(x28) :|: TRUE ---------------------------------------- (173) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (174) Obligation: Rules: f395_in(x:0) -> f395_in(x:0) :|: TRUE ---------------------------------------- (175) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (176) Obligation: Rules: f395_in(x:0) -> f395_in(x:0) :|: TRUE ---------------------------------------- (177) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f395_in(x:0) -> f395_in(x:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (178) Obligation: Termination digraph: Nodes: (1) f395_in(x:0) -> f395_in(x:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (179) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f395_in(VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (180) Obligation: Rules: f395_in(x:0) -> f395_in(x:0) :|: TRUE ---------------------------------------- (181) IntTRSPeriodicNontermProof (COMPLETE) Normalized system to the following form: f(pc, x:0) -> f(1, x:0) :|: pc = 1 && TRUE Witness term starting non-terminating reduction: f(1, -8) ---------------------------------------- (182) NO ---------------------------------------- (183) Obligation: Rules: f103_in(T24, T25) -> f114_in(T24) :|: TRUE f114_out(x) -> f115_in(x, x1, x2) :|: TRUE f115_out(x3, x4, x5) -> f103_out(x3, x5) :|: TRUE f390_out -> f384_out(x6, x7, x8) :|: TRUE f384_in(s(T82), s(T83), T84) -> f389_in(T82, T83, T84) :|: TRUE f389_out(x9, x10, x11) -> f384_out(s(x9), s(x10), x11) :|: TRUE f384_in(x12, x13, x14) -> f390_in :|: TRUE f118_in(T31) -> f124_in(T31) :|: TRUE f124_out(x15) -> f118_out(x15) :|: TRUE f391_in(x16, x17) -> f301_in(s(x16), x17) :|: TRUE f301_out(s(x18), x19) -> f391_out(x18, x19) :|: TRUE f392_in(x20, x21, x22) -> f115_in(x20, x21, x22) :|: TRUE f115_out(x23, x24, x25) -> f392_out(x23, x24, x25) :|: TRUE f365_out -> f119_out(x26) :|: TRUE f119_in(x27) -> f365_in :|: TRUE f74_out(T17, T18) -> f45_out(T17, T18) :|: TRUE f45_in(x28, x29) -> f74_in(x28, x29) :|: TRUE f352_out -> f342_out(T35, T36) :|: TRUE f342_in(x30, x31) -> f352_in :|: TRUE f342_in(s(T53), s(T54)) -> f350_in(T53, T54) :|: TRUE f350_out(x32, x33) -> f342_out(s(x32), s(x33)) :|: TRUE f141_in(0) -> f165_in :|: TRUE f165_out -> f141_out(0) :|: TRUE f141_in(x34) -> f170_in :|: TRUE f170_out -> f141_out(x35) :|: TRUE f109_out -> f74_out(x36, x37) :|: TRUE f74_in(s(x38), x39) -> f103_in(x38, x39) :|: TRUE f103_out(x40, x41) -> f74_out(s(x40), x41) :|: TRUE f74_in(x42, x43) -> f109_in :|: TRUE f115_in(x44, x45, x46) -> f367_in(x44, x45, x46) :|: TRUE f367_out(x47, x48, x49) -> f115_out(x47, x48, x49) :|: TRUE f367_in(x50, x51, x52) -> f370_in(x50, x51, x52) :|: TRUE f370_out(x53, x54, x55) -> f367_out(x53, x54, x55) :|: TRUE f367_in(x56, x57, x58) -> f371_in(x56, x57, x58) :|: TRUE f371_out(x59, x60, x61) -> f367_out(x59, x60, x61) :|: TRUE f301_out(x62, x63) -> f360_out(x62, x63) :|: TRUE f360_in(x64, x65) -> f301_in(x64, x65) :|: TRUE f338_in -> f338_out :|: TRUE f165_in -> f165_out :|: TRUE f43_in(x66, x67) -> f45_in(x66, x67) :|: TRUE f45_out(x68, x69) -> f43_out(x68, x69) :|: TRUE f44_out(x70, x71) -> f43_out(x70, x71) :|: TRUE f43_in(x72, x73) -> f44_in(x72, x73) :|: TRUE f343_out(T48) -> f341_out(s(T48), 0) :|: TRUE f341_in(x74, x75) -> f344_in :|: TRUE f341_in(s(x76), 0) -> f343_in(x76) :|: TRUE f344_out -> f341_out(x77, x78) :|: TRUE f124_out(x79) -> f343_out(x79) :|: TRUE f343_in(x80) -> f124_in(x80) :|: TRUE f116_in(x81) -> f117_in(x81) :|: TRUE f117_out(x82) -> f116_out(x82) :|: TRUE f133_in(x83) -> f141_in(x83) :|: TRUE f141_out(x84) -> f133_out(x84) :|: TRUE f145_out(x85) -> f133_out(x85) :|: TRUE f133_in(x86) -> f145_in(x86) :|: TRUE f133_out(x87) -> f124_out(x87) :|: TRUE f124_in(x88) -> f133_in(x88) :|: TRUE f117_in(x89) -> f118_in(x89) :|: TRUE f119_out(x90) -> f117_out(x90) :|: TRUE f117_in(x91) -> f119_in(x91) :|: TRUE f118_out(x92) -> f117_out(x92) :|: TRUE f389_in(x93, x94, x95) -> f391_in(x93, x94) :|: TRUE f391_out(x96, x97) -> f392_in(x96, x98, x99) :|: TRUE f392_out(x100, x101, x102) -> f389_out(x100, x103, x102) :|: TRUE f301_in(x104, x105) -> f335_in(x104, x105) :|: TRUE f335_out(x106, x107) -> f301_out(x106, x107) :|: TRUE f341_out(x108, x109) -> f337_out(x108, x109) :|: TRUE f337_in(x110, x111) -> f342_in(x110, x111) :|: TRUE f342_out(x112, x113) -> f337_out(x112, x113) :|: TRUE f337_in(x114, x115) -> f341_in(x114, x115) :|: TRUE f301_out(s(x116), x117) -> f359_out(x116, x117) :|: TRUE f359_in(x118, x119) -> f301_in(s(x118), x119) :|: TRUE f335_in(x120, x121) -> f336_in(x120, x121) :|: TRUE f336_out(x122, x123) -> f335_out(x122, x123) :|: TRUE f335_in(x124, x125) -> f337_in(x124, x125) :|: TRUE f337_out(x126, x127) -> f335_out(x126, x127) :|: TRUE f360_out(x128, x129) -> f350_out(x128, x130) :|: TRUE f350_in(x131, x132) -> f359_in(x131, x132) :|: TRUE f359_out(x133, x134) -> f360_in(x133, x135) :|: TRUE f387_out(T74, T75) -> f383_out(s(T74), 0, T75) :|: TRUE f383_in(x136, x137, x138) -> f388_in :|: TRUE f383_in(s(x139), 0, x140) -> f387_in(x139, x140) :|: TRUE f388_out -> f383_out(x141, x142, x143) :|: TRUE f41_in(x144, x145) -> f43_in(x144, x145) :|: TRUE f43_out(x146, x147) -> f41_out(x146, x147) :|: TRUE f145_in(x148) -> f271_in(x148) :|: TRUE f271_out(x149) -> f145_out(x149) :|: TRUE f116_out(x150) -> f114_out(x150) :|: TRUE f114_in(x151) -> f116_in(x151) :|: TRUE f336_in(x152, x153) -> f339_in :|: TRUE f339_out -> f336_out(x154, x155) :|: TRUE f336_in(0, T43) -> f338_in :|: TRUE f338_out -> f336_out(0, x156) :|: TRUE f300_out(x157) -> f301_in(x157, x158) :|: TRUE f301_out(x159, x160) -> f287_out(x159) :|: TRUE f287_in(x161) -> f300_in(x161) :|: TRUE f387_in(x162, x163) -> f41_in(x162, x163) :|: TRUE f41_out(x164, x165) -> f387_out(x164, x165) :|: TRUE f271_in(s(x166)) -> f287_in(x166) :|: TRUE f289_out -> f271_out(x167) :|: TRUE f271_in(x168) -> f289_in :|: TRUE f287_out(x169) -> f271_out(s(x169)) :|: TRUE f384_out(x170, x171, x172) -> f371_out(x170, x171, x172) :|: TRUE f383_out(x173, x174, x175) -> f371_out(x173, x174, x175) :|: TRUE f371_in(x176, x177, x178) -> f384_in(x176, x177, x178) :|: TRUE f371_in(x179, x180, x181) -> f383_in(x179, x180, x181) :|: TRUE f300_in(x182) -> f114_in(x182) :|: TRUE f114_out(x183) -> f300_out(x183) :|: TRUE f4_out(T1, T3) -> f3_out(T1, T3) :|: TRUE f3_in(x184, x185) -> f4_in(x184, x185) :|: TRUE f4_in(x186, x187) -> f8_in(x186, x187) :|: TRUE f7_out(x188, x189) -> f4_out(x188, x189) :|: TRUE f4_in(x190, x191) -> f7_in(x190, x191) :|: TRUE f8_out(x192, x193) -> f4_out(x192, x193) :|: TRUE f8_in(x194, x195) -> f36_in(x194, x195) :|: TRUE f8_in(x196, x197) -> f35_in(x196, x197) :|: TRUE f36_out(x198, x199) -> f8_out(x198, x199) :|: TRUE f35_out(x200, x201) -> f8_out(x200, x201) :|: TRUE f42_out -> f35_out(x202, x203) :|: TRUE f41_out(x204, x205) -> f35_out(s(x204), x205) :|: TRUE f35_in(s(x206), x207) -> f41_in(x206, x207) :|: TRUE f35_in(x208, x209) -> f42_in :|: TRUE Start term: f3_in(T1, T3) ---------------------------------------- (184) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f103_in(T24, T25) -> f114_in(T24) :|: TRUE f114_out(x) -> f115_in(x, x1, x2) :|: TRUE f384_in(s(T82), s(T83), T84) -> f389_in(T82, T83, T84) :|: TRUE f118_in(T31) -> f124_in(T31) :|: TRUE f124_out(x15) -> f118_out(x15) :|: TRUE f391_in(x16, x17) -> f301_in(s(x16), x17) :|: TRUE f301_out(s(x18), x19) -> f391_out(x18, x19) :|: TRUE f392_in(x20, x21, x22) -> f115_in(x20, x21, x22) :|: TRUE f45_in(x28, x29) -> f74_in(x28, x29) :|: TRUE f342_in(s(T53), s(T54)) -> f350_in(T53, T54) :|: TRUE f350_out(x32, x33) -> f342_out(s(x32), s(x33)) :|: TRUE f141_in(0) -> f165_in :|: TRUE f165_out -> f141_out(0) :|: TRUE f74_in(s(x38), x39) -> f103_in(x38, x39) :|: TRUE f115_in(x44, x45, x46) -> f367_in(x44, x45, x46) :|: TRUE f367_in(x56, x57, x58) -> f371_in(x56, x57, x58) :|: TRUE f301_out(x62, x63) -> f360_out(x62, x63) :|: TRUE f360_in(x64, x65) -> f301_in(x64, x65) :|: TRUE f338_in -> f338_out :|: TRUE f165_in -> f165_out :|: TRUE f43_in(x66, x67) -> f45_in(x66, x67) :|: TRUE f343_out(T48) -> f341_out(s(T48), 0) :|: TRUE f341_in(s(x76), 0) -> f343_in(x76) :|: TRUE f124_out(x79) -> f343_out(x79) :|: TRUE f343_in(x80) -> f124_in(x80) :|: TRUE f116_in(x81) -> f117_in(x81) :|: TRUE f117_out(x82) -> f116_out(x82) :|: TRUE f133_in(x83) -> f141_in(x83) :|: TRUE f141_out(x84) -> f133_out(x84) :|: TRUE f145_out(x85) -> f133_out(x85) :|: TRUE f133_in(x86) -> f145_in(x86) :|: TRUE f133_out(x87) -> f124_out(x87) :|: TRUE f124_in(x88) -> f133_in(x88) :|: TRUE f117_in(x89) -> f118_in(x89) :|: TRUE f118_out(x92) -> f117_out(x92) :|: TRUE f389_in(x93, x94, x95) -> f391_in(x93, x94) :|: TRUE f391_out(x96, x97) -> f392_in(x96, x98, x99) :|: TRUE f301_in(x104, x105) -> f335_in(x104, x105) :|: TRUE f335_out(x106, x107) -> f301_out(x106, x107) :|: TRUE f341_out(x108, x109) -> f337_out(x108, x109) :|: TRUE f337_in(x110, x111) -> f342_in(x110, x111) :|: TRUE f342_out(x112, x113) -> f337_out(x112, x113) :|: TRUE f337_in(x114, x115) -> f341_in(x114, x115) :|: TRUE f301_out(s(x116), x117) -> f359_out(x116, x117) :|: TRUE f359_in(x118, x119) -> f301_in(s(x118), x119) :|: TRUE f335_in(x120, x121) -> f336_in(x120, x121) :|: TRUE f336_out(x122, x123) -> f335_out(x122, x123) :|: TRUE f335_in(x124, x125) -> f337_in(x124, x125) :|: TRUE f337_out(x126, x127) -> f335_out(x126, x127) :|: TRUE f360_out(x128, x129) -> f350_out(x128, x130) :|: TRUE f350_in(x131, x132) -> f359_in(x131, x132) :|: TRUE f359_out(x133, x134) -> f360_in(x133, x135) :|: TRUE f383_in(s(x139), 0, x140) -> f387_in(x139, x140) :|: TRUE f41_in(x144, x145) -> f43_in(x144, x145) :|: TRUE f145_in(x148) -> f271_in(x148) :|: TRUE f271_out(x149) -> f145_out(x149) :|: TRUE f116_out(x150) -> f114_out(x150) :|: TRUE f114_in(x151) -> f116_in(x151) :|: TRUE f336_in(0, T43) -> f338_in :|: TRUE f338_out -> f336_out(0, x156) :|: TRUE f300_out(x157) -> f301_in(x157, x158) :|: TRUE f301_out(x159, x160) -> f287_out(x159) :|: TRUE f287_in(x161) -> f300_in(x161) :|: TRUE f387_in(x162, x163) -> f41_in(x162, x163) :|: TRUE f271_in(s(x166)) -> f287_in(x166) :|: TRUE f287_out(x169) -> f271_out(s(x169)) :|: TRUE f371_in(x176, x177, x178) -> f384_in(x176, x177, x178) :|: TRUE f371_in(x179, x180, x181) -> f383_in(x179, x180, x181) :|: TRUE f300_in(x182) -> f114_in(x182) :|: TRUE f114_out(x183) -> f300_out(x183) :|: TRUE ---------------------------------------- (185) Obligation: Rules: f103_in(T24, T25) -> f114_in(T24) :|: TRUE f114_out(x) -> f115_in(x, x1, x2) :|: TRUE f384_in(s(T82), s(T83), T84) -> f389_in(T82, T83, T84) :|: TRUE f118_in(T31) -> f124_in(T31) :|: TRUE f124_out(x15) -> f118_out(x15) :|: TRUE f391_in(x16, x17) -> f301_in(s(x16), x17) :|: TRUE f301_out(s(x18), x19) -> f391_out(x18, x19) :|: TRUE f392_in(x20, x21, x22) -> f115_in(x20, x21, x22) :|: TRUE f45_in(x28, x29) -> f74_in(x28, x29) :|: TRUE f342_in(s(T53), s(T54)) -> f350_in(T53, T54) :|: TRUE f350_out(x32, x33) -> f342_out(s(x32), s(x33)) :|: TRUE f141_in(0) -> f165_in :|: TRUE f165_out -> f141_out(0) :|: TRUE f74_in(s(x38), x39) -> f103_in(x38, x39) :|: TRUE f115_in(x44, x45, x46) -> f367_in(x44, x45, x46) :|: TRUE f367_in(x56, x57, x58) -> f371_in(x56, x57, x58) :|: TRUE f301_out(x62, x63) -> f360_out(x62, x63) :|: TRUE f360_in(x64, x65) -> f301_in(x64, x65) :|: TRUE f338_in -> f338_out :|: TRUE f165_in -> f165_out :|: TRUE f43_in(x66, x67) -> f45_in(x66, x67) :|: TRUE f343_out(T48) -> f341_out(s(T48), 0) :|: TRUE f341_in(s(x76), 0) -> f343_in(x76) :|: TRUE f124_out(x79) -> f343_out(x79) :|: TRUE f343_in(x80) -> f124_in(x80) :|: TRUE f116_in(x81) -> f117_in(x81) :|: TRUE f117_out(x82) -> f116_out(x82) :|: TRUE f133_in(x83) -> f141_in(x83) :|: TRUE f141_out(x84) -> f133_out(x84) :|: TRUE f145_out(x85) -> f133_out(x85) :|: TRUE f133_in(x86) -> f145_in(x86) :|: TRUE f133_out(x87) -> f124_out(x87) :|: TRUE f124_in(x88) -> f133_in(x88) :|: TRUE f117_in(x89) -> f118_in(x89) :|: TRUE f118_out(x92) -> f117_out(x92) :|: TRUE f389_in(x93, x94, x95) -> f391_in(x93, x94) :|: TRUE f391_out(x96, x97) -> f392_in(x96, x98, x99) :|: TRUE f301_in(x104, x105) -> f335_in(x104, x105) :|: TRUE f335_out(x106, x107) -> f301_out(x106, x107) :|: TRUE f341_out(x108, x109) -> f337_out(x108, x109) :|: TRUE f337_in(x110, x111) -> f342_in(x110, x111) :|: TRUE f342_out(x112, x113) -> f337_out(x112, x113) :|: TRUE f337_in(x114, x115) -> f341_in(x114, x115) :|: TRUE f301_out(s(x116), x117) -> f359_out(x116, x117) :|: TRUE f359_in(x118, x119) -> f301_in(s(x118), x119) :|: TRUE f335_in(x120, x121) -> f336_in(x120, x121) :|: TRUE f336_out(x122, x123) -> f335_out(x122, x123) :|: TRUE f335_in(x124, x125) -> f337_in(x124, x125) :|: TRUE f337_out(x126, x127) -> f335_out(x126, x127) :|: TRUE f360_out(x128, x129) -> f350_out(x128, x130) :|: TRUE f350_in(x131, x132) -> f359_in(x131, x132) :|: TRUE f359_out(x133, x134) -> f360_in(x133, x135) :|: TRUE f383_in(s(x139), 0, x140) -> f387_in(x139, x140) :|: TRUE f41_in(x144, x145) -> f43_in(x144, x145) :|: TRUE f145_in(x148) -> f271_in(x148) :|: TRUE f271_out(x149) -> f145_out(x149) :|: TRUE f116_out(x150) -> f114_out(x150) :|: TRUE f114_in(x151) -> f116_in(x151) :|: TRUE f336_in(0, T43) -> f338_in :|: TRUE f338_out -> f336_out(0, x156) :|: TRUE f300_out(x157) -> f301_in(x157, x158) :|: TRUE f301_out(x159, x160) -> f287_out(x159) :|: TRUE f287_in(x161) -> f300_in(x161) :|: TRUE f387_in(x162, x163) -> f41_in(x162, x163) :|: TRUE f271_in(s(x166)) -> f287_in(x166) :|: TRUE f287_out(x169) -> f271_out(s(x169)) :|: TRUE f371_in(x176, x177, x178) -> f384_in(x176, x177, x178) :|: TRUE f371_in(x179, x180, x181) -> f383_in(x179, x180, x181) :|: TRUE f300_in(x182) -> f114_in(x182) :|: TRUE f114_out(x183) -> f300_out(x183) :|: TRUE ---------------------------------------- (186) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (187) Obligation: Rules: f133_in(cons_0) -> f124_out(0) :|: TRUE && cons_0 = 0 f371_in(s(s(x)), x1, x2) -> f133_in(x) :|: TRUE && x1 = 0 f335_in(x3, x4) -> f335_out(0, x5) :|: TRUE && x3 = 0 f335_out(s(x18:0), x107:0) -> f371_in(x18:0, x98:0, x99:0) :|: TRUE f335_out(s(x6), x7) -> f335_in(x6, x8) :|: TRUE f335_out(x9, x10) -> f124_out(s(x9)) :|: TRUE f124_out(x15:0) -> f371_in(x15:0, x1:0, x2:0) :|: TRUE f133_in(s(x166:0)) -> f133_in(x166:0) :|: TRUE f335_in(s(x11), x12) -> f133_in(x11) :|: TRUE && x12 = 0 f335_in(s(T53:0), s(T54:0)) -> f335_in(s(T53:0), T54:0) :|: TRUE f335_out(x13, x14) -> f335_out(s(x13), s(x15)) :|: TRUE f124_out(x16) -> f335_in(x16, x17) :|: TRUE f371_in(s(T82:0), s(T83:0), x178:0) -> f335_in(s(T82:0), T83:0) :|: TRUE f124_out(x79:0) -> f335_out(s(x79:0), 0) :|: TRUE ---------------------------------------- (188) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (189) Obligation: Rules: f133_in(cons_0) -> f124_out(0) :|: TRUE && cons_0 = 0 f371_in(s(s(x)), x1, x2) -> f133_in(x) :|: TRUE && x1 = 0 f335_in(x3, x4) -> f335_out(0, x5) :|: TRUE && x3 = 0 f335_out(s(x18:0), x107:0) -> f371_in(x18:0, x98:0, x99:0) :|: TRUE f335_out(s(x6), x7) -> f335_in(x6, x8) :|: TRUE f335_out(x9, x10) -> f124_out(s(x9)) :|: TRUE f124_out(x15:0) -> f371_in(x15:0, x1:0, x2:0) :|: TRUE f133_in(s(x166:0)) -> f133_in(x166:0) :|: TRUE f335_in(s(x11), x12) -> f133_in(x11) :|: TRUE && x12 = 0 f335_in(s(T53:0), s(T54:0)) -> f335_in(s(T53:0), T54:0) :|: TRUE f335_out(x13, x14) -> f335_out(s(x13), s(x15)) :|: TRUE f124_out(x16) -> f335_in(x16, x17) :|: TRUE f371_in(s(T82:0), s(T83:0), x178:0) -> f335_in(s(T82:0), T83:0) :|: TRUE f124_out(x79:0) -> f335_out(s(x79:0), 0) :|: TRUE ---------------------------------------- (190) Obligation: Rules: f425_in(T108) -> f454_in(T108) :|: TRUE f425_in(x) -> f453_in(x) :|: TRUE f454_out(x1) -> f425_out(x1) :|: TRUE f453_out(x2) -> f425_out(x2) :|: TRUE f365_out -> f119_out(T24) :|: TRUE f119_in(x3) -> f365_in :|: TRUE f401_in(T103) -> f124_in(T103) :|: TRUE f124_out(x4) -> f401_out(x4) :|: TRUE f343_out(T48) -> f341_out(s(T48), 0) :|: TRUE f341_in(T35, T36) -> f344_in :|: TRUE f341_in(s(x5), 0) -> f343_in(x5) :|: TRUE f344_out -> f341_out(x6, x7) :|: TRUE f124_out(x8) -> f343_out(x8) :|: TRUE f343_in(x9) -> f124_in(x9) :|: TRUE f116_in(x10) -> f117_in(x10) :|: TRUE f117_out(x11) -> f116_out(x11) :|: TRUE f133_in(T31) -> f141_in(T31) :|: TRUE f141_out(x12) -> f133_out(x12) :|: TRUE f145_out(x13) -> f133_out(x13) :|: TRUE f133_in(x14) -> f145_in(x14) :|: TRUE f133_out(x15) -> f124_out(x15) :|: TRUE f124_in(x16) -> f133_in(x16) :|: TRUE f301_out(s(T53), T54) -> f359_out(T53, T54) :|: TRUE f359_in(x17, x18) -> f301_in(s(x17), x18) :|: TRUE f454_in(s(T128)) -> f487_in(T128) :|: TRUE f487_out(x19) -> f454_out(s(x19)) :|: TRUE f454_in(x20) -> f488_in :|: TRUE f488_out -> f454_out(x21) :|: TRUE f360_out(x22, x23) -> f350_out(x22, x24) :|: TRUE f350_in(x25, x26) -> f359_in(x25, x26) :|: TRUE f359_out(x27, x28) -> f360_in(x27, x29) :|: TRUE f424_in(0) -> f426_in :|: TRUE f424_in(x30) -> f427_in :|: TRUE f427_out -> f424_out(x31) :|: TRUE f426_out -> f424_out(0) :|: TRUE f145_in(x32) -> f271_in(x32) :|: TRUE f271_out(x33) -> f145_out(x33) :|: TRUE f406_in(x34) -> f395_in(x34) :|: TRUE f395_out(x35) -> f406_out(x35) :|: TRUE f396_in(T94, T96) -> f3_in(T94, T96) :|: TRUE f3_out(x36, x37) -> f396_out(x36, x37) :|: TRUE f423_in(x38) -> f424_in(x38) :|: TRUE f423_in(x39) -> f425_in(x39) :|: TRUE f425_out(x40) -> f423_out(x40) :|: TRUE f424_out(x41) -> f423_out(x41) :|: TRUE f453_in(x42) -> f460_in :|: TRUE f453_in(s(T123)) -> f459_in(T123) :|: TRUE f460_out -> f453_out(x43) :|: TRUE f459_out(x44) -> f453_out(s(x44)) :|: TRUE f407_in(x45) -> f423_in(x45) :|: TRUE f423_out(x46) -> f407_out(x46) :|: TRUE f397_out(x47) -> f395_out(x47) :|: TRUE f395_in(x48) -> f397_in(x48) :|: TRUE f118_in(x49) -> f124_in(x49) :|: TRUE f124_out(x50) -> f118_out(x50) :|: TRUE f4_in(T1, T3) -> f8_in(T1, T3) :|: TRUE f7_out(x51, x52) -> f4_out(x51, x52) :|: TRUE f4_in(x53, x54) -> f7_in(x53, x54) :|: TRUE f8_out(x55, x56) -> f4_out(x55, x56) :|: TRUE f393_in(x57, x58) -> f395_in(x57) :|: TRUE f395_out(x59) -> f396_in(x59, x60) :|: TRUE f396_out(x61, x62) -> f393_out(x61, x62) :|: TRUE f426_in -> f426_out :|: TRUE f124_out(x63) -> f459_out(x63) :|: TRUE f459_in(x64) -> f124_in(x64) :|: TRUE f352_out -> f342_out(x65, x66) :|: TRUE f342_in(x67, x68) -> f352_in :|: TRUE f342_in(s(x69), s(x70)) -> f350_in(x69, x70) :|: TRUE f350_out(x71, x72) -> f342_out(s(x71), s(x72)) :|: TRUE f400_out(x73) -> f398_out(x73) :|: TRUE f398_in(x74) -> f399_in(x74) :|: TRUE f398_in(x75) -> f400_in(x75) :|: TRUE f399_out(x76) -> f398_out(x76) :|: TRUE f141_in(0) -> f165_in :|: TRUE f165_out -> f141_out(0) :|: TRUE f141_in(x77) -> f170_in :|: TRUE f170_out -> f141_out(x78) :|: TRUE f487_in(x79) -> f403_in(x79) :|: TRUE f403_out(x80) -> f487_out(x80) :|: TRUE f301_out(x81, x82) -> f360_out(x81, x82) :|: TRUE f360_in(x83, x84) -> f301_in(x83, x84) :|: TRUE f338_in -> f338_out :|: TRUE f165_in -> f165_out :|: TRUE f8_in(x85, x86) -> f36_in(x85, x86) :|: TRUE f8_in(x87, x88) -> f35_in(x87, x88) :|: TRUE f36_out(x89, x90) -> f8_out(x89, x90) :|: TRUE f35_out(x91, x92) -> f8_out(x91, x92) :|: TRUE f117_in(x93) -> f118_in(x93) :|: TRUE f119_out(x94) -> f117_out(x94) :|: TRUE f117_in(x95) -> f119_in(x95) :|: TRUE f118_out(x96) -> f117_out(x96) :|: TRUE f301_in(x97, x98) -> f335_in(x97, x98) :|: TRUE f335_out(x99, x100) -> f301_out(x99, x100) :|: TRUE f341_out(x101, x102) -> f337_out(x101, x102) :|: TRUE f337_in(x103, x104) -> f342_in(x103, x104) :|: TRUE f342_out(x105, x106) -> f337_out(x105, x106) :|: TRUE f337_in(x107, x108) -> f341_in(x107, x108) :|: TRUE f335_in(x109, x110) -> f336_in(x109, x110) :|: TRUE f336_out(x111, x112) -> f335_out(x111, x112) :|: TRUE f335_in(x113, x114) -> f337_in(x113, x114) :|: TRUE f337_out(x115, x116) -> f335_out(x115, x116) :|: TRUE f402_out -> f399_out(x117) :|: TRUE f399_in(x118) -> f401_in(x118) :|: TRUE f401_out(x119) -> f399_out(x119) :|: TRUE f399_in(x120) -> f402_in :|: TRUE f393_out(x121, x122) -> f36_out(s(x121), x122) :|: TRUE f36_in(s(x123), x124) -> f393_in(x123, x124) :|: TRUE f36_in(x125, x126) -> f394_in :|: TRUE f394_out -> f36_out(x127, x128) :|: TRUE f116_out(x129) -> f114_out(x129) :|: TRUE f114_in(x130) -> f116_in(x130) :|: TRUE f336_in(x131, x132) -> f339_in :|: TRUE f339_out -> f336_out(x133, x134) :|: TRUE f336_in(0, T43) -> f338_in :|: TRUE f338_out -> f336_out(0, x135) :|: TRUE f300_out(x136) -> f301_in(x136, x137) :|: TRUE f301_out(x138, x139) -> f287_out(x138) :|: TRUE f287_in(x140) -> f300_in(x140) :|: TRUE f271_in(s(x141)) -> f287_in(x141) :|: TRUE f289_out -> f271_out(x142) :|: TRUE f271_in(x143) -> f289_in :|: TRUE f287_out(x144) -> f271_out(s(x144)) :|: TRUE f300_in(x145) -> f114_in(x145) :|: TRUE f114_out(x146) -> f300_out(x146) :|: TRUE f398_out(x147) -> f397_out(x147) :|: TRUE f397_in(x148) -> f398_in(x148) :|: TRUE f4_out(x149, x150) -> f3_out(x149, x150) :|: TRUE f3_in(x151, x152) -> f4_in(x151, x152) :|: TRUE f400_in(x153) -> f403_in(x153) :|: TRUE f400_in(x154) -> f404_in :|: TRUE f404_out -> f400_out(x155) :|: TRUE f403_out(x156) -> f400_out(x156) :|: TRUE f403_in(x157) -> f406_in(x157) :|: TRUE f406_out(x158) -> f407_in(x158) :|: TRUE f407_out(x159) -> f403_out(x159) :|: TRUE Start term: f3_in(T1, T3)