/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.pl /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox/benchmark/theBenchmark.pl # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Left Termination of the query pattern s2(g,a) w.r.t. the given Prolog program could not be shown: (0) Prolog (1) PrologToPiTRSProof [SOUND, 0 ms] (2) PiTRS (3) DependencyPairsProof [EQUIVALENT, 8 ms] (4) PiDP (5) DependencyGraphProof [EQUIVALENT, 0 ms] (6) AND (7) PiDP (8) UsableRulesProof [EQUIVALENT, 1 ms] (9) PiDP (10) PiDPToQDPProof [SOUND, 0 ms] (11) QDP (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] (13) YES (14) PiDP (15) UsableRulesProof [EQUIVALENT, 0 ms] (16) PiDP (17) PiDPToQDPProof [EQUIVALENT, 0 ms] (18) QDP (19) QDPSizeChangeProof [EQUIVALENT, 0 ms] (20) YES (21) PiDP (22) PiDPToQDPProof [SOUND, 10 ms] (23) QDP (24) QDPOrderProof [EQUIVALENT, 66 ms] (25) QDP (26) QDPOrderProof [EQUIVALENT, 51 ms] (27) QDP (28) DependencyGraphProof [EQUIVALENT, 0 ms] (29) QDP (30) UsableRulesProof [EQUIVALENT, 0 ms] (31) QDP (32) QReductionProof [EQUIVALENT, 0 ms] (33) QDP (34) NonTerminationLoopProof [COMPLETE, 0 ms] (35) NO (36) PrologToPiTRSProof [SOUND, 0 ms] (37) PiTRS (38) DependencyPairsProof [EQUIVALENT, 12 ms] (39) PiDP (40) DependencyGraphProof [EQUIVALENT, 0 ms] (41) AND (42) PiDP (43) UsableRulesProof [EQUIVALENT, 0 ms] (44) PiDP (45) PiDPToQDPProof [SOUND, 0 ms] (46) QDP (47) QDPSizeChangeProof [EQUIVALENT, 0 ms] (48) YES (49) PiDP (50) UsableRulesProof [EQUIVALENT, 0 ms] (51) PiDP (52) PiDPToQDPProof [EQUIVALENT, 0 ms] (53) QDP (54) QDPSizeChangeProof [EQUIVALENT, 0 ms] (55) YES (56) PiDP (57) PiDPToQDPProof [SOUND, 11 ms] (58) QDP (59) QDPQMonotonicMRRProof [EQUIVALENT, 88 ms] (60) QDP (61) UsableRulesProof [EQUIVALENT, 0 ms] (62) QDP (63) QReductionProof [EQUIVALENT, 0 ms] (64) QDP (65) QDPQMonotonicMRRProof [EQUIVALENT, 35 ms] (66) QDP (67) DependencyGraphProof [EQUIVALENT, 0 ms] (68) QDP (69) UsableRulesProof [EQUIVALENT, 0 ms] (70) QDP (71) QReductionProof [EQUIVALENT, 0 ms] (72) QDP (73) NonTerminationLoopProof [COMPLETE, 4 ms] (74) NO (75) PrologToTRSTransformerProof [SOUND, 27 ms] (76) QTRS (77) DependencyPairsProof [EQUIVALENT, 0 ms] (78) QDP (79) DependencyGraphProof [EQUIVALENT, 2 ms] (80) AND (81) QDP (82) UsableRulesProof [EQUIVALENT, 0 ms] (83) QDP (84) QDPSizeChangeProof [EQUIVALENT, 0 ms] (85) YES (86) QDP (87) UsableRulesProof [EQUIVALENT, 0 ms] (88) QDP (89) QDPSizeChangeProof [EQUIVALENT, 0 ms] (90) YES (91) QDP (92) QDPOrderProof [EQUIVALENT, 87 ms] (93) QDP (94) DependencyGraphProof [EQUIVALENT, 0 ms] (95) QDP (96) UsableRulesProof [EQUIVALENT, 0 ms] (97) QDP (98) NonTerminationLoopProof [COMPLETE, 0 ms] (99) NO (100) PrologToIRSwTTransformerProof [SOUND, 29 ms] (101) AND (102) IRSwT (103) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (104) TRUE (105) IRSwT (106) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (107) IRSwT (108) IntTRSCompressionProof [EQUIVALENT, 0 ms] (109) IRSwT (110) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (111) IRSwT (112) IRSwTTerminationDigraphProof [EQUIVALENT, 6 ms] (113) IRSwT (114) TempFilterProof [SOUND, 1 ms] (115) IRSwT (116) IRSwTToQDPProof [SOUND, 0 ms] (117) QDP (118) QDPSizeChangeProof [EQUIVALENT, 0 ms] (119) YES (120) IRSwT (121) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (122) IRSwT (123) IntTRSCompressionProof [EQUIVALENT, 8 ms] (124) IRSwT (125) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (126) IRSwT (127) IRSwTTerminationDigraphProof [EQUIVALENT, 15 ms] (128) IRSwT (129) PrologToDTProblemTransformerProof [SOUND, 170 ms] (130) TRIPLES (131) UndefinedPredicateInTriplesTransformerProof [SOUND, 0 ms] (132) TRIPLES (133) TriplesToPiDPProof [SOUND, 94 ms] (134) PiDP (135) DependencyGraphProof [EQUIVALENT, 0 ms] (136) AND (137) PiDP (138) UsableRulesProof [EQUIVALENT, 0 ms] (139) PiDP (140) PiDPToQDPProof [SOUND, 0 ms] (141) QDP (142) QDPSizeChangeProof [EQUIVALENT, 0 ms] (143) YES (144) PiDP (145) UsableRulesProof [EQUIVALENT, 0 ms] (146) PiDP (147) PiDPToQDPProof [EQUIVALENT, 0 ms] (148) QDP (149) QDPSizeChangeProof [EQUIVALENT, 0 ms] (150) YES (151) PiDP (152) PiDPToQDPProof [SOUND, 0 ms] (153) QDP (154) QDPOrderProof [EQUIVALENT, 563 ms] (155) QDP (156) DependencyGraphProof [EQUIVALENT, 0 ms] (157) QDP (158) UsableRulesProof [EQUIVALENT, 0 ms] (159) QDP (160) QReductionProof [EQUIVALENT, 0 ms] (161) QDP ---------------------------------------- (0) Obligation: Clauses: s2(plus(A, plus(B, C)), D) :- s2(plus(plus(A, B), C), D). s2(plus(A, B), C) :- s2(plus(B, A), C). s2(plus(X, 0), X). s2(plus(X, Y), Z) :- ','(s2(X, A), ','(s2(Y, B), s2(plus(A, B), Z))). s2(plus(A, B), C) :- ','(isNat(A), ','(isNat(B), add(A, B, C))). isNat(s(X)) :- isNat(X). isNat(0). add(s(X), Y, s(Z)) :- add(X, Y, Z). add(0, X, X). Query: s2(g,a) ---------------------------------------- (1) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: s2_in_2: (b,f) isNat_in_1: (b) add_in_3: (b,b,f) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C)), D) -> U1_ga(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) s2_in_ga(plus(A, B), C) -> U2_ga(A, B, C, s2_in_ga(plus(B, A), C)) s2_in_ga(plus(X, 0), X) -> s2_out_ga(plus(X, 0), X) s2_in_ga(plus(X, Y), Z) -> U3_ga(X, Y, Z, s2_in_ga(X, A)) s2_in_ga(plus(A, B), C) -> U6_ga(A, B, C, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U6_ga(A, B, C, isNat_out_g(A)) -> U7_ga(A, B, C, isNat_in_g(B)) U7_ga(A, B, C, isNat_out_g(B)) -> U8_ga(A, B, C, add_in_gga(A, B, C)) add_in_gga(s(X), Y, s(Z)) -> U10_gga(X, Y, Z, add_in_gga(X, Y, Z)) add_in_gga(0, X, X) -> add_out_gga(0, X, X) U10_gga(X, Y, Z, add_out_gga(X, Y, Z)) -> add_out_gga(s(X), Y, s(Z)) U8_ga(A, B, C, add_out_gga(A, B, C)) -> s2_out_ga(plus(A, B), C) U3_ga(X, Y, Z, s2_out_ga(X, A)) -> U4_ga(X, Y, Z, A, s2_in_ga(Y, B)) U4_ga(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, Z, s2_in_ga(plus(A, B), Z)) U5_ga(X, Y, Z, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, C, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, D, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The argument filtering Pi contains the following mapping: s2_in_ga(x1, x2) = s2_in_ga(x1) plus(x1, x2) = plus(x1, x2) U1_ga(x1, x2, x3, x4, x5) = U1_ga(x5) U2_ga(x1, x2, x3, x4) = U2_ga(x4) 0 = 0 s2_out_ga(x1, x2) = s2_out_ga(x2) U3_ga(x1, x2, x3, x4) = U3_ga(x2, x4) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x2, x4) isNat_in_g(x1) = isNat_in_g(x1) s(x1) = s(x1) U9_g(x1, x2) = U9_g(x2) isNat_out_g(x1) = isNat_out_g U7_ga(x1, x2, x3, x4) = U7_ga(x1, x2, x4) U8_ga(x1, x2, x3, x4) = U8_ga(x4) add_in_gga(x1, x2, x3) = add_in_gga(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x4) add_out_gga(x1, x2, x3) = add_out_gga(x3) U4_ga(x1, x2, x3, x4, x5) = U4_ga(x4, x5) U5_ga(x1, x2, x3, x4) = U5_ga(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: s2_in_ga(plus(A, plus(B, C)), D) -> U1_ga(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) s2_in_ga(plus(A, B), C) -> U2_ga(A, B, C, s2_in_ga(plus(B, A), C)) s2_in_ga(plus(X, 0), X) -> s2_out_ga(plus(X, 0), X) s2_in_ga(plus(X, Y), Z) -> U3_ga(X, Y, Z, s2_in_ga(X, A)) s2_in_ga(plus(A, B), C) -> U6_ga(A, B, C, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U6_ga(A, B, C, isNat_out_g(A)) -> U7_ga(A, B, C, isNat_in_g(B)) U7_ga(A, B, C, isNat_out_g(B)) -> U8_ga(A, B, C, add_in_gga(A, B, C)) add_in_gga(s(X), Y, s(Z)) -> U10_gga(X, Y, Z, add_in_gga(X, Y, Z)) add_in_gga(0, X, X) -> add_out_gga(0, X, X) U10_gga(X, Y, Z, add_out_gga(X, Y, Z)) -> add_out_gga(s(X), Y, s(Z)) U8_ga(A, B, C, add_out_gga(A, B, C)) -> s2_out_ga(plus(A, B), C) U3_ga(X, Y, Z, s2_out_ga(X, A)) -> U4_ga(X, Y, Z, A, s2_in_ga(Y, B)) U4_ga(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, Z, s2_in_ga(plus(A, B), Z)) U5_ga(X, Y, Z, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, C, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, D, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The argument filtering Pi contains the following mapping: s2_in_ga(x1, x2) = s2_in_ga(x1) plus(x1, x2) = plus(x1, x2) U1_ga(x1, x2, x3, x4, x5) = U1_ga(x5) U2_ga(x1, x2, x3, x4) = U2_ga(x4) 0 = 0 s2_out_ga(x1, x2) = s2_out_ga(x2) U3_ga(x1, x2, x3, x4) = U3_ga(x2, x4) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x2, x4) isNat_in_g(x1) = isNat_in_g(x1) s(x1) = s(x1) U9_g(x1, x2) = U9_g(x2) isNat_out_g(x1) = isNat_out_g U7_ga(x1, x2, x3, x4) = U7_ga(x1, x2, x4) U8_ga(x1, x2, x3, x4) = U8_ga(x4) add_in_gga(x1, x2, x3) = add_in_gga(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x4) add_out_gga(x1, x2, x3) = add_out_gga(x3) U4_ga(x1, x2, x3, x4, x5) = U4_ga(x4, x5) U5_ga(x1, x2, x3, x4) = U5_ga(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: S2_IN_GA(plus(A, plus(B, C)), D) -> U1_GA(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) S2_IN_GA(plus(A, plus(B, C)), D) -> S2_IN_GA(plus(plus(A, B), C), D) S2_IN_GA(plus(A, B), C) -> U2_GA(A, B, C, s2_in_ga(plus(B, A), C)) S2_IN_GA(plus(A, B), C) -> S2_IN_GA(plus(B, A), C) S2_IN_GA(plus(X, Y), Z) -> U3_GA(X, Y, Z, s2_in_ga(X, A)) S2_IN_GA(plus(X, Y), Z) -> S2_IN_GA(X, A) S2_IN_GA(plus(A, B), C) -> U6_GA(A, B, C, isNat_in_g(A)) S2_IN_GA(plus(A, B), C) -> ISNAT_IN_G(A) ISNAT_IN_G(s(X)) -> U9_G(X, isNat_in_g(X)) ISNAT_IN_G(s(X)) -> ISNAT_IN_G(X) U6_GA(A, B, C, isNat_out_g(A)) -> U7_GA(A, B, C, isNat_in_g(B)) U6_GA(A, B, C, isNat_out_g(A)) -> ISNAT_IN_G(B) U7_GA(A, B, C, isNat_out_g(B)) -> U8_GA(A, B, C, add_in_gga(A, B, C)) U7_GA(A, B, C, isNat_out_g(B)) -> ADD_IN_GGA(A, B, C) ADD_IN_GGA(s(X), Y, s(Z)) -> U10_GGA(X, Y, Z, add_in_gga(X, Y, Z)) ADD_IN_GGA(s(X), Y, s(Z)) -> ADD_IN_GGA(X, Y, Z) U3_GA(X, Y, Z, s2_out_ga(X, A)) -> U4_GA(X, Y, Z, A, s2_in_ga(Y, B)) U3_GA(X, Y, Z, s2_out_ga(X, A)) -> S2_IN_GA(Y, B) U4_GA(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_GA(X, Y, Z, s2_in_ga(plus(A, B), Z)) U4_GA(X, Y, Z, A, s2_out_ga(Y, B)) -> S2_IN_GA(plus(A, B), Z) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C)), D) -> U1_ga(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) s2_in_ga(plus(A, B), C) -> U2_ga(A, B, C, s2_in_ga(plus(B, A), C)) s2_in_ga(plus(X, 0), X) -> s2_out_ga(plus(X, 0), X) s2_in_ga(plus(X, Y), Z) -> U3_ga(X, Y, Z, s2_in_ga(X, A)) s2_in_ga(plus(A, B), C) -> U6_ga(A, B, C, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U6_ga(A, B, C, isNat_out_g(A)) -> U7_ga(A, B, C, isNat_in_g(B)) U7_ga(A, B, C, isNat_out_g(B)) -> U8_ga(A, B, C, add_in_gga(A, B, C)) add_in_gga(s(X), Y, s(Z)) -> U10_gga(X, Y, Z, add_in_gga(X, Y, Z)) add_in_gga(0, X, X) -> add_out_gga(0, X, X) U10_gga(X, Y, Z, add_out_gga(X, Y, Z)) -> add_out_gga(s(X), Y, s(Z)) U8_ga(A, B, C, add_out_gga(A, B, C)) -> s2_out_ga(plus(A, B), C) U3_ga(X, Y, Z, s2_out_ga(X, A)) -> U4_ga(X, Y, Z, A, s2_in_ga(Y, B)) U4_ga(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, Z, s2_in_ga(plus(A, B), Z)) U5_ga(X, Y, Z, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, C, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, D, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The argument filtering Pi contains the following mapping: s2_in_ga(x1, x2) = s2_in_ga(x1) plus(x1, x2) = plus(x1, x2) U1_ga(x1, x2, x3, x4, x5) = U1_ga(x5) U2_ga(x1, x2, x3, x4) = U2_ga(x4) 0 = 0 s2_out_ga(x1, x2) = s2_out_ga(x2) U3_ga(x1, x2, x3, x4) = U3_ga(x2, x4) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x2, x4) isNat_in_g(x1) = isNat_in_g(x1) s(x1) = s(x1) U9_g(x1, x2) = U9_g(x2) isNat_out_g(x1) = isNat_out_g U7_ga(x1, x2, x3, x4) = U7_ga(x1, x2, x4) U8_ga(x1, x2, x3, x4) = U8_ga(x4) add_in_gga(x1, x2, x3) = add_in_gga(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x4) add_out_gga(x1, x2, x3) = add_out_gga(x3) U4_ga(x1, x2, x3, x4, x5) = U4_ga(x4, x5) U5_ga(x1, x2, x3, x4) = U5_ga(x4) S2_IN_GA(x1, x2) = S2_IN_GA(x1) U1_GA(x1, x2, x3, x4, x5) = U1_GA(x5) U2_GA(x1, x2, x3, x4) = U2_GA(x4) U3_GA(x1, x2, x3, x4) = U3_GA(x2, x4) U6_GA(x1, x2, x3, x4) = U6_GA(x1, x2, x4) ISNAT_IN_G(x1) = ISNAT_IN_G(x1) U9_G(x1, x2) = U9_G(x2) U7_GA(x1, x2, x3, x4) = U7_GA(x1, x2, x4) U8_GA(x1, x2, x3, x4) = U8_GA(x4) ADD_IN_GGA(x1, x2, x3) = ADD_IN_GGA(x1, x2) U10_GGA(x1, x2, x3, x4) = U10_GGA(x4) U4_GA(x1, x2, x3, x4, x5) = U4_GA(x4, x5) U5_GA(x1, x2, x3, x4) = U5_GA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (4) Obligation: Pi DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, plus(B, C)), D) -> U1_GA(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) S2_IN_GA(plus(A, plus(B, C)), D) -> S2_IN_GA(plus(plus(A, B), C), D) S2_IN_GA(plus(A, B), C) -> U2_GA(A, B, C, s2_in_ga(plus(B, A), C)) S2_IN_GA(plus(A, B), C) -> S2_IN_GA(plus(B, A), C) S2_IN_GA(plus(X, Y), Z) -> U3_GA(X, Y, Z, s2_in_ga(X, A)) S2_IN_GA(plus(X, Y), Z) -> S2_IN_GA(X, A) S2_IN_GA(plus(A, B), C) -> U6_GA(A, B, C, isNat_in_g(A)) S2_IN_GA(plus(A, B), C) -> ISNAT_IN_G(A) ISNAT_IN_G(s(X)) -> U9_G(X, isNat_in_g(X)) ISNAT_IN_G(s(X)) -> ISNAT_IN_G(X) U6_GA(A, B, C, isNat_out_g(A)) -> U7_GA(A, B, C, isNat_in_g(B)) U6_GA(A, B, C, isNat_out_g(A)) -> ISNAT_IN_G(B) U7_GA(A, B, C, isNat_out_g(B)) -> U8_GA(A, B, C, add_in_gga(A, B, C)) U7_GA(A, B, C, isNat_out_g(B)) -> ADD_IN_GGA(A, B, C) ADD_IN_GGA(s(X), Y, s(Z)) -> U10_GGA(X, Y, Z, add_in_gga(X, Y, Z)) ADD_IN_GGA(s(X), Y, s(Z)) -> ADD_IN_GGA(X, Y, Z) U3_GA(X, Y, Z, s2_out_ga(X, A)) -> U4_GA(X, Y, Z, A, s2_in_ga(Y, B)) U3_GA(X, Y, Z, s2_out_ga(X, A)) -> S2_IN_GA(Y, B) U4_GA(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_GA(X, Y, Z, s2_in_ga(plus(A, B), Z)) U4_GA(X, Y, Z, A, s2_out_ga(Y, B)) -> S2_IN_GA(plus(A, B), Z) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C)), D) -> U1_ga(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) s2_in_ga(plus(A, B), C) -> U2_ga(A, B, C, s2_in_ga(plus(B, A), C)) s2_in_ga(plus(X, 0), X) -> s2_out_ga(plus(X, 0), X) s2_in_ga(plus(X, Y), Z) -> U3_ga(X, Y, Z, s2_in_ga(X, A)) s2_in_ga(plus(A, B), C) -> U6_ga(A, B, C, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U6_ga(A, B, C, isNat_out_g(A)) -> U7_ga(A, B, C, isNat_in_g(B)) U7_ga(A, B, C, isNat_out_g(B)) -> U8_ga(A, B, C, add_in_gga(A, B, C)) add_in_gga(s(X), Y, s(Z)) -> U10_gga(X, Y, Z, add_in_gga(X, Y, Z)) add_in_gga(0, X, X) -> add_out_gga(0, X, X) U10_gga(X, Y, Z, add_out_gga(X, Y, Z)) -> add_out_gga(s(X), Y, s(Z)) U8_ga(A, B, C, add_out_gga(A, B, C)) -> s2_out_ga(plus(A, B), C) U3_ga(X, Y, Z, s2_out_ga(X, A)) -> U4_ga(X, Y, Z, A, s2_in_ga(Y, B)) U4_ga(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, Z, s2_in_ga(plus(A, B), Z)) U5_ga(X, Y, Z, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, C, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, D, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The argument filtering Pi contains the following mapping: s2_in_ga(x1, x2) = s2_in_ga(x1) plus(x1, x2) = plus(x1, x2) U1_ga(x1, x2, x3, x4, x5) = U1_ga(x5) U2_ga(x1, x2, x3, x4) = U2_ga(x4) 0 = 0 s2_out_ga(x1, x2) = s2_out_ga(x2) U3_ga(x1, x2, x3, x4) = U3_ga(x2, x4) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x2, x4) isNat_in_g(x1) = isNat_in_g(x1) s(x1) = s(x1) U9_g(x1, x2) = U9_g(x2) isNat_out_g(x1) = isNat_out_g U7_ga(x1, x2, x3, x4) = U7_ga(x1, x2, x4) U8_ga(x1, x2, x3, x4) = U8_ga(x4) add_in_gga(x1, x2, x3) = add_in_gga(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x4) add_out_gga(x1, x2, x3) = add_out_gga(x3) U4_ga(x1, x2, x3, x4, x5) = U4_ga(x4, x5) U5_ga(x1, x2, x3, x4) = U5_ga(x4) S2_IN_GA(x1, x2) = S2_IN_GA(x1) U1_GA(x1, x2, x3, x4, x5) = U1_GA(x5) U2_GA(x1, x2, x3, x4) = U2_GA(x4) U3_GA(x1, x2, x3, x4) = U3_GA(x2, x4) U6_GA(x1, x2, x3, x4) = U6_GA(x1, x2, x4) ISNAT_IN_G(x1) = ISNAT_IN_G(x1) U9_G(x1, x2) = U9_G(x2) U7_GA(x1, x2, x3, x4) = U7_GA(x1, x2, x4) U8_GA(x1, x2, x3, x4) = U8_GA(x4) ADD_IN_GGA(x1, x2, x3) = ADD_IN_GGA(x1, x2) U10_GGA(x1, x2, x3, x4) = U10_GGA(x4) U4_GA(x1, x2, x3, x4, x5) = U4_GA(x4, x5) U5_GA(x1, x2, x3, x4) = U5_GA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (5) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 11 less nodes. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: Pi DP problem: The TRS P consists of the following rules: ADD_IN_GGA(s(X), Y, s(Z)) -> ADD_IN_GGA(X, Y, Z) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C)), D) -> U1_ga(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) s2_in_ga(plus(A, B), C) -> U2_ga(A, B, C, s2_in_ga(plus(B, A), C)) s2_in_ga(plus(X, 0), X) -> s2_out_ga(plus(X, 0), X) s2_in_ga(plus(X, Y), Z) -> U3_ga(X, Y, Z, s2_in_ga(X, A)) s2_in_ga(plus(A, B), C) -> U6_ga(A, B, C, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U6_ga(A, B, C, isNat_out_g(A)) -> U7_ga(A, B, C, isNat_in_g(B)) U7_ga(A, B, C, isNat_out_g(B)) -> U8_ga(A, B, C, add_in_gga(A, B, C)) add_in_gga(s(X), Y, s(Z)) -> U10_gga(X, Y, Z, add_in_gga(X, Y, Z)) add_in_gga(0, X, X) -> add_out_gga(0, X, X) U10_gga(X, Y, Z, add_out_gga(X, Y, Z)) -> add_out_gga(s(X), Y, s(Z)) U8_ga(A, B, C, add_out_gga(A, B, C)) -> s2_out_ga(plus(A, B), C) U3_ga(X, Y, Z, s2_out_ga(X, A)) -> U4_ga(X, Y, Z, A, s2_in_ga(Y, B)) U4_ga(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, Z, s2_in_ga(plus(A, B), Z)) U5_ga(X, Y, Z, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, C, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, D, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The argument filtering Pi contains the following mapping: s2_in_ga(x1, x2) = s2_in_ga(x1) plus(x1, x2) = plus(x1, x2) U1_ga(x1, x2, x3, x4, x5) = U1_ga(x5) U2_ga(x1, x2, x3, x4) = U2_ga(x4) 0 = 0 s2_out_ga(x1, x2) = s2_out_ga(x2) U3_ga(x1, x2, x3, x4) = U3_ga(x2, x4) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x2, x4) isNat_in_g(x1) = isNat_in_g(x1) s(x1) = s(x1) U9_g(x1, x2) = U9_g(x2) isNat_out_g(x1) = isNat_out_g U7_ga(x1, x2, x3, x4) = U7_ga(x1, x2, x4) U8_ga(x1, x2, x3, x4) = U8_ga(x4) add_in_gga(x1, x2, x3) = add_in_gga(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x4) add_out_gga(x1, x2, x3) = add_out_gga(x3) U4_ga(x1, x2, x3, x4, x5) = U4_ga(x4, x5) U5_ga(x1, x2, x3, x4) = U5_ga(x4) ADD_IN_GGA(x1, x2, x3) = ADD_IN_GGA(x1, x2) 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: ADD_IN_GGA(s(X), Y, s(Z)) -> ADD_IN_GGA(X, Y, Z) R is empty. The argument filtering Pi contains the following mapping: s(x1) = s(x1) ADD_IN_GGA(x1, x2, x3) = ADD_IN_GGA(x1, x2) 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: ADD_IN_GGA(s(X), Y) -> ADD_IN_GGA(X, Y) R is empty. Q is empty. 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: *ADD_IN_GGA(s(X), Y) -> ADD_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: Pi DP problem: The TRS P consists of the following rules: ISNAT_IN_G(s(X)) -> ISNAT_IN_G(X) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C)), D) -> U1_ga(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) s2_in_ga(plus(A, B), C) -> U2_ga(A, B, C, s2_in_ga(plus(B, A), C)) s2_in_ga(plus(X, 0), X) -> s2_out_ga(plus(X, 0), X) s2_in_ga(plus(X, Y), Z) -> U3_ga(X, Y, Z, s2_in_ga(X, A)) s2_in_ga(plus(A, B), C) -> U6_ga(A, B, C, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U6_ga(A, B, C, isNat_out_g(A)) -> U7_ga(A, B, C, isNat_in_g(B)) U7_ga(A, B, C, isNat_out_g(B)) -> U8_ga(A, B, C, add_in_gga(A, B, C)) add_in_gga(s(X), Y, s(Z)) -> U10_gga(X, Y, Z, add_in_gga(X, Y, Z)) add_in_gga(0, X, X) -> add_out_gga(0, X, X) U10_gga(X, Y, Z, add_out_gga(X, Y, Z)) -> add_out_gga(s(X), Y, s(Z)) U8_ga(A, B, C, add_out_gga(A, B, C)) -> s2_out_ga(plus(A, B), C) U3_ga(X, Y, Z, s2_out_ga(X, A)) -> U4_ga(X, Y, Z, A, s2_in_ga(Y, B)) U4_ga(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, Z, s2_in_ga(plus(A, B), Z)) U5_ga(X, Y, Z, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, C, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, D, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The argument filtering Pi contains the following mapping: s2_in_ga(x1, x2) = s2_in_ga(x1) plus(x1, x2) = plus(x1, x2) U1_ga(x1, x2, x3, x4, x5) = U1_ga(x5) U2_ga(x1, x2, x3, x4) = U2_ga(x4) 0 = 0 s2_out_ga(x1, x2) = s2_out_ga(x2) U3_ga(x1, x2, x3, x4) = U3_ga(x2, x4) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x2, x4) isNat_in_g(x1) = isNat_in_g(x1) s(x1) = s(x1) U9_g(x1, x2) = U9_g(x2) isNat_out_g(x1) = isNat_out_g U7_ga(x1, x2, x3, x4) = U7_ga(x1, x2, x4) U8_ga(x1, x2, x3, x4) = U8_ga(x4) add_in_gga(x1, x2, x3) = add_in_gga(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x4) add_out_gga(x1, x2, x3) = add_out_gga(x3) U4_ga(x1, x2, x3, x4, x5) = U4_ga(x4, x5) U5_ga(x1, x2, x3, x4) = U5_ga(x4) ISNAT_IN_G(x1) = ISNAT_IN_G(x1) 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: ISNAT_IN_G(s(X)) -> ISNAT_IN_G(X) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (17) PiDPToQDPProof (EQUIVALENT) 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: ISNAT_IN_G(s(X)) -> ISNAT_IN_G(X) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (19) 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: *ISNAT_IN_G(s(X)) -> ISNAT_IN_G(X) The graph contains the following edges 1 > 1 ---------------------------------------- (20) YES ---------------------------------------- (21) Obligation: Pi DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, B), C) -> S2_IN_GA(plus(B, A), C) S2_IN_GA(plus(A, plus(B, C)), D) -> S2_IN_GA(plus(plus(A, B), C), D) S2_IN_GA(plus(X, Y), Z) -> U3_GA(X, Y, Z, s2_in_ga(X, A)) U3_GA(X, Y, Z, s2_out_ga(X, A)) -> U4_GA(X, Y, Z, A, s2_in_ga(Y, B)) U4_GA(X, Y, Z, A, s2_out_ga(Y, B)) -> S2_IN_GA(plus(A, B), Z) S2_IN_GA(plus(X, Y), Z) -> S2_IN_GA(X, A) U3_GA(X, Y, Z, s2_out_ga(X, A)) -> S2_IN_GA(Y, B) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C)), D) -> U1_ga(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) s2_in_ga(plus(A, B), C) -> U2_ga(A, B, C, s2_in_ga(plus(B, A), C)) s2_in_ga(plus(X, 0), X) -> s2_out_ga(plus(X, 0), X) s2_in_ga(plus(X, Y), Z) -> U3_ga(X, Y, Z, s2_in_ga(X, A)) s2_in_ga(plus(A, B), C) -> U6_ga(A, B, C, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U6_ga(A, B, C, isNat_out_g(A)) -> U7_ga(A, B, C, isNat_in_g(B)) U7_ga(A, B, C, isNat_out_g(B)) -> U8_ga(A, B, C, add_in_gga(A, B, C)) add_in_gga(s(X), Y, s(Z)) -> U10_gga(X, Y, Z, add_in_gga(X, Y, Z)) add_in_gga(0, X, X) -> add_out_gga(0, X, X) U10_gga(X, Y, Z, add_out_gga(X, Y, Z)) -> add_out_gga(s(X), Y, s(Z)) U8_ga(A, B, C, add_out_gga(A, B, C)) -> s2_out_ga(plus(A, B), C) U3_ga(X, Y, Z, s2_out_ga(X, A)) -> U4_ga(X, Y, Z, A, s2_in_ga(Y, B)) U4_ga(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, Z, s2_in_ga(plus(A, B), Z)) U5_ga(X, Y, Z, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, C, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, D, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The argument filtering Pi contains the following mapping: s2_in_ga(x1, x2) = s2_in_ga(x1) plus(x1, x2) = plus(x1, x2) U1_ga(x1, x2, x3, x4, x5) = U1_ga(x5) U2_ga(x1, x2, x3, x4) = U2_ga(x4) 0 = 0 s2_out_ga(x1, x2) = s2_out_ga(x2) U3_ga(x1, x2, x3, x4) = U3_ga(x2, x4) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x2, x4) isNat_in_g(x1) = isNat_in_g(x1) s(x1) = s(x1) U9_g(x1, x2) = U9_g(x2) isNat_out_g(x1) = isNat_out_g U7_ga(x1, x2, x3, x4) = U7_ga(x1, x2, x4) U8_ga(x1, x2, x3, x4) = U8_ga(x4) add_in_gga(x1, x2, x3) = add_in_gga(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x4) add_out_gga(x1, x2, x3) = add_out_gga(x3) U4_ga(x1, x2, x3, x4, x5) = U4_ga(x4, x5) U5_ga(x1, x2, x3, x4) = U5_ga(x4) S2_IN_GA(x1, x2) = S2_IN_GA(x1) U3_GA(x1, x2, x3, x4) = U3_GA(x2, x4) U4_GA(x1, x2, x3, x4, x5) = U4_GA(x4, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (22) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (23) Obligation: Q DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, B)) -> S2_IN_GA(plus(B, A)) S2_IN_GA(plus(A, plus(B, C))) -> S2_IN_GA(plus(plus(A, B), C)) S2_IN_GA(plus(X, Y)) -> U3_GA(Y, s2_in_ga(X)) U3_GA(Y, s2_out_ga(A)) -> U4_GA(A, s2_in_ga(Y)) U4_GA(A, s2_out_ga(B)) -> S2_IN_GA(plus(A, B)) S2_IN_GA(plus(X, Y)) -> S2_IN_GA(X) U3_GA(Y, s2_out_ga(A)) -> S2_IN_GA(Y) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C))) -> U1_ga(s2_in_ga(plus(plus(A, B), C))) s2_in_ga(plus(A, B)) -> U2_ga(s2_in_ga(plus(B, A))) s2_in_ga(plus(X, 0)) -> s2_out_ga(X) s2_in_ga(plus(X, Y)) -> U3_ga(Y, s2_in_ga(X)) s2_in_ga(plus(A, B)) -> U6_ga(A, B, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g U9_g(isNat_out_g) -> isNat_out_g U6_ga(A, B, isNat_out_g) -> U7_ga(A, B, isNat_in_g(B)) U7_ga(A, B, isNat_out_g) -> U8_ga(add_in_gga(A, B)) add_in_gga(s(X), Y) -> U10_gga(add_in_gga(X, Y)) add_in_gga(0, X) -> add_out_gga(X) U10_gga(add_out_gga(Z)) -> add_out_gga(s(Z)) U8_ga(add_out_gga(C)) -> s2_out_ga(C) U3_ga(Y, s2_out_ga(A)) -> U4_ga(A, s2_in_ga(Y)) U4_ga(A, s2_out_ga(B)) -> U5_ga(s2_in_ga(plus(A, B))) U5_ga(s2_out_ga(Z)) -> s2_out_ga(Z) U2_ga(s2_out_ga(C)) -> s2_out_ga(C) U1_ga(s2_out_ga(D)) -> s2_out_ga(D) The set Q consists of the following terms: s2_in_ga(x0) isNat_in_g(x0) U9_g(x0) U6_ga(x0, x1, x2) U7_ga(x0, x1, x2) add_in_gga(x0, x1) U10_gga(x0) U8_ga(x0) U3_ga(x0, x1) U4_ga(x0, x1) U5_ga(x0) U2_ga(x0) U1_ga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (24) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. S2_IN_GA(plus(X, Y)) -> S2_IN_GA(X) U3_GA(Y, s2_out_ga(A)) -> S2_IN_GA(Y) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( U3_GA_2(x_1, x_2) ) = 2x_1 + 2x_2 + 1 POL( U4_GA_2(x_1, x_2) ) = 2x_1 + 2x_2 + 1 POL( s2_in_ga_1(x_1) ) = max{0, x_1 - 1} POL( plus_2(x_1, x_2) ) = x_1 + x_2 + 1 POL( U1_ga_1(x_1) ) = x_1 POL( U2_ga_1(x_1) ) = x_1 POL( 0 ) = 0 POL( s2_out_ga_1(x_1) ) = x_1 POL( U3_ga_2(x_1, x_2) ) = x_1 + x_2 POL( U6_ga_3(x_1, ..., x_3) ) = x_2 POL( isNat_in_g_1(x_1) ) = 0 POL( U4_ga_2(x_1, x_2) ) = x_1 + x_2 POL( U5_ga_1(x_1) ) = x_1 POL( U7_ga_3(x_1, ..., x_3) ) = x_2 POL( s_1(x_1) ) = 0 POL( U9_g_1(x_1) ) = max{0, -2} POL( isNat_out_g ) = 0 POL( U8_ga_1(x_1) ) = x_1 POL( add_in_gga_2(x_1, x_2) ) = x_2 POL( U10_gga_1(x_1) ) = max{0, -2} POL( add_out_gga_1(x_1) ) = x_1 POL( S2_IN_GA_1(x_1) ) = max{0, 2x_1 - 1} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: s2_in_ga(plus(A, plus(B, C))) -> U1_ga(s2_in_ga(plus(plus(A, B), C))) s2_in_ga(plus(A, B)) -> U2_ga(s2_in_ga(plus(B, A))) s2_in_ga(plus(X, 0)) -> s2_out_ga(X) s2_in_ga(plus(X, Y)) -> U3_ga(Y, s2_in_ga(X)) s2_in_ga(plus(A, B)) -> U6_ga(A, B, isNat_in_g(A)) U2_ga(s2_out_ga(C)) -> s2_out_ga(C) U1_ga(s2_out_ga(D)) -> s2_out_ga(D) U3_ga(Y, s2_out_ga(A)) -> U4_ga(A, s2_in_ga(Y)) U4_ga(A, s2_out_ga(B)) -> U5_ga(s2_in_ga(plus(A, B))) U5_ga(s2_out_ga(Z)) -> s2_out_ga(Z) U6_ga(A, B, isNat_out_g) -> U7_ga(A, B, isNat_in_g(B)) U7_ga(A, B, isNat_out_g) -> U8_ga(add_in_gga(A, B)) add_in_gga(s(X), Y) -> U10_gga(add_in_gga(X, Y)) add_in_gga(0, X) -> add_out_gga(X) U8_ga(add_out_gga(C)) -> s2_out_ga(C) U10_gga(add_out_gga(Z)) -> add_out_gga(s(Z)) ---------------------------------------- (25) Obligation: Q DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, B)) -> S2_IN_GA(plus(B, A)) S2_IN_GA(plus(A, plus(B, C))) -> S2_IN_GA(plus(plus(A, B), C)) S2_IN_GA(plus(X, Y)) -> U3_GA(Y, s2_in_ga(X)) U3_GA(Y, s2_out_ga(A)) -> U4_GA(A, s2_in_ga(Y)) U4_GA(A, s2_out_ga(B)) -> S2_IN_GA(plus(A, B)) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C))) -> U1_ga(s2_in_ga(plus(plus(A, B), C))) s2_in_ga(plus(A, B)) -> U2_ga(s2_in_ga(plus(B, A))) s2_in_ga(plus(X, 0)) -> s2_out_ga(X) s2_in_ga(plus(X, Y)) -> U3_ga(Y, s2_in_ga(X)) s2_in_ga(plus(A, B)) -> U6_ga(A, B, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g U9_g(isNat_out_g) -> isNat_out_g U6_ga(A, B, isNat_out_g) -> U7_ga(A, B, isNat_in_g(B)) U7_ga(A, B, isNat_out_g) -> U8_ga(add_in_gga(A, B)) add_in_gga(s(X), Y) -> U10_gga(add_in_gga(X, Y)) add_in_gga(0, X) -> add_out_gga(X) U10_gga(add_out_gga(Z)) -> add_out_gga(s(Z)) U8_ga(add_out_gga(C)) -> s2_out_ga(C) U3_ga(Y, s2_out_ga(A)) -> U4_ga(A, s2_in_ga(Y)) U4_ga(A, s2_out_ga(B)) -> U5_ga(s2_in_ga(plus(A, B))) U5_ga(s2_out_ga(Z)) -> s2_out_ga(Z) U2_ga(s2_out_ga(C)) -> s2_out_ga(C) U1_ga(s2_out_ga(D)) -> s2_out_ga(D) The set Q consists of the following terms: s2_in_ga(x0) isNat_in_g(x0) U9_g(x0) U6_ga(x0, x1, x2) U7_ga(x0, x1, x2) add_in_gga(x0, x1) U10_gga(x0) U8_ga(x0) U3_ga(x0, x1) U4_ga(x0, x1) U5_ga(x0) U2_ga(x0) U1_ga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (26) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. U3_GA(Y, s2_out_ga(A)) -> U4_GA(A, s2_in_ga(Y)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( U3_GA_2(x_1, x_2) ) = 2x_1 + 2x_2 POL( U4_GA_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 2} POL( s2_in_ga_1(x_1) ) = x_1 POL( plus_2(x_1, x_2) ) = x_1 + x_2 POL( U1_ga_1(x_1) ) = x_1 POL( U2_ga_1(x_1) ) = x_1 POL( 0 ) = 2 POL( s2_out_ga_1(x_1) ) = x_1 + 1 POL( U3_ga_2(x_1, x_2) ) = x_1 + x_2 POL( U6_ga_3(x_1, ..., x_3) ) = x_1 + x_2 POL( isNat_in_g_1(x_1) ) = 0 POL( U4_ga_2(x_1, x_2) ) = x_1 + x_2 POL( U5_ga_1(x_1) ) = x_1 POL( U7_ga_3(x_1, ..., x_3) ) = x_1 + x_2 POL( s_1(x_1) ) = x_1 + 2 POL( U9_g_1(x_1) ) = max{0, -2} POL( isNat_out_g ) = 0 POL( U8_ga_1(x_1) ) = x_1 POL( add_in_gga_2(x_1, x_2) ) = x_1 + x_2 POL( U10_gga_1(x_1) ) = x_1 + 2 POL( add_out_gga_1(x_1) ) = x_1 + 2 POL( S2_IN_GA_1(x_1) ) = 2x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: s2_in_ga(plus(A, plus(B, C))) -> U1_ga(s2_in_ga(plus(plus(A, B), C))) s2_in_ga(plus(A, B)) -> U2_ga(s2_in_ga(plus(B, A))) s2_in_ga(plus(X, 0)) -> s2_out_ga(X) s2_in_ga(plus(X, Y)) -> U3_ga(Y, s2_in_ga(X)) s2_in_ga(plus(A, B)) -> U6_ga(A, B, isNat_in_g(A)) U2_ga(s2_out_ga(C)) -> s2_out_ga(C) U1_ga(s2_out_ga(D)) -> s2_out_ga(D) U3_ga(Y, s2_out_ga(A)) -> U4_ga(A, s2_in_ga(Y)) U4_ga(A, s2_out_ga(B)) -> U5_ga(s2_in_ga(plus(A, B))) U5_ga(s2_out_ga(Z)) -> s2_out_ga(Z) U6_ga(A, B, isNat_out_g) -> U7_ga(A, B, isNat_in_g(B)) U7_ga(A, B, isNat_out_g) -> U8_ga(add_in_gga(A, B)) add_in_gga(s(X), Y) -> U10_gga(add_in_gga(X, Y)) add_in_gga(0, X) -> add_out_gga(X) U8_ga(add_out_gga(C)) -> s2_out_ga(C) U10_gga(add_out_gga(Z)) -> add_out_gga(s(Z)) ---------------------------------------- (27) Obligation: Q DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, B)) -> S2_IN_GA(plus(B, A)) S2_IN_GA(plus(A, plus(B, C))) -> S2_IN_GA(plus(plus(A, B), C)) S2_IN_GA(plus(X, Y)) -> U3_GA(Y, s2_in_ga(X)) U4_GA(A, s2_out_ga(B)) -> S2_IN_GA(plus(A, B)) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C))) -> U1_ga(s2_in_ga(plus(plus(A, B), C))) s2_in_ga(plus(A, B)) -> U2_ga(s2_in_ga(plus(B, A))) s2_in_ga(plus(X, 0)) -> s2_out_ga(X) s2_in_ga(plus(X, Y)) -> U3_ga(Y, s2_in_ga(X)) s2_in_ga(plus(A, B)) -> U6_ga(A, B, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g U9_g(isNat_out_g) -> isNat_out_g U6_ga(A, B, isNat_out_g) -> U7_ga(A, B, isNat_in_g(B)) U7_ga(A, B, isNat_out_g) -> U8_ga(add_in_gga(A, B)) add_in_gga(s(X), Y) -> U10_gga(add_in_gga(X, Y)) add_in_gga(0, X) -> add_out_gga(X) U10_gga(add_out_gga(Z)) -> add_out_gga(s(Z)) U8_ga(add_out_gga(C)) -> s2_out_ga(C) U3_ga(Y, s2_out_ga(A)) -> U4_ga(A, s2_in_ga(Y)) U4_ga(A, s2_out_ga(B)) -> U5_ga(s2_in_ga(plus(A, B))) U5_ga(s2_out_ga(Z)) -> s2_out_ga(Z) U2_ga(s2_out_ga(C)) -> s2_out_ga(C) U1_ga(s2_out_ga(D)) -> s2_out_ga(D) The set Q consists of the following terms: s2_in_ga(x0) isNat_in_g(x0) U9_g(x0) U6_ga(x0, x1, x2) U7_ga(x0, x1, x2) add_in_gga(x0, x1) U10_gga(x0) U8_ga(x0) U3_ga(x0, x1) U4_ga(x0, x1) U5_ga(x0) U2_ga(x0) U1_ga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (28) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (29) Obligation: Q DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, plus(B, C))) -> S2_IN_GA(plus(plus(A, B), C)) S2_IN_GA(plus(A, B)) -> S2_IN_GA(plus(B, A)) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C))) -> U1_ga(s2_in_ga(plus(plus(A, B), C))) s2_in_ga(plus(A, B)) -> U2_ga(s2_in_ga(plus(B, A))) s2_in_ga(plus(X, 0)) -> s2_out_ga(X) s2_in_ga(plus(X, Y)) -> U3_ga(Y, s2_in_ga(X)) s2_in_ga(plus(A, B)) -> U6_ga(A, B, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g U9_g(isNat_out_g) -> isNat_out_g U6_ga(A, B, isNat_out_g) -> U7_ga(A, B, isNat_in_g(B)) U7_ga(A, B, isNat_out_g) -> U8_ga(add_in_gga(A, B)) add_in_gga(s(X), Y) -> U10_gga(add_in_gga(X, Y)) add_in_gga(0, X) -> add_out_gga(X) U10_gga(add_out_gga(Z)) -> add_out_gga(s(Z)) U8_ga(add_out_gga(C)) -> s2_out_ga(C) U3_ga(Y, s2_out_ga(A)) -> U4_ga(A, s2_in_ga(Y)) U4_ga(A, s2_out_ga(B)) -> U5_ga(s2_in_ga(plus(A, B))) U5_ga(s2_out_ga(Z)) -> s2_out_ga(Z) U2_ga(s2_out_ga(C)) -> s2_out_ga(C) U1_ga(s2_out_ga(D)) -> s2_out_ga(D) The set Q consists of the following terms: s2_in_ga(x0) isNat_in_g(x0) U9_g(x0) U6_ga(x0, x1, x2) U7_ga(x0, x1, x2) add_in_gga(x0, x1) U10_gga(x0) U8_ga(x0) U3_ga(x0, x1) U4_ga(x0, x1) U5_ga(x0) U2_ga(x0) U1_ga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (30) 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. ---------------------------------------- (31) Obligation: Q DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, plus(B, C))) -> S2_IN_GA(plus(plus(A, B), C)) S2_IN_GA(plus(A, B)) -> S2_IN_GA(plus(B, A)) R is empty. The set Q consists of the following terms: s2_in_ga(x0) isNat_in_g(x0) U9_g(x0) U6_ga(x0, x1, x2) U7_ga(x0, x1, x2) add_in_gga(x0, x1) U10_gga(x0) U8_ga(x0) U3_ga(x0, x1) U4_ga(x0, x1) U5_ga(x0) U2_ga(x0) U1_ga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (32) 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]. s2_in_ga(x0) isNat_in_g(x0) U9_g(x0) U6_ga(x0, x1, x2) U7_ga(x0, x1, x2) add_in_gga(x0, x1) U10_gga(x0) U8_ga(x0) U3_ga(x0, x1) U4_ga(x0, x1) U5_ga(x0) U2_ga(x0) U1_ga(x0) ---------------------------------------- (33) Obligation: Q DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, plus(B, C))) -> S2_IN_GA(plus(plus(A, B), C)) S2_IN_GA(plus(A, B)) -> S2_IN_GA(plus(B, A)) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (34) 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 = S2_IN_GA(plus(A, B)) evaluates to t =S2_IN_GA(plus(B, A)) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [A / B, B / A] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from S2_IN_GA(plus(A, B)) to S2_IN_GA(plus(B, A)). ---------------------------------------- (35) NO ---------------------------------------- (36) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: s2_in_2: (b,f) isNat_in_1: (b) add_in_3: (b,b,f) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C)), D) -> U1_ga(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) s2_in_ga(plus(A, B), C) -> U2_ga(A, B, C, s2_in_ga(plus(B, A), C)) s2_in_ga(plus(X, 0), X) -> s2_out_ga(plus(X, 0), X) s2_in_ga(plus(X, Y), Z) -> U3_ga(X, Y, Z, s2_in_ga(X, A)) s2_in_ga(plus(A, B), C) -> U6_ga(A, B, C, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U6_ga(A, B, C, isNat_out_g(A)) -> U7_ga(A, B, C, isNat_in_g(B)) U7_ga(A, B, C, isNat_out_g(B)) -> U8_ga(A, B, C, add_in_gga(A, B, C)) add_in_gga(s(X), Y, s(Z)) -> U10_gga(X, Y, Z, add_in_gga(X, Y, Z)) add_in_gga(0, X, X) -> add_out_gga(0, X, X) U10_gga(X, Y, Z, add_out_gga(X, Y, Z)) -> add_out_gga(s(X), Y, s(Z)) U8_ga(A, B, C, add_out_gga(A, B, C)) -> s2_out_ga(plus(A, B), C) U3_ga(X, Y, Z, s2_out_ga(X, A)) -> U4_ga(X, Y, Z, A, s2_in_ga(Y, B)) U4_ga(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, Z, s2_in_ga(plus(A, B), Z)) U5_ga(X, Y, Z, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, C, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, D, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The argument filtering Pi contains the following mapping: s2_in_ga(x1, x2) = s2_in_ga(x1) plus(x1, x2) = plus(x1, x2) U1_ga(x1, x2, x3, x4, x5) = U1_ga(x1, x2, x3, x5) U2_ga(x1, x2, x3, x4) = U2_ga(x1, x2, x4) 0 = 0 s2_out_ga(x1, x2) = s2_out_ga(x1, x2) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x4) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x2, x4) isNat_in_g(x1) = isNat_in_g(x1) s(x1) = s(x1) U9_g(x1, x2) = U9_g(x1, x2) isNat_out_g(x1) = isNat_out_g(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x1, x2, x4) U8_ga(x1, x2, x3, x4) = U8_ga(x1, x2, x4) add_in_gga(x1, x2, x3) = add_in_gga(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) add_out_gga(x1, x2, x3) = add_out_gga(x1, x2, x3) U4_ga(x1, x2, x3, x4, x5) = U4_ga(x1, x2, x4, x5) U5_ga(x1, x2, x3, x4) = U5_ga(x1, x2, x4) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (37) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C)), D) -> U1_ga(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) s2_in_ga(plus(A, B), C) -> U2_ga(A, B, C, s2_in_ga(plus(B, A), C)) s2_in_ga(plus(X, 0), X) -> s2_out_ga(plus(X, 0), X) s2_in_ga(plus(X, Y), Z) -> U3_ga(X, Y, Z, s2_in_ga(X, A)) s2_in_ga(plus(A, B), C) -> U6_ga(A, B, C, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U6_ga(A, B, C, isNat_out_g(A)) -> U7_ga(A, B, C, isNat_in_g(B)) U7_ga(A, B, C, isNat_out_g(B)) -> U8_ga(A, B, C, add_in_gga(A, B, C)) add_in_gga(s(X), Y, s(Z)) -> U10_gga(X, Y, Z, add_in_gga(X, Y, Z)) add_in_gga(0, X, X) -> add_out_gga(0, X, X) U10_gga(X, Y, Z, add_out_gga(X, Y, Z)) -> add_out_gga(s(X), Y, s(Z)) U8_ga(A, B, C, add_out_gga(A, B, C)) -> s2_out_ga(plus(A, B), C) U3_ga(X, Y, Z, s2_out_ga(X, A)) -> U4_ga(X, Y, Z, A, s2_in_ga(Y, B)) U4_ga(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, Z, s2_in_ga(plus(A, B), Z)) U5_ga(X, Y, Z, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, C, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, D, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The argument filtering Pi contains the following mapping: s2_in_ga(x1, x2) = s2_in_ga(x1) plus(x1, x2) = plus(x1, x2) U1_ga(x1, x2, x3, x4, x5) = U1_ga(x1, x2, x3, x5) U2_ga(x1, x2, x3, x4) = U2_ga(x1, x2, x4) 0 = 0 s2_out_ga(x1, x2) = s2_out_ga(x1, x2) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x4) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x2, x4) isNat_in_g(x1) = isNat_in_g(x1) s(x1) = s(x1) U9_g(x1, x2) = U9_g(x1, x2) isNat_out_g(x1) = isNat_out_g(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x1, x2, x4) U8_ga(x1, x2, x3, x4) = U8_ga(x1, x2, x4) add_in_gga(x1, x2, x3) = add_in_gga(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) add_out_gga(x1, x2, x3) = add_out_gga(x1, x2, x3) U4_ga(x1, x2, x3, x4, x5) = U4_ga(x1, x2, x4, x5) U5_ga(x1, x2, x3, x4) = U5_ga(x1, x2, x4) ---------------------------------------- (38) 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: S2_IN_GA(plus(A, plus(B, C)), D) -> U1_GA(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) S2_IN_GA(plus(A, plus(B, C)), D) -> S2_IN_GA(plus(plus(A, B), C), D) S2_IN_GA(plus(A, B), C) -> U2_GA(A, B, C, s2_in_ga(plus(B, A), C)) S2_IN_GA(plus(A, B), C) -> S2_IN_GA(plus(B, A), C) S2_IN_GA(plus(X, Y), Z) -> U3_GA(X, Y, Z, s2_in_ga(X, A)) S2_IN_GA(plus(X, Y), Z) -> S2_IN_GA(X, A) S2_IN_GA(plus(A, B), C) -> U6_GA(A, B, C, isNat_in_g(A)) S2_IN_GA(plus(A, B), C) -> ISNAT_IN_G(A) ISNAT_IN_G(s(X)) -> U9_G(X, isNat_in_g(X)) ISNAT_IN_G(s(X)) -> ISNAT_IN_G(X) U6_GA(A, B, C, isNat_out_g(A)) -> U7_GA(A, B, C, isNat_in_g(B)) U6_GA(A, B, C, isNat_out_g(A)) -> ISNAT_IN_G(B) U7_GA(A, B, C, isNat_out_g(B)) -> U8_GA(A, B, C, add_in_gga(A, B, C)) U7_GA(A, B, C, isNat_out_g(B)) -> ADD_IN_GGA(A, B, C) ADD_IN_GGA(s(X), Y, s(Z)) -> U10_GGA(X, Y, Z, add_in_gga(X, Y, Z)) ADD_IN_GGA(s(X), Y, s(Z)) -> ADD_IN_GGA(X, Y, Z) U3_GA(X, Y, Z, s2_out_ga(X, A)) -> U4_GA(X, Y, Z, A, s2_in_ga(Y, B)) U3_GA(X, Y, Z, s2_out_ga(X, A)) -> S2_IN_GA(Y, B) U4_GA(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_GA(X, Y, Z, s2_in_ga(plus(A, B), Z)) U4_GA(X, Y, Z, A, s2_out_ga(Y, B)) -> S2_IN_GA(plus(A, B), Z) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C)), D) -> U1_ga(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) s2_in_ga(plus(A, B), C) -> U2_ga(A, B, C, s2_in_ga(plus(B, A), C)) s2_in_ga(plus(X, 0), X) -> s2_out_ga(plus(X, 0), X) s2_in_ga(plus(X, Y), Z) -> U3_ga(X, Y, Z, s2_in_ga(X, A)) s2_in_ga(plus(A, B), C) -> U6_ga(A, B, C, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U6_ga(A, B, C, isNat_out_g(A)) -> U7_ga(A, B, C, isNat_in_g(B)) U7_ga(A, B, C, isNat_out_g(B)) -> U8_ga(A, B, C, add_in_gga(A, B, C)) add_in_gga(s(X), Y, s(Z)) -> U10_gga(X, Y, Z, add_in_gga(X, Y, Z)) add_in_gga(0, X, X) -> add_out_gga(0, X, X) U10_gga(X, Y, Z, add_out_gga(X, Y, Z)) -> add_out_gga(s(X), Y, s(Z)) U8_ga(A, B, C, add_out_gga(A, B, C)) -> s2_out_ga(plus(A, B), C) U3_ga(X, Y, Z, s2_out_ga(X, A)) -> U4_ga(X, Y, Z, A, s2_in_ga(Y, B)) U4_ga(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, Z, s2_in_ga(plus(A, B), Z)) U5_ga(X, Y, Z, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, C, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, D, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The argument filtering Pi contains the following mapping: s2_in_ga(x1, x2) = s2_in_ga(x1) plus(x1, x2) = plus(x1, x2) U1_ga(x1, x2, x3, x4, x5) = U1_ga(x1, x2, x3, x5) U2_ga(x1, x2, x3, x4) = U2_ga(x1, x2, x4) 0 = 0 s2_out_ga(x1, x2) = s2_out_ga(x1, x2) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x4) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x2, x4) isNat_in_g(x1) = isNat_in_g(x1) s(x1) = s(x1) U9_g(x1, x2) = U9_g(x1, x2) isNat_out_g(x1) = isNat_out_g(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x1, x2, x4) U8_ga(x1, x2, x3, x4) = U8_ga(x1, x2, x4) add_in_gga(x1, x2, x3) = add_in_gga(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) add_out_gga(x1, x2, x3) = add_out_gga(x1, x2, x3) U4_ga(x1, x2, x3, x4, x5) = U4_ga(x1, x2, x4, x5) U5_ga(x1, x2, x3, x4) = U5_ga(x1, x2, x4) S2_IN_GA(x1, x2) = S2_IN_GA(x1) U1_GA(x1, x2, x3, x4, x5) = U1_GA(x1, x2, x3, x5) U2_GA(x1, x2, x3, x4) = U2_GA(x1, x2, x4) U3_GA(x1, x2, x3, x4) = U3_GA(x1, x2, x4) U6_GA(x1, x2, x3, x4) = U6_GA(x1, x2, x4) ISNAT_IN_G(x1) = ISNAT_IN_G(x1) U9_G(x1, x2) = U9_G(x1, x2) U7_GA(x1, x2, x3, x4) = U7_GA(x1, x2, x4) U8_GA(x1, x2, x3, x4) = U8_GA(x1, x2, x4) ADD_IN_GGA(x1, x2, x3) = ADD_IN_GGA(x1, x2) U10_GGA(x1, x2, x3, x4) = U10_GGA(x1, x2, x4) U4_GA(x1, x2, x3, x4, x5) = U4_GA(x1, x2, x4, x5) U5_GA(x1, x2, x3, x4) = U5_GA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (39) Obligation: Pi DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, plus(B, C)), D) -> U1_GA(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) S2_IN_GA(plus(A, plus(B, C)), D) -> S2_IN_GA(plus(plus(A, B), C), D) S2_IN_GA(plus(A, B), C) -> U2_GA(A, B, C, s2_in_ga(plus(B, A), C)) S2_IN_GA(plus(A, B), C) -> S2_IN_GA(plus(B, A), C) S2_IN_GA(plus(X, Y), Z) -> U3_GA(X, Y, Z, s2_in_ga(X, A)) S2_IN_GA(plus(X, Y), Z) -> S2_IN_GA(X, A) S2_IN_GA(plus(A, B), C) -> U6_GA(A, B, C, isNat_in_g(A)) S2_IN_GA(plus(A, B), C) -> ISNAT_IN_G(A) ISNAT_IN_G(s(X)) -> U9_G(X, isNat_in_g(X)) ISNAT_IN_G(s(X)) -> ISNAT_IN_G(X) U6_GA(A, B, C, isNat_out_g(A)) -> U7_GA(A, B, C, isNat_in_g(B)) U6_GA(A, B, C, isNat_out_g(A)) -> ISNAT_IN_G(B) U7_GA(A, B, C, isNat_out_g(B)) -> U8_GA(A, B, C, add_in_gga(A, B, C)) U7_GA(A, B, C, isNat_out_g(B)) -> ADD_IN_GGA(A, B, C) ADD_IN_GGA(s(X), Y, s(Z)) -> U10_GGA(X, Y, Z, add_in_gga(X, Y, Z)) ADD_IN_GGA(s(X), Y, s(Z)) -> ADD_IN_GGA(X, Y, Z) U3_GA(X, Y, Z, s2_out_ga(X, A)) -> U4_GA(X, Y, Z, A, s2_in_ga(Y, B)) U3_GA(X, Y, Z, s2_out_ga(X, A)) -> S2_IN_GA(Y, B) U4_GA(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_GA(X, Y, Z, s2_in_ga(plus(A, B), Z)) U4_GA(X, Y, Z, A, s2_out_ga(Y, B)) -> S2_IN_GA(plus(A, B), Z) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C)), D) -> U1_ga(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) s2_in_ga(plus(A, B), C) -> U2_ga(A, B, C, s2_in_ga(plus(B, A), C)) s2_in_ga(plus(X, 0), X) -> s2_out_ga(plus(X, 0), X) s2_in_ga(plus(X, Y), Z) -> U3_ga(X, Y, Z, s2_in_ga(X, A)) s2_in_ga(plus(A, B), C) -> U6_ga(A, B, C, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U6_ga(A, B, C, isNat_out_g(A)) -> U7_ga(A, B, C, isNat_in_g(B)) U7_ga(A, B, C, isNat_out_g(B)) -> U8_ga(A, B, C, add_in_gga(A, B, C)) add_in_gga(s(X), Y, s(Z)) -> U10_gga(X, Y, Z, add_in_gga(X, Y, Z)) add_in_gga(0, X, X) -> add_out_gga(0, X, X) U10_gga(X, Y, Z, add_out_gga(X, Y, Z)) -> add_out_gga(s(X), Y, s(Z)) U8_ga(A, B, C, add_out_gga(A, B, C)) -> s2_out_ga(plus(A, B), C) U3_ga(X, Y, Z, s2_out_ga(X, A)) -> U4_ga(X, Y, Z, A, s2_in_ga(Y, B)) U4_ga(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, Z, s2_in_ga(plus(A, B), Z)) U5_ga(X, Y, Z, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, C, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, D, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The argument filtering Pi contains the following mapping: s2_in_ga(x1, x2) = s2_in_ga(x1) plus(x1, x2) = plus(x1, x2) U1_ga(x1, x2, x3, x4, x5) = U1_ga(x1, x2, x3, x5) U2_ga(x1, x2, x3, x4) = U2_ga(x1, x2, x4) 0 = 0 s2_out_ga(x1, x2) = s2_out_ga(x1, x2) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x4) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x2, x4) isNat_in_g(x1) = isNat_in_g(x1) s(x1) = s(x1) U9_g(x1, x2) = U9_g(x1, x2) isNat_out_g(x1) = isNat_out_g(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x1, x2, x4) U8_ga(x1, x2, x3, x4) = U8_ga(x1, x2, x4) add_in_gga(x1, x2, x3) = add_in_gga(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) add_out_gga(x1, x2, x3) = add_out_gga(x1, x2, x3) U4_ga(x1, x2, x3, x4, x5) = U4_ga(x1, x2, x4, x5) U5_ga(x1, x2, x3, x4) = U5_ga(x1, x2, x4) S2_IN_GA(x1, x2) = S2_IN_GA(x1) U1_GA(x1, x2, x3, x4, x5) = U1_GA(x1, x2, x3, x5) U2_GA(x1, x2, x3, x4) = U2_GA(x1, x2, x4) U3_GA(x1, x2, x3, x4) = U3_GA(x1, x2, x4) U6_GA(x1, x2, x3, x4) = U6_GA(x1, x2, x4) ISNAT_IN_G(x1) = ISNAT_IN_G(x1) U9_G(x1, x2) = U9_G(x1, x2) U7_GA(x1, x2, x3, x4) = U7_GA(x1, x2, x4) U8_GA(x1, x2, x3, x4) = U8_GA(x1, x2, x4) ADD_IN_GGA(x1, x2, x3) = ADD_IN_GGA(x1, x2) U10_GGA(x1, x2, x3, x4) = U10_GGA(x1, x2, x4) U4_GA(x1, x2, x3, x4, x5) = U4_GA(x1, x2, x4, x5) U5_GA(x1, x2, x3, x4) = U5_GA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (40) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 11 less nodes. ---------------------------------------- (41) Complex Obligation (AND) ---------------------------------------- (42) Obligation: Pi DP problem: The TRS P consists of the following rules: ADD_IN_GGA(s(X), Y, s(Z)) -> ADD_IN_GGA(X, Y, Z) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C)), D) -> U1_ga(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) s2_in_ga(plus(A, B), C) -> U2_ga(A, B, C, s2_in_ga(plus(B, A), C)) s2_in_ga(plus(X, 0), X) -> s2_out_ga(plus(X, 0), X) s2_in_ga(plus(X, Y), Z) -> U3_ga(X, Y, Z, s2_in_ga(X, A)) s2_in_ga(plus(A, B), C) -> U6_ga(A, B, C, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U6_ga(A, B, C, isNat_out_g(A)) -> U7_ga(A, B, C, isNat_in_g(B)) U7_ga(A, B, C, isNat_out_g(B)) -> U8_ga(A, B, C, add_in_gga(A, B, C)) add_in_gga(s(X), Y, s(Z)) -> U10_gga(X, Y, Z, add_in_gga(X, Y, Z)) add_in_gga(0, X, X) -> add_out_gga(0, X, X) U10_gga(X, Y, Z, add_out_gga(X, Y, Z)) -> add_out_gga(s(X), Y, s(Z)) U8_ga(A, B, C, add_out_gga(A, B, C)) -> s2_out_ga(plus(A, B), C) U3_ga(X, Y, Z, s2_out_ga(X, A)) -> U4_ga(X, Y, Z, A, s2_in_ga(Y, B)) U4_ga(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, Z, s2_in_ga(plus(A, B), Z)) U5_ga(X, Y, Z, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, C, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, D, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The argument filtering Pi contains the following mapping: s2_in_ga(x1, x2) = s2_in_ga(x1) plus(x1, x2) = plus(x1, x2) U1_ga(x1, x2, x3, x4, x5) = U1_ga(x1, x2, x3, x5) U2_ga(x1, x2, x3, x4) = U2_ga(x1, x2, x4) 0 = 0 s2_out_ga(x1, x2) = s2_out_ga(x1, x2) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x4) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x2, x4) isNat_in_g(x1) = isNat_in_g(x1) s(x1) = s(x1) U9_g(x1, x2) = U9_g(x1, x2) isNat_out_g(x1) = isNat_out_g(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x1, x2, x4) U8_ga(x1, x2, x3, x4) = U8_ga(x1, x2, x4) add_in_gga(x1, x2, x3) = add_in_gga(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) add_out_gga(x1, x2, x3) = add_out_gga(x1, x2, x3) U4_ga(x1, x2, x3, x4, x5) = U4_ga(x1, x2, x4, x5) U5_ga(x1, x2, x3, x4) = U5_ga(x1, x2, x4) ADD_IN_GGA(x1, x2, x3) = ADD_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (43) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (44) Obligation: Pi DP problem: The TRS P consists of the following rules: ADD_IN_GGA(s(X), Y, s(Z)) -> ADD_IN_GGA(X, Y, Z) R is empty. The argument filtering Pi contains the following mapping: s(x1) = s(x1) ADD_IN_GGA(x1, x2, x3) = ADD_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (45) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (46) Obligation: Q DP problem: The TRS P consists of the following rules: ADD_IN_GGA(s(X), Y) -> ADD_IN_GGA(X, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (47) 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: *ADD_IN_GGA(s(X), Y) -> ADD_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (48) YES ---------------------------------------- (49) Obligation: Pi DP problem: The TRS P consists of the following rules: ISNAT_IN_G(s(X)) -> ISNAT_IN_G(X) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C)), D) -> U1_ga(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) s2_in_ga(plus(A, B), C) -> U2_ga(A, B, C, s2_in_ga(plus(B, A), C)) s2_in_ga(plus(X, 0), X) -> s2_out_ga(plus(X, 0), X) s2_in_ga(plus(X, Y), Z) -> U3_ga(X, Y, Z, s2_in_ga(X, A)) s2_in_ga(plus(A, B), C) -> U6_ga(A, B, C, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U6_ga(A, B, C, isNat_out_g(A)) -> U7_ga(A, B, C, isNat_in_g(B)) U7_ga(A, B, C, isNat_out_g(B)) -> U8_ga(A, B, C, add_in_gga(A, B, C)) add_in_gga(s(X), Y, s(Z)) -> U10_gga(X, Y, Z, add_in_gga(X, Y, Z)) add_in_gga(0, X, X) -> add_out_gga(0, X, X) U10_gga(X, Y, Z, add_out_gga(X, Y, Z)) -> add_out_gga(s(X), Y, s(Z)) U8_ga(A, B, C, add_out_gga(A, B, C)) -> s2_out_ga(plus(A, B), C) U3_ga(X, Y, Z, s2_out_ga(X, A)) -> U4_ga(X, Y, Z, A, s2_in_ga(Y, B)) U4_ga(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, Z, s2_in_ga(plus(A, B), Z)) U5_ga(X, Y, Z, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, C, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, D, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The argument filtering Pi contains the following mapping: s2_in_ga(x1, x2) = s2_in_ga(x1) plus(x1, x2) = plus(x1, x2) U1_ga(x1, x2, x3, x4, x5) = U1_ga(x1, x2, x3, x5) U2_ga(x1, x2, x3, x4) = U2_ga(x1, x2, x4) 0 = 0 s2_out_ga(x1, x2) = s2_out_ga(x1, x2) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x4) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x2, x4) isNat_in_g(x1) = isNat_in_g(x1) s(x1) = s(x1) U9_g(x1, x2) = U9_g(x1, x2) isNat_out_g(x1) = isNat_out_g(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x1, x2, x4) U8_ga(x1, x2, x3, x4) = U8_ga(x1, x2, x4) add_in_gga(x1, x2, x3) = add_in_gga(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) add_out_gga(x1, x2, x3) = add_out_gga(x1, x2, x3) U4_ga(x1, x2, x3, x4, x5) = U4_ga(x1, x2, x4, x5) U5_ga(x1, x2, x3, x4) = U5_ga(x1, x2, x4) ISNAT_IN_G(x1) = ISNAT_IN_G(x1) 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: ISNAT_IN_G(s(X)) -> ISNAT_IN_G(X) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (52) PiDPToQDPProof (EQUIVALENT) 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: ISNAT_IN_G(s(X)) -> ISNAT_IN_G(X) R is empty. Q is empty. 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: *ISNAT_IN_G(s(X)) -> ISNAT_IN_G(X) The graph contains the following edges 1 > 1 ---------------------------------------- (55) YES ---------------------------------------- (56) Obligation: Pi DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, B), C) -> S2_IN_GA(plus(B, A), C) S2_IN_GA(plus(A, plus(B, C)), D) -> S2_IN_GA(plus(plus(A, B), C), D) S2_IN_GA(plus(X, Y), Z) -> U3_GA(X, Y, Z, s2_in_ga(X, A)) U3_GA(X, Y, Z, s2_out_ga(X, A)) -> U4_GA(X, Y, Z, A, s2_in_ga(Y, B)) U4_GA(X, Y, Z, A, s2_out_ga(Y, B)) -> S2_IN_GA(plus(A, B), Z) S2_IN_GA(plus(X, Y), Z) -> S2_IN_GA(X, A) U3_GA(X, Y, Z, s2_out_ga(X, A)) -> S2_IN_GA(Y, B) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C)), D) -> U1_ga(A, B, C, D, s2_in_ga(plus(plus(A, B), C), D)) s2_in_ga(plus(A, B), C) -> U2_ga(A, B, C, s2_in_ga(plus(B, A), C)) s2_in_ga(plus(X, 0), X) -> s2_out_ga(plus(X, 0), X) s2_in_ga(plus(X, Y), Z) -> U3_ga(X, Y, Z, s2_in_ga(X, A)) s2_in_ga(plus(A, B), C) -> U6_ga(A, B, C, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U6_ga(A, B, C, isNat_out_g(A)) -> U7_ga(A, B, C, isNat_in_g(B)) U7_ga(A, B, C, isNat_out_g(B)) -> U8_ga(A, B, C, add_in_gga(A, B, C)) add_in_gga(s(X), Y, s(Z)) -> U10_gga(X, Y, Z, add_in_gga(X, Y, Z)) add_in_gga(0, X, X) -> add_out_gga(0, X, X) U10_gga(X, Y, Z, add_out_gga(X, Y, Z)) -> add_out_gga(s(X), Y, s(Z)) U8_ga(A, B, C, add_out_gga(A, B, C)) -> s2_out_ga(plus(A, B), C) U3_ga(X, Y, Z, s2_out_ga(X, A)) -> U4_ga(X, Y, Z, A, s2_in_ga(Y, B)) U4_ga(X, Y, Z, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, Z, s2_in_ga(plus(A, B), Z)) U5_ga(X, Y, Z, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, C, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, D, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The argument filtering Pi contains the following mapping: s2_in_ga(x1, x2) = s2_in_ga(x1) plus(x1, x2) = plus(x1, x2) U1_ga(x1, x2, x3, x4, x5) = U1_ga(x1, x2, x3, x5) U2_ga(x1, x2, x3, x4) = U2_ga(x1, x2, x4) 0 = 0 s2_out_ga(x1, x2) = s2_out_ga(x1, x2) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x4) U6_ga(x1, x2, x3, x4) = U6_ga(x1, x2, x4) isNat_in_g(x1) = isNat_in_g(x1) s(x1) = s(x1) U9_g(x1, x2) = U9_g(x1, x2) isNat_out_g(x1) = isNat_out_g(x1) U7_ga(x1, x2, x3, x4) = U7_ga(x1, x2, x4) U8_ga(x1, x2, x3, x4) = U8_ga(x1, x2, x4) add_in_gga(x1, x2, x3) = add_in_gga(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) add_out_gga(x1, x2, x3) = add_out_gga(x1, x2, x3) U4_ga(x1, x2, x3, x4, x5) = U4_ga(x1, x2, x4, x5) U5_ga(x1, x2, x3, x4) = U5_ga(x1, x2, x4) S2_IN_GA(x1, x2) = S2_IN_GA(x1) U3_GA(x1, x2, x3, x4) = U3_GA(x1, x2, x4) U4_GA(x1, x2, x3, x4, x5) = U4_GA(x1, x2, x4, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (57) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (58) Obligation: Q DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, B)) -> S2_IN_GA(plus(B, A)) S2_IN_GA(plus(A, plus(B, C))) -> S2_IN_GA(plus(plus(A, B), C)) S2_IN_GA(plus(X, Y)) -> U3_GA(X, Y, s2_in_ga(X)) U3_GA(X, Y, s2_out_ga(X, A)) -> U4_GA(X, Y, A, s2_in_ga(Y)) U4_GA(X, Y, A, s2_out_ga(Y, B)) -> S2_IN_GA(plus(A, B)) S2_IN_GA(plus(X, Y)) -> S2_IN_GA(X) U3_GA(X, Y, s2_out_ga(X, A)) -> S2_IN_GA(Y) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C))) -> U1_ga(A, B, C, s2_in_ga(plus(plus(A, B), C))) s2_in_ga(plus(A, B)) -> U2_ga(A, B, s2_in_ga(plus(B, A))) s2_in_ga(plus(X, 0)) -> s2_out_ga(plus(X, 0), X) s2_in_ga(plus(X, Y)) -> U3_ga(X, Y, s2_in_ga(X)) s2_in_ga(plus(A, B)) -> U6_ga(A, B, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U6_ga(A, B, isNat_out_g(A)) -> U7_ga(A, B, isNat_in_g(B)) U7_ga(A, B, isNat_out_g(B)) -> U8_ga(A, B, add_in_gga(A, B)) add_in_gga(s(X), Y) -> U10_gga(X, Y, add_in_gga(X, Y)) add_in_gga(0, X) -> add_out_gga(0, X, X) U10_gga(X, Y, add_out_gga(X, Y, Z)) -> add_out_gga(s(X), Y, s(Z)) U8_ga(A, B, add_out_gga(A, B, C)) -> s2_out_ga(plus(A, B), C) U3_ga(X, Y, s2_out_ga(X, A)) -> U4_ga(X, Y, A, s2_in_ga(Y)) U4_ga(X, Y, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, s2_in_ga(plus(A, B))) U5_ga(X, Y, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The set Q consists of the following terms: s2_in_ga(x0) isNat_in_g(x0) U9_g(x0, x1) U6_ga(x0, x1, x2) U7_ga(x0, x1, x2) add_in_gga(x0, x1) U10_gga(x0, x1, x2) U8_ga(x0, x1, x2) U3_ga(x0, x1, x2) U4_ga(x0, x1, x2, x3) U5_ga(x0, x1, x2) U2_ga(x0, x1, x2) U1_ga(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (59) QDPQMonotonicMRRProof (EQUIVALENT) By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain. Strictly oriented dependency pairs: S2_IN_GA(plus(X, Y)) -> S2_IN_GA(X) U3_GA(X, Y, s2_out_ga(X, A)) -> S2_IN_GA(Y) Strictly oriented rules of the TRS R: s2_in_ga(plus(X, 0)) -> s2_out_ga(plus(X, 0), X) U7_ga(A, B, isNat_out_g(B)) -> U8_ga(A, B, add_in_gga(A, B)) Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(S2_IN_GA(x_1)) = 2*x_1 POL(U10_gga(x_1, x_2, x_3)) = 0 POL(U1_ga(x_1, x_2, x_3, x_4)) = x_4 POL(U2_ga(x_1, x_2, x_3)) = x_3 POL(U3_GA(x_1, x_2, x_3)) = 2 + 2*x_2 + 2*x_3 POL(U3_ga(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(U4_GA(x_1, x_2, x_3, x_4)) = 2 + 2*x_3 + 2*x_4 POL(U4_ga(x_1, x_2, x_3, x_4)) = 1 + x_3 + x_4 POL(U5_ga(x_1, x_2, x_3)) = x_3 POL(U6_ga(x_1, x_2, x_3)) = 1 + x_1 POL(U7_ga(x_1, x_2, x_3)) = 1 + 2*x_3 POL(U8_ga(x_1, x_2, x_3)) = 2*x_3 POL(U9_g(x_1, x_2)) = 0 POL(add_in_gga(x_1, x_2)) = x_2 POL(add_out_gga(x_1, x_2, x_3)) = x_3 POL(isNat_in_g(x_1)) = 0 POL(isNat_out_g(x_1)) = x_1 POL(plus(x_1, x_2)) = 1 + x_1 + x_2 POL(s(x_1)) = 0 POL(s2_in_ga(x_1)) = x_1 POL(s2_out_ga(x_1, x_2)) = x_2 ---------------------------------------- (60) Obligation: Q DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, B)) -> S2_IN_GA(plus(B, A)) S2_IN_GA(plus(A, plus(B, C))) -> S2_IN_GA(plus(plus(A, B), C)) S2_IN_GA(plus(X, Y)) -> U3_GA(X, Y, s2_in_ga(X)) U3_GA(X, Y, s2_out_ga(X, A)) -> U4_GA(X, Y, A, s2_in_ga(Y)) U4_GA(X, Y, A, s2_out_ga(Y, B)) -> S2_IN_GA(plus(A, B)) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C))) -> U1_ga(A, B, C, s2_in_ga(plus(plus(A, B), C))) s2_in_ga(plus(A, B)) -> U2_ga(A, B, s2_in_ga(plus(B, A))) s2_in_ga(plus(X, Y)) -> U3_ga(X, Y, s2_in_ga(X)) s2_in_ga(plus(A, B)) -> U6_ga(A, B, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U6_ga(A, B, isNat_out_g(A)) -> U7_ga(A, B, isNat_in_g(B)) add_in_gga(s(X), Y) -> U10_gga(X, Y, add_in_gga(X, Y)) add_in_gga(0, X) -> add_out_gga(0, X, X) U10_gga(X, Y, add_out_gga(X, Y, Z)) -> add_out_gga(s(X), Y, s(Z)) U8_ga(A, B, add_out_gga(A, B, C)) -> s2_out_ga(plus(A, B), C) U3_ga(X, Y, s2_out_ga(X, A)) -> U4_ga(X, Y, A, s2_in_ga(Y)) U4_ga(X, Y, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, s2_in_ga(plus(A, B))) U5_ga(X, Y, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The set Q consists of the following terms: s2_in_ga(x0) isNat_in_g(x0) U9_g(x0, x1) U6_ga(x0, x1, x2) U7_ga(x0, x1, x2) add_in_gga(x0, x1) U10_gga(x0, x1, x2) U8_ga(x0, x1, x2) U3_ga(x0, x1, x2) U4_ga(x0, x1, x2, x3) U5_ga(x0, x1, x2) U2_ga(x0, x1, x2) U1_ga(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (61) 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. ---------------------------------------- (62) Obligation: Q DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, B)) -> S2_IN_GA(plus(B, A)) S2_IN_GA(plus(A, plus(B, C))) -> S2_IN_GA(plus(plus(A, B), C)) S2_IN_GA(plus(X, Y)) -> U3_GA(X, Y, s2_in_ga(X)) U3_GA(X, Y, s2_out_ga(X, A)) -> U4_GA(X, Y, A, s2_in_ga(Y)) U4_GA(X, Y, A, s2_out_ga(Y, B)) -> S2_IN_GA(plus(A, B)) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C))) -> U1_ga(A, B, C, s2_in_ga(plus(plus(A, B), C))) s2_in_ga(plus(A, B)) -> U2_ga(A, B, s2_in_ga(plus(B, A))) s2_in_ga(plus(X, Y)) -> U3_ga(X, Y, s2_in_ga(X)) s2_in_ga(plus(A, B)) -> U6_ga(A, B, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U6_ga(A, B, isNat_out_g(A)) -> U7_ga(A, B, isNat_in_g(B)) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U3_ga(X, Y, s2_out_ga(X, A)) -> U4_ga(X, Y, A, s2_in_ga(Y)) U4_ga(X, Y, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, s2_in_ga(plus(A, B))) U5_ga(X, Y, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The set Q consists of the following terms: s2_in_ga(x0) isNat_in_g(x0) U9_g(x0, x1) U6_ga(x0, x1, x2) U7_ga(x0, x1, x2) add_in_gga(x0, x1) U10_gga(x0, x1, x2) U8_ga(x0, x1, x2) U3_ga(x0, x1, x2) U4_ga(x0, x1, x2, x3) U5_ga(x0, x1, x2) U2_ga(x0, x1, x2) U1_ga(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (63) 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]. add_in_gga(x0, x1) U10_gga(x0, x1, x2) U8_ga(x0, x1, x2) ---------------------------------------- (64) Obligation: Q DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, B)) -> S2_IN_GA(plus(B, A)) S2_IN_GA(plus(A, plus(B, C))) -> S2_IN_GA(plus(plus(A, B), C)) S2_IN_GA(plus(X, Y)) -> U3_GA(X, Y, s2_in_ga(X)) U3_GA(X, Y, s2_out_ga(X, A)) -> U4_GA(X, Y, A, s2_in_ga(Y)) U4_GA(X, Y, A, s2_out_ga(Y, B)) -> S2_IN_GA(plus(A, B)) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C))) -> U1_ga(A, B, C, s2_in_ga(plus(plus(A, B), C))) s2_in_ga(plus(A, B)) -> U2_ga(A, B, s2_in_ga(plus(B, A))) s2_in_ga(plus(X, Y)) -> U3_ga(X, Y, s2_in_ga(X)) s2_in_ga(plus(A, B)) -> U6_ga(A, B, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U6_ga(A, B, isNat_out_g(A)) -> U7_ga(A, B, isNat_in_g(B)) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U3_ga(X, Y, s2_out_ga(X, A)) -> U4_ga(X, Y, A, s2_in_ga(Y)) U4_ga(X, Y, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, s2_in_ga(plus(A, B))) U5_ga(X, Y, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The set Q consists of the following terms: s2_in_ga(x0) isNat_in_g(x0) U9_g(x0, x1) U6_ga(x0, x1, x2) U7_ga(x0, x1, x2) U3_ga(x0, x1, x2) U4_ga(x0, x1, x2, x3) U5_ga(x0, x1, x2) U2_ga(x0, x1, x2) U1_ga(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (65) QDPQMonotonicMRRProof (EQUIVALENT) By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain. Strictly oriented dependency pairs: U3_GA(X, Y, s2_out_ga(X, A)) -> U4_GA(X, Y, A, s2_in_ga(Y)) Used ordering: Polynomial interpretation [POLO]: POL(0) = 2 POL(S2_IN_GA(x_1)) = 1 POL(U1_ga(x_1, x_2, x_3, x_4)) = 2*x_4 POL(U2_ga(x_1, x_2, x_3)) = x_3 POL(U3_GA(x_1, x_2, x_3)) = 1 POL(U3_ga(x_1, x_2, x_3)) = 2*x_3 POL(U4_GA(x_1, x_2, x_3, x_4)) = x_4 POL(U4_ga(x_1, x_2, x_3, x_4)) = 2 POL(U5_ga(x_1, x_2, x_3)) = 1 + x_3 POL(U6_ga(x_1, x_2, x_3)) = 0 POL(U7_ga(x_1, x_2, x_3)) = 0 POL(U9_g(x_1, x_2)) = 2 + 2*x_1 POL(isNat_in_g(x_1)) = 2*x_1 POL(isNat_out_g(x_1)) = 0 POL(plus(x_1, x_2)) = 0 POL(s(x_1)) = 1 + 2*x_1 POL(s2_in_ga(x_1)) = 0 POL(s2_out_ga(x_1, x_2)) = 1 ---------------------------------------- (66) Obligation: Q DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, B)) -> S2_IN_GA(plus(B, A)) S2_IN_GA(plus(A, plus(B, C))) -> S2_IN_GA(plus(plus(A, B), C)) S2_IN_GA(plus(X, Y)) -> U3_GA(X, Y, s2_in_ga(X)) U4_GA(X, Y, A, s2_out_ga(Y, B)) -> S2_IN_GA(plus(A, B)) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C))) -> U1_ga(A, B, C, s2_in_ga(plus(plus(A, B), C))) s2_in_ga(plus(A, B)) -> U2_ga(A, B, s2_in_ga(plus(B, A))) s2_in_ga(plus(X, Y)) -> U3_ga(X, Y, s2_in_ga(X)) s2_in_ga(plus(A, B)) -> U6_ga(A, B, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U6_ga(A, B, isNat_out_g(A)) -> U7_ga(A, B, isNat_in_g(B)) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U3_ga(X, Y, s2_out_ga(X, A)) -> U4_ga(X, Y, A, s2_in_ga(Y)) U4_ga(X, Y, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, s2_in_ga(plus(A, B))) U5_ga(X, Y, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The set Q consists of the following terms: s2_in_ga(x0) isNat_in_g(x0) U9_g(x0, x1) U6_ga(x0, x1, x2) U7_ga(x0, x1, x2) U3_ga(x0, x1, x2) U4_ga(x0, x1, x2, x3) U5_ga(x0, x1, x2) U2_ga(x0, x1, x2) U1_ga(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (67) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (68) Obligation: Q DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, plus(B, C))) -> S2_IN_GA(plus(plus(A, B), C)) S2_IN_GA(plus(A, B)) -> S2_IN_GA(plus(B, A)) The TRS R consists of the following rules: s2_in_ga(plus(A, plus(B, C))) -> U1_ga(A, B, C, s2_in_ga(plus(plus(A, B), C))) s2_in_ga(plus(A, B)) -> U2_ga(A, B, s2_in_ga(plus(B, A))) s2_in_ga(plus(X, Y)) -> U3_ga(X, Y, s2_in_ga(X)) s2_in_ga(plus(A, B)) -> U6_ga(A, B, isNat_in_g(A)) isNat_in_g(s(X)) -> U9_g(X, isNat_in_g(X)) isNat_in_g(0) -> isNat_out_g(0) U6_ga(A, B, isNat_out_g(A)) -> U7_ga(A, B, isNat_in_g(B)) U9_g(X, isNat_out_g(X)) -> isNat_out_g(s(X)) U3_ga(X, Y, s2_out_ga(X, A)) -> U4_ga(X, Y, A, s2_in_ga(Y)) U4_ga(X, Y, A, s2_out_ga(Y, B)) -> U5_ga(X, Y, s2_in_ga(plus(A, B))) U5_ga(X, Y, s2_out_ga(plus(A, B), Z)) -> s2_out_ga(plus(X, Y), Z) U2_ga(A, B, s2_out_ga(plus(B, A), C)) -> s2_out_ga(plus(A, B), C) U1_ga(A, B, C, s2_out_ga(plus(plus(A, B), C), D)) -> s2_out_ga(plus(A, plus(B, C)), D) The set Q consists of the following terms: s2_in_ga(x0) isNat_in_g(x0) U9_g(x0, x1) U6_ga(x0, x1, x2) U7_ga(x0, x1, x2) U3_ga(x0, x1, x2) U4_ga(x0, x1, x2, x3) U5_ga(x0, x1, x2) U2_ga(x0, x1, x2) U1_ga(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (69) 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. ---------------------------------------- (70) Obligation: Q DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, plus(B, C))) -> S2_IN_GA(plus(plus(A, B), C)) S2_IN_GA(plus(A, B)) -> S2_IN_GA(plus(B, A)) R is empty. The set Q consists of the following terms: s2_in_ga(x0) isNat_in_g(x0) U9_g(x0, x1) U6_ga(x0, x1, x2) U7_ga(x0, x1, x2) U3_ga(x0, x1, x2) U4_ga(x0, x1, x2, x3) U5_ga(x0, x1, x2) U2_ga(x0, x1, x2) U1_ga(x0, x1, x2, x3) We have to consider all (P,Q,R)-chains. ---------------------------------------- (71) 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]. s2_in_ga(x0) isNat_in_g(x0) U9_g(x0, x1) U6_ga(x0, x1, x2) U7_ga(x0, x1, x2) U3_ga(x0, x1, x2) U4_ga(x0, x1, x2, x3) U5_ga(x0, x1, x2) U2_ga(x0, x1, x2) U1_ga(x0, x1, x2, x3) ---------------------------------------- (72) Obligation: Q DP problem: The TRS P consists of the following rules: S2_IN_GA(plus(A, plus(B, C))) -> S2_IN_GA(plus(plus(A, B), C)) S2_IN_GA(plus(A, B)) -> S2_IN_GA(plus(B, A)) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (73) 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 = S2_IN_GA(plus(A, B)) evaluates to t =S2_IN_GA(plus(B, A)) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [A / B, B / A] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from S2_IN_GA(plus(A, B)) to S2_IN_GA(plus(B, A)). ---------------------------------------- (74) NO ---------------------------------------- (75) PrologToTRSTransformerProof (SOUND) Transformed Prolog program to TRS. { "root": 3, "program": { "directives": [], "clauses": [ [ "(s2 (plus A (plus B C)) D)", "(s2 (plus (plus A B) C) D)" ], [ "(s2 (plus A B) C)", "(s2 (plus B A) C)" ], [ "(s2 (plus X (0)) X)", null ], [ "(s2 (plus X Y) Z)", "(',' (s2 X A) (',' (s2 Y B) (s2 (plus A B) Z)))" ], [ "(s2 (plus A B) C)", "(',' (isNat A) (',' (isNat B) (add A B C)))" ], [ "(isNat (s X))", "(isNat X)" ], [ "(isNat (0))", null ], [ "(add (s X) Y (s Z))", "(add X Y Z)" ], [ "(add (0) X X)", null ] ] }, "graph": { "nodes": { "45": { "goal": [{ "clause": 0, "scope": 1, "term": "(s2 T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "49": { "goal": [ { "clause": 1, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 2, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 3, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 4, "scope": 1, "term": "(s2 T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "type": "Nodes", "392": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 T67 X69)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T67"], "free": ["X69"], "exprvars": [] } }, "491": { "goal": [{ "clause": -1, "scope": -1, "term": "(add T123 T124 T126)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T123", "T124" ], "free": [], "exprvars": [] } }, "372": { "goal": [{ "clause": 2, "scope": 1, "term": "(s2 T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "394": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 (plus T73 T80) T69)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T73", "T80" ], "free": [], "exprvars": [] } }, "493": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "373": { "goal": [ { "clause": 3, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 4, "scope": 1, "term": "(s2 T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "374": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "495": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "375": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "496": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "310": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 (plus (plus T19 T20) T21) T23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T19", "T20", "T21" ], "free": [], "exprvars": [] } }, "376": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "475": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "497": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "476": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "312": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "455": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (isNat T94) (',' (isNat T95) (add T94 T95 T97)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T94", "T95" ], "free": [], "exprvars": [] } }, "477": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "357": { "goal": [{ "clause": 1, "scope": 1, "term": "(s2 T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "379": { "goal": [{ "clause": 3, "scope": 1, "term": "(s2 T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "456": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "457": { "goal": [{ "clause": -1, "scope": -1, "term": "(isNat T94)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": [], "exprvars": [] } }, "359": { "goal": [ { "clause": 2, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 3, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 4, "scope": 1, "term": "(s2 T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "458": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (isNat T95) (add T94 T95 T97))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T94", "T95" ], "free": [], "exprvars": [] } }, "380": { "goal": [{ "clause": 4, "scope": 1, "term": "(s2 T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "381": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (s2 T66 X68) (',' (s2 T67 X69) (s2 (plus X68 X69) T69)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T66", "T67" ], "free": [ "X68", "X69" ], "exprvars": [] } }, "383": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "482": { "goal": [{ "clause": -1, "scope": -1, "term": "(isNat T95)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T95"], "free": [], "exprvars": [] } }, "461": { "goal": [ { "clause": 5, "scope": 2, "term": "(isNat T94)" }, { "clause": 6, "scope": 2, "term": "(isNat T94)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": [], "exprvars": [] } }, "483": { "goal": [{ "clause": -1, "scope": -1, "term": "(add T94 T95 T97)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T94", "T95" ], "free": [], "exprvars": [] } }, "364": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 (plus T42 T41) T44)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T41", "T42" ], "free": [], "exprvars": [] } }, "386": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 T66 X68)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T66"], "free": ["X68"], "exprvars": [] } }, "463": { "goal": [{ "clause": 5, "scope": 2, "term": "(isNat T94)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": [], "exprvars": [] } }, "485": { "goal": [ { "clause": 7, "scope": 3, "term": "(add T94 T95 T97)" }, { "clause": 8, "scope": 3, "term": "(add T94 T95 T97)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T94", "T95" ], "free": [], "exprvars": [] } }, "365": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "387": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (s2 T67 X69) (s2 (plus T73 X69) T69))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T67", "T73" ], "free": ["X69"], "exprvars": [] } }, "464": { "goal": [{ "clause": 6, "scope": 2, "term": "(isNat T94)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": [], "exprvars": [] } }, "3": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "488": { "goal": [{ "clause": 7, "scope": 3, "term": "(add T94 T95 T97)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T94", "T95" ], "free": [], "exprvars": [] } }, "467": { "goal": [{ "clause": -1, "scope": -1, "term": "(isNat T104)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T104"], "free": [], "exprvars": [] } }, "489": { "goal": [{ "clause": 8, "scope": 3, "term": "(add T94 T95 T97)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T94", "T95" ], "free": [], "exprvars": [] } }, "6": { "goal": [ { "clause": 0, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 1, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 2, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 3, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 4, "scope": 1, "term": "(s2 T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "468": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 3, "to": 6, "label": "CASE" }, { "from": 6, "to": 45, "label": "PARALLEL" }, { "from": 6, "to": 49, "label": "PARALLEL" }, { "from": 45, "to": 310, "label": "EVAL with clause\ns2(plus(X17, plus(X18, X19)), X20) :- s2(plus(plus(X17, X18), X19), X20).\nand substitutionX17 -> T19,\nX18 -> T20,\nX19 -> T21,\nT1 -> plus(T19, plus(T20, T21)),\nT2 -> T23,\nX20 -> T23,\nT22 -> T23" }, { "from": 45, "to": 312, "label": "EVAL-BACKTRACK" }, { "from": 49, "to": 357, "label": "PARALLEL" }, { "from": 49, "to": 359, "label": "PARALLEL" }, { "from": 310, "to": 3, "label": "INSTANCE with matching:\nT1 -> plus(plus(T19, T20), T21)\nT2 -> T23" }, { "from": 357, "to": 364, "label": "EVAL with clause\ns2(plus(X37, X38), X39) :- s2(plus(X38, X37), X39).\nand substitutionX37 -> T41,\nX38 -> T42,\nT1 -> plus(T41, T42),\nT2 -> T44,\nX39 -> T44,\nT43 -> T44" }, { "from": 357, "to": 365, "label": "EVAL-BACKTRACK" }, { "from": 359, "to": 372, "label": "PARALLEL" }, { "from": 359, "to": 373, "label": "PARALLEL" }, { "from": 364, "to": 3, "label": "INSTANCE with matching:\nT1 -> plus(T42, T41)\nT2 -> T44" }, { "from": 372, "to": 374, "label": "EVAL with clause\ns2(plus(X48, 0), X48).\nand substitutionX48 -> T53,\nT1 -> plus(T53, 0),\nT2 -> T53" }, { "from": 372, "to": 375, "label": "EVAL-BACKTRACK" }, { "from": 373, "to": 379, "label": "PARALLEL" }, { "from": 373, "to": 380, "label": "PARALLEL" }, { "from": 374, "to": 376, "label": "SUCCESS" }, { "from": 379, "to": 381, "label": "EVAL with clause\ns2(plus(X65, X66), X67) :- ','(s2(X65, X68), ','(s2(X66, X69), s2(plus(X68, X69), X67))).\nand substitutionX65 -> T66,\nX66 -> T67,\nT1 -> plus(T66, T67),\nT2 -> T69,\nX67 -> T69,\nT68 -> T69" }, { "from": 379, "to": 383, "label": "EVAL-BACKTRACK" }, { "from": 380, "to": 455, "label": "EVAL with clause\ns2(plus(X100, X101), X102) :- ','(isNat(X100), ','(isNat(X101), add(X100, X101, X102))).\nand substitutionX100 -> T94,\nX101 -> T95,\nT1 -> plus(T94, T95),\nT2 -> T97,\nX102 -> T97,\nT96 -> T97" }, { "from": 380, "to": 456, "label": "EVAL-BACKTRACK" }, { "from": 381, "to": 386, "label": "SPLIT 1" }, { "from": 381, "to": 387, "label": "SPLIT 2\nnew knowledge:\nT66 is ground\nT73 is ground\nreplacements:X68 -> T73" }, { "from": 386, "to": 3, "label": "INSTANCE with matching:\nT1 -> T66\nT2 -> X68" }, { "from": 387, "to": 392, "label": "SPLIT 1" }, { "from": 387, "to": 394, "label": "SPLIT 2\nnew knowledge:\nT67 is ground\nT80 is ground\nreplacements:X69 -> T80" }, { "from": 392, "to": 3, "label": "INSTANCE with matching:\nT1 -> T67\nT2 -> X69" }, { "from": 394, "to": 3, "label": "INSTANCE with matching:\nT1 -> plus(T73, T80)\nT2 -> T69" }, { "from": 455, "to": 457, "label": "SPLIT 1" }, { "from": 455, "to": 458, "label": "SPLIT 2\nnew knowledge:\nT94 is ground" }, { "from": 457, "to": 461, "label": "CASE" }, { "from": 458, "to": 482, "label": "SPLIT 1" }, { "from": 458, "to": 483, "label": "SPLIT 2\nnew knowledge:\nT95 is ground" }, { "from": 461, "to": 463, "label": "PARALLEL" }, { "from": 461, "to": 464, "label": "PARALLEL" }, { "from": 463, "to": 467, "label": "EVAL with clause\nisNat(s(X109)) :- isNat(X109).\nand substitutionX109 -> T104,\nT94 -> s(T104)" }, { "from": 463, "to": 468, "label": "EVAL-BACKTRACK" }, { "from": 464, "to": 475, "label": "EVAL with clause\nisNat(0).\nand substitutionT94 -> 0" }, { "from": 464, "to": 476, "label": "EVAL-BACKTRACK" }, { "from": 467, "to": 457, "label": "INSTANCE with matching:\nT94 -> T104" }, { "from": 475, "to": 477, "label": "SUCCESS" }, { "from": 482, "to": 457, "label": "INSTANCE with matching:\nT94 -> T95" }, { "from": 483, "to": 485, "label": "CASE" }, { "from": 485, "to": 488, "label": "PARALLEL" }, { "from": 485, "to": 489, "label": "PARALLEL" }, { "from": 488, "to": 491, "label": "EVAL with clause\nadd(s(X128), X129, s(X130)) :- add(X128, X129, X130).\nand substitutionX128 -> T123,\nT94 -> s(T123),\nT95 -> T124,\nX129 -> T124,\nX130 -> T126,\nT97 -> s(T126),\nT125 -> T126" }, { "from": 488, "to": 493, "label": "EVAL-BACKTRACK" }, { "from": 489, "to": 495, "label": "EVAL with clause\nadd(0, X136, X136).\nand substitutionT94 -> 0,\nT95 -> T132,\nX136 -> T132,\nT97 -> T132" }, { "from": 489, "to": 496, "label": "EVAL-BACKTRACK" }, { "from": 491, "to": 483, "label": "INSTANCE with matching:\nT94 -> T123\nT95 -> T124\nT97 -> T126" }, { "from": 495, "to": 497, "label": "SUCCESS" } ], "type": "Graph" } } ---------------------------------------- (76) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: f3_in(plus(T19, plus(T20, T21))) -> U1(f3_in(plus(plus(T19, T20), T21)), plus(T19, plus(T20, T21))) U1(f3_out1(T23), plus(T19, plus(T20, T21))) -> f3_out1(T23) f3_in(plus(T41, T42)) -> U2(f3_in(plus(T42, T41)), plus(T41, T42)) U2(f3_out1(T44), plus(T41, T42)) -> f3_out1(T44) f3_in(plus(T53, 0)) -> f3_out1(T53) f3_in(plus(T66, T67)) -> U3(f381_in(T66, T67), plus(T66, T67)) U3(f381_out1(X68, X69, T69), plus(T66, T67)) -> f3_out1(T69) f3_in(plus(T94, T95)) -> U4(f455_in(T94, T95), plus(T94, T95)) U4(f455_out1(T97), plus(T94, T95)) -> f3_out1(T97) f457_in(s(T104)) -> U5(f457_in(T104), s(T104)) U5(f457_out1, s(T104)) -> f457_out1 f457_in(0) -> f457_out1 f483_in(s(T123), T124) -> U6(f483_in(T123, T124), s(T123), T124) U6(f483_out1(T126), s(T123), T124) -> f483_out1(s(T126)) f483_in(0, T132) -> f483_out1(T132) f381_in(T66, T67) -> U7(f3_in(T66), T66, T67) U7(f3_out1(T73), T66, T67) -> U8(f387_in(T67, T73), T66, T67, T73) U8(f387_out1(X69, T69), T66, T67, T73) -> f381_out1(T73, X69, T69) f387_in(T67, T73) -> U9(f3_in(T67), T67, T73) U9(f3_out1(T80), T67, T73) -> U10(f3_in(plus(T73, T80)), T67, T73, T80) U10(f3_out1(T69), T67, T73, T80) -> f387_out1(T80, T69) f455_in(T94, T95) -> U11(f457_in(T94), T94, T95) U11(f457_out1, T94, T95) -> U12(f458_in(T95, T94), T94, T95) U12(f458_out1(T97), T94, T95) -> f455_out1(T97) f458_in(T95, T94) -> U13(f457_in(T95), T95, T94) U13(f457_out1, T95, T94) -> U14(f483_in(T94, T95), T95, T94) U14(f483_out1(T97), T95, T94) -> f458_out1(T97) Q is empty. ---------------------------------------- (77) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (78) Obligation: Q DP problem: The TRS P consists of the following rules: F3_IN(plus(T19, plus(T20, T21))) -> U1^1(f3_in(plus(plus(T19, T20), T21)), plus(T19, plus(T20, T21))) F3_IN(plus(T19, plus(T20, T21))) -> F3_IN(plus(plus(T19, T20), T21)) F3_IN(plus(T41, T42)) -> U2^1(f3_in(plus(T42, T41)), plus(T41, T42)) F3_IN(plus(T41, T42)) -> F3_IN(plus(T42, T41)) F3_IN(plus(T66, T67)) -> U3^1(f381_in(T66, T67), plus(T66, T67)) F3_IN(plus(T66, T67)) -> F381_IN(T66, T67) F3_IN(plus(T94, T95)) -> U4^1(f455_in(T94, T95), plus(T94, T95)) F3_IN(plus(T94, T95)) -> F455_IN(T94, T95) F457_IN(s(T104)) -> U5^1(f457_in(T104), s(T104)) F457_IN(s(T104)) -> F457_IN(T104) F483_IN(s(T123), T124) -> U6^1(f483_in(T123, T124), s(T123), T124) F483_IN(s(T123), T124) -> F483_IN(T123, T124) F381_IN(T66, T67) -> U7^1(f3_in(T66), T66, T67) F381_IN(T66, T67) -> F3_IN(T66) U7^1(f3_out1(T73), T66, T67) -> U8^1(f387_in(T67, T73), T66, T67, T73) U7^1(f3_out1(T73), T66, T67) -> F387_IN(T67, T73) F387_IN(T67, T73) -> U9^1(f3_in(T67), T67, T73) F387_IN(T67, T73) -> F3_IN(T67) U9^1(f3_out1(T80), T67, T73) -> U10^1(f3_in(plus(T73, T80)), T67, T73, T80) U9^1(f3_out1(T80), T67, T73) -> F3_IN(plus(T73, T80)) F455_IN(T94, T95) -> U11^1(f457_in(T94), T94, T95) F455_IN(T94, T95) -> F457_IN(T94) U11^1(f457_out1, T94, T95) -> U12^1(f458_in(T95, T94), T94, T95) U11^1(f457_out1, T94, T95) -> F458_IN(T95, T94) F458_IN(T95, T94) -> U13^1(f457_in(T95), T95, T94) F458_IN(T95, T94) -> F457_IN(T95) U13^1(f457_out1, T95, T94) -> U14^1(f483_in(T94, T95), T95, T94) U13^1(f457_out1, T95, T94) -> F483_IN(T94, T95) The TRS R consists of the following rules: f3_in(plus(T19, plus(T20, T21))) -> U1(f3_in(plus(plus(T19, T20), T21)), plus(T19, plus(T20, T21))) U1(f3_out1(T23), plus(T19, plus(T20, T21))) -> f3_out1(T23) f3_in(plus(T41, T42)) -> U2(f3_in(plus(T42, T41)), plus(T41, T42)) U2(f3_out1(T44), plus(T41, T42)) -> f3_out1(T44) f3_in(plus(T53, 0)) -> f3_out1(T53) f3_in(plus(T66, T67)) -> U3(f381_in(T66, T67), plus(T66, T67)) U3(f381_out1(X68, X69, T69), plus(T66, T67)) -> f3_out1(T69) f3_in(plus(T94, T95)) -> U4(f455_in(T94, T95), plus(T94, T95)) U4(f455_out1(T97), plus(T94, T95)) -> f3_out1(T97) f457_in(s(T104)) -> U5(f457_in(T104), s(T104)) U5(f457_out1, s(T104)) -> f457_out1 f457_in(0) -> f457_out1 f483_in(s(T123), T124) -> U6(f483_in(T123, T124), s(T123), T124) U6(f483_out1(T126), s(T123), T124) -> f483_out1(s(T126)) f483_in(0, T132) -> f483_out1(T132) f381_in(T66, T67) -> U7(f3_in(T66), T66, T67) U7(f3_out1(T73), T66, T67) -> U8(f387_in(T67, T73), T66, T67, T73) U8(f387_out1(X69, T69), T66, T67, T73) -> f381_out1(T73, X69, T69) f387_in(T67, T73) -> U9(f3_in(T67), T67, T73) U9(f3_out1(T80), T67, T73) -> U10(f3_in(plus(T73, T80)), T67, T73, T80) U10(f3_out1(T69), T67, T73, T80) -> f387_out1(T80, T69) f455_in(T94, T95) -> U11(f457_in(T94), T94, T95) U11(f457_out1, T94, T95) -> U12(f458_in(T95, T94), T94, T95) U12(f458_out1(T97), T94, T95) -> f455_out1(T97) f458_in(T95, T94) -> U13(f457_in(T95), T95, T94) U13(f457_out1, T95, T94) -> U14(f483_in(T94, T95), T95, T94) U14(f483_out1(T97), T95, T94) -> f458_out1(T97) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (79) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 17 less nodes. ---------------------------------------- (80) Complex Obligation (AND) ---------------------------------------- (81) Obligation: Q DP problem: The TRS P consists of the following rules: F483_IN(s(T123), T124) -> F483_IN(T123, T124) The TRS R consists of the following rules: f3_in(plus(T19, plus(T20, T21))) -> U1(f3_in(plus(plus(T19, T20), T21)), plus(T19, plus(T20, T21))) U1(f3_out1(T23), plus(T19, plus(T20, T21))) -> f3_out1(T23) f3_in(plus(T41, T42)) -> U2(f3_in(plus(T42, T41)), plus(T41, T42)) U2(f3_out1(T44), plus(T41, T42)) -> f3_out1(T44) f3_in(plus(T53, 0)) -> f3_out1(T53) f3_in(plus(T66, T67)) -> U3(f381_in(T66, T67), plus(T66, T67)) U3(f381_out1(X68, X69, T69), plus(T66, T67)) -> f3_out1(T69) f3_in(plus(T94, T95)) -> U4(f455_in(T94, T95), plus(T94, T95)) U4(f455_out1(T97), plus(T94, T95)) -> f3_out1(T97) f457_in(s(T104)) -> U5(f457_in(T104), s(T104)) U5(f457_out1, s(T104)) -> f457_out1 f457_in(0) -> f457_out1 f483_in(s(T123), T124) -> U6(f483_in(T123, T124), s(T123), T124) U6(f483_out1(T126), s(T123), T124) -> f483_out1(s(T126)) f483_in(0, T132) -> f483_out1(T132) f381_in(T66, T67) -> U7(f3_in(T66), T66, T67) U7(f3_out1(T73), T66, T67) -> U8(f387_in(T67, T73), T66, T67, T73) U8(f387_out1(X69, T69), T66, T67, T73) -> f381_out1(T73, X69, T69) f387_in(T67, T73) -> U9(f3_in(T67), T67, T73) U9(f3_out1(T80), T67, T73) -> U10(f3_in(plus(T73, T80)), T67, T73, T80) U10(f3_out1(T69), T67, T73, T80) -> f387_out1(T80, T69) f455_in(T94, T95) -> U11(f457_in(T94), T94, T95) U11(f457_out1, T94, T95) -> U12(f458_in(T95, T94), T94, T95) U12(f458_out1(T97), T94, T95) -> f455_out1(T97) f458_in(T95, T94) -> U13(f457_in(T95), T95, T94) U13(f457_out1, T95, T94) -> U14(f483_in(T94, T95), T95, T94) U14(f483_out1(T97), T95, T94) -> f458_out1(T97) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (82) 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. ---------------------------------------- (83) Obligation: Q DP problem: The TRS P consists of the following rules: F483_IN(s(T123), T124) -> F483_IN(T123, T124) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (84) 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: *F483_IN(s(T123), T124) -> F483_IN(T123, T124) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (85) YES ---------------------------------------- (86) Obligation: Q DP problem: The TRS P consists of the following rules: F457_IN(s(T104)) -> F457_IN(T104) The TRS R consists of the following rules: f3_in(plus(T19, plus(T20, T21))) -> U1(f3_in(plus(plus(T19, T20), T21)), plus(T19, plus(T20, T21))) U1(f3_out1(T23), plus(T19, plus(T20, T21))) -> f3_out1(T23) f3_in(plus(T41, T42)) -> U2(f3_in(plus(T42, T41)), plus(T41, T42)) U2(f3_out1(T44), plus(T41, T42)) -> f3_out1(T44) f3_in(plus(T53, 0)) -> f3_out1(T53) f3_in(plus(T66, T67)) -> U3(f381_in(T66, T67), plus(T66, T67)) U3(f381_out1(X68, X69, T69), plus(T66, T67)) -> f3_out1(T69) f3_in(plus(T94, T95)) -> U4(f455_in(T94, T95), plus(T94, T95)) U4(f455_out1(T97), plus(T94, T95)) -> f3_out1(T97) f457_in(s(T104)) -> U5(f457_in(T104), s(T104)) U5(f457_out1, s(T104)) -> f457_out1 f457_in(0) -> f457_out1 f483_in(s(T123), T124) -> U6(f483_in(T123, T124), s(T123), T124) U6(f483_out1(T126), s(T123), T124) -> f483_out1(s(T126)) f483_in(0, T132) -> f483_out1(T132) f381_in(T66, T67) -> U7(f3_in(T66), T66, T67) U7(f3_out1(T73), T66, T67) -> U8(f387_in(T67, T73), T66, T67, T73) U8(f387_out1(X69, T69), T66, T67, T73) -> f381_out1(T73, X69, T69) f387_in(T67, T73) -> U9(f3_in(T67), T67, T73) U9(f3_out1(T80), T67, T73) -> U10(f3_in(plus(T73, T80)), T67, T73, T80) U10(f3_out1(T69), T67, T73, T80) -> f387_out1(T80, T69) f455_in(T94, T95) -> U11(f457_in(T94), T94, T95) U11(f457_out1, T94, T95) -> U12(f458_in(T95, T94), T94, T95) U12(f458_out1(T97), T94, T95) -> f455_out1(T97) f458_in(T95, T94) -> U13(f457_in(T95), T95, T94) U13(f457_out1, T95, T94) -> U14(f483_in(T94, T95), T95, T94) U14(f483_out1(T97), T95, T94) -> f458_out1(T97) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (87) 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. ---------------------------------------- (88) Obligation: Q DP problem: The TRS P consists of the following rules: F457_IN(s(T104)) -> F457_IN(T104) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (89) 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: *F457_IN(s(T104)) -> F457_IN(T104) The graph contains the following edges 1 > 1 ---------------------------------------- (90) YES ---------------------------------------- (91) Obligation: Q DP problem: The TRS P consists of the following rules: F3_IN(plus(T41, T42)) -> F3_IN(plus(T42, T41)) F3_IN(plus(T19, plus(T20, T21))) -> F3_IN(plus(plus(T19, T20), T21)) F3_IN(plus(T66, T67)) -> F381_IN(T66, T67) F381_IN(T66, T67) -> U7^1(f3_in(T66), T66, T67) U7^1(f3_out1(T73), T66, T67) -> F387_IN(T67, T73) F387_IN(T67, T73) -> U9^1(f3_in(T67), T67, T73) U9^1(f3_out1(T80), T67, T73) -> F3_IN(plus(T73, T80)) F387_IN(T67, T73) -> F3_IN(T67) F381_IN(T66, T67) -> F3_IN(T66) The TRS R consists of the following rules: f3_in(plus(T19, plus(T20, T21))) -> U1(f3_in(plus(plus(T19, T20), T21)), plus(T19, plus(T20, T21))) U1(f3_out1(T23), plus(T19, plus(T20, T21))) -> f3_out1(T23) f3_in(plus(T41, T42)) -> U2(f3_in(plus(T42, T41)), plus(T41, T42)) U2(f3_out1(T44), plus(T41, T42)) -> f3_out1(T44) f3_in(plus(T53, 0)) -> f3_out1(T53) f3_in(plus(T66, T67)) -> U3(f381_in(T66, T67), plus(T66, T67)) U3(f381_out1(X68, X69, T69), plus(T66, T67)) -> f3_out1(T69) f3_in(plus(T94, T95)) -> U4(f455_in(T94, T95), plus(T94, T95)) U4(f455_out1(T97), plus(T94, T95)) -> f3_out1(T97) f457_in(s(T104)) -> U5(f457_in(T104), s(T104)) U5(f457_out1, s(T104)) -> f457_out1 f457_in(0) -> f457_out1 f483_in(s(T123), T124) -> U6(f483_in(T123, T124), s(T123), T124) U6(f483_out1(T126), s(T123), T124) -> f483_out1(s(T126)) f483_in(0, T132) -> f483_out1(T132) f381_in(T66, T67) -> U7(f3_in(T66), T66, T67) U7(f3_out1(T73), T66, T67) -> U8(f387_in(T67, T73), T66, T67, T73) U8(f387_out1(X69, T69), T66, T67, T73) -> f381_out1(T73, X69, T69) f387_in(T67, T73) -> U9(f3_in(T67), T67, T73) U9(f3_out1(T80), T67, T73) -> U10(f3_in(plus(T73, T80)), T67, T73, T80) U10(f3_out1(T69), T67, T73, T80) -> f387_out1(T80, T69) f455_in(T94, T95) -> U11(f457_in(T94), T94, T95) U11(f457_out1, T94, T95) -> U12(f458_in(T95, T94), T94, T95) U12(f458_out1(T97), T94, T95) -> f455_out1(T97) f458_in(T95, T94) -> U13(f457_in(T95), T95, T94) U13(f457_out1, T95, T94) -> U14(f483_in(T94, T95), T95, T94) U14(f483_out1(T97), T95, T94) -> f458_out1(T97) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (92) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. F381_IN(T66, T67) -> U7^1(f3_in(T66), T66, T67) U7^1(f3_out1(T73), T66, T67) -> F387_IN(T67, T73) F381_IN(T66, T67) -> F3_IN(T66) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( U7^1_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_3 - 1} POL( U9^1_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_3 - 1} POL( f3_in_1(x_1) ) = 2x_1 POL( plus_2(x_1, x_2) ) = x_1 + x_2 + 1 POL( U1_2(x_1, x_2) ) = x_1 POL( U2_2(x_1, x_2) ) = x_1 POL( 0 ) = 0 POL( f3_out1_1(x_1) ) = 2x_1 + 2 POL( U3_2(x_1, x_2) ) = x_1 + 2 POL( f381_in_2(x_1, x_2) ) = 2x_1 + 2x_2 POL( U4_2(x_1, x_2) ) = x_1 + 2 POL( f455_in_2(x_1, x_2) ) = 2x_1 + 2x_2 POL( f381_out1_3(x_1, ..., x_3) ) = 2x_3 POL( U7_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_3 - 2} POL( U8_4(x_1, ..., x_4) ) = x_1 POL( f387_in_2(x_1, x_2) ) = 2x_1 + 2x_2 POL( f387_out1_2(x_1, x_2) ) = 2x_2 POL( U9_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_3 - 2} POL( U10_4(x_1, ..., x_4) ) = max{0, x_1 - 2} POL( U11_3(x_1, ..., x_3) ) = 2x_1 + 2x_2 + 2x_3 POL( f457_in_1(x_1) ) = 0 POL( f455_out1_1(x_1) ) = 2x_1 POL( U12_3(x_1, ..., x_3) ) = max{0, x_1 - 2} POL( U13_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( s_1(x_1) ) = 1 POL( U5_2(x_1, x_2) ) = max{0, -2} POL( f457_out1 ) = 0 POL( f458_in_2(x_1, x_2) ) = 2x_1 + 2x_2 + 2 POL( f458_out1_1(x_1) ) = 2x_1 + 2 POL( U14_3(x_1, ..., x_3) ) = x_1 + 2 POL( f483_in_2(x_1, x_2) ) = 2x_1 + 2x_2 POL( U6_3(x_1, ..., x_3) ) = 2x_2 POL( f483_out1_1(x_1) ) = 2x_1 POL( F3_IN_1(x_1) ) = max{0, 2x_1 - 1} POL( F381_IN_2(x_1, x_2) ) = 2x_1 + 2x_2 + 1 POL( F387_IN_2(x_1, x_2) ) = 2x_1 + 2x_2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: f3_in(plus(T19, plus(T20, T21))) -> U1(f3_in(plus(plus(T19, T20), T21)), plus(T19, plus(T20, T21))) f3_in(plus(T41, T42)) -> U2(f3_in(plus(T42, T41)), plus(T41, T42)) f3_in(plus(T53, 0)) -> f3_out1(T53) f3_in(plus(T66, T67)) -> U3(f381_in(T66, T67), plus(T66, T67)) f3_in(plus(T94, T95)) -> U4(f455_in(T94, T95), plus(T94, T95)) U2(f3_out1(T44), plus(T41, T42)) -> f3_out1(T44) U1(f3_out1(T23), plus(T19, plus(T20, T21))) -> f3_out1(T23) U3(f381_out1(X68, X69, T69), plus(T66, T67)) -> f3_out1(T69) f381_in(T66, T67) -> U7(f3_in(T66), T66, T67) U7(f3_out1(T73), T66, T67) -> U8(f387_in(T67, T73), T66, T67, T73) U8(f387_out1(X69, T69), T66, T67, T73) -> f381_out1(T73, X69, T69) f387_in(T67, T73) -> U9(f3_in(T67), T67, T73) U9(f3_out1(T80), T67, T73) -> U10(f3_in(plus(T73, T80)), T67, T73, T80) U10(f3_out1(T69), T67, T73, T80) -> f387_out1(T80, T69) f455_in(T94, T95) -> U11(f457_in(T94), T94, T95) U4(f455_out1(T97), plus(T94, T95)) -> f3_out1(T97) f457_in(s(T104)) -> U5(f457_in(T104), s(T104)) f457_in(0) -> f457_out1 U11(f457_out1, T94, T95) -> U12(f458_in(T95, T94), T94, T95) f458_in(T95, T94) -> U13(f457_in(T95), T95, T94) U12(f458_out1(T97), T94, T95) -> f455_out1(T97) U13(f457_out1, T95, T94) -> U14(f483_in(T94, T95), T95, T94) U5(f457_out1, s(T104)) -> f457_out1 f483_in(s(T123), T124) -> U6(f483_in(T123, T124), s(T123), T124) f483_in(0, T132) -> f483_out1(T132) U14(f483_out1(T97), T95, T94) -> f458_out1(T97) U6(f483_out1(T126), s(T123), T124) -> f483_out1(s(T126)) ---------------------------------------- (93) Obligation: Q DP problem: The TRS P consists of the following rules: F3_IN(plus(T41, T42)) -> F3_IN(plus(T42, T41)) F3_IN(plus(T19, plus(T20, T21))) -> F3_IN(plus(plus(T19, T20), T21)) F3_IN(plus(T66, T67)) -> F381_IN(T66, T67) F387_IN(T67, T73) -> U9^1(f3_in(T67), T67, T73) U9^1(f3_out1(T80), T67, T73) -> F3_IN(plus(T73, T80)) F387_IN(T67, T73) -> F3_IN(T67) The TRS R consists of the following rules: f3_in(plus(T19, plus(T20, T21))) -> U1(f3_in(plus(plus(T19, T20), T21)), plus(T19, plus(T20, T21))) U1(f3_out1(T23), plus(T19, plus(T20, T21))) -> f3_out1(T23) f3_in(plus(T41, T42)) -> U2(f3_in(plus(T42, T41)), plus(T41, T42)) U2(f3_out1(T44), plus(T41, T42)) -> f3_out1(T44) f3_in(plus(T53, 0)) -> f3_out1(T53) f3_in(plus(T66, T67)) -> U3(f381_in(T66, T67), plus(T66, T67)) U3(f381_out1(X68, X69, T69), plus(T66, T67)) -> f3_out1(T69) f3_in(plus(T94, T95)) -> U4(f455_in(T94, T95), plus(T94, T95)) U4(f455_out1(T97), plus(T94, T95)) -> f3_out1(T97) f457_in(s(T104)) -> U5(f457_in(T104), s(T104)) U5(f457_out1, s(T104)) -> f457_out1 f457_in(0) -> f457_out1 f483_in(s(T123), T124) -> U6(f483_in(T123, T124), s(T123), T124) U6(f483_out1(T126), s(T123), T124) -> f483_out1(s(T126)) f483_in(0, T132) -> f483_out1(T132) f381_in(T66, T67) -> U7(f3_in(T66), T66, T67) U7(f3_out1(T73), T66, T67) -> U8(f387_in(T67, T73), T66, T67, T73) U8(f387_out1(X69, T69), T66, T67, T73) -> f381_out1(T73, X69, T69) f387_in(T67, T73) -> U9(f3_in(T67), T67, T73) U9(f3_out1(T80), T67, T73) -> U10(f3_in(plus(T73, T80)), T67, T73, T80) U10(f3_out1(T69), T67, T73, T80) -> f387_out1(T80, T69) f455_in(T94, T95) -> U11(f457_in(T94), T94, T95) U11(f457_out1, T94, T95) -> U12(f458_in(T95, T94), T94, T95) U12(f458_out1(T97), T94, T95) -> f455_out1(T97) f458_in(T95, T94) -> U13(f457_in(T95), T95, T94) U13(f457_out1, T95, T94) -> U14(f483_in(T94, T95), T95, T94) U14(f483_out1(T97), T95, T94) -> f458_out1(T97) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (94) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. ---------------------------------------- (95) Obligation: Q DP problem: The TRS P consists of the following rules: F3_IN(plus(T19, plus(T20, T21))) -> F3_IN(plus(plus(T19, T20), T21)) F3_IN(plus(T41, T42)) -> F3_IN(plus(T42, T41)) The TRS R consists of the following rules: f3_in(plus(T19, plus(T20, T21))) -> U1(f3_in(plus(plus(T19, T20), T21)), plus(T19, plus(T20, T21))) U1(f3_out1(T23), plus(T19, plus(T20, T21))) -> f3_out1(T23) f3_in(plus(T41, T42)) -> U2(f3_in(plus(T42, T41)), plus(T41, T42)) U2(f3_out1(T44), plus(T41, T42)) -> f3_out1(T44) f3_in(plus(T53, 0)) -> f3_out1(T53) f3_in(plus(T66, T67)) -> U3(f381_in(T66, T67), plus(T66, T67)) U3(f381_out1(X68, X69, T69), plus(T66, T67)) -> f3_out1(T69) f3_in(plus(T94, T95)) -> U4(f455_in(T94, T95), plus(T94, T95)) U4(f455_out1(T97), plus(T94, T95)) -> f3_out1(T97) f457_in(s(T104)) -> U5(f457_in(T104), s(T104)) U5(f457_out1, s(T104)) -> f457_out1 f457_in(0) -> f457_out1 f483_in(s(T123), T124) -> U6(f483_in(T123, T124), s(T123), T124) U6(f483_out1(T126), s(T123), T124) -> f483_out1(s(T126)) f483_in(0, T132) -> f483_out1(T132) f381_in(T66, T67) -> U7(f3_in(T66), T66, T67) U7(f3_out1(T73), T66, T67) -> U8(f387_in(T67, T73), T66, T67, T73) U8(f387_out1(X69, T69), T66, T67, T73) -> f381_out1(T73, X69, T69) f387_in(T67, T73) -> U9(f3_in(T67), T67, T73) U9(f3_out1(T80), T67, T73) -> U10(f3_in(plus(T73, T80)), T67, T73, T80) U10(f3_out1(T69), T67, T73, T80) -> f387_out1(T80, T69) f455_in(T94, T95) -> U11(f457_in(T94), T94, T95) U11(f457_out1, T94, T95) -> U12(f458_in(T95, T94), T94, T95) U12(f458_out1(T97), T94, T95) -> f455_out1(T97) f458_in(T95, T94) -> U13(f457_in(T95), T95, T94) U13(f457_out1, T95, T94) -> U14(f483_in(T94, T95), T95, T94) U14(f483_out1(T97), T95, T94) -> f458_out1(T97) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (96) 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. ---------------------------------------- (97) Obligation: Q DP problem: The TRS P consists of the following rules: F3_IN(plus(T19, plus(T20, T21))) -> F3_IN(plus(plus(T19, T20), T21)) F3_IN(plus(T41, T42)) -> F3_IN(plus(T42, T41)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (98) 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 = F3_IN(plus(T41, T42)) evaluates to t =F3_IN(plus(T42, T41)) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [T41 / T42, T42 / T41] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from F3_IN(plus(T41, T42)) to F3_IN(plus(T42, T41)). ---------------------------------------- (99) NO ---------------------------------------- (100) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 2, "program": { "directives": [], "clauses": [ [ "(s2 (plus A (plus B C)) D)", "(s2 (plus (plus A B) C) D)" ], [ "(s2 (plus A B) C)", "(s2 (plus B A) C)" ], [ "(s2 (plus X (0)) X)", null ], [ "(s2 (plus X Y) Z)", "(',' (s2 X A) (',' (s2 Y B) (s2 (plus A B) Z)))" ], [ "(s2 (plus A B) C)", "(',' (isNat A) (',' (isNat B) (add A B C)))" ], [ "(isNat (s X))", "(isNat X)" ], [ "(isNat (0))", null ], [ "(add (s X) Y (s Z))", "(add X Y Z)" ], [ "(add (0) X X)", null ] ] }, "graph": { "nodes": { "26": { "goal": [ { "clause": 0, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 1, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 2, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 3, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 4, "scope": 1, "term": "(s2 T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "27": { "goal": [{ "clause": 0, "scope": 1, "term": "(s2 T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "28": { "goal": [ { "clause": 1, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 2, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 3, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 4, "scope": 1, "term": "(s2 T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "391": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (s2 T66 X68) (',' (s2 T67 X69) (s2 (plus X68 X69) T69)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T66", "T67" ], "free": [ "X68", "X69" ], "exprvars": [] } }, "490": { "goal": [{ "clause": -1, "scope": -1, "term": "(add T123 T124 T126)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T123", "T124" ], "free": [], "exprvars": [] } }, "type": "Nodes", "393": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "470": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "492": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "350": { "goal": [ { "clause": 2, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 3, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 4, "scope": 1, "term": "(s2 T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "471": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "175": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 (plus (plus T19 T20) T21) T23)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T19", "T20", "T21" ], "free": [], "exprvars": [] } }, "351": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 (plus T42 T41) T44)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T41", "T42" ], "free": [], "exprvars": [] } }, "472": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "176": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "352": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "353": { "goal": [{ "clause": 2, "scope": 1, "term": "(s2 T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "452": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (isNat T94) (',' (isNat T95) (add T94 T95 T97)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T94", "T95" ], "free": [], "exprvars": [] } }, "474": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "354": { "goal": [ { "clause": 3, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 4, "scope": 1, "term": "(s2 T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "355": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "454": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "356": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "358": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "479": { "goal": [{ "clause": -1, "scope": -1, "term": "(isNat T95)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T95"], "free": [], "exprvars": [] } }, "459": { "goal": [{ "clause": -1, "scope": -1, "term": "(isNat T94)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": [], "exprvars": [] } }, "480": { "goal": [{ "clause": -1, "scope": -1, "term": "(add T94 T95 T97)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T94", "T95" ], "free": [], "exprvars": [] } }, "460": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (isNat T95) (add T94 T95 T97))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T94", "T95" ], "free": [], "exprvars": [] } }, "462": { "goal": [ { "clause": 5, "scope": 2, "term": "(isNat T94)" }, { "clause": 6, "scope": 2, "term": "(isNat T94)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": [], "exprvars": [] } }, "484": { "goal": [ { "clause": 7, "scope": 3, "term": "(add T94 T95 T97)" }, { "clause": 8, "scope": 3, "term": "(add T94 T95 T97)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T94", "T95" ], "free": [], "exprvars": [] } }, "2": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "442": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 T66 X68)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T66"], "free": ["X68"], "exprvars": [] } }, "486": { "goal": [{ "clause": 7, "scope": 3, "term": "(add T94 T95 T97)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T94", "T95" ], "free": [], "exprvars": [] } }, "366": { "goal": [{ "clause": 3, "scope": 1, "term": "(s2 T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "443": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (s2 T67 X69) (s2 (plus T73 X69) T69))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T67", "T73" ], "free": ["X69"], "exprvars": [] } }, "465": { "goal": [{ "clause": 5, "scope": 2, "term": "(isNat T94)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": [], "exprvars": [] } }, "487": { "goal": [{ "clause": 8, "scope": 3, "term": "(add T94 T95 T97)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T94", "T95" ], "free": [], "exprvars": [] } }, "367": { "goal": [{ "clause": 4, "scope": 1, "term": "(s2 T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "466": { "goal": [{ "clause": 6, "scope": 2, "term": "(isNat T94)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T94"], "free": [], "exprvars": [] } }, "500": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "446": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 T67 X69)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T67"], "free": ["X69"], "exprvars": [] } }, "501": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "447": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 (plus T73 T80) T69)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T73", "T80" ], "free": [], "exprvars": [] } }, "469": { "goal": [{ "clause": -1, "scope": -1, "term": "(isNat T104)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T104"], "free": [], "exprvars": [] } }, "502": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "349": { "goal": [{ "clause": 1, "scope": 1, "term": "(s2 T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } } }, "edges": [ { "from": 2, "to": 26, "label": "CASE" }, { "from": 26, "to": 27, "label": "PARALLEL" }, { "from": 26, "to": 28, "label": "PARALLEL" }, { "from": 27, "to": 175, "label": "EVAL with clause\ns2(plus(X17, plus(X18, X19)), X20) :- s2(plus(plus(X17, X18), X19), X20).\nand substitutionX17 -> T19,\nX18 -> T20,\nX19 -> T21,\nT1 -> plus(T19, plus(T20, T21)),\nT2 -> T23,\nX20 -> T23,\nT22 -> T23" }, { "from": 27, "to": 176, "label": "EVAL-BACKTRACK" }, { "from": 28, "to": 349, "label": "PARALLEL" }, { "from": 28, "to": 350, "label": "PARALLEL" }, { "from": 175, "to": 2, "label": "INSTANCE with matching:\nT1 -> plus(plus(T19, T20), T21)\nT2 -> T23" }, { "from": 349, "to": 351, "label": "EVAL with clause\ns2(plus(X37, X38), X39) :- s2(plus(X38, X37), X39).\nand substitutionX37 -> T41,\nX38 -> T42,\nT1 -> plus(T41, T42),\nT2 -> T44,\nX39 -> T44,\nT43 -> T44" }, { "from": 349, "to": 352, "label": "EVAL-BACKTRACK" }, { "from": 350, "to": 353, "label": "PARALLEL" }, { "from": 350, "to": 354, "label": "PARALLEL" }, { "from": 351, "to": 2, "label": "INSTANCE with matching:\nT1 -> plus(T42, T41)\nT2 -> T44" }, { "from": 353, "to": 355, "label": "EVAL with clause\ns2(plus(X48, 0), X48).\nand substitutionX48 -> T53,\nT1 -> plus(T53, 0),\nT2 -> T53" }, { "from": 353, "to": 356, "label": "EVAL-BACKTRACK" }, { "from": 354, "to": 366, "label": "PARALLEL" }, { "from": 354, "to": 367, "label": "PARALLEL" }, { "from": 355, "to": 358, "label": "SUCCESS" }, { "from": 366, "to": 391, "label": "EVAL with clause\ns2(plus(X65, X66), X67) :- ','(s2(X65, X68), ','(s2(X66, X69), s2(plus(X68, X69), X67))).\nand substitutionX65 -> T66,\nX66 -> T67,\nT1 -> plus(T66, T67),\nT2 -> T69,\nX67 -> T69,\nT68 -> T69" }, { "from": 366, "to": 393, "label": "EVAL-BACKTRACK" }, { "from": 367, "to": 452, "label": "EVAL with clause\ns2(plus(X100, X101), X102) :- ','(isNat(X100), ','(isNat(X101), add(X100, X101, X102))).\nand substitutionX100 -> T94,\nX101 -> T95,\nT1 -> plus(T94, T95),\nT2 -> T97,\nX102 -> T97,\nT96 -> T97" }, { "from": 367, "to": 454, "label": "EVAL-BACKTRACK" }, { "from": 391, "to": 442, "label": "SPLIT 1" }, { "from": 391, "to": 443, "label": "SPLIT 2\nnew knowledge:\nT66 is ground\nT73 is ground\nreplacements:X68 -> T73" }, { "from": 442, "to": 2, "label": "INSTANCE with matching:\nT1 -> T66\nT2 -> X68" }, { "from": 443, "to": 446, "label": "SPLIT 1" }, { "from": 443, "to": 447, "label": "SPLIT 2\nnew knowledge:\nT67 is ground\nT80 is ground\nreplacements:X69 -> T80" }, { "from": 446, "to": 2, "label": "INSTANCE with matching:\nT1 -> T67\nT2 -> X69" }, { "from": 447, "to": 2, "label": "INSTANCE with matching:\nT1 -> plus(T73, T80)\nT2 -> T69" }, { "from": 452, "to": 459, "label": "SPLIT 1" }, { "from": 452, "to": 460, "label": "SPLIT 2\nnew knowledge:\nT94 is ground" }, { "from": 459, "to": 462, "label": "CASE" }, { "from": 460, "to": 479, "label": "SPLIT 1" }, { "from": 460, "to": 480, "label": "SPLIT 2\nnew knowledge:\nT95 is ground" }, { "from": 462, "to": 465, "label": "PARALLEL" }, { "from": 462, "to": 466, "label": "PARALLEL" }, { "from": 465, "to": 469, "label": "EVAL with clause\nisNat(s(X109)) :- isNat(X109).\nand substitutionX109 -> T104,\nT94 -> s(T104)" }, { "from": 465, "to": 470, "label": "EVAL-BACKTRACK" }, { "from": 466, "to": 471, "label": "EVAL with clause\nisNat(0).\nand substitutionT94 -> 0" }, { "from": 466, "to": 472, "label": "EVAL-BACKTRACK" }, { "from": 469, "to": 459, "label": "INSTANCE with matching:\nT94 -> T104" }, { "from": 471, "to": 474, "label": "SUCCESS" }, { "from": 479, "to": 459, "label": "INSTANCE with matching:\nT94 -> T95" }, { "from": 480, "to": 484, "label": "CASE" }, { "from": 484, "to": 486, "label": "PARALLEL" }, { "from": 484, "to": 487, "label": "PARALLEL" }, { "from": 486, "to": 490, "label": "EVAL with clause\nadd(s(X128), X129, s(X130)) :- add(X128, X129, X130).\nand substitutionX128 -> T123,\nT94 -> s(T123),\nT95 -> T124,\nX129 -> T124,\nX130 -> T126,\nT97 -> s(T126),\nT125 -> T126" }, { "from": 486, "to": 492, "label": "EVAL-BACKTRACK" }, { "from": 487, "to": 500, "label": "EVAL with clause\nadd(0, X136, X136).\nand substitutionT94 -> 0,\nT95 -> T132,\nX136 -> T132,\nT97 -> T132" }, { "from": 487, "to": 501, "label": "EVAL-BACKTRACK" }, { "from": 490, "to": 480, "label": "INSTANCE with matching:\nT94 -> T123\nT95 -> T124\nT97 -> T126" }, { "from": 500, "to": 502, "label": "SUCCESS" } ], "type": "Graph" } } ---------------------------------------- (101) Complex Obligation (AND) ---------------------------------------- (102) Obligation: Rules: f484_out(T94, T95) -> f480_out(T94, T95) :|: TRUE f480_in(x, x1) -> f484_in(x, x1) :|: TRUE f486_in(s(T123), T124) -> f490_in(T123, T124) :|: TRUE f490_out(x2, x3) -> f486_out(s(x2), x3) :|: TRUE f492_out -> f486_out(x4, x5) :|: TRUE f486_in(x6, x7) -> f492_in :|: TRUE f484_in(x8, x9) -> f487_in(x8, x9) :|: TRUE f484_in(x10, x11) -> f486_in(x10, x11) :|: TRUE f486_out(x12, x13) -> f484_out(x12, x13) :|: TRUE f487_out(x14, x15) -> f484_out(x14, x15) :|: TRUE f490_in(x16, x17) -> f480_in(x16, x17) :|: TRUE f480_out(x18, x19) -> f490_out(x18, x19) :|: TRUE f2_in(T1) -> f26_in(T1) :|: TRUE f26_out(x20) -> f2_out(x20) :|: TRUE f27_out(x21) -> f26_out(x21) :|: TRUE f26_in(x22) -> f27_in(x22) :|: TRUE f28_out(x23) -> f26_out(x23) :|: TRUE f26_in(x24) -> f28_in(x24) :|: TRUE f28_in(x25) -> f350_in(x25) :|: TRUE f349_out(x26) -> f28_out(x26) :|: TRUE f28_in(x27) -> f349_in(x27) :|: TRUE f350_out(x28) -> f28_out(x28) :|: TRUE f350_in(x29) -> f354_in(x29) :|: TRUE f354_out(x30) -> f350_out(x30) :|: TRUE f353_out(x31) -> f350_out(x31) :|: TRUE f350_in(x32) -> f353_in(x32) :|: TRUE f354_in(x33) -> f367_in(x33) :|: TRUE f366_out(x34) -> f354_out(x34) :|: TRUE f354_in(x35) -> f366_in(x35) :|: TRUE f367_out(x36) -> f354_out(x36) :|: TRUE f367_in(plus(x37, x38)) -> f452_in(x37, x38) :|: TRUE f454_out -> f367_out(x39) :|: TRUE f452_out(x40, x41) -> f367_out(plus(x40, x41)) :|: TRUE f367_in(x42) -> f454_in :|: TRUE f459_out(x43) -> f460_in(x44, x43) :|: TRUE f452_in(x45, x46) -> f459_in(x45) :|: TRUE f460_out(x47, x48) -> f452_out(x48, x47) :|: TRUE f479_out(x49) -> f480_in(x50, x49) :|: TRUE f460_in(x51, x52) -> f479_in(x51) :|: TRUE f480_out(x53, x54) -> f460_out(x54, x53) :|: TRUE Start term: f2_in(T1) ---------------------------------------- (103) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (104) TRUE ---------------------------------------- (105) Obligation: Rules: f462_out(T94) -> f459_out(T94) :|: TRUE f459_in(x) -> f462_in(x) :|: TRUE f465_in(s(T104)) -> f469_in(T104) :|: TRUE f469_out(x1) -> f465_out(s(x1)) :|: TRUE f470_out -> f465_out(x2) :|: TRUE f465_in(x3) -> f470_in :|: TRUE f469_in(x4) -> f459_in(x4) :|: TRUE f459_out(x5) -> f469_out(x5) :|: TRUE f466_out(x6) -> f462_out(x6) :|: TRUE f462_in(x7) -> f465_in(x7) :|: TRUE f462_in(x8) -> f466_in(x8) :|: TRUE f465_out(x9) -> f462_out(x9) :|: TRUE f2_in(T1) -> f26_in(T1) :|: TRUE f26_out(x10) -> f2_out(x10) :|: TRUE f27_out(x11) -> f26_out(x11) :|: TRUE f26_in(x12) -> f27_in(x12) :|: TRUE f28_out(x13) -> f26_out(x13) :|: TRUE f26_in(x14) -> f28_in(x14) :|: TRUE f28_in(x15) -> f350_in(x15) :|: TRUE f349_out(x16) -> f28_out(x16) :|: TRUE f28_in(x17) -> f349_in(x17) :|: TRUE f350_out(x18) -> f28_out(x18) :|: TRUE f350_in(x19) -> f354_in(x19) :|: TRUE f354_out(x20) -> f350_out(x20) :|: TRUE f353_out(x21) -> f350_out(x21) :|: TRUE f350_in(x22) -> f353_in(x22) :|: TRUE f354_in(x23) -> f367_in(x23) :|: TRUE f366_out(x24) -> f354_out(x24) :|: TRUE f354_in(x25) -> f366_in(x25) :|: TRUE f367_out(x26) -> f354_out(x26) :|: TRUE f367_in(plus(x27, x28)) -> f452_in(x27, x28) :|: TRUE f454_out -> f367_out(x29) :|: TRUE f452_out(x30, x31) -> f367_out(plus(x30, x31)) :|: TRUE f367_in(x32) -> f454_in :|: TRUE f459_out(x33) -> f460_in(x34, x33) :|: TRUE f452_in(x35, x36) -> f459_in(x35) :|: TRUE f460_out(x37, x38) -> f452_out(x38, x37) :|: TRUE f479_out(x39) -> f480_in(x40, x39) :|: TRUE f460_in(x41, x42) -> f479_in(x41) :|: TRUE f480_out(x43, x44) -> f460_out(x44, x43) :|: TRUE f459_out(T95) -> f479_out(T95) :|: TRUE f479_in(x45) -> f459_in(x45) :|: TRUE Start term: f2_in(T1) ---------------------------------------- (106) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f459_in(x) -> f462_in(x) :|: TRUE f465_in(s(T104)) -> f469_in(T104) :|: TRUE f469_in(x4) -> f459_in(x4) :|: TRUE f462_in(x7) -> f465_in(x7) :|: TRUE ---------------------------------------- (107) Obligation: Rules: f459_in(x) -> f462_in(x) :|: TRUE f465_in(s(T104)) -> f469_in(T104) :|: TRUE f469_in(x4) -> f459_in(x4) :|: TRUE f462_in(x7) -> f465_in(x7) :|: TRUE ---------------------------------------- (108) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (109) Obligation: Rules: f465_in(s(T104:0)) -> f465_in(T104:0) :|: TRUE ---------------------------------------- (110) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (111) Obligation: Rules: f465_in(s(T104:0)) -> f465_in(T104:0) :|: TRUE ---------------------------------------- (112) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f465_in(s(T104:0)) -> f465_in(T104:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (113) Obligation: Termination digraph: Nodes: (1) f465_in(s(T104:0)) -> f465_in(T104:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (114) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f465_in(VARIABLE) s(VARIABLE) Removed predefined arithmetic. ---------------------------------------- (115) Obligation: Rules: f465_in(s(T104:0)) -> f465_in(T104:0) ---------------------------------------- (116) IRSwTToQDPProof (SOUND) Removed the integers and created a QDP-Problem. ---------------------------------------- (117) Obligation: Q DP problem: The TRS P consists of the following rules: f465_in(s(T104:0)) -> f465_in(T104:0) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (118) 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: *f465_in(s(T104:0)) -> f465_in(T104:0) The graph contains the following edges 1 > 1 ---------------------------------------- (119) YES ---------------------------------------- (120) Obligation: Rules: f350_in(T1) -> f354_in(T1) :|: TRUE f354_out(x) -> f350_out(x) :|: TRUE f353_out(x1) -> f350_out(x1) :|: TRUE f350_in(x2) -> f353_in(x2) :|: TRUE f2_out(T66) -> f442_out(T66) :|: TRUE f442_in(x3) -> f2_in(x3) :|: TRUE f349_in(x4) -> f352_in :|: TRUE f349_in(plus(T41, T42)) -> f351_in(T42, T41) :|: TRUE f351_out(x5, x6) -> f349_out(plus(x6, x5)) :|: TRUE f352_out -> f349_out(x7) :|: TRUE f27_in(x8) -> f176_in :|: TRUE f27_in(plus(T19, plus(T20, T21))) -> f175_in(T19, T20, T21) :|: TRUE f175_out(x9, x10, x11) -> f27_out(plus(x9, plus(x10, x11))) :|: TRUE f176_out -> f27_out(x12) :|: TRUE f2_out(plus(plus(x13, x14), x15)) -> f175_out(x13, x14, x15) :|: TRUE f175_in(x16, x17, x18) -> f2_in(plus(plus(x16, x17), x18)) :|: TRUE f2_in(x19) -> f26_in(x19) :|: TRUE f26_out(x20) -> f2_out(x20) :|: TRUE f446_out(T67) -> f447_in(T73, T80) :|: TRUE f447_out(x21, x22) -> f443_out(x23, x21) :|: TRUE f443_in(x24, x25) -> f446_in(x24) :|: TRUE f447_in(x26, x27) -> f2_in(plus(x26, x27)) :|: TRUE f2_out(plus(x28, x29)) -> f447_out(x28, x29) :|: TRUE f27_out(x30) -> f26_out(x30) :|: TRUE f26_in(x31) -> f27_in(x31) :|: TRUE f28_out(x32) -> f26_out(x32) :|: TRUE f26_in(x33) -> f28_in(x33) :|: TRUE f28_in(x34) -> f350_in(x34) :|: TRUE f349_out(x35) -> f28_out(x35) :|: TRUE f28_in(x36) -> f349_in(x36) :|: TRUE f350_out(x37) -> f28_out(x37) :|: TRUE f391_out(x38, x39) -> f366_out(plus(x38, x39)) :|: TRUE f393_out -> f366_out(x40) :|: TRUE f366_in(x41) -> f393_in :|: TRUE f366_in(plus(x42, x43)) -> f391_in(x42, x43) :|: TRUE f354_in(x44) -> f367_in(x44) :|: TRUE f366_out(x45) -> f354_out(x45) :|: TRUE f354_in(x46) -> f366_in(x46) :|: TRUE f367_out(x47) -> f354_out(x47) :|: TRUE f443_out(x48, x49) -> f391_out(x50, x48) :|: TRUE f442_out(x51) -> f443_in(x52, x53) :|: TRUE f391_in(x54, x55) -> f442_in(x54) :|: TRUE f2_out(plus(x56, x57)) -> f351_out(x56, x57) :|: TRUE f351_in(x58, x59) -> f2_in(plus(x58, x59)) :|: TRUE f2_out(x60) -> f446_out(x60) :|: TRUE f446_in(x61) -> f2_in(x61) :|: TRUE Start term: f2_in(T1) ---------------------------------------- (121) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f350_in(T1) -> f354_in(T1) :|: TRUE f442_in(x3) -> f2_in(x3) :|: TRUE f349_in(plus(T41, T42)) -> f351_in(T42, T41) :|: TRUE f27_in(plus(T19, plus(T20, T21))) -> f175_in(T19, T20, T21) :|: TRUE f175_in(x16, x17, x18) -> f2_in(plus(plus(x16, x17), x18)) :|: TRUE f2_in(x19) -> f26_in(x19) :|: TRUE f26_in(x31) -> f27_in(x31) :|: TRUE f26_in(x33) -> f28_in(x33) :|: TRUE f28_in(x34) -> f350_in(x34) :|: TRUE f28_in(x36) -> f349_in(x36) :|: TRUE f366_in(plus(x42, x43)) -> f391_in(x42, x43) :|: TRUE f354_in(x46) -> f366_in(x46) :|: TRUE f391_in(x54, x55) -> f442_in(x54) :|: TRUE f351_in(x58, x59) -> f2_in(plus(x58, x59)) :|: TRUE ---------------------------------------- (122) Obligation: Rules: f350_in(T1) -> f354_in(T1) :|: TRUE f442_in(x3) -> f2_in(x3) :|: TRUE f349_in(plus(T41, T42)) -> f351_in(T42, T41) :|: TRUE f27_in(plus(T19, plus(T20, T21))) -> f175_in(T19, T20, T21) :|: TRUE f175_in(x16, x17, x18) -> f2_in(plus(plus(x16, x17), x18)) :|: TRUE f2_in(x19) -> f26_in(x19) :|: TRUE f26_in(x31) -> f27_in(x31) :|: TRUE f26_in(x33) -> f28_in(x33) :|: TRUE f28_in(x34) -> f350_in(x34) :|: TRUE f28_in(x36) -> f349_in(x36) :|: TRUE f366_in(plus(x42, x43)) -> f391_in(x42, x43) :|: TRUE f354_in(x46) -> f366_in(x46) :|: TRUE f391_in(x54, x55) -> f442_in(x54) :|: TRUE f351_in(x58, x59) -> f2_in(plus(x58, x59)) :|: TRUE ---------------------------------------- (123) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (124) Obligation: Rules: f26_in(plus(T19:0, plus(T20:0, T21:0))) -> f26_in(plus(plus(T19:0, T20:0), T21:0)) :|: TRUE f26_in(plus(T41:0, T42:0)) -> f26_in(plus(T42:0, T41:0)) :|: TRUE f26_in(plus(x42:0, x43:0)) -> f26_in(x42:0) :|: TRUE ---------------------------------------- (125) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (126) Obligation: Rules: f26_in(plus(T19:0, plus(T20:0, T21:0))) -> f26_in(plus(plus(T19:0, T20:0), T21:0)) :|: TRUE f26_in(plus(T41:0, T42:0)) -> f26_in(plus(T42:0, T41:0)) :|: TRUE f26_in(plus(x42:0, x43:0)) -> f26_in(x42:0) :|: TRUE ---------------------------------------- (127) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f26_in(plus(T19:0, plus(T20:0, T21:0))) -> f26_in(plus(plus(T19:0, T20:0), T21:0)) :|: TRUE (2) f26_in(plus(T41:0, T42:0)) -> f26_in(plus(T42:0, T41:0)) :|: TRUE (3) f26_in(plus(x42:0, x43:0)) -> f26_in(x42:0) :|: TRUE Arcs: (1) -> (1), (2), (3) (2) -> (1), (2), (3) (3) -> (1), (2), (3) This digraph is fully evaluated! ---------------------------------------- (128) Obligation: Termination digraph: Nodes: (1) f26_in(plus(T19:0, plus(T20:0, T21:0))) -> f26_in(plus(plus(T19:0, T20:0), T21:0)) :|: TRUE (2) f26_in(plus(T41:0, T42:0)) -> f26_in(plus(T42:0, T41:0)) :|: TRUE (3) f26_in(plus(x42:0, x43:0)) -> f26_in(x42:0) :|: TRUE Arcs: (1) -> (1), (2), (3) (2) -> (1), (2), (3) (3) -> (1), (2), (3) This digraph is fully evaluated! ---------------------------------------- (129) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "root": 1, "program": { "directives": [], "clauses": [ [ "(s2 (plus A (plus B C)) D)", "(s2 (plus (plus A B) C) D)" ], [ "(s2 (plus A B) C)", "(s2 (plus B A) C)" ], [ "(s2 (plus X (0)) X)", null ], [ "(s2 (plus X Y) Z)", "(',' (s2 X A) (',' (s2 Y B) (s2 (plus A B) Z)))" ], [ "(s2 (plus A B) C)", "(',' (isNat A) (',' (isNat B) (add A B C)))" ], [ "(isNat (s X))", "(isNat X)" ], [ "(isNat (0))", null ], [ "(add (s X) Y (s Z))", "(add X Y Z)" ], [ "(add (0) X X)", null ] ] }, "graph": { "nodes": { "type": "Nodes", "590": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (isNat T457) (add T456 T457 T459))" }], "kb": { "nonunifying": [[ "(s2 (plus T457 T456) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T456", "T457" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "591": { "goal": [{ "clause": -1, "scope": -1, "term": "(isNat T457)" }], "kb": { "nonunifying": [[ "(s2 (plus T457 T456) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T456", "T457" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "592": { "goal": [{ "clause": -1, "scope": -1, "term": "(add T456 T457 T459)" }], "kb": { "nonunifying": [[ "(s2 (plus T457 T456) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T456", "T457" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "593": { "goal": [ { "clause": 7, "scope": 8, "term": "(add T456 T457 T459)" }, { "clause": 8, "scope": 8, "term": "(add T456 T457 T459)" } ], "kb": { "nonunifying": [[ "(s2 (plus T457 T456) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T456", "T457" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "473": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "594": { "goal": [{ "clause": 7, "scope": 8, "term": "(add T456 T457 T459)" }], "kb": { "nonunifying": [[ "(s2 (plus T457 T456) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T456", "T457" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "595": { "goal": [{ "clause": 8, "scope": 8, "term": "(add T456 T457 T459)" }], "kb": { "nonunifying": [[ "(s2 (plus T457 T456) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T456", "T457" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "596": { "goal": [{ "clause": -1, "scope": -1, "term": "(add T479 T480 T482)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T479", "T480" ], "free": [], "exprvars": [] } }, "597": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "510": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "598": { "goal": [ { "clause": 7, "scope": 9, "term": "(add T479 T480 T482)" }, { "clause": 8, "scope": 9, "term": "(add T479 T480 T482)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T479", "T480" ], "free": [], "exprvars": [] } }, "478": { "goal": [{ "clause": -1, "scope": -1, "term": "(isNat T156)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T156"], "free": [], "exprvars": [] } }, "511": { "goal": [ { "clause": 1, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 2, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 3, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "599": { "goal": [{ "clause": 7, "scope": 9, "term": "(add T479 T480 T482)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T479", "T480" ], "free": [], "exprvars": [] } }, "512": { "goal": [{ "clause": 1, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "513": { "goal": [ { "clause": 2, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 3, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "514": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 (plus (plus T196 T197) T195) T199)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T195", "T196", "T197" ], "free": [], "exprvars": [] } }, "515": { "goal": [ { "clause": 3, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "516": { "goal": [{ "clause": 3, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "517": { "goal": [{ "clause": 4, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "518": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (s2 T230 X212) (',' (s2 (plus T231 T232) X213) (s2 (plus X212 X213) T234)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T230", "T231", "T232" ], "free": [ "X212", "X213" ], "exprvars": [] } }, "519": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 T230 X212)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T230"], "free": ["X212"], "exprvars": [] } }, "481": { "goal": [{ "clause": -1, "scope": -1, "term": "(add (plus T154 T155) T156 T158)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T154", "T155", "T156" ], "free": [], "exprvars": [] } }, "1": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "520": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (s2 (plus T231 T232) X213) (s2 (plus T238 X213) T234))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T231", "T232", "T238" ], "free": ["X213"], "exprvars": [] } }, "521": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (isNat T255) (',' (isNat (plus T256 T257)) (add T255 (plus T256 T257) T259)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T255", "T256", "T257" ], "free": [], "exprvars": [] } }, "522": { "goal": [{ "clause": -1, "scope": -1, "term": "(isNat T255)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T255"], "free": [], "exprvars": [] } }, "523": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (isNat (plus T256 T257)) (add T255 (plus T256 T257) T259))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T255", "T256", "T257" ], "free": [], "exprvars": [] } }, "524": { "goal": [{ "clause": -1, "scope": -1, "term": "(isNat (plus T256 T257))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T256", "T257" ], "free": [], "exprvars": [] } }, "525": { "goal": [{ "clause": -1, "scope": -1, "term": "(add T255 (plus T256 T257) T259)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T255", "T256", "T257" ], "free": [], "exprvars": [] } }, "526": { "goal": [ { "clause": 7, "scope": 6, "term": "(add T255 (plus T256 T257) T259)" }, { "clause": 8, "scope": 6, "term": "(add T255 (plus T256 T257) T259)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T255", "T256", "T257" ], "free": [], "exprvars": [] } }, "527": { "goal": [{ "clause": 7, "scope": 6, "term": "(add T255 (plus T256 T257) T259)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T255", "T256", "T257" ], "free": [], "exprvars": [] } }, "528": { "goal": [{ "clause": 8, "scope": 6, "term": "(add T255 (plus T256 T257) T259)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T255", "T256", "T257" ], "free": [], "exprvars": [] } }, "529": { "goal": [{ "clause": -1, "scope": -1, "term": "(add T282 (plus T283 T284) T286)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T282", "T283", "T284" ], "free": [], "exprvars": [] } }, "494": { "goal": [ { "clause": 5, "scope": 4, "term": "(isNat T156)" }, { "clause": 6, "scope": 4, "term": "(isNat T156)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T156"], "free": [], "exprvars": [] } }, "530": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "651": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 T536 X548)" }], "kb": { "nonunifying": [[ "(s2 (plus T536 T537) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T536", "T537" ], "free": [ "X5", "X6", "X7", "X8", "X548" ], "exprvars": [] } }, "377": { "goal": [{ "clause": 1, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "498": { "goal": [{ "clause": 5, "scope": 4, "term": "(isNat T156)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T156"], "free": [], "exprvars": [] } }, "531": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "652": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (s2 T537 X549) (s2 (plus T543 X549) T539))" }], "kb": { "nonunifying": [[ "(s2 (plus T536 T537) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T536", "T537", "T543" ], "free": [ "X5", "X6", "X7", "X8", "X549" ], "exprvars": [] } }, "378": { "goal": [ { "clause": 2, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }, { "clause": 3, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }, { "clause": 4, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }, { "clause": -1, "scope": 2, "term": null }, { "clause": 1, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 2, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 3, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "499": { "goal": [{ "clause": 6, "scope": 4, "term": "(isNat T156)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T156"], "free": [], "exprvars": [] } }, "532": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "653": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (isNat T566) (',' (isNat T567) (add T566 T567 T569)))" }], "kb": { "nonunifying": [[ "(s2 (plus T566 T567) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T566", "T567" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "533": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "654": { "goal": [{ "clause": -1, "scope": -1, "term": "(isNat T566)" }], "kb": { "nonunifying": [[ "(s2 (plus T566 T567) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T566", "T567" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "534": { "goal": [ { "clause": -1, "scope": -1, "term": "(s2 (plus T301 T300) T303)" }, { "clause": 2, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }, { "clause": 3, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T300 T301) T2)" } ], "kb": { "nonunifying": [[ "(s2 (plus T300 T301) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T300", "T301" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "655": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (isNat T567) (add T566 T567 T569))" }], "kb": { "nonunifying": [[ "(s2 (plus T566 T567) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T566", "T567" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "535": { "goal": [ { "clause": 2, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 3, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 4, "scope": 1, "term": "(s2 T1 T2)" } ], "kb": { "nonunifying": [ [ "(s2 T1 T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ], [ "(s2 T1 T2)", "(s2 (plus X270 X271) X272)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [ "X5", "X6", "X7", "X8", "X270", "X271", "X272" ], "exprvars": [] } }, "656": { "goal": [{ "clause": -1, "scope": -1, "term": "(isNat T567)" }], "kb": { "nonunifying": [[ "(s2 (plus T566 T567) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T566", "T567" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "415": { "goal": [{ "clause": 3, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "536": { "goal": [ { "clause": 0, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }, { "clause": 1, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }, { "clause": 2, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }, { "clause": 3, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }, { "clause": 4, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }, { "clause": -1, "scope": 7, "term": null }, { "clause": 2, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }, { "clause": 3, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T300 T301) T2)" } ], "kb": { "nonunifying": [[ "(s2 (plus T300 T301) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T300", "T301" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "657": { "goal": [{ "clause": -1, "scope": -1, "term": "(add T566 T567 T569)" }], "kb": { "nonunifying": [[ "(s2 (plus T566 T567) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T566", "T567" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "416": { "goal": [ { "clause": 4, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }, { "clause": -1, "scope": 2, "term": null }, { "clause": 1, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 2, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 3, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "537": { "goal": [{ "clause": 0, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }], "kb": { "nonunifying": [[ "(s2 (plus T300 T301) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T300", "T301" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "658": { "goal": [ { "clause": 3, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 4, "scope": 1, "term": "(s2 T1 T2)" } ], "kb": { "nonunifying": [ [ "(s2 T1 T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ], [ "(s2 T1 T2)", "(s2 (plus X270 X271) X272)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [ "X5", "X6", "X7", "X8", "X270", "X271", "X272" ], "exprvars": [] } }, "538": { "goal": [ { "clause": 1, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }, { "clause": 2, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }, { "clause": 3, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }, { "clause": 4, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }, { "clause": -1, "scope": 7, "term": null }, { "clause": 2, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }, { "clause": 3, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T300 T301) T2)" } ], "kb": { "nonunifying": [[ "(s2 (plus T300 T301) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T300", "T301" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "659": { "goal": [{ "clause": 4, "scope": 1, "term": "(s2 T1 T2)" }], "kb": { "nonunifying": [ [ "(s2 T1 T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ], [ "(s2 T1 T2)", "(s2 (plus X270 X271) X272)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [ "X5", "X6", "X7", "X8", "X270", "X271", "X272" ], "exprvars": [] } }, "539": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 (plus (plus T320 T321) T322) T324)" }], "kb": { "nonunifying": [[ "(s2 (plus (plus T321 T322) T320) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T320", "T321", "T322" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "382": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 (plus T72 (plus T70 T71)) T74)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T70", "T71", "T72" ], "free": [], "exprvars": [] } }, "384": { "goal": [{ "clause": 2, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "385": { "goal": [ { "clause": 3, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }, { "clause": 4, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }, { "clause": -1, "scope": 2, "term": null }, { "clause": 1, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 2, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 3, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "660": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "540": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "541": { "goal": [{ "clause": 1, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }], "kb": { "nonunifying": [[ "(s2 (plus T300 T301) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T300", "T301" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "388": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "542": { "goal": [ { "clause": 2, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }, { "clause": 3, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }, { "clause": 4, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }, { "clause": -1, "scope": 7, "term": null }, { "clause": 2, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }, { "clause": 3, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T300 T301) T2)" } ], "kb": { "nonunifying": [[ "(s2 (plus T300 T301) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T300", "T301" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "389": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "543": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 (plus T359 T358) T361)" }], "kb": { "nonunifying": [[ "(s2 (plus T359 T358) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T358", "T359" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "544": { "goal": [{ "clause": 2, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }], "kb": { "nonunifying": [[ "(s2 (plus T300 T301) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T300", "T301" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "545": { "goal": [ { "clause": 3, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }, { "clause": 4, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }, { "clause": -1, "scope": 7, "term": null }, { "clause": 2, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }, { "clause": 3, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T300 T301) T2)" } ], "kb": { "nonunifying": [[ "(s2 (plus T300 T301) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T300", "T301" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "546": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "547": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "548": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "549": { "goal": [{ "clause": 3, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }], "kb": { "nonunifying": [[ "(s2 (plus T300 T301) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T300", "T301" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "390": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "550": { "goal": [ { "clause": 4, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }, { "clause": -1, "scope": 7, "term": null }, { "clause": 2, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }, { "clause": 3, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T300 T301) T2)" } ], "kb": { "nonunifying": [[ "(s2 (plus T300 T301) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T300", "T301" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "551": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (s2 T410 X399) (',' (s2 T411 X400) (s2 (plus X399 X400) T413)))" }], "kb": { "nonunifying": [[ "(s2 (plus T411 T410) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T410", "T411" ], "free": [ "X5", "X6", "X7", "X8", "X399", "X400" ], "exprvars": [] } }, "552": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 T410 X399)" }], "kb": { "nonunifying": [[ "(s2 (plus T411 T410) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T410", "T411" ], "free": [ "X5", "X6", "X7", "X8", "X399" ], "exprvars": [] } }, "553": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (s2 T411 X400) (s2 (plus T425 X400) T413))" }], "kb": { "nonunifying": [[ "(s2 (plus T411 T410) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T410", "T411", "T425" ], "free": [ "X5", "X6", "X7", "X8", "X400" ], "exprvars": [] } }, "554": { "goal": [{ "clause": 4, "scope": 7, "term": "(s2 (plus T301 T300) T303)" }], "kb": { "nonunifying": [[ "(s2 (plus T300 T301) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T300", "T301" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "555": { "goal": [ { "clause": -1, "scope": 7, "term": null }, { "clause": 2, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }, { "clause": 3, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T300 T301) T2)" } ], "kb": { "nonunifying": [[ "(s2 (plus T300 T301) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T300", "T301" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "556": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (isNat T456) (',' (isNat T457) (add T456 T457 T459)))" }], "kb": { "nonunifying": [[ "(s2 (plus T457 T456) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T456", "T457" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "437": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (s2 (plus T113 T114) X94) (',' (s2 T115 X95) (s2 (plus X94 X95) T117)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T113", "T114", "T115" ], "free": [ "X94", "X95" ], "exprvars": [] } }, "438": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 (plus T113 T114) X94)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T113", "T114" ], "free": ["X94"], "exprvars": [] } }, "318": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 (plus (plus (plus T32 T33) T34) T35) T37)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T32", "T33", "T34", "T35" ], "free": [], "exprvars": [] } }, "439": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (s2 T115 X95) (s2 (plus T121 X95) T117))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T115", "T121" ], "free": ["X95"], "exprvars": [] } }, "50": { "goal": [ { "clause": 0, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 1, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 2, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 3, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 4, "scope": 1, "term": "(s2 T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "319": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "51": { "goal": [ { "clause": -1, "scope": -1, "term": "(s2 (plus (plus T7 T8) T9) T11)" }, { "clause": 1, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 2, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 3, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "52": { "goal": [ { "clause": 1, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 2, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 3, "scope": 1, "term": "(s2 T1 T2)" }, { "clause": 4, "scope": 1, "term": "(s2 T1 T2)" } ], "kb": { "nonunifying": [[ "(s2 T1 T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "53": { "goal": [ { "clause": 0, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }, { "clause": 1, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }, { "clause": 2, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }, { "clause": 3, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }, { "clause": 4, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }, { "clause": -1, "scope": 2, "term": null }, { "clause": 1, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 2, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 3, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "56": { "goal": [{ "clause": 0, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "57": { "goal": [ { "clause": 1, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }, { "clause": 2, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }, { "clause": 3, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }, { "clause": 4, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }, { "clause": -1, "scope": 2, "term": null }, { "clause": 1, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 2, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 3, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "440": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 T115 X95)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T115"], "free": ["X95"], "exprvars": [] } }, "441": { "goal": [{ "clause": -1, "scope": -1, "term": "(s2 (plus T121 T128) T117)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T121", "T128" ], "free": [], "exprvars": [] } }, "444": { "goal": [{ "clause": 4, "scope": 2, "term": "(s2 (plus (plus T7 T8) T9) T11)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "445": { "goal": [ { "clause": -1, "scope": 2, "term": null }, { "clause": 1, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 2, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 3, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T7 (plus T8 T9)) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "600": { "goal": [{ "clause": 8, "scope": 9, "term": "(add T479 T480 T482)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T479", "T480" ], "free": [], "exprvars": [] } }, "601": { "goal": [{ "clause": -1, "scope": -1, "term": "(add T498 T499 T501)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T498", "T499" ], "free": [], "exprvars": [] } }, "448": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (isNat (plus T154 T155)) (',' (isNat T156) (add (plus T154 T155) T156 T158)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T154", "T155", "T156" ], "free": [], "exprvars": [] } }, "602": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "449": { "goal": [{ "clause": -1, "scope": -1, "term": "(isNat (plus T154 T155))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T154", "T155" ], "free": [], "exprvars": [] } }, "603": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "604": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "605": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "606": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "607": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "608": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "609": { "goal": [ { "clause": 2, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }, { "clause": 3, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T300 T301) T2)" } ], "kb": { "nonunifying": [[ "(s2 (plus T300 T301) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T300", "T301" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "450": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (isNat T156) (add (plus T154 T155) T156 T158))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T154", "T155", "T156" ], "free": [], "exprvars": [] } }, "451": { "goal": [ { "clause": 5, "scope": 3, "term": "(isNat (plus T154 T155))" }, { "clause": 6, "scope": 3, "term": "(isNat (plus T154 T155))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T154", "T155" ], "free": [], "exprvars": [] } }, "453": { "goal": [{ "clause": 6, "scope": 3, "term": "(isNat (plus T154 T155))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T154", "T155" ], "free": [], "exprvars": [] } }, "610": { "goal": [{ "clause": 2, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }], "kb": { "nonunifying": [[ "(s2 (plus T300 T301) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T300", "T301" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "611": { "goal": [ { "clause": 3, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }, { "clause": 4, "scope": 1, "term": "(s2 (plus T300 T301) T2)" } ], "kb": { "nonunifying": [[ "(s2 (plus T300 T301) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T300", "T301" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "612": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "613": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "614": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "615": { "goal": [{ "clause": 3, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }], "kb": { "nonunifying": [[ "(s2 (plus T300 T301) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T300", "T301" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "616": { "goal": [{ "clause": 4, "scope": 1, "term": "(s2 (plus T300 T301) T2)" }], "kb": { "nonunifying": [[ "(s2 (plus T300 T301) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T300", "T301" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "617": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (s2 T536 X548) (',' (s2 T537 X549) (s2 (plus X548 X549) T539)))" }], "kb": { "nonunifying": [[ "(s2 (plus T536 T537) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T536", "T537" ], "free": [ "X5", "X6", "X7", "X8", "X548", "X549" ], "exprvars": [] } }, "589": { "goal": [{ "clause": -1, "scope": -1, "term": "(isNat T456)" }], "kb": { "nonunifying": [[ "(s2 (plus T457 T456) T2)", "(s2 (plus X5 (plus X6 X7)) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T456", "T457" ], "free": [ "X5", "X6", "X7", "X8" ], "exprvars": [] } }, "503": { "goal": [{ "clause": -1, "scope": -1, "term": "(isNat T165)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T165"], "free": [], "exprvars": [] } }, "504": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "505": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "506": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "507": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "508": { "goal": [ { "clause": 7, "scope": 5, "term": "(add (plus T154 T155) T156 T158)" }, { "clause": 8, "scope": 5, "term": "(add (plus T154 T155) T156 T158)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T154", "T155", "T156" ], "free": [], "exprvars": [] } }, "509": { "goal": [{ "clause": 8, "scope": 5, "term": "(add (plus T154 T155) T156 T158)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T154", "T155", "T156" ], "free": [], "exprvars": [] } } }, "edges": [ { "from": 1, "to": 50, "label": "CASE" }, { "from": 50, "to": 51, "label": "EVAL with clause\ns2(plus(X5, plus(X6, X7)), X8) :- s2(plus(plus(X5, X6), X7), X8).\nand substitutionX5 -> T7,\nX6 -> T8,\nX7 -> T9,\nT1 -> plus(T7, plus(T8, T9)),\nT2 -> T11,\nX8 -> T11,\nT10 -> T11" }, { "from": 50, "to": 52, "label": "EVAL-BACKTRACK" }, { "from": 51, "to": 53, "label": "CASE" }, { "from": 52, "to": 534, "label": "EVAL with clause\ns2(plus(X270, X271), X272) :- s2(plus(X271, X270), X272).\nand substitutionX270 -> T300,\nX271 -> T301,\nT1 -> plus(T300, T301),\nT2 -> T303,\nX272 -> T303,\nT302 -> T303" }, { "from": 52, "to": 535, "label": "EVAL-BACKTRACK" }, { "from": 53, "to": 56, "label": "PARALLEL" }, { "from": 53, "to": 57, "label": "PARALLEL" }, { "from": 56, "to": 318, "label": "EVAL with clause\ns2(plus(X25, plus(X26, X27)), X28) :- s2(plus(plus(X25, X26), X27), X28).\nand substitutionT7 -> T32,\nT8 -> T33,\nX25 -> plus(T32, T33),\nX26 -> T34,\nX27 -> T35,\nT9 -> plus(T34, T35),\nT11 -> T37,\nX28 -> T37,\nT36 -> T37" }, { "from": 56, "to": 319, "label": "EVAL-BACKTRACK" }, { "from": 57, "to": 377, "label": "PARALLEL" }, { "from": 57, "to": 378, "label": "PARALLEL" }, { "from": 318, "to": 1, "label": "INSTANCE with matching:\nT1 -> plus(plus(plus(T32, T33), T34), T35)\nT2 -> T37" }, { "from": 377, "to": 382, "label": "ONLY EVAL with clause\ns2(plus(X53, X54), X55) :- s2(plus(X54, X53), X55).\nand substitutionT7 -> T70,\nT8 -> T71,\nX53 -> plus(T70, T71),\nT9 -> T72,\nX54 -> T72,\nT11 -> T74,\nX55 -> T74,\nT73 -> T74" }, { "from": 378, "to": 384, "label": "PARALLEL" }, { "from": 378, "to": 385, "label": "PARALLEL" }, { "from": 382, "to": 1, "label": "INSTANCE with matching:\nT1 -> plus(T72, plus(T70, T71))\nT2 -> T74" }, { "from": 384, "to": 388, "label": "EVAL with clause\ns2(plus(X64, 0), X64).\nand substitutionT7 -> T87,\nT8 -> T88,\nX64 -> plus(T87, T88),\nT9 -> 0,\nT11 -> plus(T87, T88)" }, { "from": 384, "to": 389, "label": "EVAL-BACKTRACK" }, { "from": 385, "to": 415, "label": "PARALLEL" }, { "from": 385, "to": 416, "label": "PARALLEL" }, { "from": 388, "to": 390, "label": "SUCCESS" }, { "from": 415, "to": 437, "label": "ONLY EVAL with clause\ns2(plus(X91, X92), X93) :- ','(s2(X91, X94), ','(s2(X92, X95), s2(plus(X94, X95), X93))).\nand substitutionT7 -> T113,\nT8 -> T114,\nX91 -> plus(T113, T114),\nT9 -> T115,\nX92 -> T115,\nT11 -> T117,\nX93 -> T117,\nT116 -> T117" }, { "from": 416, "to": 444, "label": "PARALLEL" }, { "from": 416, "to": 445, "label": "PARALLEL" }, { "from": 437, "to": 438, "label": "SPLIT 1" }, { "from": 437, "to": 439, "label": "SPLIT 2\nnew knowledge:\nT113 is ground\nT114 is ground\nT121 is ground\nreplacements:X94 -> T121" }, { "from": 438, "to": 1, "label": "INSTANCE with matching:\nT1 -> plus(T113, T114)\nT2 -> X94" }, { "from": 439, "to": 440, "label": "SPLIT 1" }, { "from": 439, "to": 441, "label": "SPLIT 2\nnew knowledge:\nT115 is ground\nT128 is ground\nreplacements:X95 -> T128" }, { "from": 440, "to": 1, "label": "INSTANCE with matching:\nT1 -> T115\nT2 -> X95" }, { "from": 441, "to": 1, "label": "INSTANCE with matching:\nT1 -> plus(T121, T128)\nT2 -> T117" }, { "from": 444, "to": 448, "label": "ONLY EVAL with clause\ns2(plus(X134, X135), X136) :- ','(isNat(X134), ','(isNat(X135), add(X134, X135, X136))).\nand substitutionT7 -> T154,\nT8 -> T155,\nX134 -> plus(T154, T155),\nT9 -> T156,\nX135 -> T156,\nT11 -> T158,\nX136 -> T158,\nT157 -> T158" }, { "from": 445, "to": 511, "label": "FAILURE" }, { "from": 448, "to": 449, "label": "SPLIT 1" }, { "from": 448, "to": 450, "label": "SPLIT 2\nnew knowledge:\nT154 is ground\nT155 is ground" }, { "from": 449, "to": 451, "label": "CASE" }, { "from": 450, "to": 478, "label": "SPLIT 1" }, { "from": 450, "to": 481, "label": "SPLIT 2\nnew knowledge:\nT156 is ground" }, { "from": 451, "to": 453, "label": "BACKTRACK\nfor clause: isNat(s(X)) :- isNat(X)because of non-unification" }, { "from": 453, "to": 473, "label": "BACKTRACK\nfor clause: isNat(0)because of non-unification" }, { "from": 478, "to": 494, "label": "CASE" }, { "from": 481, "to": 508, "label": "CASE" }, { "from": 494, "to": 498, "label": "PARALLEL" }, { "from": 494, "to": 499, "label": "PARALLEL" }, { "from": 498, "to": 503, "label": "EVAL with clause\nisNat(s(X146)) :- isNat(X146).\nand substitutionX146 -> T165,\nT156 -> s(T165)" }, { "from": 498, "to": 504, "label": "EVAL-BACKTRACK" }, { "from": 499, "to": 505, "label": "EVAL with clause\nisNat(0).\nand substitutionT156 -> 0" }, { "from": 499, "to": 506, "label": "EVAL-BACKTRACK" }, { "from": 503, "to": 478, "label": "INSTANCE with matching:\nT156 -> T165" }, { "from": 505, "to": 507, "label": "SUCCESS" }, { "from": 508, "to": 509, "label": "BACKTRACK\nfor clause: add(s(X), Y, s(Z)) :- add(X, Y, Z)because of non-unification" }, { "from": 509, "to": 510, "label": "BACKTRACK\nfor clause: add(0, X, X)because of non-unification" }, { "from": 511, "to": 512, "label": "PARALLEL" }, { "from": 511, "to": 513, "label": "PARALLEL" }, { "from": 512, "to": 514, "label": "ONLY EVAL with clause\ns2(plus(X175, X176), X177) :- s2(plus(X176, X175), X177).\nand substitutionT7 -> T195,\nX175 -> T195,\nT8 -> T196,\nT9 -> T197,\nX176 -> plus(T196, T197),\nT2 -> T199,\nX177 -> T199,\nT198 -> T199" }, { "from": 513, "to": 515, "label": "BACKTRACK\nfor clause: s2(plus(X, 0), X)because of non-unification" }, { "from": 514, "to": 1, "label": "INSTANCE with matching:\nT1 -> plus(plus(T196, T197), T195)\nT2 -> T199" }, { "from": 515, "to": 516, "label": "PARALLEL" }, { "from": 515, "to": 517, "label": "PARALLEL" }, { "from": 516, "to": 518, "label": "ONLY EVAL with clause\ns2(plus(X209, X210), X211) :- ','(s2(X209, X212), ','(s2(X210, X213), s2(plus(X212, X213), X211))).\nand substitutionT7 -> T230,\nX209 -> T230,\nT8 -> T231,\nT9 -> T232,\nX210 -> plus(T231, T232),\nT2 -> T234,\nX211 -> T234,\nT233 -> T234" }, { "from": 517, "to": 521, "label": "ONLY EVAL with clause\ns2(plus(X236, X237), X238) :- ','(isNat(X236), ','(isNat(X237), add(X236, X237, X238))).\nand substitutionT7 -> T255,\nX236 -> T255,\nT8 -> T256,\nT9 -> T257,\nX237 -> plus(T256, T257),\nT2 -> T259,\nX238 -> T259,\nT258 -> T259" }, { "from": 518, "to": 519, "label": "SPLIT 1" }, { "from": 518, "to": 520, "label": "SPLIT 2\nnew knowledge:\nT230 is ground\nT238 is ground\nreplacements:X212 -> T238" }, { "from": 519, "to": 1, "label": "INSTANCE with matching:\nT1 -> T230\nT2 -> X212" }, { "from": 520, "to": 439, "label": "INSTANCE with matching:\nT115 -> plus(T231, T232)\nX95 -> X213\nT121 -> T238\nT117 -> T234" }, { "from": 521, "to": 522, "label": "SPLIT 1" }, { "from": 521, "to": 523, "label": "SPLIT 2\nnew knowledge:\nT255 is ground" }, { "from": 522, "to": 478, "label": "INSTANCE with matching:\nT156 -> T255" }, { "from": 523, "to": 524, "label": "SPLIT 1" }, { "from": 523, "to": 525, "label": "SPLIT 2\nnew knowledge:\nT256 is ground\nT257 is ground" }, { "from": 524, "to": 449, "label": "INSTANCE with matching:\nT154 -> T256\nT155 -> T257" }, { "from": 525, "to": 526, "label": "CASE" }, { "from": 526, "to": 527, "label": "PARALLEL" }, { "from": 526, "to": 528, "label": "PARALLEL" }, { "from": 527, "to": 529, "label": "EVAL with clause\nadd(s(X258), X259, s(X260)) :- add(X258, X259, X260).\nand substitutionX258 -> T282,\nT255 -> s(T282),\nT256 -> T283,\nT257 -> T284,\nX259 -> plus(T283, T284),\nX260 -> T286,\nT259 -> s(T286),\nT285 -> T286" }, { "from": 527, "to": 530, "label": "EVAL-BACKTRACK" }, { "from": 528, "to": 531, "label": "EVAL with clause\nadd(0, X266, X266).\nand substitutionT255 -> 0,\nT256 -> T295,\nT257 -> T296,\nX266 -> plus(T295, T296),\nT259 -> plus(T295, T296)" }, { "from": 528, "to": 532, "label": "EVAL-BACKTRACK" }, { "from": 529, "to": 525, "label": "INSTANCE with matching:\nT255 -> T282\nT256 -> T283\nT257 -> T284\nT259 -> T286" }, { "from": 531, "to": 533, "label": "SUCCESS" }, { "from": 534, "to": 536, "label": "CASE" }, { "from": 535, "to": 658, "label": "BACKTRACK\nfor clause: s2(plus(X, 0), X)\nwith clash: (s2(T1, T2), s2(plus(X270, X271), X272))" }, { "from": 536, "to": 537, "label": "PARALLEL" }, { "from": 536, "to": 538, "label": "PARALLEL" }, { "from": 537, "to": 539, "label": "EVAL with clause\ns2(plus(X289, plus(X290, X291)), X292) :- s2(plus(plus(X289, X290), X291), X292).\nand substitutionT301 -> T320,\nX289 -> T320,\nX290 -> T321,\nX291 -> T322,\nT300 -> plus(T321, T322),\nT303 -> T324,\nX292 -> T324,\nT323 -> T324" }, { "from": 537, "to": 540, "label": "EVAL-BACKTRACK" }, { "from": 538, "to": 541, "label": "PARALLEL" }, { "from": 538, "to": 542, "label": "PARALLEL" }, { "from": 539, "to": 1, "label": "INSTANCE with matching:\nT1 -> plus(plus(T320, T321), T322)\nT2 -> T324" }, { "from": 541, "to": 543, "label": "ONLY EVAL with clause\ns2(plus(X323, X324), X325) :- s2(plus(X324, X323), X325).\nand substitutionT301 -> T358,\nX323 -> T358,\nT300 -> T359,\nX324 -> T359,\nT303 -> T361,\nX325 -> T361,\nT360 -> T361" }, { "from": 542, "to": 544, "label": "PARALLEL" }, { "from": 542, "to": 545, "label": "PARALLEL" }, { "from": 543, "to": 1, "label": "INSTANCE with matching:\nT1 -> plus(T359, T358)\nT2 -> T361" }, { "from": 544, "to": 546, "label": "EVAL with clause\ns2(plus(X337, 0), X337).\nand substitutionT301 -> T373,\nX337 -> T373,\nT300 -> 0,\nT303 -> T373" }, { "from": 544, "to": 547, "label": "EVAL-BACKTRACK" }, { "from": 545, "to": 549, "label": "PARALLEL" }, { "from": 545, "to": 550, "label": "PARALLEL" }, { "from": 546, "to": 548, "label": "SUCCESS" }, { "from": 549, "to": 551, "label": "ONLY EVAL with clause\ns2(plus(X396, X397), X398) :- ','(s2(X396, X399), ','(s2(X397, X400), s2(plus(X399, X400), X398))).\nand substitutionT301 -> T410,\nX396 -> T410,\nT300 -> T411,\nX397 -> T411,\nT303 -> T413,\nX398 -> T413,\nT412 -> T413" }, { "from": 550, "to": 554, "label": "PARALLEL" }, { "from": 550, "to": 555, "label": "PARALLEL" }, { "from": 551, "to": 552, "label": "SPLIT 1" }, { "from": 551, "to": 553, "label": "SPLIT 2\nnew knowledge:\nT410 is ground\nT425 is ground\nreplacements:X399 -> T425" }, { "from": 552, "to": 1, "label": "INSTANCE with matching:\nT1 -> T410\nT2 -> X399" }, { "from": 553, "to": 439, "label": "INSTANCE with matching:\nT115 -> T411\nX95 -> X400\nT121 -> T425\nT117 -> T413" }, { "from": 554, "to": 556, "label": "ONLY EVAL with clause\ns2(plus(X462, X463), X464) :- ','(isNat(X462), ','(isNat(X463), add(X462, X463, X464))).\nand substitutionT301 -> T456,\nX462 -> T456,\nT300 -> T457,\nX463 -> T457,\nT303 -> T459,\nX464 -> T459,\nT458 -> T459" }, { "from": 555, "to": 609, "label": "FAILURE" }, { "from": 556, "to": 589, "label": "SPLIT 1" }, { "from": 556, "to": 590, "label": "SPLIT 2\nnew knowledge:\nT456 is ground" }, { "from": 589, "to": 478, "label": "INSTANCE with matching:\nT156 -> T456" }, { "from": 590, "to": 591, "label": "SPLIT 1" }, { "from": 590, "to": 592, "label": "SPLIT 2\nnew knowledge:\nT457 is ground" }, { "from": 591, "to": 478, "label": "INSTANCE with matching:\nT156 -> T457" }, { "from": 592, "to": 593, "label": "CASE" }, { "from": 593, "to": 594, "label": "PARALLEL" }, { "from": 593, "to": 595, "label": "PARALLEL" }, { "from": 594, "to": 596, "label": "EVAL with clause\nadd(s(X484), X485, s(X486)) :- add(X484, X485, X486).\nand substitutionX484 -> T479,\nT456 -> s(T479),\nT457 -> T480,\nX485 -> T480,\nX486 -> T482,\nT459 -> s(T482),\nT481 -> T482" }, { "from": 594, "to": 597, "label": "EVAL-BACKTRACK" }, { "from": 595, "to": 606, "label": "EVAL with clause\nadd(0, X513, X513).\nand substitutionT456 -> 0,\nT457 -> T510,\nX513 -> T510,\nT459 -> T510" }, { "from": 595, "to": 607, "label": "EVAL-BACKTRACK" }, { "from": 596, "to": 598, "label": "CASE" }, { "from": 598, "to": 599, "label": "PARALLEL" }, { "from": 598, "to": 600, "label": "PARALLEL" }, { "from": 599, "to": 601, "label": "EVAL with clause\nadd(s(X502), X503, s(X504)) :- add(X502, X503, X504).\nand substitutionX502 -> T498,\nT479 -> s(T498),\nT480 -> T499,\nX503 -> T499,\nX504 -> T501,\nT482 -> s(T501),\nT500 -> T501" }, { "from": 599, "to": 602, "label": "EVAL-BACKTRACK" }, { "from": 600, "to": 603, "label": "EVAL with clause\nadd(0, X510, X510).\nand substitutionT479 -> 0,\nT480 -> T507,\nX510 -> T507,\nT482 -> T507" }, { "from": 600, "to": 604, "label": "EVAL-BACKTRACK" }, { "from": 601, "to": 596, "label": "INSTANCE with matching:\nT479 -> T498\nT480 -> T499\nT482 -> T501" }, { "from": 603, "to": 605, "label": "SUCCESS" }, { "from": 606, "to": 608, "label": "SUCCESS" }, { "from": 609, "to": 610, "label": "PARALLEL" }, { "from": 609, "to": 611, "label": "PARALLEL" }, { "from": 610, "to": 612, "label": "EVAL with clause\ns2(plus(X518, 0), X518).\nand substitutionT300 -> T515,\nX518 -> T515,\nT301 -> 0,\nT2 -> T515" }, { "from": 610, "to": 613, "label": "EVAL-BACKTRACK" }, { "from": 611, "to": 615, "label": "PARALLEL" }, { "from": 611, "to": 616, "label": "PARALLEL" }, { "from": 612, "to": 614, "label": "SUCCESS" }, { "from": 615, "to": 617, "label": "ONLY EVAL with clause\ns2(plus(X545, X546), X547) :- ','(s2(X545, X548), ','(s2(X546, X549), s2(plus(X548, X549), X547))).\nand substitutionT300 -> T536,\nX545 -> T536,\nT301 -> T537,\nX546 -> T537,\nT2 -> T539,\nX547 -> T539,\nT538 -> T539" }, { "from": 616, "to": 653, "label": "ONLY EVAL with clause\ns2(plus(X588, X589), X590) :- ','(isNat(X588), ','(isNat(X589), add(X588, X589, X590))).\nand substitutionT300 -> T566,\nX588 -> T566,\nT301 -> T567,\nX589 -> T567,\nT2 -> T569,\nX590 -> T569,\nT568 -> T569" }, { "from": 617, "to": 651, "label": "SPLIT 1" }, { "from": 617, "to": 652, "label": "SPLIT 2\nnew knowledge:\nT536 is ground\nT543 is ground\nreplacements:X548 -> T543" }, { "from": 651, "to": 1, "label": "INSTANCE with matching:\nT1 -> T536\nT2 -> X548" }, { "from": 652, "to": 439, "label": "INSTANCE with matching:\nT115 -> T537\nX95 -> X549\nT121 -> T543\nT117 -> T539" }, { "from": 653, "to": 654, "label": "SPLIT 1" }, { "from": 653, "to": 655, "label": "SPLIT 2\nnew knowledge:\nT566 is ground" }, { "from": 654, "to": 478, "label": "INSTANCE with matching:\nT156 -> T566" }, { "from": 655, "to": 656, "label": "SPLIT 1" }, { "from": 655, "to": 657, "label": "SPLIT 2\nnew knowledge:\nT567 is ground" }, { "from": 656, "to": 478, "label": "INSTANCE with matching:\nT156 -> T567" }, { "from": 657, "to": 596, "label": "INSTANCE with matching:\nT479 -> T566\nT480 -> T567\nT482 -> T569" }, { "from": 658, "to": 659, "label": "BACKTRACK\nfor clause: s2(plus(X, Y), Z) :- ','(s2(X, A), ','(s2(Y, B), s2(plus(A, B), Z)))\nwith clash: (s2(T1, T2), s2(plus(X270, X271), X272))" }, { "from": 659, "to": 660, "label": "BACKTRACK\nfor clause: s2(plus(A, B), C) :- ','(isNat(A), ','(isNat(B), add(A, B, C)))\nwith clash: (s2(T1, T2), s2(plus(X270, X271), X272))" } ], "type": "Graph" } } ---------------------------------------- (130) Obligation: Triples: isNatD(s(X1)) :- isNatD(X1). pB(X1, X2, X3, X4) :- s2A(X1, X2). pB(X1, X2, X3, X4) :- ','(s2cA(X1, X2), s2A(plus(X3, X2), X4)). addC(s(X1), X2, X3, s(X4)) :- addC(X1, X2, X3, X4). addF(s(X1), X2, s(X3)) :- addF(X1, X2, X3). s2A(plus(X1, plus(X2, plus(X3, X4))), X5) :- s2A(plus(plus(plus(X1, X2), X3), X4), X5). s2A(plus(X1, plus(X2, X3)), X4) :- s2A(plus(X3, plus(X1, X2)), X4). s2A(plus(X1, plus(X2, X3)), X4) :- s2A(plus(X1, X2), X5). s2A(plus(X1, plus(X2, X3)), X4) :- ','(s2cA(plus(X1, X2), X5), pB(X3, X6, X5, X4)). s2A(plus(X1, plus(X2, X3)), X4) :- isNatE(X1, X2). s2A(plus(X1, plus(X2, X3)), X4) :- ','(isNatcE(X1, X2), isNatD(X3)). s2A(plus(X1, plus(X2, X3)), X4) :- s2A(plus(plus(X2, X3), X1), X4). s2A(plus(X1, plus(X2, X3)), X4) :- s2A(X1, X5). s2A(plus(X1, plus(X2, X3)), X4) :- ','(s2cA(X1, X5), pB(plus(X2, X3), X6, X5, X4)). s2A(plus(X1, plus(X2, X3)), X4) :- isNatD(X1). s2A(plus(X1, plus(X2, X3)), X4) :- ','(isNatcD(X1), isNatE(X2, X3)). s2A(plus(X1, plus(X2, X3)), X4) :- ','(isNatcD(X1), ','(isNatcE(X2, X3), addC(X1, X2, X3, X4))). s2A(plus(plus(X1, X2), X3), X4) :- s2A(plus(plus(X3, X1), X2), X4). s2A(plus(X1, X2), X3) :- s2A(plus(X1, X2), X3). s2A(plus(X1, X2), X3) :- s2A(X2, X4). s2A(plus(X1, X2), X3) :- ','(s2cA(X2, X4), pB(X1, X5, X4, X3)). s2A(plus(X1, X2), X3) :- isNatD(X2). s2A(plus(X1, X2), X3) :- ','(isNatcD(X2), isNatD(X1)). s2A(plus(X1, s(X2)), s(X3)) :- ','(isNatcD(s(X2)), ','(isNatcD(X1), addF(X2, X1, X3))). s2A(plus(X1, X2), X3) :- s2A(X1, X4). s2A(plus(X1, X2), X3) :- ','(s2cA(X1, X4), pB(X2, X5, X4, X3)). s2A(plus(X1, X2), X3) :- isNatD(X1). s2A(plus(X1, X2), X3) :- ','(isNatcD(X1), isNatD(X2)). s2A(plus(X1, X2), X3) :- ','(isNatcD(X1), ','(isNatcD(X2), addF(X1, X2, X3))). Clauses: s2cA(plus(X1, plus(X2, plus(X3, X4))), X5) :- s2cA(plus(plus(plus(X1, X2), X3), X4), X5). s2cA(plus(X1, plus(X2, X3)), X4) :- s2cA(plus(X3, plus(X1, X2)), X4). s2cA(plus(X1, plus(X2, 0)), plus(X1, X2)). s2cA(plus(X1, plus(X2, X3)), X4) :- ','(s2cA(plus(X1, X2), X5), qcB(X3, X6, X5, X4)). s2cA(plus(X1, plus(X2, X3)), X4) :- s2cA(plus(plus(X2, X3), X1), X4). s2cA(plus(X1, plus(X2, X3)), X4) :- ','(s2cA(X1, X5), qcB(plus(X2, X3), X6, X5, X4)). s2cA(plus(X1, plus(X2, X3)), X4) :- ','(isNatcD(X1), ','(isNatcE(X2, X3), addcC(X1, X2, X3, X4))). s2cA(plus(plus(X1, X2), X3), X4) :- s2cA(plus(plus(X3, X1), X2), X4). s2cA(plus(X1, X2), X3) :- s2cA(plus(X1, X2), X3). s2cA(plus(0, X1), X1). s2cA(plus(X1, X2), X3) :- ','(s2cA(X2, X4), qcB(X1, X5, X4, X3)). s2cA(plus(X1, s(X2)), s(X3)) :- ','(isNatcD(s(X2)), ','(isNatcD(X1), addcF(X2, X1, X3))). s2cA(plus(X1, 0), X1) :- ','(isNatcD(0), isNatcD(X1)). s2cA(plus(X1, 0), X1). s2cA(plus(X1, X2), X3) :- ','(s2cA(X1, X4), qcB(X2, X5, X4, X3)). s2cA(plus(X1, X2), X3) :- ','(isNatcD(X1), ','(isNatcD(X2), addcF(X1, X2, X3))). isNatcD(s(X1)) :- isNatcD(X1). isNatcD(0). qcB(X1, X2, X3, X4) :- ','(s2cA(X1, X2), s2cA(plus(X3, X2), X4)). addcC(s(X1), X2, X3, s(X4)) :- addcC(X1, X2, X3, X4). addcC(0, X1, X2, plus(X1, X2)). addcF(s(X1), X2, s(X3)) :- addcF(X1, X2, X3). addcF(0, X1, X1). Afs: s2A(x1, x2) = s2A(x1) ---------------------------------------- (131) UndefinedPredicateInTriplesTransformerProof (SOUND) Deleted triples and predicates having undefined goals [DT09]. ---------------------------------------- (132) Obligation: Triples: isNatD(s(X1)) :- isNatD(X1). pB(X1, X2, X3, X4) :- s2A(X1, X2). pB(X1, X2, X3, X4) :- ','(s2cA(X1, X2), s2A(plus(X3, X2), X4)). addC(s(X1), X2, X3, s(X4)) :- addC(X1, X2, X3, X4). addF(s(X1), X2, s(X3)) :- addF(X1, X2, X3). s2A(plus(X1, plus(X2, plus(X3, X4))), X5) :- s2A(plus(plus(plus(X1, X2), X3), X4), X5). s2A(plus(X1, plus(X2, X3)), X4) :- s2A(plus(X3, plus(X1, X2)), X4). s2A(plus(X1, plus(X2, X3)), X4) :- s2A(plus(X1, X2), X5). s2A(plus(X1, plus(X2, X3)), X4) :- ','(s2cA(plus(X1, X2), X5), pB(X3, X6, X5, X4)). s2A(plus(X1, plus(X2, X3)), X4) :- s2A(plus(plus(X2, X3), X1), X4). s2A(plus(X1, plus(X2, X3)), X4) :- s2A(X1, X5). s2A(plus(X1, plus(X2, X3)), X4) :- ','(s2cA(X1, X5), pB(plus(X2, X3), X6, X5, X4)). s2A(plus(X1, plus(X2, X3)), X4) :- isNatD(X1). s2A(plus(plus(X1, X2), X3), X4) :- s2A(plus(plus(X3, X1), X2), X4). s2A(plus(X1, X2), X3) :- s2A(plus(X1, X2), X3). s2A(plus(X1, X2), X3) :- s2A(X2, X4). s2A(plus(X1, X2), X3) :- ','(s2cA(X2, X4), pB(X1, X5, X4, X3)). s2A(plus(X1, X2), X3) :- isNatD(X2). s2A(plus(X1, X2), X3) :- ','(isNatcD(X2), isNatD(X1)). s2A(plus(X1, s(X2)), s(X3)) :- ','(isNatcD(s(X2)), ','(isNatcD(X1), addF(X2, X1, X3))). s2A(plus(X1, X2), X3) :- s2A(X1, X4). s2A(plus(X1, X2), X3) :- ','(s2cA(X1, X4), pB(X2, X5, X4, X3)). s2A(plus(X1, X2), X3) :- isNatD(X1). s2A(plus(X1, X2), X3) :- ','(isNatcD(X1), isNatD(X2)). s2A(plus(X1, X2), X3) :- ','(isNatcD(X1), ','(isNatcD(X2), addF(X1, X2, X3))). Clauses: s2cA(plus(X1, plus(X2, plus(X3, X4))), X5) :- s2cA(plus(plus(plus(X1, X2), X3), X4), X5). s2cA(plus(X1, plus(X2, X3)), X4) :- s2cA(plus(X3, plus(X1, X2)), X4). s2cA(plus(X1, plus(X2, 0)), plus(X1, X2)). s2cA(plus(X1, plus(X2, X3)), X4) :- ','(s2cA(plus(X1, X2), X5), qcB(X3, X6, X5, X4)). s2cA(plus(X1, plus(X2, X3)), X4) :- s2cA(plus(plus(X2, X3), X1), X4). s2cA(plus(X1, plus(X2, X3)), X4) :- ','(s2cA(X1, X5), qcB(plus(X2, X3), X6, X5, X4)). s2cA(plus(plus(X1, X2), X3), X4) :- s2cA(plus(plus(X3, X1), X2), X4). s2cA(plus(X1, X2), X3) :- s2cA(plus(X1, X2), X3). s2cA(plus(0, X1), X1). s2cA(plus(X1, X2), X3) :- ','(s2cA(X2, X4), qcB(X1, X5, X4, X3)). s2cA(plus(X1, s(X2)), s(X3)) :- ','(isNatcD(s(X2)), ','(isNatcD(X1), addcF(X2, X1, X3))). s2cA(plus(X1, 0), X1) :- ','(isNatcD(0), isNatcD(X1)). s2cA(plus(X1, 0), X1). s2cA(plus(X1, X2), X3) :- ','(s2cA(X1, X4), qcB(X2, X5, X4, X3)). s2cA(plus(X1, X2), X3) :- ','(isNatcD(X1), ','(isNatcD(X2), addcF(X1, X2, X3))). isNatcD(s(X1)) :- isNatcD(X1). isNatcD(0). qcB(X1, X2, X3, X4) :- ','(s2cA(X1, X2), s2cA(plus(X3, X2), X4)). addcC(s(X1), X2, X3, s(X4)) :- addcC(X1, X2, X3, X4). addcC(0, X1, X2, plus(X1, X2)). addcF(s(X1), X2, s(X3)) :- addcF(X1, X2, X3). addcF(0, X1, X1). Afs: s2A(x1, x2) = s2A(x1) ---------------------------------------- (133) TriplesToPiDPProof (SOUND) We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: s2A_in_2: (b,f) s2cA_in_2: (b,f) isNatcD_in_1: (b) addcF_in_3: (b,b,f) qcB_in_4: (b,f,b,f) pB_in_4: (b,f,b,f) isNatD_in_1: (b) addF_in_3: (b,b,f) Transforming TRIPLES into the following Term Rewriting System: Pi DP problem: The TRS P consists of the following rules: S2A_IN_GA(plus(X1, plus(X2, plus(X3, X4))), X5) -> U7_GA(X1, X2, X3, X4, X5, s2A_in_ga(plus(plus(plus(X1, X2), X3), X4), X5)) S2A_IN_GA(plus(X1, plus(X2, plus(X3, X4))), X5) -> S2A_IN_GA(plus(plus(plus(X1, X2), X3), X4), X5) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> U8_GA(X1, X2, X3, X4, s2A_in_ga(plus(X3, plus(X1, X2)), X4)) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> S2A_IN_GA(plus(X3, plus(X1, X2)), X4) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> U9_GA(X1, X2, X3, X4, s2A_in_ga(plus(X1, X2), X5)) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> S2A_IN_GA(plus(X1, X2), X5) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> U10_GA(X1, X2, X3, X4, s2cA_in_ga(plus(X1, X2), X5)) U10_GA(X1, X2, X3, X4, s2cA_out_ga(plus(X1, X2), X5)) -> U11_GA(X1, X2, X3, X4, pB_in_gaga(X3, X6, X5, X4)) U10_GA(X1, X2, X3, X4, s2cA_out_ga(plus(X1, X2), X5)) -> PB_IN_GAGA(X3, X6, X5, X4) PB_IN_GAGA(X1, X2, X3, X4) -> U2_GAGA(X1, X2, X3, X4, s2A_in_ga(X1, X2)) PB_IN_GAGA(X1, X2, X3, X4) -> S2A_IN_GA(X1, X2) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> U12_GA(X1, X2, X3, X4, s2A_in_ga(plus(plus(X2, X3), X1), X4)) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> S2A_IN_GA(plus(plus(X2, X3), X1), X4) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> U13_GA(X1, X2, X3, X4, s2A_in_ga(X1, X5)) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> S2A_IN_GA(X1, X5) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> U14_GA(X1, X2, X3, X4, s2cA_in_ga(X1, X5)) U14_GA(X1, X2, X3, X4, s2cA_out_ga(X1, X5)) -> U15_GA(X1, X2, X3, X4, pB_in_gaga(plus(X2, X3), X6, X5, X4)) U14_GA(X1, X2, X3, X4, s2cA_out_ga(X1, X5)) -> PB_IN_GAGA(plus(X2, X3), X6, X5, X4) PB_IN_GAGA(X1, X2, X3, X4) -> U3_GAGA(X1, X2, X3, X4, s2cA_in_ga(X1, X2)) U3_GAGA(X1, X2, X3, X4, s2cA_out_ga(X1, X2)) -> U4_GAGA(X1, X2, X3, X4, s2A_in_ga(plus(X3, X2), X4)) U3_GAGA(X1, X2, X3, X4, s2cA_out_ga(X1, X2)) -> S2A_IN_GA(plus(X3, X2), X4) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> U16_GA(X1, X2, X3, X4, isNatD_in_g(X1)) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> ISNATD_IN_G(X1) ISNATD_IN_G(s(X1)) -> U1_G(X1, isNatD_in_g(X1)) ISNATD_IN_G(s(X1)) -> ISNATD_IN_G(X1) S2A_IN_GA(plus(plus(X1, X2), X3), X4) -> U17_GA(X1, X2, X3, X4, s2A_in_ga(plus(plus(X3, X1), X2), X4)) S2A_IN_GA(plus(plus(X1, X2), X3), X4) -> S2A_IN_GA(plus(plus(X3, X1), X2), X4) S2A_IN_GA(plus(X1, X2), X3) -> U18_GA(X1, X2, X3, s2A_in_ga(plus(X1, X2), X3)) S2A_IN_GA(plus(X1, X2), X3) -> S2A_IN_GA(plus(X1, X2), X3) S2A_IN_GA(plus(X1, X2), X3) -> U19_GA(X1, X2, X3, s2A_in_ga(X2, X4)) S2A_IN_GA(plus(X1, X2), X3) -> S2A_IN_GA(X2, X4) S2A_IN_GA(plus(X1, X2), X3) -> U20_GA(X1, X2, X3, s2cA_in_ga(X2, X4)) U20_GA(X1, X2, X3, s2cA_out_ga(X2, X4)) -> U21_GA(X1, X2, X3, pB_in_gaga(X1, X5, X4, X3)) U20_GA(X1, X2, X3, s2cA_out_ga(X2, X4)) -> PB_IN_GAGA(X1, X5, X4, X3) S2A_IN_GA(plus(X1, X2), X3) -> U22_GA(X1, X2, X3, isNatD_in_g(X2)) S2A_IN_GA(plus(X1, X2), X3) -> ISNATD_IN_G(X2) S2A_IN_GA(plus(X1, X2), X3) -> U23_GA(X1, X2, X3, isNatcD_in_g(X2)) U23_GA(X1, X2, X3, isNatcD_out_g(X2)) -> U24_GA(X1, X2, X3, isNatD_in_g(X1)) U23_GA(X1, X2, X3, isNatcD_out_g(X2)) -> ISNATD_IN_G(X1) S2A_IN_GA(plus(X1, s(X2)), s(X3)) -> U25_GA(X1, X2, X3, isNatcD_in_g(s(X2))) U25_GA(X1, X2, X3, isNatcD_out_g(s(X2))) -> U26_GA(X1, X2, X3, isNatcD_in_g(X1)) U26_GA(X1, X2, X3, isNatcD_out_g(X1)) -> U27_GA(X1, X2, X3, addF_in_gga(X2, X1, X3)) U26_GA(X1, X2, X3, isNatcD_out_g(X1)) -> ADDF_IN_GGA(X2, X1, X3) ADDF_IN_GGA(s(X1), X2, s(X3)) -> U6_GGA(X1, X2, X3, addF_in_gga(X1, X2, X3)) ADDF_IN_GGA(s(X1), X2, s(X3)) -> ADDF_IN_GGA(X1, X2, X3) S2A_IN_GA(plus(X1, X2), X3) -> U28_GA(X1, X2, X3, s2A_in_ga(X1, X4)) S2A_IN_GA(plus(X1, X2), X3) -> S2A_IN_GA(X1, X4) S2A_IN_GA(plus(X1, X2), X3) -> U29_GA(X1, X2, X3, s2cA_in_ga(X1, X4)) U29_GA(X1, X2, X3, s2cA_out_ga(X1, X4)) -> U30_GA(X1, X2, X3, pB_in_gaga(X2, X5, X4, X3)) U29_GA(X1, X2, X3, s2cA_out_ga(X1, X4)) -> PB_IN_GAGA(X2, X5, X4, X3) S2A_IN_GA(plus(X1, X2), X3) -> U31_GA(X1, X2, X3, isNatD_in_g(X1)) S2A_IN_GA(plus(X1, X2), X3) -> ISNATD_IN_G(X1) S2A_IN_GA(plus(X1, X2), X3) -> U32_GA(X1, X2, X3, isNatcD_in_g(X1)) U32_GA(X1, X2, X3, isNatcD_out_g(X1)) -> U33_GA(X1, X2, X3, isNatD_in_g(X2)) U32_GA(X1, X2, X3, isNatcD_out_g(X1)) -> ISNATD_IN_G(X2) U32_GA(X1, X2, X3, isNatcD_out_g(X1)) -> U34_GA(X1, X2, X3, isNatcD_in_g(X2)) U34_GA(X1, X2, X3, isNatcD_out_g(X2)) -> U35_GA(X1, X2, X3, addF_in_gga(X1, X2, X3)) U34_GA(X1, X2, X3, isNatcD_out_g(X2)) -> ADDF_IN_GGA(X1, X2, X3) The TRS R consists of the following rules: s2cA_in_ga(plus(X1, plus(X2, plus(X3, X4))), X5) -> U37_ga(X1, X2, X3, X4, X5, s2cA_in_ga(plus(plus(plus(X1, X2), X3), X4), X5)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U38_ga(X1, X2, X3, X4, s2cA_in_ga(plus(X3, plus(X1, X2)), X4)) s2cA_in_ga(plus(X1, plus(X2, 0)), plus(X1, X2)) -> s2cA_out_ga(plus(X1, plus(X2, 0)), plus(X1, X2)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U39_ga(X1, X2, X3, X4, s2cA_in_ga(plus(X1, X2), X5)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U41_ga(X1, X2, X3, X4, s2cA_in_ga(plus(plus(X2, X3), X1), X4)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U42_ga(X1, X2, X3, X4, s2cA_in_ga(X1, X5)) s2cA_in_ga(plus(plus(X1, X2), X3), X4) -> U44_ga(X1, X2, X3, X4, s2cA_in_ga(plus(plus(X3, X1), X2), X4)) s2cA_in_ga(plus(X1, X2), X3) -> U45_ga(X1, X2, X3, s2cA_in_ga(plus(X1, X2), X3)) s2cA_in_ga(plus(0, X1), X1) -> s2cA_out_ga(plus(0, X1), X1) s2cA_in_ga(plus(X1, X2), X3) -> U46_ga(X1, X2, X3, s2cA_in_ga(X2, X4)) s2cA_in_ga(plus(X1, s(X2)), s(X3)) -> U48_ga(X1, X2, X3, isNatcD_in_g(s(X2))) isNatcD_in_g(s(X1)) -> U58_g(X1, isNatcD_in_g(X1)) isNatcD_in_g(0) -> isNatcD_out_g(0) U58_g(X1, isNatcD_out_g(X1)) -> isNatcD_out_g(s(X1)) U48_ga(X1, X2, X3, isNatcD_out_g(s(X2))) -> U49_ga(X1, X2, X3, isNatcD_in_g(X1)) U49_ga(X1, X2, X3, isNatcD_out_g(X1)) -> U50_ga(X1, X2, X3, addcF_in_gga(X2, X1, X3)) addcF_in_gga(s(X1), X2, s(X3)) -> U62_gga(X1, X2, X3, addcF_in_gga(X1, X2, X3)) addcF_in_gga(0, X1, X1) -> addcF_out_gga(0, X1, X1) U62_gga(X1, X2, X3, addcF_out_gga(X1, X2, X3)) -> addcF_out_gga(s(X1), X2, s(X3)) U50_ga(X1, X2, X3, addcF_out_gga(X2, X1, X3)) -> s2cA_out_ga(plus(X1, s(X2)), s(X3)) s2cA_in_ga(plus(X1, 0), X1) -> U51_ga(X1, isNatcD_in_g(0)) U51_ga(X1, isNatcD_out_g(0)) -> U52_ga(X1, isNatcD_in_g(X1)) U52_ga(X1, isNatcD_out_g(X1)) -> s2cA_out_ga(plus(X1, 0), X1) s2cA_in_ga(plus(X1, 0), X1) -> s2cA_out_ga(plus(X1, 0), X1) s2cA_in_ga(plus(X1, X2), X3) -> U53_ga(X1, X2, X3, s2cA_in_ga(X1, X4)) s2cA_in_ga(plus(X1, X2), X3) -> U55_ga(X1, X2, X3, isNatcD_in_g(X1)) U55_ga(X1, X2, X3, isNatcD_out_g(X1)) -> U56_ga(X1, X2, X3, isNatcD_in_g(X2)) U56_ga(X1, X2, X3, isNatcD_out_g(X2)) -> U57_ga(X1, X2, X3, addcF_in_gga(X1, X2, X3)) U57_ga(X1, X2, X3, addcF_out_gga(X1, X2, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U53_ga(X1, X2, X3, s2cA_out_ga(X1, X4)) -> U54_ga(X1, X2, X3, qcB_in_gaga(X2, X5, X4, X3)) qcB_in_gaga(X1, X2, X3, X4) -> U59_gaga(X1, X2, X3, X4, s2cA_in_ga(X1, X2)) U59_gaga(X1, X2, X3, X4, s2cA_out_ga(X1, X2)) -> U60_gaga(X1, X2, X3, X4, s2cA_in_ga(plus(X3, X2), X4)) U60_gaga(X1, X2, X3, X4, s2cA_out_ga(plus(X3, X2), X4)) -> qcB_out_gaga(X1, X2, X3, X4) U54_ga(X1, X2, X3, qcB_out_gaga(X2, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U46_ga(X1, X2, X3, s2cA_out_ga(X2, X4)) -> U47_ga(X1, X2, X3, qcB_in_gaga(X1, X5, X4, X3)) U47_ga(X1, X2, X3, qcB_out_gaga(X1, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U45_ga(X1, X2, X3, s2cA_out_ga(plus(X1, X2), X3)) -> s2cA_out_ga(plus(X1, X2), X3) U44_ga(X1, X2, X3, X4, s2cA_out_ga(plus(plus(X3, X1), X2), X4)) -> s2cA_out_ga(plus(plus(X1, X2), X3), X4) U42_ga(X1, X2, X3, X4, s2cA_out_ga(X1, X5)) -> U43_ga(X1, X2, X3, X4, qcB_in_gaga(plus(X2, X3), X6, X5, X4)) U43_ga(X1, X2, X3, X4, qcB_out_gaga(plus(X2, X3), X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U41_ga(X1, X2, X3, X4, s2cA_out_ga(plus(plus(X2, X3), X1), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U39_ga(X1, X2, X3, X4, s2cA_out_ga(plus(X1, X2), X5)) -> U40_ga(X1, X2, X3, X4, qcB_in_gaga(X3, X6, X5, X4)) U40_ga(X1, X2, X3, X4, qcB_out_gaga(X3, X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U38_ga(X1, X2, X3, X4, s2cA_out_ga(plus(X3, plus(X1, X2)), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U37_ga(X1, X2, X3, X4, X5, s2cA_out_ga(plus(plus(plus(X1, X2), X3), X4), X5)) -> s2cA_out_ga(plus(X1, plus(X2, plus(X3, X4))), X5) The argument filtering Pi contains the following mapping: s2A_in_ga(x1, x2) = s2A_in_ga(x1) plus(x1, x2) = plus(x1, x2) s2cA_in_ga(x1, x2) = s2cA_in_ga(x1) U37_ga(x1, x2, x3, x4, x5, x6) = U37_ga(x1, x2, x3, x4, x6) U38_ga(x1, x2, x3, x4, x5) = U38_ga(x1, x2, x3, x5) 0 = 0 s2cA_out_ga(x1, x2) = s2cA_out_ga(x1, x2) U39_ga(x1, x2, x3, x4, x5) = U39_ga(x1, x2, x3, x5) U41_ga(x1, x2, x3, x4, x5) = U41_ga(x1, x2, x3, x5) U42_ga(x1, x2, x3, x4, x5) = U42_ga(x1, x2, x3, x5) U44_ga(x1, x2, x3, x4, x5) = U44_ga(x1, x2, x3, x5) U45_ga(x1, x2, x3, x4) = U45_ga(x1, x2, x4) U46_ga(x1, x2, x3, x4) = U46_ga(x1, x2, x4) s(x1) = s(x1) U48_ga(x1, x2, x3, x4) = U48_ga(x1, x2, x4) isNatcD_in_g(x1) = isNatcD_in_g(x1) U58_g(x1, x2) = U58_g(x1, x2) isNatcD_out_g(x1) = isNatcD_out_g(x1) U49_ga(x1, x2, x3, x4) = U49_ga(x1, x2, x4) U50_ga(x1, x2, x3, x4) = U50_ga(x1, x2, x4) addcF_in_gga(x1, x2, x3) = addcF_in_gga(x1, x2) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) addcF_out_gga(x1, x2, x3) = addcF_out_gga(x1, x2, x3) U51_ga(x1, x2) = U51_ga(x1, x2) U52_ga(x1, x2) = U52_ga(x1, x2) U53_ga(x1, x2, x3, x4) = U53_ga(x1, x2, x4) U55_ga(x1, x2, x3, x4) = U55_ga(x1, x2, x4) U56_ga(x1, x2, x3, x4) = U56_ga(x1, x2, x4) U57_ga(x1, x2, x3, x4) = U57_ga(x1, x2, x4) U54_ga(x1, x2, x3, x4) = U54_ga(x1, x2, x4) qcB_in_gaga(x1, x2, x3, x4) = qcB_in_gaga(x1, x3) U59_gaga(x1, x2, x3, x4, x5) = U59_gaga(x1, x3, x5) U60_gaga(x1, x2, x3, x4, x5) = U60_gaga(x1, x2, x3, x5) qcB_out_gaga(x1, x2, x3, x4) = qcB_out_gaga(x1, x2, x3, x4) U47_ga(x1, x2, x3, x4) = U47_ga(x1, x2, x4) U43_ga(x1, x2, x3, x4, x5) = U43_ga(x1, x2, x3, x5) U40_ga(x1, x2, x3, x4, x5) = U40_ga(x1, x2, x3, x5) pB_in_gaga(x1, x2, x3, x4) = pB_in_gaga(x1, x3) isNatD_in_g(x1) = isNatD_in_g(x1) addF_in_gga(x1, x2, x3) = addF_in_gga(x1, x2) S2A_IN_GA(x1, x2) = S2A_IN_GA(x1) U7_GA(x1, x2, x3, x4, x5, x6) = U7_GA(x1, x2, x3, x4, x6) U8_GA(x1, x2, x3, x4, x5) = U8_GA(x1, x2, x3, x5) U9_GA(x1, x2, x3, x4, x5) = U9_GA(x1, x2, x3, x5) U10_GA(x1, x2, x3, x4, x5) = U10_GA(x1, x2, x3, x5) U11_GA(x1, x2, x3, x4, x5) = U11_GA(x1, x2, x3, x5) PB_IN_GAGA(x1, x2, x3, x4) = PB_IN_GAGA(x1, x3) U2_GAGA(x1, x2, x3, x4, x5) = U2_GAGA(x1, x3, x5) U12_GA(x1, x2, x3, x4, x5) = U12_GA(x1, x2, x3, x5) U13_GA(x1, x2, x3, x4, x5) = U13_GA(x1, x2, x3, x5) U14_GA(x1, x2, x3, x4, x5) = U14_GA(x1, x2, x3, x5) U15_GA(x1, x2, x3, x4, x5) = U15_GA(x1, x2, x3, x5) U3_GAGA(x1, x2, x3, x4, x5) = U3_GAGA(x1, x3, x5) U4_GAGA(x1, x2, x3, x4, x5) = U4_GAGA(x1, x3, x5) U16_GA(x1, x2, x3, x4, x5) = U16_GA(x1, x2, x3, x5) ISNATD_IN_G(x1) = ISNATD_IN_G(x1) U1_G(x1, x2) = U1_G(x1, x2) U17_GA(x1, x2, x3, x4, x5) = U17_GA(x1, x2, x3, x5) U18_GA(x1, x2, x3, x4) = U18_GA(x1, x2, x4) U19_GA(x1, x2, x3, x4) = U19_GA(x1, x2, x4) U20_GA(x1, x2, x3, x4) = U20_GA(x1, x2, x4) U21_GA(x1, x2, x3, x4) = U21_GA(x1, x2, x4) U22_GA(x1, x2, x3, x4) = U22_GA(x1, x2, x4) U23_GA(x1, x2, x3, x4) = U23_GA(x1, x2, x4) U24_GA(x1, x2, x3, x4) = U24_GA(x1, x2, x4) U25_GA(x1, x2, x3, x4) = U25_GA(x1, x2, x4) U26_GA(x1, x2, x3, x4) = U26_GA(x1, x2, x4) U27_GA(x1, x2, x3, x4) = U27_GA(x1, x2, x4) ADDF_IN_GGA(x1, x2, x3) = ADDF_IN_GGA(x1, x2) U6_GGA(x1, x2, x3, x4) = U6_GGA(x1, x2, x4) U28_GA(x1, x2, x3, x4) = U28_GA(x1, x2, x4) U29_GA(x1, x2, x3, x4) = U29_GA(x1, x2, x4) U30_GA(x1, x2, x3, x4) = U30_GA(x1, x2, x4) U31_GA(x1, x2, x3, x4) = U31_GA(x1, x2, x4) U32_GA(x1, x2, x3, x4) = U32_GA(x1, x2, x4) U33_GA(x1, x2, x3, x4) = U33_GA(x1, x2, x4) U34_GA(x1, x2, x3, x4) = U34_GA(x1, x2, x4) U35_GA(x1, x2, x3, x4) = U35_GA(x1, x2, x4) We have to consider all (P,R,Pi)-chains Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES ---------------------------------------- (134) Obligation: Pi DP problem: The TRS P consists of the following rules: S2A_IN_GA(plus(X1, plus(X2, plus(X3, X4))), X5) -> U7_GA(X1, X2, X3, X4, X5, s2A_in_ga(plus(plus(plus(X1, X2), X3), X4), X5)) S2A_IN_GA(plus(X1, plus(X2, plus(X3, X4))), X5) -> S2A_IN_GA(plus(plus(plus(X1, X2), X3), X4), X5) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> U8_GA(X1, X2, X3, X4, s2A_in_ga(plus(X3, plus(X1, X2)), X4)) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> S2A_IN_GA(plus(X3, plus(X1, X2)), X4) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> U9_GA(X1, X2, X3, X4, s2A_in_ga(plus(X1, X2), X5)) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> S2A_IN_GA(plus(X1, X2), X5) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> U10_GA(X1, X2, X3, X4, s2cA_in_ga(plus(X1, X2), X5)) U10_GA(X1, X2, X3, X4, s2cA_out_ga(plus(X1, X2), X5)) -> U11_GA(X1, X2, X3, X4, pB_in_gaga(X3, X6, X5, X4)) U10_GA(X1, X2, X3, X4, s2cA_out_ga(plus(X1, X2), X5)) -> PB_IN_GAGA(X3, X6, X5, X4) PB_IN_GAGA(X1, X2, X3, X4) -> U2_GAGA(X1, X2, X3, X4, s2A_in_ga(X1, X2)) PB_IN_GAGA(X1, X2, X3, X4) -> S2A_IN_GA(X1, X2) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> U12_GA(X1, X2, X3, X4, s2A_in_ga(plus(plus(X2, X3), X1), X4)) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> S2A_IN_GA(plus(plus(X2, X3), X1), X4) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> U13_GA(X1, X2, X3, X4, s2A_in_ga(X1, X5)) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> S2A_IN_GA(X1, X5) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> U14_GA(X1, X2, X3, X4, s2cA_in_ga(X1, X5)) U14_GA(X1, X2, X3, X4, s2cA_out_ga(X1, X5)) -> U15_GA(X1, X2, X3, X4, pB_in_gaga(plus(X2, X3), X6, X5, X4)) U14_GA(X1, X2, X3, X4, s2cA_out_ga(X1, X5)) -> PB_IN_GAGA(plus(X2, X3), X6, X5, X4) PB_IN_GAGA(X1, X2, X3, X4) -> U3_GAGA(X1, X2, X3, X4, s2cA_in_ga(X1, X2)) U3_GAGA(X1, X2, X3, X4, s2cA_out_ga(X1, X2)) -> U4_GAGA(X1, X2, X3, X4, s2A_in_ga(plus(X3, X2), X4)) U3_GAGA(X1, X2, X3, X4, s2cA_out_ga(X1, X2)) -> S2A_IN_GA(plus(X3, X2), X4) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> U16_GA(X1, X2, X3, X4, isNatD_in_g(X1)) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> ISNATD_IN_G(X1) ISNATD_IN_G(s(X1)) -> U1_G(X1, isNatD_in_g(X1)) ISNATD_IN_G(s(X1)) -> ISNATD_IN_G(X1) S2A_IN_GA(plus(plus(X1, X2), X3), X4) -> U17_GA(X1, X2, X3, X4, s2A_in_ga(plus(plus(X3, X1), X2), X4)) S2A_IN_GA(plus(plus(X1, X2), X3), X4) -> S2A_IN_GA(plus(plus(X3, X1), X2), X4) S2A_IN_GA(plus(X1, X2), X3) -> U18_GA(X1, X2, X3, s2A_in_ga(plus(X1, X2), X3)) S2A_IN_GA(plus(X1, X2), X3) -> S2A_IN_GA(plus(X1, X2), X3) S2A_IN_GA(plus(X1, X2), X3) -> U19_GA(X1, X2, X3, s2A_in_ga(X2, X4)) S2A_IN_GA(plus(X1, X2), X3) -> S2A_IN_GA(X2, X4) S2A_IN_GA(plus(X1, X2), X3) -> U20_GA(X1, X2, X3, s2cA_in_ga(X2, X4)) U20_GA(X1, X2, X3, s2cA_out_ga(X2, X4)) -> U21_GA(X1, X2, X3, pB_in_gaga(X1, X5, X4, X3)) U20_GA(X1, X2, X3, s2cA_out_ga(X2, X4)) -> PB_IN_GAGA(X1, X5, X4, X3) S2A_IN_GA(plus(X1, X2), X3) -> U22_GA(X1, X2, X3, isNatD_in_g(X2)) S2A_IN_GA(plus(X1, X2), X3) -> ISNATD_IN_G(X2) S2A_IN_GA(plus(X1, X2), X3) -> U23_GA(X1, X2, X3, isNatcD_in_g(X2)) U23_GA(X1, X2, X3, isNatcD_out_g(X2)) -> U24_GA(X1, X2, X3, isNatD_in_g(X1)) U23_GA(X1, X2, X3, isNatcD_out_g(X2)) -> ISNATD_IN_G(X1) S2A_IN_GA(plus(X1, s(X2)), s(X3)) -> U25_GA(X1, X2, X3, isNatcD_in_g(s(X2))) U25_GA(X1, X2, X3, isNatcD_out_g(s(X2))) -> U26_GA(X1, X2, X3, isNatcD_in_g(X1)) U26_GA(X1, X2, X3, isNatcD_out_g(X1)) -> U27_GA(X1, X2, X3, addF_in_gga(X2, X1, X3)) U26_GA(X1, X2, X3, isNatcD_out_g(X1)) -> ADDF_IN_GGA(X2, X1, X3) ADDF_IN_GGA(s(X1), X2, s(X3)) -> U6_GGA(X1, X2, X3, addF_in_gga(X1, X2, X3)) ADDF_IN_GGA(s(X1), X2, s(X3)) -> ADDF_IN_GGA(X1, X2, X3) S2A_IN_GA(plus(X1, X2), X3) -> U28_GA(X1, X2, X3, s2A_in_ga(X1, X4)) S2A_IN_GA(plus(X1, X2), X3) -> S2A_IN_GA(X1, X4) S2A_IN_GA(plus(X1, X2), X3) -> U29_GA(X1, X2, X3, s2cA_in_ga(X1, X4)) U29_GA(X1, X2, X3, s2cA_out_ga(X1, X4)) -> U30_GA(X1, X2, X3, pB_in_gaga(X2, X5, X4, X3)) U29_GA(X1, X2, X3, s2cA_out_ga(X1, X4)) -> PB_IN_GAGA(X2, X5, X4, X3) S2A_IN_GA(plus(X1, X2), X3) -> U31_GA(X1, X2, X3, isNatD_in_g(X1)) S2A_IN_GA(plus(X1, X2), X3) -> ISNATD_IN_G(X1) S2A_IN_GA(plus(X1, X2), X3) -> U32_GA(X1, X2, X3, isNatcD_in_g(X1)) U32_GA(X1, X2, X3, isNatcD_out_g(X1)) -> U33_GA(X1, X2, X3, isNatD_in_g(X2)) U32_GA(X1, X2, X3, isNatcD_out_g(X1)) -> ISNATD_IN_G(X2) U32_GA(X1, X2, X3, isNatcD_out_g(X1)) -> U34_GA(X1, X2, X3, isNatcD_in_g(X2)) U34_GA(X1, X2, X3, isNatcD_out_g(X2)) -> U35_GA(X1, X2, X3, addF_in_gga(X1, X2, X3)) U34_GA(X1, X2, X3, isNatcD_out_g(X2)) -> ADDF_IN_GGA(X1, X2, X3) The TRS R consists of the following rules: s2cA_in_ga(plus(X1, plus(X2, plus(X3, X4))), X5) -> U37_ga(X1, X2, X3, X4, X5, s2cA_in_ga(plus(plus(plus(X1, X2), X3), X4), X5)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U38_ga(X1, X2, X3, X4, s2cA_in_ga(plus(X3, plus(X1, X2)), X4)) s2cA_in_ga(plus(X1, plus(X2, 0)), plus(X1, X2)) -> s2cA_out_ga(plus(X1, plus(X2, 0)), plus(X1, X2)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U39_ga(X1, X2, X3, X4, s2cA_in_ga(plus(X1, X2), X5)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U41_ga(X1, X2, X3, X4, s2cA_in_ga(plus(plus(X2, X3), X1), X4)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U42_ga(X1, X2, X3, X4, s2cA_in_ga(X1, X5)) s2cA_in_ga(plus(plus(X1, X2), X3), X4) -> U44_ga(X1, X2, X3, X4, s2cA_in_ga(plus(plus(X3, X1), X2), X4)) s2cA_in_ga(plus(X1, X2), X3) -> U45_ga(X1, X2, X3, s2cA_in_ga(plus(X1, X2), X3)) s2cA_in_ga(plus(0, X1), X1) -> s2cA_out_ga(plus(0, X1), X1) s2cA_in_ga(plus(X1, X2), X3) -> U46_ga(X1, X2, X3, s2cA_in_ga(X2, X4)) s2cA_in_ga(plus(X1, s(X2)), s(X3)) -> U48_ga(X1, X2, X3, isNatcD_in_g(s(X2))) isNatcD_in_g(s(X1)) -> U58_g(X1, isNatcD_in_g(X1)) isNatcD_in_g(0) -> isNatcD_out_g(0) U58_g(X1, isNatcD_out_g(X1)) -> isNatcD_out_g(s(X1)) U48_ga(X1, X2, X3, isNatcD_out_g(s(X2))) -> U49_ga(X1, X2, X3, isNatcD_in_g(X1)) U49_ga(X1, X2, X3, isNatcD_out_g(X1)) -> U50_ga(X1, X2, X3, addcF_in_gga(X2, X1, X3)) addcF_in_gga(s(X1), X2, s(X3)) -> U62_gga(X1, X2, X3, addcF_in_gga(X1, X2, X3)) addcF_in_gga(0, X1, X1) -> addcF_out_gga(0, X1, X1) U62_gga(X1, X2, X3, addcF_out_gga(X1, X2, X3)) -> addcF_out_gga(s(X1), X2, s(X3)) U50_ga(X1, X2, X3, addcF_out_gga(X2, X1, X3)) -> s2cA_out_ga(plus(X1, s(X2)), s(X3)) s2cA_in_ga(plus(X1, 0), X1) -> U51_ga(X1, isNatcD_in_g(0)) U51_ga(X1, isNatcD_out_g(0)) -> U52_ga(X1, isNatcD_in_g(X1)) U52_ga(X1, isNatcD_out_g(X1)) -> s2cA_out_ga(plus(X1, 0), X1) s2cA_in_ga(plus(X1, 0), X1) -> s2cA_out_ga(plus(X1, 0), X1) s2cA_in_ga(plus(X1, X2), X3) -> U53_ga(X1, X2, X3, s2cA_in_ga(X1, X4)) s2cA_in_ga(plus(X1, X2), X3) -> U55_ga(X1, X2, X3, isNatcD_in_g(X1)) U55_ga(X1, X2, X3, isNatcD_out_g(X1)) -> U56_ga(X1, X2, X3, isNatcD_in_g(X2)) U56_ga(X1, X2, X3, isNatcD_out_g(X2)) -> U57_ga(X1, X2, X3, addcF_in_gga(X1, X2, X3)) U57_ga(X1, X2, X3, addcF_out_gga(X1, X2, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U53_ga(X1, X2, X3, s2cA_out_ga(X1, X4)) -> U54_ga(X1, X2, X3, qcB_in_gaga(X2, X5, X4, X3)) qcB_in_gaga(X1, X2, X3, X4) -> U59_gaga(X1, X2, X3, X4, s2cA_in_ga(X1, X2)) U59_gaga(X1, X2, X3, X4, s2cA_out_ga(X1, X2)) -> U60_gaga(X1, X2, X3, X4, s2cA_in_ga(plus(X3, X2), X4)) U60_gaga(X1, X2, X3, X4, s2cA_out_ga(plus(X3, X2), X4)) -> qcB_out_gaga(X1, X2, X3, X4) U54_ga(X1, X2, X3, qcB_out_gaga(X2, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U46_ga(X1, X2, X3, s2cA_out_ga(X2, X4)) -> U47_ga(X1, X2, X3, qcB_in_gaga(X1, X5, X4, X3)) U47_ga(X1, X2, X3, qcB_out_gaga(X1, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U45_ga(X1, X2, X3, s2cA_out_ga(plus(X1, X2), X3)) -> s2cA_out_ga(plus(X1, X2), X3) U44_ga(X1, X2, X3, X4, s2cA_out_ga(plus(plus(X3, X1), X2), X4)) -> s2cA_out_ga(plus(plus(X1, X2), X3), X4) U42_ga(X1, X2, X3, X4, s2cA_out_ga(X1, X5)) -> U43_ga(X1, X2, X3, X4, qcB_in_gaga(plus(X2, X3), X6, X5, X4)) U43_ga(X1, X2, X3, X4, qcB_out_gaga(plus(X2, X3), X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U41_ga(X1, X2, X3, X4, s2cA_out_ga(plus(plus(X2, X3), X1), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U39_ga(X1, X2, X3, X4, s2cA_out_ga(plus(X1, X2), X5)) -> U40_ga(X1, X2, X3, X4, qcB_in_gaga(X3, X6, X5, X4)) U40_ga(X1, X2, X3, X4, qcB_out_gaga(X3, X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U38_ga(X1, X2, X3, X4, s2cA_out_ga(plus(X3, plus(X1, X2)), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U37_ga(X1, X2, X3, X4, X5, s2cA_out_ga(plus(plus(plus(X1, X2), X3), X4), X5)) -> s2cA_out_ga(plus(X1, plus(X2, plus(X3, X4))), X5) The argument filtering Pi contains the following mapping: s2A_in_ga(x1, x2) = s2A_in_ga(x1) plus(x1, x2) = plus(x1, x2) s2cA_in_ga(x1, x2) = s2cA_in_ga(x1) U37_ga(x1, x2, x3, x4, x5, x6) = U37_ga(x1, x2, x3, x4, x6) U38_ga(x1, x2, x3, x4, x5) = U38_ga(x1, x2, x3, x5) 0 = 0 s2cA_out_ga(x1, x2) = s2cA_out_ga(x1, x2) U39_ga(x1, x2, x3, x4, x5) = U39_ga(x1, x2, x3, x5) U41_ga(x1, x2, x3, x4, x5) = U41_ga(x1, x2, x3, x5) U42_ga(x1, x2, x3, x4, x5) = U42_ga(x1, x2, x3, x5) U44_ga(x1, x2, x3, x4, x5) = U44_ga(x1, x2, x3, x5) U45_ga(x1, x2, x3, x4) = U45_ga(x1, x2, x4) U46_ga(x1, x2, x3, x4) = U46_ga(x1, x2, x4) s(x1) = s(x1) U48_ga(x1, x2, x3, x4) = U48_ga(x1, x2, x4) isNatcD_in_g(x1) = isNatcD_in_g(x1) U58_g(x1, x2) = U58_g(x1, x2) isNatcD_out_g(x1) = isNatcD_out_g(x1) U49_ga(x1, x2, x3, x4) = U49_ga(x1, x2, x4) U50_ga(x1, x2, x3, x4) = U50_ga(x1, x2, x4) addcF_in_gga(x1, x2, x3) = addcF_in_gga(x1, x2) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) addcF_out_gga(x1, x2, x3) = addcF_out_gga(x1, x2, x3) U51_ga(x1, x2) = U51_ga(x1, x2) U52_ga(x1, x2) = U52_ga(x1, x2) U53_ga(x1, x2, x3, x4) = U53_ga(x1, x2, x4) U55_ga(x1, x2, x3, x4) = U55_ga(x1, x2, x4) U56_ga(x1, x2, x3, x4) = U56_ga(x1, x2, x4) U57_ga(x1, x2, x3, x4) = U57_ga(x1, x2, x4) U54_ga(x1, x2, x3, x4) = U54_ga(x1, x2, x4) qcB_in_gaga(x1, x2, x3, x4) = qcB_in_gaga(x1, x3) U59_gaga(x1, x2, x3, x4, x5) = U59_gaga(x1, x3, x5) U60_gaga(x1, x2, x3, x4, x5) = U60_gaga(x1, x2, x3, x5) qcB_out_gaga(x1, x2, x3, x4) = qcB_out_gaga(x1, x2, x3, x4) U47_ga(x1, x2, x3, x4) = U47_ga(x1, x2, x4) U43_ga(x1, x2, x3, x4, x5) = U43_ga(x1, x2, x3, x5) U40_ga(x1, x2, x3, x4, x5) = U40_ga(x1, x2, x3, x5) pB_in_gaga(x1, x2, x3, x4) = pB_in_gaga(x1, x3) isNatD_in_g(x1) = isNatD_in_g(x1) addF_in_gga(x1, x2, x3) = addF_in_gga(x1, x2) S2A_IN_GA(x1, x2) = S2A_IN_GA(x1) U7_GA(x1, x2, x3, x4, x5, x6) = U7_GA(x1, x2, x3, x4, x6) U8_GA(x1, x2, x3, x4, x5) = U8_GA(x1, x2, x3, x5) U9_GA(x1, x2, x3, x4, x5) = U9_GA(x1, x2, x3, x5) U10_GA(x1, x2, x3, x4, x5) = U10_GA(x1, x2, x3, x5) U11_GA(x1, x2, x3, x4, x5) = U11_GA(x1, x2, x3, x5) PB_IN_GAGA(x1, x2, x3, x4) = PB_IN_GAGA(x1, x3) U2_GAGA(x1, x2, x3, x4, x5) = U2_GAGA(x1, x3, x5) U12_GA(x1, x2, x3, x4, x5) = U12_GA(x1, x2, x3, x5) U13_GA(x1, x2, x3, x4, x5) = U13_GA(x1, x2, x3, x5) U14_GA(x1, x2, x3, x4, x5) = U14_GA(x1, x2, x3, x5) U15_GA(x1, x2, x3, x4, x5) = U15_GA(x1, x2, x3, x5) U3_GAGA(x1, x2, x3, x4, x5) = U3_GAGA(x1, x3, x5) U4_GAGA(x1, x2, x3, x4, x5) = U4_GAGA(x1, x3, x5) U16_GA(x1, x2, x3, x4, x5) = U16_GA(x1, x2, x3, x5) ISNATD_IN_G(x1) = ISNATD_IN_G(x1) U1_G(x1, x2) = U1_G(x1, x2) U17_GA(x1, x2, x3, x4, x5) = U17_GA(x1, x2, x3, x5) U18_GA(x1, x2, x3, x4) = U18_GA(x1, x2, x4) U19_GA(x1, x2, x3, x4) = U19_GA(x1, x2, x4) U20_GA(x1, x2, x3, x4) = U20_GA(x1, x2, x4) U21_GA(x1, x2, x3, x4) = U21_GA(x1, x2, x4) U22_GA(x1, x2, x3, x4) = U22_GA(x1, x2, x4) U23_GA(x1, x2, x3, x4) = U23_GA(x1, x2, x4) U24_GA(x1, x2, x3, x4) = U24_GA(x1, x2, x4) U25_GA(x1, x2, x3, x4) = U25_GA(x1, x2, x4) U26_GA(x1, x2, x3, x4) = U26_GA(x1, x2, x4) U27_GA(x1, x2, x3, x4) = U27_GA(x1, x2, x4) ADDF_IN_GGA(x1, x2, x3) = ADDF_IN_GGA(x1, x2) U6_GGA(x1, x2, x3, x4) = U6_GGA(x1, x2, x4) U28_GA(x1, x2, x3, x4) = U28_GA(x1, x2, x4) U29_GA(x1, x2, x3, x4) = U29_GA(x1, x2, x4) U30_GA(x1, x2, x3, x4) = U30_GA(x1, x2, x4) U31_GA(x1, x2, x3, x4) = U31_GA(x1, x2, x4) U32_GA(x1, x2, x3, x4) = U32_GA(x1, x2, x4) U33_GA(x1, x2, x3, x4) = U33_GA(x1, x2, x4) U34_GA(x1, x2, x3, x4) = U34_GA(x1, x2, x4) U35_GA(x1, x2, x3, x4) = U35_GA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (135) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 36 less nodes. ---------------------------------------- (136) Complex Obligation (AND) ---------------------------------------- (137) Obligation: Pi DP problem: The TRS P consists of the following rules: ADDF_IN_GGA(s(X1), X2, s(X3)) -> ADDF_IN_GGA(X1, X2, X3) The TRS R consists of the following rules: s2cA_in_ga(plus(X1, plus(X2, plus(X3, X4))), X5) -> U37_ga(X1, X2, X3, X4, X5, s2cA_in_ga(plus(plus(plus(X1, X2), X3), X4), X5)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U38_ga(X1, X2, X3, X4, s2cA_in_ga(plus(X3, plus(X1, X2)), X4)) s2cA_in_ga(plus(X1, plus(X2, 0)), plus(X1, X2)) -> s2cA_out_ga(plus(X1, plus(X2, 0)), plus(X1, X2)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U39_ga(X1, X2, X3, X4, s2cA_in_ga(plus(X1, X2), X5)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U41_ga(X1, X2, X3, X4, s2cA_in_ga(plus(plus(X2, X3), X1), X4)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U42_ga(X1, X2, X3, X4, s2cA_in_ga(X1, X5)) s2cA_in_ga(plus(plus(X1, X2), X3), X4) -> U44_ga(X1, X2, X3, X4, s2cA_in_ga(plus(plus(X3, X1), X2), X4)) s2cA_in_ga(plus(X1, X2), X3) -> U45_ga(X1, X2, X3, s2cA_in_ga(plus(X1, X2), X3)) s2cA_in_ga(plus(0, X1), X1) -> s2cA_out_ga(plus(0, X1), X1) s2cA_in_ga(plus(X1, X2), X3) -> U46_ga(X1, X2, X3, s2cA_in_ga(X2, X4)) s2cA_in_ga(plus(X1, s(X2)), s(X3)) -> U48_ga(X1, X2, X3, isNatcD_in_g(s(X2))) isNatcD_in_g(s(X1)) -> U58_g(X1, isNatcD_in_g(X1)) isNatcD_in_g(0) -> isNatcD_out_g(0) U58_g(X1, isNatcD_out_g(X1)) -> isNatcD_out_g(s(X1)) U48_ga(X1, X2, X3, isNatcD_out_g(s(X2))) -> U49_ga(X1, X2, X3, isNatcD_in_g(X1)) U49_ga(X1, X2, X3, isNatcD_out_g(X1)) -> U50_ga(X1, X2, X3, addcF_in_gga(X2, X1, X3)) addcF_in_gga(s(X1), X2, s(X3)) -> U62_gga(X1, X2, X3, addcF_in_gga(X1, X2, X3)) addcF_in_gga(0, X1, X1) -> addcF_out_gga(0, X1, X1) U62_gga(X1, X2, X3, addcF_out_gga(X1, X2, X3)) -> addcF_out_gga(s(X1), X2, s(X3)) U50_ga(X1, X2, X3, addcF_out_gga(X2, X1, X3)) -> s2cA_out_ga(plus(X1, s(X2)), s(X3)) s2cA_in_ga(plus(X1, 0), X1) -> U51_ga(X1, isNatcD_in_g(0)) U51_ga(X1, isNatcD_out_g(0)) -> U52_ga(X1, isNatcD_in_g(X1)) U52_ga(X1, isNatcD_out_g(X1)) -> s2cA_out_ga(plus(X1, 0), X1) s2cA_in_ga(plus(X1, 0), X1) -> s2cA_out_ga(plus(X1, 0), X1) s2cA_in_ga(plus(X1, X2), X3) -> U53_ga(X1, X2, X3, s2cA_in_ga(X1, X4)) s2cA_in_ga(plus(X1, X2), X3) -> U55_ga(X1, X2, X3, isNatcD_in_g(X1)) U55_ga(X1, X2, X3, isNatcD_out_g(X1)) -> U56_ga(X1, X2, X3, isNatcD_in_g(X2)) U56_ga(X1, X2, X3, isNatcD_out_g(X2)) -> U57_ga(X1, X2, X3, addcF_in_gga(X1, X2, X3)) U57_ga(X1, X2, X3, addcF_out_gga(X1, X2, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U53_ga(X1, X2, X3, s2cA_out_ga(X1, X4)) -> U54_ga(X1, X2, X3, qcB_in_gaga(X2, X5, X4, X3)) qcB_in_gaga(X1, X2, X3, X4) -> U59_gaga(X1, X2, X3, X4, s2cA_in_ga(X1, X2)) U59_gaga(X1, X2, X3, X4, s2cA_out_ga(X1, X2)) -> U60_gaga(X1, X2, X3, X4, s2cA_in_ga(plus(X3, X2), X4)) U60_gaga(X1, X2, X3, X4, s2cA_out_ga(plus(X3, X2), X4)) -> qcB_out_gaga(X1, X2, X3, X4) U54_ga(X1, X2, X3, qcB_out_gaga(X2, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U46_ga(X1, X2, X3, s2cA_out_ga(X2, X4)) -> U47_ga(X1, X2, X3, qcB_in_gaga(X1, X5, X4, X3)) U47_ga(X1, X2, X3, qcB_out_gaga(X1, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U45_ga(X1, X2, X3, s2cA_out_ga(plus(X1, X2), X3)) -> s2cA_out_ga(plus(X1, X2), X3) U44_ga(X1, X2, X3, X4, s2cA_out_ga(plus(plus(X3, X1), X2), X4)) -> s2cA_out_ga(plus(plus(X1, X2), X3), X4) U42_ga(X1, X2, X3, X4, s2cA_out_ga(X1, X5)) -> U43_ga(X1, X2, X3, X4, qcB_in_gaga(plus(X2, X3), X6, X5, X4)) U43_ga(X1, X2, X3, X4, qcB_out_gaga(plus(X2, X3), X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U41_ga(X1, X2, X3, X4, s2cA_out_ga(plus(plus(X2, X3), X1), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U39_ga(X1, X2, X3, X4, s2cA_out_ga(plus(X1, X2), X5)) -> U40_ga(X1, X2, X3, X4, qcB_in_gaga(X3, X6, X5, X4)) U40_ga(X1, X2, X3, X4, qcB_out_gaga(X3, X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U38_ga(X1, X2, X3, X4, s2cA_out_ga(plus(X3, plus(X1, X2)), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U37_ga(X1, X2, X3, X4, X5, s2cA_out_ga(plus(plus(plus(X1, X2), X3), X4), X5)) -> s2cA_out_ga(plus(X1, plus(X2, plus(X3, X4))), X5) The argument filtering Pi contains the following mapping: plus(x1, x2) = plus(x1, x2) s2cA_in_ga(x1, x2) = s2cA_in_ga(x1) U37_ga(x1, x2, x3, x4, x5, x6) = U37_ga(x1, x2, x3, x4, x6) U38_ga(x1, x2, x3, x4, x5) = U38_ga(x1, x2, x3, x5) 0 = 0 s2cA_out_ga(x1, x2) = s2cA_out_ga(x1, x2) U39_ga(x1, x2, x3, x4, x5) = U39_ga(x1, x2, x3, x5) U41_ga(x1, x2, x3, x4, x5) = U41_ga(x1, x2, x3, x5) U42_ga(x1, x2, x3, x4, x5) = U42_ga(x1, x2, x3, x5) U44_ga(x1, x2, x3, x4, x5) = U44_ga(x1, x2, x3, x5) U45_ga(x1, x2, x3, x4) = U45_ga(x1, x2, x4) U46_ga(x1, x2, x3, x4) = U46_ga(x1, x2, x4) s(x1) = s(x1) U48_ga(x1, x2, x3, x4) = U48_ga(x1, x2, x4) isNatcD_in_g(x1) = isNatcD_in_g(x1) U58_g(x1, x2) = U58_g(x1, x2) isNatcD_out_g(x1) = isNatcD_out_g(x1) U49_ga(x1, x2, x3, x4) = U49_ga(x1, x2, x4) U50_ga(x1, x2, x3, x4) = U50_ga(x1, x2, x4) addcF_in_gga(x1, x2, x3) = addcF_in_gga(x1, x2) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) addcF_out_gga(x1, x2, x3) = addcF_out_gga(x1, x2, x3) U51_ga(x1, x2) = U51_ga(x1, x2) U52_ga(x1, x2) = U52_ga(x1, x2) U53_ga(x1, x2, x3, x4) = U53_ga(x1, x2, x4) U55_ga(x1, x2, x3, x4) = U55_ga(x1, x2, x4) U56_ga(x1, x2, x3, x4) = U56_ga(x1, x2, x4) U57_ga(x1, x2, x3, x4) = U57_ga(x1, x2, x4) U54_ga(x1, x2, x3, x4) = U54_ga(x1, x2, x4) qcB_in_gaga(x1, x2, x3, x4) = qcB_in_gaga(x1, x3) U59_gaga(x1, x2, x3, x4, x5) = U59_gaga(x1, x3, x5) U60_gaga(x1, x2, x3, x4, x5) = U60_gaga(x1, x2, x3, x5) qcB_out_gaga(x1, x2, x3, x4) = qcB_out_gaga(x1, x2, x3, x4) U47_ga(x1, x2, x3, x4) = U47_ga(x1, x2, x4) U43_ga(x1, x2, x3, x4, x5) = U43_ga(x1, x2, x3, x5) U40_ga(x1, x2, x3, x4, x5) = U40_ga(x1, x2, x3, x5) ADDF_IN_GGA(x1, x2, x3) = ADDF_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (138) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (139) Obligation: Pi DP problem: The TRS P consists of the following rules: ADDF_IN_GGA(s(X1), X2, s(X3)) -> ADDF_IN_GGA(X1, X2, X3) R is empty. The argument filtering Pi contains the following mapping: s(x1) = s(x1) ADDF_IN_GGA(x1, x2, x3) = ADDF_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (140) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (141) Obligation: Q DP problem: The TRS P consists of the following rules: ADDF_IN_GGA(s(X1), X2) -> ADDF_IN_GGA(X1, X2) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (142) 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: *ADDF_IN_GGA(s(X1), X2) -> ADDF_IN_GGA(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (143) YES ---------------------------------------- (144) Obligation: Pi DP problem: The TRS P consists of the following rules: ISNATD_IN_G(s(X1)) -> ISNATD_IN_G(X1) The TRS R consists of the following rules: s2cA_in_ga(plus(X1, plus(X2, plus(X3, X4))), X5) -> U37_ga(X1, X2, X3, X4, X5, s2cA_in_ga(plus(plus(plus(X1, X2), X3), X4), X5)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U38_ga(X1, X2, X3, X4, s2cA_in_ga(plus(X3, plus(X1, X2)), X4)) s2cA_in_ga(plus(X1, plus(X2, 0)), plus(X1, X2)) -> s2cA_out_ga(plus(X1, plus(X2, 0)), plus(X1, X2)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U39_ga(X1, X2, X3, X4, s2cA_in_ga(plus(X1, X2), X5)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U41_ga(X1, X2, X3, X4, s2cA_in_ga(plus(plus(X2, X3), X1), X4)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U42_ga(X1, X2, X3, X4, s2cA_in_ga(X1, X5)) s2cA_in_ga(plus(plus(X1, X2), X3), X4) -> U44_ga(X1, X2, X3, X4, s2cA_in_ga(plus(plus(X3, X1), X2), X4)) s2cA_in_ga(plus(X1, X2), X3) -> U45_ga(X1, X2, X3, s2cA_in_ga(plus(X1, X2), X3)) s2cA_in_ga(plus(0, X1), X1) -> s2cA_out_ga(plus(0, X1), X1) s2cA_in_ga(plus(X1, X2), X3) -> U46_ga(X1, X2, X3, s2cA_in_ga(X2, X4)) s2cA_in_ga(plus(X1, s(X2)), s(X3)) -> U48_ga(X1, X2, X3, isNatcD_in_g(s(X2))) isNatcD_in_g(s(X1)) -> U58_g(X1, isNatcD_in_g(X1)) isNatcD_in_g(0) -> isNatcD_out_g(0) U58_g(X1, isNatcD_out_g(X1)) -> isNatcD_out_g(s(X1)) U48_ga(X1, X2, X3, isNatcD_out_g(s(X2))) -> U49_ga(X1, X2, X3, isNatcD_in_g(X1)) U49_ga(X1, X2, X3, isNatcD_out_g(X1)) -> U50_ga(X1, X2, X3, addcF_in_gga(X2, X1, X3)) addcF_in_gga(s(X1), X2, s(X3)) -> U62_gga(X1, X2, X3, addcF_in_gga(X1, X2, X3)) addcF_in_gga(0, X1, X1) -> addcF_out_gga(0, X1, X1) U62_gga(X1, X2, X3, addcF_out_gga(X1, X2, X3)) -> addcF_out_gga(s(X1), X2, s(X3)) U50_ga(X1, X2, X3, addcF_out_gga(X2, X1, X3)) -> s2cA_out_ga(plus(X1, s(X2)), s(X3)) s2cA_in_ga(plus(X1, 0), X1) -> U51_ga(X1, isNatcD_in_g(0)) U51_ga(X1, isNatcD_out_g(0)) -> U52_ga(X1, isNatcD_in_g(X1)) U52_ga(X1, isNatcD_out_g(X1)) -> s2cA_out_ga(plus(X1, 0), X1) s2cA_in_ga(plus(X1, 0), X1) -> s2cA_out_ga(plus(X1, 0), X1) s2cA_in_ga(plus(X1, X2), X3) -> U53_ga(X1, X2, X3, s2cA_in_ga(X1, X4)) s2cA_in_ga(plus(X1, X2), X3) -> U55_ga(X1, X2, X3, isNatcD_in_g(X1)) U55_ga(X1, X2, X3, isNatcD_out_g(X1)) -> U56_ga(X1, X2, X3, isNatcD_in_g(X2)) U56_ga(X1, X2, X3, isNatcD_out_g(X2)) -> U57_ga(X1, X2, X3, addcF_in_gga(X1, X2, X3)) U57_ga(X1, X2, X3, addcF_out_gga(X1, X2, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U53_ga(X1, X2, X3, s2cA_out_ga(X1, X4)) -> U54_ga(X1, X2, X3, qcB_in_gaga(X2, X5, X4, X3)) qcB_in_gaga(X1, X2, X3, X4) -> U59_gaga(X1, X2, X3, X4, s2cA_in_ga(X1, X2)) U59_gaga(X1, X2, X3, X4, s2cA_out_ga(X1, X2)) -> U60_gaga(X1, X2, X3, X4, s2cA_in_ga(plus(X3, X2), X4)) U60_gaga(X1, X2, X3, X4, s2cA_out_ga(plus(X3, X2), X4)) -> qcB_out_gaga(X1, X2, X3, X4) U54_ga(X1, X2, X3, qcB_out_gaga(X2, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U46_ga(X1, X2, X3, s2cA_out_ga(X2, X4)) -> U47_ga(X1, X2, X3, qcB_in_gaga(X1, X5, X4, X3)) U47_ga(X1, X2, X3, qcB_out_gaga(X1, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U45_ga(X1, X2, X3, s2cA_out_ga(plus(X1, X2), X3)) -> s2cA_out_ga(plus(X1, X2), X3) U44_ga(X1, X2, X3, X4, s2cA_out_ga(plus(plus(X3, X1), X2), X4)) -> s2cA_out_ga(plus(plus(X1, X2), X3), X4) U42_ga(X1, X2, X3, X4, s2cA_out_ga(X1, X5)) -> U43_ga(X1, X2, X3, X4, qcB_in_gaga(plus(X2, X3), X6, X5, X4)) U43_ga(X1, X2, X3, X4, qcB_out_gaga(plus(X2, X3), X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U41_ga(X1, X2, X3, X4, s2cA_out_ga(plus(plus(X2, X3), X1), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U39_ga(X1, X2, X3, X4, s2cA_out_ga(plus(X1, X2), X5)) -> U40_ga(X1, X2, X3, X4, qcB_in_gaga(X3, X6, X5, X4)) U40_ga(X1, X2, X3, X4, qcB_out_gaga(X3, X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U38_ga(X1, X2, X3, X4, s2cA_out_ga(plus(X3, plus(X1, X2)), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U37_ga(X1, X2, X3, X4, X5, s2cA_out_ga(plus(plus(plus(X1, X2), X3), X4), X5)) -> s2cA_out_ga(plus(X1, plus(X2, plus(X3, X4))), X5) The argument filtering Pi contains the following mapping: plus(x1, x2) = plus(x1, x2) s2cA_in_ga(x1, x2) = s2cA_in_ga(x1) U37_ga(x1, x2, x3, x4, x5, x6) = U37_ga(x1, x2, x3, x4, x6) U38_ga(x1, x2, x3, x4, x5) = U38_ga(x1, x2, x3, x5) 0 = 0 s2cA_out_ga(x1, x2) = s2cA_out_ga(x1, x2) U39_ga(x1, x2, x3, x4, x5) = U39_ga(x1, x2, x3, x5) U41_ga(x1, x2, x3, x4, x5) = U41_ga(x1, x2, x3, x5) U42_ga(x1, x2, x3, x4, x5) = U42_ga(x1, x2, x3, x5) U44_ga(x1, x2, x3, x4, x5) = U44_ga(x1, x2, x3, x5) U45_ga(x1, x2, x3, x4) = U45_ga(x1, x2, x4) U46_ga(x1, x2, x3, x4) = U46_ga(x1, x2, x4) s(x1) = s(x1) U48_ga(x1, x2, x3, x4) = U48_ga(x1, x2, x4) isNatcD_in_g(x1) = isNatcD_in_g(x1) U58_g(x1, x2) = U58_g(x1, x2) isNatcD_out_g(x1) = isNatcD_out_g(x1) U49_ga(x1, x2, x3, x4) = U49_ga(x1, x2, x4) U50_ga(x1, x2, x3, x4) = U50_ga(x1, x2, x4) addcF_in_gga(x1, x2, x3) = addcF_in_gga(x1, x2) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) addcF_out_gga(x1, x2, x3) = addcF_out_gga(x1, x2, x3) U51_ga(x1, x2) = U51_ga(x1, x2) U52_ga(x1, x2) = U52_ga(x1, x2) U53_ga(x1, x2, x3, x4) = U53_ga(x1, x2, x4) U55_ga(x1, x2, x3, x4) = U55_ga(x1, x2, x4) U56_ga(x1, x2, x3, x4) = U56_ga(x1, x2, x4) U57_ga(x1, x2, x3, x4) = U57_ga(x1, x2, x4) U54_ga(x1, x2, x3, x4) = U54_ga(x1, x2, x4) qcB_in_gaga(x1, x2, x3, x4) = qcB_in_gaga(x1, x3) U59_gaga(x1, x2, x3, x4, x5) = U59_gaga(x1, x3, x5) U60_gaga(x1, x2, x3, x4, x5) = U60_gaga(x1, x2, x3, x5) qcB_out_gaga(x1, x2, x3, x4) = qcB_out_gaga(x1, x2, x3, x4) U47_ga(x1, x2, x3, x4) = U47_ga(x1, x2, x4) U43_ga(x1, x2, x3, x4, x5) = U43_ga(x1, x2, x3, x5) U40_ga(x1, x2, x3, x4, x5) = U40_ga(x1, x2, x3, x5) ISNATD_IN_G(x1) = ISNATD_IN_G(x1) We have to consider all (P,R,Pi)-chains ---------------------------------------- (145) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (146) Obligation: Pi DP problem: The TRS P consists of the following rules: ISNATD_IN_G(s(X1)) -> ISNATD_IN_G(X1) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (147) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (148) Obligation: Q DP problem: The TRS P consists of the following rules: ISNATD_IN_G(s(X1)) -> ISNATD_IN_G(X1) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (149) 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: *ISNATD_IN_G(s(X1)) -> ISNATD_IN_G(X1) The graph contains the following edges 1 > 1 ---------------------------------------- (150) YES ---------------------------------------- (151) Obligation: Pi DP problem: The TRS P consists of the following rules: S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> S2A_IN_GA(plus(X3, plus(X1, X2)), X4) S2A_IN_GA(plus(X1, plus(X2, plus(X3, X4))), X5) -> S2A_IN_GA(plus(plus(plus(X1, X2), X3), X4), X5) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> S2A_IN_GA(plus(X1, X2), X5) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> U10_GA(X1, X2, X3, X4, s2cA_in_ga(plus(X1, X2), X5)) U10_GA(X1, X2, X3, X4, s2cA_out_ga(plus(X1, X2), X5)) -> PB_IN_GAGA(X3, X6, X5, X4) PB_IN_GAGA(X1, X2, X3, X4) -> S2A_IN_GA(X1, X2) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> S2A_IN_GA(plus(plus(X2, X3), X1), X4) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> S2A_IN_GA(X1, X5) S2A_IN_GA(plus(X1, plus(X2, X3)), X4) -> U14_GA(X1, X2, X3, X4, s2cA_in_ga(X1, X5)) U14_GA(X1, X2, X3, X4, s2cA_out_ga(X1, X5)) -> PB_IN_GAGA(plus(X2, X3), X6, X5, X4) PB_IN_GAGA(X1, X2, X3, X4) -> U3_GAGA(X1, X2, X3, X4, s2cA_in_ga(X1, X2)) U3_GAGA(X1, X2, X3, X4, s2cA_out_ga(X1, X2)) -> S2A_IN_GA(plus(X3, X2), X4) S2A_IN_GA(plus(plus(X1, X2), X3), X4) -> S2A_IN_GA(plus(plus(X3, X1), X2), X4) S2A_IN_GA(plus(X1, X2), X3) -> S2A_IN_GA(plus(X1, X2), X3) S2A_IN_GA(plus(X1, X2), X3) -> S2A_IN_GA(X2, X4) S2A_IN_GA(plus(X1, X2), X3) -> U20_GA(X1, X2, X3, s2cA_in_ga(X2, X4)) U20_GA(X1, X2, X3, s2cA_out_ga(X2, X4)) -> PB_IN_GAGA(X1, X5, X4, X3) S2A_IN_GA(plus(X1, X2), X3) -> S2A_IN_GA(X1, X4) S2A_IN_GA(plus(X1, X2), X3) -> U29_GA(X1, X2, X3, s2cA_in_ga(X1, X4)) U29_GA(X1, X2, X3, s2cA_out_ga(X1, X4)) -> PB_IN_GAGA(X2, X5, X4, X3) The TRS R consists of the following rules: s2cA_in_ga(plus(X1, plus(X2, plus(X3, X4))), X5) -> U37_ga(X1, X2, X3, X4, X5, s2cA_in_ga(plus(plus(plus(X1, X2), X3), X4), X5)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U38_ga(X1, X2, X3, X4, s2cA_in_ga(plus(X3, plus(X1, X2)), X4)) s2cA_in_ga(plus(X1, plus(X2, 0)), plus(X1, X2)) -> s2cA_out_ga(plus(X1, plus(X2, 0)), plus(X1, X2)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U39_ga(X1, X2, X3, X4, s2cA_in_ga(plus(X1, X2), X5)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U41_ga(X1, X2, X3, X4, s2cA_in_ga(plus(plus(X2, X3), X1), X4)) s2cA_in_ga(plus(X1, plus(X2, X3)), X4) -> U42_ga(X1, X2, X3, X4, s2cA_in_ga(X1, X5)) s2cA_in_ga(plus(plus(X1, X2), X3), X4) -> U44_ga(X1, X2, X3, X4, s2cA_in_ga(plus(plus(X3, X1), X2), X4)) s2cA_in_ga(plus(X1, X2), X3) -> U45_ga(X1, X2, X3, s2cA_in_ga(plus(X1, X2), X3)) s2cA_in_ga(plus(0, X1), X1) -> s2cA_out_ga(plus(0, X1), X1) s2cA_in_ga(plus(X1, X2), X3) -> U46_ga(X1, X2, X3, s2cA_in_ga(X2, X4)) s2cA_in_ga(plus(X1, s(X2)), s(X3)) -> U48_ga(X1, X2, X3, isNatcD_in_g(s(X2))) isNatcD_in_g(s(X1)) -> U58_g(X1, isNatcD_in_g(X1)) isNatcD_in_g(0) -> isNatcD_out_g(0) U58_g(X1, isNatcD_out_g(X1)) -> isNatcD_out_g(s(X1)) U48_ga(X1, X2, X3, isNatcD_out_g(s(X2))) -> U49_ga(X1, X2, X3, isNatcD_in_g(X1)) U49_ga(X1, X2, X3, isNatcD_out_g(X1)) -> U50_ga(X1, X2, X3, addcF_in_gga(X2, X1, X3)) addcF_in_gga(s(X1), X2, s(X3)) -> U62_gga(X1, X2, X3, addcF_in_gga(X1, X2, X3)) addcF_in_gga(0, X1, X1) -> addcF_out_gga(0, X1, X1) U62_gga(X1, X2, X3, addcF_out_gga(X1, X2, X3)) -> addcF_out_gga(s(X1), X2, s(X3)) U50_ga(X1, X2, X3, addcF_out_gga(X2, X1, X3)) -> s2cA_out_ga(plus(X1, s(X2)), s(X3)) s2cA_in_ga(plus(X1, 0), X1) -> U51_ga(X1, isNatcD_in_g(0)) U51_ga(X1, isNatcD_out_g(0)) -> U52_ga(X1, isNatcD_in_g(X1)) U52_ga(X1, isNatcD_out_g(X1)) -> s2cA_out_ga(plus(X1, 0), X1) s2cA_in_ga(plus(X1, 0), X1) -> s2cA_out_ga(plus(X1, 0), X1) s2cA_in_ga(plus(X1, X2), X3) -> U53_ga(X1, X2, X3, s2cA_in_ga(X1, X4)) s2cA_in_ga(plus(X1, X2), X3) -> U55_ga(X1, X2, X3, isNatcD_in_g(X1)) U55_ga(X1, X2, X3, isNatcD_out_g(X1)) -> U56_ga(X1, X2, X3, isNatcD_in_g(X2)) U56_ga(X1, X2, X3, isNatcD_out_g(X2)) -> U57_ga(X1, X2, X3, addcF_in_gga(X1, X2, X3)) U57_ga(X1, X2, X3, addcF_out_gga(X1, X2, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U53_ga(X1, X2, X3, s2cA_out_ga(X1, X4)) -> U54_ga(X1, X2, X3, qcB_in_gaga(X2, X5, X4, X3)) qcB_in_gaga(X1, X2, X3, X4) -> U59_gaga(X1, X2, X3, X4, s2cA_in_ga(X1, X2)) U59_gaga(X1, X2, X3, X4, s2cA_out_ga(X1, X2)) -> U60_gaga(X1, X2, X3, X4, s2cA_in_ga(plus(X3, X2), X4)) U60_gaga(X1, X2, X3, X4, s2cA_out_ga(plus(X3, X2), X4)) -> qcB_out_gaga(X1, X2, X3, X4) U54_ga(X1, X2, X3, qcB_out_gaga(X2, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U46_ga(X1, X2, X3, s2cA_out_ga(X2, X4)) -> U47_ga(X1, X2, X3, qcB_in_gaga(X1, X5, X4, X3)) U47_ga(X1, X2, X3, qcB_out_gaga(X1, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U45_ga(X1, X2, X3, s2cA_out_ga(plus(X1, X2), X3)) -> s2cA_out_ga(plus(X1, X2), X3) U44_ga(X1, X2, X3, X4, s2cA_out_ga(plus(plus(X3, X1), X2), X4)) -> s2cA_out_ga(plus(plus(X1, X2), X3), X4) U42_ga(X1, X2, X3, X4, s2cA_out_ga(X1, X5)) -> U43_ga(X1, X2, X3, X4, qcB_in_gaga(plus(X2, X3), X6, X5, X4)) U43_ga(X1, X2, X3, X4, qcB_out_gaga(plus(X2, X3), X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U41_ga(X1, X2, X3, X4, s2cA_out_ga(plus(plus(X2, X3), X1), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U39_ga(X1, X2, X3, X4, s2cA_out_ga(plus(X1, X2), X5)) -> U40_ga(X1, X2, X3, X4, qcB_in_gaga(X3, X6, X5, X4)) U40_ga(X1, X2, X3, X4, qcB_out_gaga(X3, X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U38_ga(X1, X2, X3, X4, s2cA_out_ga(plus(X3, plus(X1, X2)), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U37_ga(X1, X2, X3, X4, X5, s2cA_out_ga(plus(plus(plus(X1, X2), X3), X4), X5)) -> s2cA_out_ga(plus(X1, plus(X2, plus(X3, X4))), X5) The argument filtering Pi contains the following mapping: plus(x1, x2) = plus(x1, x2) s2cA_in_ga(x1, x2) = s2cA_in_ga(x1) U37_ga(x1, x2, x3, x4, x5, x6) = U37_ga(x1, x2, x3, x4, x6) U38_ga(x1, x2, x3, x4, x5) = U38_ga(x1, x2, x3, x5) 0 = 0 s2cA_out_ga(x1, x2) = s2cA_out_ga(x1, x2) U39_ga(x1, x2, x3, x4, x5) = U39_ga(x1, x2, x3, x5) U41_ga(x1, x2, x3, x4, x5) = U41_ga(x1, x2, x3, x5) U42_ga(x1, x2, x3, x4, x5) = U42_ga(x1, x2, x3, x5) U44_ga(x1, x2, x3, x4, x5) = U44_ga(x1, x2, x3, x5) U45_ga(x1, x2, x3, x4) = U45_ga(x1, x2, x4) U46_ga(x1, x2, x3, x4) = U46_ga(x1, x2, x4) s(x1) = s(x1) U48_ga(x1, x2, x3, x4) = U48_ga(x1, x2, x4) isNatcD_in_g(x1) = isNatcD_in_g(x1) U58_g(x1, x2) = U58_g(x1, x2) isNatcD_out_g(x1) = isNatcD_out_g(x1) U49_ga(x1, x2, x3, x4) = U49_ga(x1, x2, x4) U50_ga(x1, x2, x3, x4) = U50_ga(x1, x2, x4) addcF_in_gga(x1, x2, x3) = addcF_in_gga(x1, x2) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) addcF_out_gga(x1, x2, x3) = addcF_out_gga(x1, x2, x3) U51_ga(x1, x2) = U51_ga(x1, x2) U52_ga(x1, x2) = U52_ga(x1, x2) U53_ga(x1, x2, x3, x4) = U53_ga(x1, x2, x4) U55_ga(x1, x2, x3, x4) = U55_ga(x1, x2, x4) U56_ga(x1, x2, x3, x4) = U56_ga(x1, x2, x4) U57_ga(x1, x2, x3, x4) = U57_ga(x1, x2, x4) U54_ga(x1, x2, x3, x4) = U54_ga(x1, x2, x4) qcB_in_gaga(x1, x2, x3, x4) = qcB_in_gaga(x1, x3) U59_gaga(x1, x2, x3, x4, x5) = U59_gaga(x1, x3, x5) U60_gaga(x1, x2, x3, x4, x5) = U60_gaga(x1, x2, x3, x5) qcB_out_gaga(x1, x2, x3, x4) = qcB_out_gaga(x1, x2, x3, x4) U47_ga(x1, x2, x3, x4) = U47_ga(x1, x2, x4) U43_ga(x1, x2, x3, x4, x5) = U43_ga(x1, x2, x3, x5) U40_ga(x1, x2, x3, x4, x5) = U40_ga(x1, x2, x3, x5) S2A_IN_GA(x1, x2) = S2A_IN_GA(x1) U10_GA(x1, x2, x3, x4, x5) = U10_GA(x1, x2, x3, x5) PB_IN_GAGA(x1, x2, x3, x4) = PB_IN_GAGA(x1, x3) U14_GA(x1, x2, x3, x4, x5) = U14_GA(x1, x2, x3, x5) U3_GAGA(x1, x2, x3, x4, x5) = U3_GAGA(x1, x3, x5) U20_GA(x1, x2, x3, x4) = U20_GA(x1, x2, x4) U29_GA(x1, x2, x3, x4) = U29_GA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (152) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (153) Obligation: Q DP problem: The TRS P consists of the following rules: S2A_IN_GA(plus(X1, plus(X2, X3))) -> S2A_IN_GA(plus(X3, plus(X1, X2))) S2A_IN_GA(plus(X1, plus(X2, plus(X3, X4)))) -> S2A_IN_GA(plus(plus(plus(X1, X2), X3), X4)) S2A_IN_GA(plus(X1, plus(X2, X3))) -> S2A_IN_GA(plus(X1, X2)) S2A_IN_GA(plus(X1, plus(X2, X3))) -> U10_GA(X1, X2, X3, s2cA_in_ga(plus(X1, X2))) U10_GA(X1, X2, X3, s2cA_out_ga(plus(X1, X2), X5)) -> PB_IN_GAGA(X3, X5) PB_IN_GAGA(X1, X3) -> S2A_IN_GA(X1) S2A_IN_GA(plus(X1, plus(X2, X3))) -> S2A_IN_GA(plus(plus(X2, X3), X1)) S2A_IN_GA(plus(X1, plus(X2, X3))) -> S2A_IN_GA(X1) S2A_IN_GA(plus(X1, plus(X2, X3))) -> U14_GA(X1, X2, X3, s2cA_in_ga(X1)) U14_GA(X1, X2, X3, s2cA_out_ga(X1, X5)) -> PB_IN_GAGA(plus(X2, X3), X5) PB_IN_GAGA(X1, X3) -> U3_GAGA(X1, X3, s2cA_in_ga(X1)) U3_GAGA(X1, X3, s2cA_out_ga(X1, X2)) -> S2A_IN_GA(plus(X3, X2)) S2A_IN_GA(plus(plus(X1, X2), X3)) -> S2A_IN_GA(plus(plus(X3, X1), X2)) S2A_IN_GA(plus(X1, X2)) -> S2A_IN_GA(plus(X1, X2)) S2A_IN_GA(plus(X1, X2)) -> S2A_IN_GA(X2) S2A_IN_GA(plus(X1, X2)) -> U20_GA(X1, X2, s2cA_in_ga(X2)) U20_GA(X1, X2, s2cA_out_ga(X2, X4)) -> PB_IN_GAGA(X1, X4) S2A_IN_GA(plus(X1, X2)) -> S2A_IN_GA(X1) S2A_IN_GA(plus(X1, X2)) -> U29_GA(X1, X2, s2cA_in_ga(X1)) U29_GA(X1, X2, s2cA_out_ga(X1, X4)) -> PB_IN_GAGA(X2, X4) The TRS R consists of the following rules: s2cA_in_ga(plus(X1, plus(X2, plus(X3, X4)))) -> U37_ga(X1, X2, X3, X4, s2cA_in_ga(plus(plus(plus(X1, X2), X3), X4))) s2cA_in_ga(plus(X1, plus(X2, X3))) -> U38_ga(X1, X2, X3, s2cA_in_ga(plus(X3, plus(X1, X2)))) s2cA_in_ga(plus(X1, plus(X2, 0))) -> s2cA_out_ga(plus(X1, plus(X2, 0)), plus(X1, X2)) s2cA_in_ga(plus(X1, plus(X2, X3))) -> U39_ga(X1, X2, X3, s2cA_in_ga(plus(X1, X2))) s2cA_in_ga(plus(X1, plus(X2, X3))) -> U41_ga(X1, X2, X3, s2cA_in_ga(plus(plus(X2, X3), X1))) s2cA_in_ga(plus(X1, plus(X2, X3))) -> U42_ga(X1, X2, X3, s2cA_in_ga(X1)) s2cA_in_ga(plus(plus(X1, X2), X3)) -> U44_ga(X1, X2, X3, s2cA_in_ga(plus(plus(X3, X1), X2))) s2cA_in_ga(plus(X1, X2)) -> U45_ga(X1, X2, s2cA_in_ga(plus(X1, X2))) s2cA_in_ga(plus(0, X1)) -> s2cA_out_ga(plus(0, X1), X1) s2cA_in_ga(plus(X1, X2)) -> U46_ga(X1, X2, s2cA_in_ga(X2)) s2cA_in_ga(plus(X1, s(X2))) -> U48_ga(X1, X2, isNatcD_in_g(s(X2))) isNatcD_in_g(s(X1)) -> U58_g(X1, isNatcD_in_g(X1)) isNatcD_in_g(0) -> isNatcD_out_g(0) U58_g(X1, isNatcD_out_g(X1)) -> isNatcD_out_g(s(X1)) U48_ga(X1, X2, isNatcD_out_g(s(X2))) -> U49_ga(X1, X2, isNatcD_in_g(X1)) U49_ga(X1, X2, isNatcD_out_g(X1)) -> U50_ga(X1, X2, addcF_in_gga(X2, X1)) addcF_in_gga(s(X1), X2) -> U62_gga(X1, X2, addcF_in_gga(X1, X2)) addcF_in_gga(0, X1) -> addcF_out_gga(0, X1, X1) U62_gga(X1, X2, addcF_out_gga(X1, X2, X3)) -> addcF_out_gga(s(X1), X2, s(X3)) U50_ga(X1, X2, addcF_out_gga(X2, X1, X3)) -> s2cA_out_ga(plus(X1, s(X2)), s(X3)) s2cA_in_ga(plus(X1, 0)) -> U51_ga(X1, isNatcD_in_g(0)) U51_ga(X1, isNatcD_out_g(0)) -> U52_ga(X1, isNatcD_in_g(X1)) U52_ga(X1, isNatcD_out_g(X1)) -> s2cA_out_ga(plus(X1, 0), X1) s2cA_in_ga(plus(X1, 0)) -> s2cA_out_ga(plus(X1, 0), X1) s2cA_in_ga(plus(X1, X2)) -> U53_ga(X1, X2, s2cA_in_ga(X1)) s2cA_in_ga(plus(X1, X2)) -> U55_ga(X1, X2, isNatcD_in_g(X1)) U55_ga(X1, X2, isNatcD_out_g(X1)) -> U56_ga(X1, X2, isNatcD_in_g(X2)) U56_ga(X1, X2, isNatcD_out_g(X2)) -> U57_ga(X1, X2, addcF_in_gga(X1, X2)) U57_ga(X1, X2, addcF_out_gga(X1, X2, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U53_ga(X1, X2, s2cA_out_ga(X1, X4)) -> U54_ga(X1, X2, qcB_in_gaga(X2, X4)) qcB_in_gaga(X1, X3) -> U59_gaga(X1, X3, s2cA_in_ga(X1)) U59_gaga(X1, X3, s2cA_out_ga(X1, X2)) -> U60_gaga(X1, X2, X3, s2cA_in_ga(plus(X3, X2))) U60_gaga(X1, X2, X3, s2cA_out_ga(plus(X3, X2), X4)) -> qcB_out_gaga(X1, X2, X3, X4) U54_ga(X1, X2, qcB_out_gaga(X2, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U46_ga(X1, X2, s2cA_out_ga(X2, X4)) -> U47_ga(X1, X2, qcB_in_gaga(X1, X4)) U47_ga(X1, X2, qcB_out_gaga(X1, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U45_ga(X1, X2, s2cA_out_ga(plus(X1, X2), X3)) -> s2cA_out_ga(plus(X1, X2), X3) U44_ga(X1, X2, X3, s2cA_out_ga(plus(plus(X3, X1), X2), X4)) -> s2cA_out_ga(plus(plus(X1, X2), X3), X4) U42_ga(X1, X2, X3, s2cA_out_ga(X1, X5)) -> U43_ga(X1, X2, X3, qcB_in_gaga(plus(X2, X3), X5)) U43_ga(X1, X2, X3, qcB_out_gaga(plus(X2, X3), X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U41_ga(X1, X2, X3, s2cA_out_ga(plus(plus(X2, X3), X1), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U39_ga(X1, X2, X3, s2cA_out_ga(plus(X1, X2), X5)) -> U40_ga(X1, X2, X3, qcB_in_gaga(X3, X5)) U40_ga(X1, X2, X3, qcB_out_gaga(X3, X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U38_ga(X1, X2, X3, s2cA_out_ga(plus(X3, plus(X1, X2)), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U37_ga(X1, X2, X3, X4, s2cA_out_ga(plus(plus(plus(X1, X2), X3), X4), X5)) -> s2cA_out_ga(plus(X1, plus(X2, plus(X3, X4))), X5) The set Q consists of the following terms: s2cA_in_ga(x0) isNatcD_in_g(x0) U58_g(x0, x1) U48_ga(x0, x1, x2) U49_ga(x0, x1, x2) addcF_in_gga(x0, x1) U62_gga(x0, x1, x2) U50_ga(x0, x1, x2) U51_ga(x0, x1) U52_ga(x0, x1) U55_ga(x0, x1, x2) U56_ga(x0, x1, x2) U57_ga(x0, x1, x2) U53_ga(x0, x1, x2) qcB_in_gaga(x0, x1) U59_gaga(x0, x1, x2) U60_gaga(x0, x1, x2, x3) U54_ga(x0, x1, x2) U46_ga(x0, x1, x2) U47_ga(x0, x1, x2) U45_ga(x0, x1, x2) U44_ga(x0, x1, x2, x3) U42_ga(x0, x1, x2, x3) U43_ga(x0, x1, x2, x3) U41_ga(x0, x1, x2, x3) U39_ga(x0, x1, x2, x3) U40_ga(x0, x1, x2, x3) U38_ga(x0, x1, x2, x3) U37_ga(x0, x1, x2, x3, x4) We have to consider all (P,Q,R)-chains. ---------------------------------------- (154) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. S2A_IN_GA(plus(X1, plus(X2, X3))) -> S2A_IN_GA(plus(X1, X2)) S2A_IN_GA(plus(X1, plus(X2, X3))) -> U10_GA(X1, X2, X3, s2cA_in_ga(plus(X1, X2))) U10_GA(X1, X2, X3, s2cA_out_ga(plus(X1, X2), X5)) -> PB_IN_GAGA(X3, X5) S2A_IN_GA(plus(X1, plus(X2, X3))) -> S2A_IN_GA(X1) S2A_IN_GA(plus(X1, plus(X2, X3))) -> U14_GA(X1, X2, X3, s2cA_in_ga(X1)) U3_GAGA(X1, X3, s2cA_out_ga(X1, X2)) -> S2A_IN_GA(plus(X3, X2)) S2A_IN_GA(plus(X1, X2)) -> S2A_IN_GA(X2) S2A_IN_GA(plus(X1, X2)) -> U20_GA(X1, X2, s2cA_in_ga(X2)) U20_GA(X1, X2, s2cA_out_ga(X2, X4)) -> PB_IN_GAGA(X1, X4) S2A_IN_GA(plus(X1, X2)) -> S2A_IN_GA(X1) S2A_IN_GA(plus(X1, X2)) -> U29_GA(X1, X2, s2cA_in_ga(X1)) U29_GA(X1, X2, s2cA_out_ga(X1, X4)) -> PB_IN_GAGA(X2, X4) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( U10_GA_4(x_1, ..., x_4) ) = 2x_3 + 2x_4 + 2 POL( U14_GA_4(x_1, ..., x_4) ) = 2x_2 + 2x_3 + 2x_4 POL( U20_GA_3(x_1, ..., x_3) ) = 2x_1 + 2x_3 + 1 POL( U29_GA_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 POL( U3_GAGA_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( s2cA_in_ga_1(x_1) ) = max{0, x_1 - 1} POL( plus_2(x_1, x_2) ) = x_1 + x_2 + 1 POL( U37_ga_5(x_1, ..., x_5) ) = x_5 POL( U38_ga_4(x_1, ..., x_4) ) = x_4 POL( 0 ) = 2 POL( s2cA_out_ga_2(x_1, x_2) ) = x_2 + 2 POL( U39_ga_4(x_1, ..., x_4) ) = x_3 + x_4 POL( U41_ga_4(x_1, ..., x_4) ) = x_4 POL( U42_ga_4(x_1, ..., x_4) ) = x_2 + x_3 + x_4 POL( U44_ga_4(x_1, ..., x_4) ) = x_4 POL( U45_ga_3(x_1, ..., x_3) ) = x_3 POL( U46_ga_3(x_1, ..., x_3) ) = max{0, x_1 + x_3 - 1} POL( s_1(x_1) ) = x_1 + 2 POL( U48_ga_3(x_1, ..., x_3) ) = x_1 + x_2 + 2 POL( isNatcD_in_g_1(x_1) ) = max{0, -2} POL( U51_ga_2(x_1, x_2) ) = x_1 + 2 POL( U53_ga_3(x_1, ..., x_3) ) = x_2 + x_3 POL( U55_ga_3(x_1, ..., x_3) ) = x_1 + x_2 POL( U54_ga_3(x_1, ..., x_3) ) = x_3 + 1 POL( qcB_in_gaga_2(x_1, x_2) ) = x_1 + x_2 POL( qcB_out_gaga_4(x_1, ..., x_4) ) = x_4 + 1 POL( U59_gaga_3(x_1, ..., x_3) ) = max{0, x_2 + x_3 - 2} POL( U60_gaga_4(x_1, ..., x_4) ) = max{0, x_4 - 1} POL( U47_ga_3(x_1, ..., x_3) ) = x_3 + 1 POL( U43_ga_4(x_1, ..., x_4) ) = x_4 + 1 POL( U40_ga_4(x_1, ..., x_4) ) = x_4 + 2 POL( U49_ga_3(x_1, ..., x_3) ) = x_1 + x_2 + 2 POL( U52_ga_2(x_1, x_2) ) = x_1 + 2 POL( U56_ga_3(x_1, ..., x_3) ) = x_1 + x_2 POL( U58_g_2(x_1, x_2) ) = 0 POL( isNatcD_out_g_1(x_1) ) = max{0, -2} POL( U50_ga_3(x_1, ..., x_3) ) = x_3 + 2 POL( addcF_in_gga_2(x_1, x_2) ) = x_1 + x_2 POL( U57_ga_3(x_1, ..., x_3) ) = x_3 POL( U62_gga_3(x_1, ..., x_3) ) = x_3 + 2 POL( addcF_out_gga_3(x_1, ..., x_3) ) = x_3 + 2 POL( S2A_IN_GA_1(x_1) ) = 2x_1 + 2 POL( PB_IN_GAGA_2(x_1, x_2) ) = 2x_1 + 2x_2 + 2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: s2cA_in_ga(plus(X1, plus(X2, plus(X3, X4)))) -> U37_ga(X1, X2, X3, X4, s2cA_in_ga(plus(plus(plus(X1, X2), X3), X4))) s2cA_in_ga(plus(X1, plus(X2, X3))) -> U38_ga(X1, X2, X3, s2cA_in_ga(plus(X3, plus(X1, X2)))) s2cA_in_ga(plus(X1, plus(X2, 0))) -> s2cA_out_ga(plus(X1, plus(X2, 0)), plus(X1, X2)) s2cA_in_ga(plus(X1, plus(X2, X3))) -> U39_ga(X1, X2, X3, s2cA_in_ga(plus(X1, X2))) s2cA_in_ga(plus(X1, plus(X2, X3))) -> U41_ga(X1, X2, X3, s2cA_in_ga(plus(plus(X2, X3), X1))) s2cA_in_ga(plus(X1, plus(X2, X3))) -> U42_ga(X1, X2, X3, s2cA_in_ga(X1)) s2cA_in_ga(plus(plus(X1, X2), X3)) -> U44_ga(X1, X2, X3, s2cA_in_ga(plus(plus(X3, X1), X2))) s2cA_in_ga(plus(X1, X2)) -> U45_ga(X1, X2, s2cA_in_ga(plus(X1, X2))) s2cA_in_ga(plus(0, X1)) -> s2cA_out_ga(plus(0, X1), X1) s2cA_in_ga(plus(X1, X2)) -> U46_ga(X1, X2, s2cA_in_ga(X2)) s2cA_in_ga(plus(X1, s(X2))) -> U48_ga(X1, X2, isNatcD_in_g(s(X2))) s2cA_in_ga(plus(X1, 0)) -> U51_ga(X1, isNatcD_in_g(0)) s2cA_in_ga(plus(X1, 0)) -> s2cA_out_ga(plus(X1, 0), X1) s2cA_in_ga(plus(X1, X2)) -> U53_ga(X1, X2, s2cA_in_ga(X1)) s2cA_in_ga(plus(X1, X2)) -> U55_ga(X1, X2, isNatcD_in_g(X1)) U38_ga(X1, X2, X3, s2cA_out_ga(plus(X3, plus(X1, X2)), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U37_ga(X1, X2, X3, X4, s2cA_out_ga(plus(plus(plus(X1, X2), X3), X4), X5)) -> s2cA_out_ga(plus(X1, plus(X2, plus(X3, X4))), X5) U41_ga(X1, X2, X3, s2cA_out_ga(plus(plus(X2, X3), X1), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U44_ga(X1, X2, X3, s2cA_out_ga(plus(plus(X3, X1), X2), X4)) -> s2cA_out_ga(plus(plus(X1, X2), X3), X4) U45_ga(X1, X2, s2cA_out_ga(plus(X1, X2), X3)) -> s2cA_out_ga(plus(X1, X2), X3) U53_ga(X1, X2, s2cA_out_ga(X1, X4)) -> U54_ga(X1, X2, qcB_in_gaga(X2, X4)) U54_ga(X1, X2, qcB_out_gaga(X2, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) qcB_in_gaga(X1, X3) -> U59_gaga(X1, X3, s2cA_in_ga(X1)) U59_gaga(X1, X3, s2cA_out_ga(X1, X2)) -> U60_gaga(X1, X2, X3, s2cA_in_ga(plus(X3, X2))) U60_gaga(X1, X2, X3, s2cA_out_ga(plus(X3, X2), X4)) -> qcB_out_gaga(X1, X2, X3, X4) U46_ga(X1, X2, s2cA_out_ga(X2, X4)) -> U47_ga(X1, X2, qcB_in_gaga(X1, X4)) U47_ga(X1, X2, qcB_out_gaga(X1, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U42_ga(X1, X2, X3, s2cA_out_ga(X1, X5)) -> U43_ga(X1, X2, X3, qcB_in_gaga(plus(X2, X3), X5)) U43_ga(X1, X2, X3, qcB_out_gaga(plus(X2, X3), X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U39_ga(X1, X2, X3, s2cA_out_ga(plus(X1, X2), X5)) -> U40_ga(X1, X2, X3, qcB_in_gaga(X3, X5)) U40_ga(X1, X2, X3, qcB_out_gaga(X3, X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U48_ga(X1, X2, isNatcD_out_g(s(X2))) -> U49_ga(X1, X2, isNatcD_in_g(X1)) U49_ga(X1, X2, isNatcD_out_g(X1)) -> U50_ga(X1, X2, addcF_in_gga(X2, X1)) U51_ga(X1, isNatcD_out_g(0)) -> U52_ga(X1, isNatcD_in_g(X1)) U52_ga(X1, isNatcD_out_g(X1)) -> s2cA_out_ga(plus(X1, 0), X1) U55_ga(X1, X2, isNatcD_out_g(X1)) -> U56_ga(X1, X2, isNatcD_in_g(X2)) U56_ga(X1, X2, isNatcD_out_g(X2)) -> U57_ga(X1, X2, addcF_in_gga(X1, X2)) addcF_in_gga(s(X1), X2) -> U62_gga(X1, X2, addcF_in_gga(X1, X2)) addcF_in_gga(0, X1) -> addcF_out_gga(0, X1, X1) U50_ga(X1, X2, addcF_out_gga(X2, X1, X3)) -> s2cA_out_ga(plus(X1, s(X2)), s(X3)) U57_ga(X1, X2, addcF_out_gga(X1, X2, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U62_gga(X1, X2, addcF_out_gga(X1, X2, X3)) -> addcF_out_gga(s(X1), X2, s(X3)) ---------------------------------------- (155) Obligation: Q DP problem: The TRS P consists of the following rules: S2A_IN_GA(plus(X1, plus(X2, X3))) -> S2A_IN_GA(plus(X3, plus(X1, X2))) S2A_IN_GA(plus(X1, plus(X2, plus(X3, X4)))) -> S2A_IN_GA(plus(plus(plus(X1, X2), X3), X4)) PB_IN_GAGA(X1, X3) -> S2A_IN_GA(X1) S2A_IN_GA(plus(X1, plus(X2, X3))) -> S2A_IN_GA(plus(plus(X2, X3), X1)) U14_GA(X1, X2, X3, s2cA_out_ga(X1, X5)) -> PB_IN_GAGA(plus(X2, X3), X5) PB_IN_GAGA(X1, X3) -> U3_GAGA(X1, X3, s2cA_in_ga(X1)) S2A_IN_GA(plus(plus(X1, X2), X3)) -> S2A_IN_GA(plus(plus(X3, X1), X2)) S2A_IN_GA(plus(X1, X2)) -> S2A_IN_GA(plus(X1, X2)) The TRS R consists of the following rules: s2cA_in_ga(plus(X1, plus(X2, plus(X3, X4)))) -> U37_ga(X1, X2, X3, X4, s2cA_in_ga(plus(plus(plus(X1, X2), X3), X4))) s2cA_in_ga(plus(X1, plus(X2, X3))) -> U38_ga(X1, X2, X3, s2cA_in_ga(plus(X3, plus(X1, X2)))) s2cA_in_ga(plus(X1, plus(X2, 0))) -> s2cA_out_ga(plus(X1, plus(X2, 0)), plus(X1, X2)) s2cA_in_ga(plus(X1, plus(X2, X3))) -> U39_ga(X1, X2, X3, s2cA_in_ga(plus(X1, X2))) s2cA_in_ga(plus(X1, plus(X2, X3))) -> U41_ga(X1, X2, X3, s2cA_in_ga(plus(plus(X2, X3), X1))) s2cA_in_ga(plus(X1, plus(X2, X3))) -> U42_ga(X1, X2, X3, s2cA_in_ga(X1)) s2cA_in_ga(plus(plus(X1, X2), X3)) -> U44_ga(X1, X2, X3, s2cA_in_ga(plus(plus(X3, X1), X2))) s2cA_in_ga(plus(X1, X2)) -> U45_ga(X1, X2, s2cA_in_ga(plus(X1, X2))) s2cA_in_ga(plus(0, X1)) -> s2cA_out_ga(plus(0, X1), X1) s2cA_in_ga(plus(X1, X2)) -> U46_ga(X1, X2, s2cA_in_ga(X2)) s2cA_in_ga(plus(X1, s(X2))) -> U48_ga(X1, X2, isNatcD_in_g(s(X2))) isNatcD_in_g(s(X1)) -> U58_g(X1, isNatcD_in_g(X1)) isNatcD_in_g(0) -> isNatcD_out_g(0) U58_g(X1, isNatcD_out_g(X1)) -> isNatcD_out_g(s(X1)) U48_ga(X1, X2, isNatcD_out_g(s(X2))) -> U49_ga(X1, X2, isNatcD_in_g(X1)) U49_ga(X1, X2, isNatcD_out_g(X1)) -> U50_ga(X1, X2, addcF_in_gga(X2, X1)) addcF_in_gga(s(X1), X2) -> U62_gga(X1, X2, addcF_in_gga(X1, X2)) addcF_in_gga(0, X1) -> addcF_out_gga(0, X1, X1) U62_gga(X1, X2, addcF_out_gga(X1, X2, X3)) -> addcF_out_gga(s(X1), X2, s(X3)) U50_ga(X1, X2, addcF_out_gga(X2, X1, X3)) -> s2cA_out_ga(plus(X1, s(X2)), s(X3)) s2cA_in_ga(plus(X1, 0)) -> U51_ga(X1, isNatcD_in_g(0)) U51_ga(X1, isNatcD_out_g(0)) -> U52_ga(X1, isNatcD_in_g(X1)) U52_ga(X1, isNatcD_out_g(X1)) -> s2cA_out_ga(plus(X1, 0), X1) s2cA_in_ga(plus(X1, 0)) -> s2cA_out_ga(plus(X1, 0), X1) s2cA_in_ga(plus(X1, X2)) -> U53_ga(X1, X2, s2cA_in_ga(X1)) s2cA_in_ga(plus(X1, X2)) -> U55_ga(X1, X2, isNatcD_in_g(X1)) U55_ga(X1, X2, isNatcD_out_g(X1)) -> U56_ga(X1, X2, isNatcD_in_g(X2)) U56_ga(X1, X2, isNatcD_out_g(X2)) -> U57_ga(X1, X2, addcF_in_gga(X1, X2)) U57_ga(X1, X2, addcF_out_gga(X1, X2, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U53_ga(X1, X2, s2cA_out_ga(X1, X4)) -> U54_ga(X1, X2, qcB_in_gaga(X2, X4)) qcB_in_gaga(X1, X3) -> U59_gaga(X1, X3, s2cA_in_ga(X1)) U59_gaga(X1, X3, s2cA_out_ga(X1, X2)) -> U60_gaga(X1, X2, X3, s2cA_in_ga(plus(X3, X2))) U60_gaga(X1, X2, X3, s2cA_out_ga(plus(X3, X2), X4)) -> qcB_out_gaga(X1, X2, X3, X4) U54_ga(X1, X2, qcB_out_gaga(X2, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U46_ga(X1, X2, s2cA_out_ga(X2, X4)) -> U47_ga(X1, X2, qcB_in_gaga(X1, X4)) U47_ga(X1, X2, qcB_out_gaga(X1, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U45_ga(X1, X2, s2cA_out_ga(plus(X1, X2), X3)) -> s2cA_out_ga(plus(X1, X2), X3) U44_ga(X1, X2, X3, s2cA_out_ga(plus(plus(X3, X1), X2), X4)) -> s2cA_out_ga(plus(plus(X1, X2), X3), X4) U42_ga(X1, X2, X3, s2cA_out_ga(X1, X5)) -> U43_ga(X1, X2, X3, qcB_in_gaga(plus(X2, X3), X5)) U43_ga(X1, X2, X3, qcB_out_gaga(plus(X2, X3), X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U41_ga(X1, X2, X3, s2cA_out_ga(plus(plus(X2, X3), X1), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U39_ga(X1, X2, X3, s2cA_out_ga(plus(X1, X2), X5)) -> U40_ga(X1, X2, X3, qcB_in_gaga(X3, X5)) U40_ga(X1, X2, X3, qcB_out_gaga(X3, X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U38_ga(X1, X2, X3, s2cA_out_ga(plus(X3, plus(X1, X2)), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U37_ga(X1, X2, X3, X4, s2cA_out_ga(plus(plus(plus(X1, X2), X3), X4), X5)) -> s2cA_out_ga(plus(X1, plus(X2, plus(X3, X4))), X5) The set Q consists of the following terms: s2cA_in_ga(x0) isNatcD_in_g(x0) U58_g(x0, x1) U48_ga(x0, x1, x2) U49_ga(x0, x1, x2) addcF_in_gga(x0, x1) U62_gga(x0, x1, x2) U50_ga(x0, x1, x2) U51_ga(x0, x1) U52_ga(x0, x1) U55_ga(x0, x1, x2) U56_ga(x0, x1, x2) U57_ga(x0, x1, x2) U53_ga(x0, x1, x2) qcB_in_gaga(x0, x1) U59_gaga(x0, x1, x2) U60_gaga(x0, x1, x2, x3) U54_ga(x0, x1, x2) U46_ga(x0, x1, x2) U47_ga(x0, x1, x2) U45_ga(x0, x1, x2) U44_ga(x0, x1, x2, x3) U42_ga(x0, x1, x2, x3) U43_ga(x0, x1, x2, x3) U41_ga(x0, x1, x2, x3) U39_ga(x0, x1, x2, x3) U40_ga(x0, x1, x2, x3) U38_ga(x0, x1, x2, x3) U37_ga(x0, x1, x2, x3, x4) We have to consider all (P,Q,R)-chains. ---------------------------------------- (156) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. ---------------------------------------- (157) Obligation: Q DP problem: The TRS P consists of the following rules: S2A_IN_GA(plus(X1, plus(X2, plus(X3, X4)))) -> S2A_IN_GA(plus(plus(plus(X1, X2), X3), X4)) S2A_IN_GA(plus(X1, plus(X2, X3))) -> S2A_IN_GA(plus(X3, plus(X1, X2))) S2A_IN_GA(plus(X1, plus(X2, X3))) -> S2A_IN_GA(plus(plus(X2, X3), X1)) S2A_IN_GA(plus(plus(X1, X2), X3)) -> S2A_IN_GA(plus(plus(X3, X1), X2)) S2A_IN_GA(plus(X1, X2)) -> S2A_IN_GA(plus(X1, X2)) The TRS R consists of the following rules: s2cA_in_ga(plus(X1, plus(X2, plus(X3, X4)))) -> U37_ga(X1, X2, X3, X4, s2cA_in_ga(plus(plus(plus(X1, X2), X3), X4))) s2cA_in_ga(plus(X1, plus(X2, X3))) -> U38_ga(X1, X2, X3, s2cA_in_ga(plus(X3, plus(X1, X2)))) s2cA_in_ga(plus(X1, plus(X2, 0))) -> s2cA_out_ga(plus(X1, plus(X2, 0)), plus(X1, X2)) s2cA_in_ga(plus(X1, plus(X2, X3))) -> U39_ga(X1, X2, X3, s2cA_in_ga(plus(X1, X2))) s2cA_in_ga(plus(X1, plus(X2, X3))) -> U41_ga(X1, X2, X3, s2cA_in_ga(plus(plus(X2, X3), X1))) s2cA_in_ga(plus(X1, plus(X2, X3))) -> U42_ga(X1, X2, X3, s2cA_in_ga(X1)) s2cA_in_ga(plus(plus(X1, X2), X3)) -> U44_ga(X1, X2, X3, s2cA_in_ga(plus(plus(X3, X1), X2))) s2cA_in_ga(plus(X1, X2)) -> U45_ga(X1, X2, s2cA_in_ga(plus(X1, X2))) s2cA_in_ga(plus(0, X1)) -> s2cA_out_ga(plus(0, X1), X1) s2cA_in_ga(plus(X1, X2)) -> U46_ga(X1, X2, s2cA_in_ga(X2)) s2cA_in_ga(plus(X1, s(X2))) -> U48_ga(X1, X2, isNatcD_in_g(s(X2))) isNatcD_in_g(s(X1)) -> U58_g(X1, isNatcD_in_g(X1)) isNatcD_in_g(0) -> isNatcD_out_g(0) U58_g(X1, isNatcD_out_g(X1)) -> isNatcD_out_g(s(X1)) U48_ga(X1, X2, isNatcD_out_g(s(X2))) -> U49_ga(X1, X2, isNatcD_in_g(X1)) U49_ga(X1, X2, isNatcD_out_g(X1)) -> U50_ga(X1, X2, addcF_in_gga(X2, X1)) addcF_in_gga(s(X1), X2) -> U62_gga(X1, X2, addcF_in_gga(X1, X2)) addcF_in_gga(0, X1) -> addcF_out_gga(0, X1, X1) U62_gga(X1, X2, addcF_out_gga(X1, X2, X3)) -> addcF_out_gga(s(X1), X2, s(X3)) U50_ga(X1, X2, addcF_out_gga(X2, X1, X3)) -> s2cA_out_ga(plus(X1, s(X2)), s(X3)) s2cA_in_ga(plus(X1, 0)) -> U51_ga(X1, isNatcD_in_g(0)) U51_ga(X1, isNatcD_out_g(0)) -> U52_ga(X1, isNatcD_in_g(X1)) U52_ga(X1, isNatcD_out_g(X1)) -> s2cA_out_ga(plus(X1, 0), X1) s2cA_in_ga(plus(X1, 0)) -> s2cA_out_ga(plus(X1, 0), X1) s2cA_in_ga(plus(X1, X2)) -> U53_ga(X1, X2, s2cA_in_ga(X1)) s2cA_in_ga(plus(X1, X2)) -> U55_ga(X1, X2, isNatcD_in_g(X1)) U55_ga(X1, X2, isNatcD_out_g(X1)) -> U56_ga(X1, X2, isNatcD_in_g(X2)) U56_ga(X1, X2, isNatcD_out_g(X2)) -> U57_ga(X1, X2, addcF_in_gga(X1, X2)) U57_ga(X1, X2, addcF_out_gga(X1, X2, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U53_ga(X1, X2, s2cA_out_ga(X1, X4)) -> U54_ga(X1, X2, qcB_in_gaga(X2, X4)) qcB_in_gaga(X1, X3) -> U59_gaga(X1, X3, s2cA_in_ga(X1)) U59_gaga(X1, X3, s2cA_out_ga(X1, X2)) -> U60_gaga(X1, X2, X3, s2cA_in_ga(plus(X3, X2))) U60_gaga(X1, X2, X3, s2cA_out_ga(plus(X3, X2), X4)) -> qcB_out_gaga(X1, X2, X3, X4) U54_ga(X1, X2, qcB_out_gaga(X2, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U46_ga(X1, X2, s2cA_out_ga(X2, X4)) -> U47_ga(X1, X2, qcB_in_gaga(X1, X4)) U47_ga(X1, X2, qcB_out_gaga(X1, X5, X4, X3)) -> s2cA_out_ga(plus(X1, X2), X3) U45_ga(X1, X2, s2cA_out_ga(plus(X1, X2), X3)) -> s2cA_out_ga(plus(X1, X2), X3) U44_ga(X1, X2, X3, s2cA_out_ga(plus(plus(X3, X1), X2), X4)) -> s2cA_out_ga(plus(plus(X1, X2), X3), X4) U42_ga(X1, X2, X3, s2cA_out_ga(X1, X5)) -> U43_ga(X1, X2, X3, qcB_in_gaga(plus(X2, X3), X5)) U43_ga(X1, X2, X3, qcB_out_gaga(plus(X2, X3), X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U41_ga(X1, X2, X3, s2cA_out_ga(plus(plus(X2, X3), X1), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U39_ga(X1, X2, X3, s2cA_out_ga(plus(X1, X2), X5)) -> U40_ga(X1, X2, X3, qcB_in_gaga(X3, X5)) U40_ga(X1, X2, X3, qcB_out_gaga(X3, X6, X5, X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U38_ga(X1, X2, X3, s2cA_out_ga(plus(X3, plus(X1, X2)), X4)) -> s2cA_out_ga(plus(X1, plus(X2, X3)), X4) U37_ga(X1, X2, X3, X4, s2cA_out_ga(plus(plus(plus(X1, X2), X3), X4), X5)) -> s2cA_out_ga(plus(X1, plus(X2, plus(X3, X4))), X5) The set Q consists of the following terms: s2cA_in_ga(x0) isNatcD_in_g(x0) U58_g(x0, x1) U48_ga(x0, x1, x2) U49_ga(x0, x1, x2) addcF_in_gga(x0, x1) U62_gga(x0, x1, x2) U50_ga(x0, x1, x2) U51_ga(x0, x1) U52_ga(x0, x1) U55_ga(x0, x1, x2) U56_ga(x0, x1, x2) U57_ga(x0, x1, x2) U53_ga(x0, x1, x2) qcB_in_gaga(x0, x1) U59_gaga(x0, x1, x2) U60_gaga(x0, x1, x2, x3) U54_ga(x0, x1, x2) U46_ga(x0, x1, x2) U47_ga(x0, x1, x2) U45_ga(x0, x1, x2) U44_ga(x0, x1, x2, x3) U42_ga(x0, x1, x2, x3) U43_ga(x0, x1, x2, x3) U41_ga(x0, x1, x2, x3) U39_ga(x0, x1, x2, x3) U40_ga(x0, x1, x2, x3) U38_ga(x0, x1, x2, x3) U37_ga(x0, x1, x2, x3, x4) We have to consider all (P,Q,R)-chains. ---------------------------------------- (158) 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. ---------------------------------------- (159) Obligation: Q DP problem: The TRS P consists of the following rules: S2A_IN_GA(plus(X1, plus(X2, plus(X3, X4)))) -> S2A_IN_GA(plus(plus(plus(X1, X2), X3), X4)) S2A_IN_GA(plus(X1, plus(X2, X3))) -> S2A_IN_GA(plus(X3, plus(X1, X2))) S2A_IN_GA(plus(X1, plus(X2, X3))) -> S2A_IN_GA(plus(plus(X2, X3), X1)) S2A_IN_GA(plus(plus(X1, X2), X3)) -> S2A_IN_GA(plus(plus(X3, X1), X2)) S2A_IN_GA(plus(X1, X2)) -> S2A_IN_GA(plus(X1, X2)) R is empty. The set Q consists of the following terms: s2cA_in_ga(x0) isNatcD_in_g(x0) U58_g(x0, x1) U48_ga(x0, x1, x2) U49_ga(x0, x1, x2) addcF_in_gga(x0, x1) U62_gga(x0, x1, x2) U50_ga(x0, x1, x2) U51_ga(x0, x1) U52_ga(x0, x1) U55_ga(x0, x1, x2) U56_ga(x0, x1, x2) U57_ga(x0, x1, x2) U53_ga(x0, x1, x2) qcB_in_gaga(x0, x1) U59_gaga(x0, x1, x2) U60_gaga(x0, x1, x2, x3) U54_ga(x0, x1, x2) U46_ga(x0, x1, x2) U47_ga(x0, x1, x2) U45_ga(x0, x1, x2) U44_ga(x0, x1, x2, x3) U42_ga(x0, x1, x2, x3) U43_ga(x0, x1, x2, x3) U41_ga(x0, x1, x2, x3) U39_ga(x0, x1, x2, x3) U40_ga(x0, x1, x2, x3) U38_ga(x0, x1, x2, x3) U37_ga(x0, x1, x2, x3, x4) We have to consider all (P,Q,R)-chains. ---------------------------------------- (160) 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]. s2cA_in_ga(x0) isNatcD_in_g(x0) U58_g(x0, x1) U48_ga(x0, x1, x2) U49_ga(x0, x1, x2) addcF_in_gga(x0, x1) U62_gga(x0, x1, x2) U50_ga(x0, x1, x2) U51_ga(x0, x1) U52_ga(x0, x1) U55_ga(x0, x1, x2) U56_ga(x0, x1, x2) U57_ga(x0, x1, x2) U53_ga(x0, x1, x2) qcB_in_gaga(x0, x1) U59_gaga(x0, x1, x2) U60_gaga(x0, x1, x2, x3) U54_ga(x0, x1, x2) U46_ga(x0, x1, x2) U47_ga(x0, x1, x2) U45_ga(x0, x1, x2) U44_ga(x0, x1, x2, x3) U42_ga(x0, x1, x2, x3) U43_ga(x0, x1, x2, x3) U41_ga(x0, x1, x2, x3) U39_ga(x0, x1, x2, x3) U40_ga(x0, x1, x2, x3) U38_ga(x0, x1, x2, x3) U37_ga(x0, x1, x2, x3, x4) ---------------------------------------- (161) Obligation: Q DP problem: The TRS P consists of the following rules: S2A_IN_GA(plus(X1, plus(X2, plus(X3, X4)))) -> S2A_IN_GA(plus(plus(plus(X1, X2), X3), X4)) S2A_IN_GA(plus(X1, plus(X2, X3))) -> S2A_IN_GA(plus(X3, plus(X1, X2))) S2A_IN_GA(plus(X1, plus(X2, X3))) -> S2A_IN_GA(plus(plus(X2, X3), X1)) S2A_IN_GA(plus(plus(X1, X2), X3)) -> S2A_IN_GA(plus(plus(X3, X1), X2)) S2A_IN_GA(plus(X1, X2)) -> S2A_IN_GA(plus(X1, X2)) R is empty. Q is empty. We have to consider all (P,Q,R)-chains.