/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination w.r.t. Q of the given QTRS could be proven: (0) QTRS (1) DependencyPairsProof [EQUIVALENT, 140 ms] (2) QDP (3) DependencyGraphProof [EQUIVALENT, 0 ms] (4) AND (5) QDP (6) UsableRulesProof [EQUIVALENT, 0 ms] (7) QDP (8) QReductionProof [EQUIVALENT, 0 ms] (9) QDP (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] (11) YES (12) QDP (13) UsableRulesProof [EQUIVALENT, 0 ms] (14) QDP (15) QReductionProof [EQUIVALENT, 0 ms] (16) QDP (17) QDPSizeChangeProof [EQUIVALENT, 0 ms] (18) YES (19) QDP (20) UsableRulesProof [EQUIVALENT, 0 ms] (21) QDP (22) QReductionProof [EQUIVALENT, 0 ms] (23) QDP (24) QDPSizeChangeProof [EQUIVALENT, 0 ms] (25) YES (26) QDP (27) UsableRulesProof [EQUIVALENT, 0 ms] (28) QDP (29) QReductionProof [EQUIVALENT, 0 ms] (30) QDP (31) QDPSizeChangeProof [EQUIVALENT, 0 ms] (32) YES (33) QDP (34) UsableRulesProof [EQUIVALENT, 0 ms] (35) QDP (36) QReductionProof [EQUIVALENT, 0 ms] (37) QDP (38) QDPSizeChangeProof [EQUIVALENT, 0 ms] (39) YES (40) QDP (41) UsableRulesProof [EQUIVALENT, 0 ms] (42) QDP (43) QReductionProof [EQUIVALENT, 0 ms] (44) QDP (45) QDPSizeChangeProof [EQUIVALENT, 0 ms] (46) YES (47) QDP (48) UsableRulesProof [EQUIVALENT, 0 ms] (49) QDP (50) QReductionProof [EQUIVALENT, 0 ms] (51) QDP (52) QDPSizeChangeProof [EQUIVALENT, 0 ms] (53) YES (54) QDP (55) UsableRulesProof [EQUIVALENT, 0 ms] (56) QDP (57) QReductionProof [EQUIVALENT, 0 ms] (58) QDP (59) QDPSizeChangeProof [EQUIVALENT, 0 ms] (60) YES (61) QDP (62) UsableRulesProof [EQUIVALENT, 0 ms] (63) QDP (64) QReductionProof [EQUIVALENT, 0 ms] (65) QDP (66) QDPSizeChangeProof [EQUIVALENT, 0 ms] (67) YES (68) QDP (69) UsableRulesProof [EQUIVALENT, 0 ms] (70) QDP (71) QReductionProof [EQUIVALENT, 0 ms] (72) QDP (73) QDPSizeChangeProof [EQUIVALENT, 0 ms] (74) YES (75) QDP (76) UsableRulesProof [EQUIVALENT, 0 ms] (77) QDP (78) QReductionProof [EQUIVALENT, 0 ms] (79) QDP (80) QDPSizeChangeProof [EQUIVALENT, 0 ms] (81) YES (82) QDP (83) UsableRulesProof [EQUIVALENT, 0 ms] (84) QDP (85) QReductionProof [EQUIVALENT, 0 ms] (86) QDP (87) QDPSizeChangeProof [EQUIVALENT, 0 ms] (88) YES (89) QDP (90) UsableRulesProof [EQUIVALENT, 0 ms] (91) QDP (92) QReductionProof [EQUIVALENT, 0 ms] (93) QDP (94) QDPSizeChangeProof [EQUIVALENT, 0 ms] (95) YES (96) QDP (97) UsableRulesProof [EQUIVALENT, 0 ms] (98) QDP (99) QReductionProof [EQUIVALENT, 0 ms] (100) QDP (101) QDPSizeChangeProof [EQUIVALENT, 0 ms] (102) YES (103) QDP (104) UsableRulesProof [EQUIVALENT, 0 ms] (105) QDP (106) QReductionProof [EQUIVALENT, 0 ms] (107) QDP (108) QDPSizeChangeProof [EQUIVALENT, 0 ms] (109) YES (110) QDP (111) UsableRulesProof [EQUIVALENT, 0 ms] (112) QDP (113) QDPOrderProof [EQUIVALENT, 457 ms] (114) QDP (115) QDPOrderProof [EQUIVALENT, 969 ms] (116) QDP (117) QDPOrderProof [EQUIVALENT, 876 ms] (118) QDP (119) DependencyGraphProof [EQUIVALENT, 0 ms] (120) QDP (121) QDPOrderProof [EQUIVALENT, 335 ms] (122) QDP (123) QDPQMonotonicMRRProof [EQUIVALENT, 140 ms] (124) QDP (125) QDPQMonotonicMRRProof [EQUIVALENT, 201 ms] (126) QDP (127) QDPOrderProof [EQUIVALENT, 629 ms] (128) QDP (129) QDPQMonotonicMRRProof [EQUIVALENT, 123 ms] (130) QDP (131) QDPOrderProof [EQUIVALENT, 234 ms] (132) QDP (133) QDPOrderProof [EQUIVALENT, 547 ms] (134) QDP (135) DependencyGraphProof [EQUIVALENT, 0 ms] (136) QDP (137) QDPOrderProof [EQUIVALENT, 487 ms] (138) QDP (139) DependencyGraphProof [EQUIVALENT, 0 ms] (140) QDP (141) UsableRulesProof [EQUIVALENT, 0 ms] (142) QDP (143) QReductionProof [EQUIVALENT, 0 ms] (144) QDP (145) UsableRulesReductionPairsProof [EQUIVALENT, 5 ms] (146) QDP (147) DependencyGraphProof [EQUIVALENT, 0 ms] (148) QDP (149) QReductionProof [EQUIVALENT, 0 ms] (150) QDP (151) QDPSizeChangeProof [EQUIVALENT, 0 ms] (152) YES ---------------------------------------- (0) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) ---------------------------------------- (1) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (2) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U11(tt, V2)) -> MARK(U12(isNat(V2))) ACTIVE(U11(tt, V2)) -> U12^1(isNat(V2)) ACTIVE(U11(tt, V2)) -> ISNAT(V2) ACTIVE(U12(tt)) -> MARK(tt) ACTIVE(U21(tt)) -> MARK(tt) ACTIVE(U31(tt, V2)) -> MARK(U32(isNat(V2))) ACTIVE(U31(tt, V2)) -> U32^1(isNat(V2)) ACTIVE(U31(tt, V2)) -> ISNAT(V2) ACTIVE(U32(tt)) -> MARK(tt) ACTIVE(U41(tt, N)) -> MARK(N) ACTIVE(U51(tt, M, N)) -> MARK(U52(isNat(N), M, N)) ACTIVE(U51(tt, M, N)) -> U52^1(isNat(N), M, N) ACTIVE(U51(tt, M, N)) -> ISNAT(N) ACTIVE(U52(tt, M, N)) -> MARK(s(plus(N, M))) ACTIVE(U52(tt, M, N)) -> S(plus(N, M)) ACTIVE(U52(tt, M, N)) -> PLUS(N, M) ACTIVE(U61(tt)) -> MARK(0) ACTIVE(U71(tt, M, N)) -> MARK(U72(isNat(N), M, N)) ACTIVE(U71(tt, M, N)) -> U72^1(isNat(N), M, N) ACTIVE(U71(tt, M, N)) -> ISNAT(N) ACTIVE(U72(tt, M, N)) -> MARK(plus(x(N, M), N)) ACTIVE(U72(tt, M, N)) -> PLUS(x(N, M), N) ACTIVE(U72(tt, M, N)) -> X(N, M) ACTIVE(isNat(0)) -> MARK(tt) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) ACTIVE(isNat(plus(V1, V2))) -> U11^1(isNat(V1), V2) ACTIVE(isNat(plus(V1, V2))) -> ISNAT(V1) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) ACTIVE(isNat(s(V1))) -> U21^1(isNat(V1)) ACTIVE(isNat(s(V1))) -> ISNAT(V1) ACTIVE(isNat(x(V1, V2))) -> MARK(U31(isNat(V1), V2)) ACTIVE(isNat(x(V1, V2))) -> U31^1(isNat(V1), V2) ACTIVE(isNat(x(V1, V2))) -> ISNAT(V1) ACTIVE(plus(N, 0)) -> MARK(U41(isNat(N), N)) ACTIVE(plus(N, 0)) -> U41^1(isNat(N), N) ACTIVE(plus(N, 0)) -> ISNAT(N) ACTIVE(plus(N, s(M))) -> MARK(U51(isNat(M), M, N)) ACTIVE(plus(N, s(M))) -> U51^1(isNat(M), M, N) ACTIVE(plus(N, s(M))) -> ISNAT(M) ACTIVE(x(N, 0)) -> MARK(U61(isNat(N))) ACTIVE(x(N, 0)) -> U61^1(isNat(N)) ACTIVE(x(N, 0)) -> ISNAT(N) ACTIVE(x(N, s(M))) -> MARK(U71(isNat(M), M, N)) ACTIVE(x(N, s(M))) -> U71^1(isNat(M), M, N) ACTIVE(x(N, s(M))) -> ISNAT(M) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) MARK(U11(X1, X2)) -> U11^1(mark(X1), X2) MARK(U11(X1, X2)) -> MARK(X1) MARK(tt) -> ACTIVE(tt) MARK(U12(X)) -> ACTIVE(U12(mark(X))) MARK(U12(X)) -> U12^1(mark(X)) MARK(U12(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) MARK(U21(X)) -> ACTIVE(U21(mark(X))) MARK(U21(X)) -> U21^1(mark(X)) MARK(U21(X)) -> MARK(X) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> U31^1(mark(X1), X2) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X)) -> ACTIVE(U32(mark(X))) MARK(U32(X)) -> U32^1(mark(X)) MARK(U32(X)) -> MARK(X) MARK(U41(X1, X2)) -> ACTIVE(U41(mark(X1), X2)) MARK(U41(X1, X2)) -> U41^1(mark(X1), X2) MARK(U41(X1, X2)) -> MARK(X1) MARK(U51(X1, X2, X3)) -> ACTIVE(U51(mark(X1), X2, X3)) MARK(U51(X1, X2, X3)) -> U51^1(mark(X1), X2, X3) MARK(U51(X1, X2, X3)) -> MARK(X1) MARK(U52(X1, X2, X3)) -> ACTIVE(U52(mark(X1), X2, X3)) MARK(U52(X1, X2, X3)) -> U52^1(mark(X1), X2, X3) MARK(U52(X1, X2, X3)) -> MARK(X1) MARK(s(X)) -> ACTIVE(s(mark(X))) MARK(s(X)) -> S(mark(X)) MARK(s(X)) -> MARK(X) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> PLUS(mark(X1), mark(X2)) MARK(plus(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> MARK(X2) MARK(U61(X)) -> ACTIVE(U61(mark(X))) MARK(U61(X)) -> U61^1(mark(X)) MARK(U61(X)) -> MARK(X) MARK(0) -> ACTIVE(0) MARK(U71(X1, X2, X3)) -> ACTIVE(U71(mark(X1), X2, X3)) MARK(U71(X1, X2, X3)) -> U71^1(mark(X1), X2, X3) MARK(U71(X1, X2, X3)) -> MARK(X1) MARK(U72(X1, X2, X3)) -> ACTIVE(U72(mark(X1), X2, X3)) MARK(U72(X1, X2, X3)) -> U72^1(mark(X1), X2, X3) MARK(U72(X1, X2, X3)) -> MARK(X1) MARK(x(X1, X2)) -> ACTIVE(x(mark(X1), mark(X2))) MARK(x(X1, X2)) -> X(mark(X1), mark(X2)) MARK(x(X1, X2)) -> MARK(X1) MARK(x(X1, X2)) -> MARK(X2) U11^1(mark(X1), X2) -> U11^1(X1, X2) U11^1(X1, mark(X2)) -> U11^1(X1, X2) U11^1(active(X1), X2) -> U11^1(X1, X2) U11^1(X1, active(X2)) -> U11^1(X1, X2) U12^1(mark(X)) -> U12^1(X) U12^1(active(X)) -> U12^1(X) ISNAT(mark(X)) -> ISNAT(X) ISNAT(active(X)) -> ISNAT(X) U21^1(mark(X)) -> U21^1(X) U21^1(active(X)) -> U21^1(X) U31^1(mark(X1), X2) -> U31^1(X1, X2) U31^1(X1, mark(X2)) -> U31^1(X1, X2) U31^1(active(X1), X2) -> U31^1(X1, X2) U31^1(X1, active(X2)) -> U31^1(X1, X2) U32^1(mark(X)) -> U32^1(X) U32^1(active(X)) -> U32^1(X) U41^1(mark(X1), X2) -> U41^1(X1, X2) U41^1(X1, mark(X2)) -> U41^1(X1, X2) U41^1(active(X1), X2) -> U41^1(X1, X2) U41^1(X1, active(X2)) -> U41^1(X1, X2) U51^1(mark(X1), X2, X3) -> U51^1(X1, X2, X3) U51^1(X1, mark(X2), X3) -> U51^1(X1, X2, X3) U51^1(X1, X2, mark(X3)) -> U51^1(X1, X2, X3) U51^1(active(X1), X2, X3) -> U51^1(X1, X2, X3) U51^1(X1, active(X2), X3) -> U51^1(X1, X2, X3) U51^1(X1, X2, active(X3)) -> U51^1(X1, X2, X3) U52^1(mark(X1), X2, X3) -> U52^1(X1, X2, X3) U52^1(X1, mark(X2), X3) -> U52^1(X1, X2, X3) U52^1(X1, X2, mark(X3)) -> U52^1(X1, X2, X3) U52^1(active(X1), X2, X3) -> U52^1(X1, X2, X3) U52^1(X1, active(X2), X3) -> U52^1(X1, X2, X3) U52^1(X1, X2, active(X3)) -> U52^1(X1, X2, X3) S(mark(X)) -> S(X) S(active(X)) -> S(X) PLUS(mark(X1), X2) -> PLUS(X1, X2) PLUS(X1, mark(X2)) -> PLUS(X1, X2) PLUS(active(X1), X2) -> PLUS(X1, X2) PLUS(X1, active(X2)) -> PLUS(X1, X2) U61^1(mark(X)) -> U61^1(X) U61^1(active(X)) -> U61^1(X) U71^1(mark(X1), X2, X3) -> U71^1(X1, X2, X3) U71^1(X1, mark(X2), X3) -> U71^1(X1, X2, X3) U71^1(X1, X2, mark(X3)) -> U71^1(X1, X2, X3) U71^1(active(X1), X2, X3) -> U71^1(X1, X2, X3) U71^1(X1, active(X2), X3) -> U71^1(X1, X2, X3) U71^1(X1, X2, active(X3)) -> U71^1(X1, X2, X3) U72^1(mark(X1), X2, X3) -> U72^1(X1, X2, X3) U72^1(X1, mark(X2), X3) -> U72^1(X1, X2, X3) U72^1(X1, X2, mark(X3)) -> U72^1(X1, X2, X3) U72^1(active(X1), X2, X3) -> U72^1(X1, X2, X3) U72^1(X1, active(X2), X3) -> U72^1(X1, X2, X3) U72^1(X1, X2, active(X3)) -> U72^1(X1, X2, X3) X(mark(X1), X2) -> X(X1, X2) X(X1, mark(X2)) -> X(X1, X2) X(active(X1), X2) -> X(X1, X2) X(X1, active(X2)) -> X(X1, X2) The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (3) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 16 SCCs with 47 less nodes. ---------------------------------------- (4) Complex Obligation (AND) ---------------------------------------- (5) Obligation: Q DP problem: The TRS P consists of the following rules: X(X1, mark(X2)) -> X(X1, X2) X(mark(X1), X2) -> X(X1, X2) X(active(X1), X2) -> X(X1, X2) X(X1, active(X2)) -> X(X1, X2) The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (6) 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. ---------------------------------------- (7) Obligation: Q DP problem: The TRS P consists of the following rules: X(X1, mark(X2)) -> X(X1, X2) X(mark(X1), X2) -> X(X1, X2) X(active(X1), X2) -> X(X1, X2) X(X1, active(X2)) -> X(X1, X2) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (8) 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]. U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: X(X1, mark(X2)) -> X(X1, X2) X(mark(X1), X2) -> X(X1, X2) X(active(X1), X2) -> X(X1, X2) X(X1, active(X2)) -> X(X1, X2) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) 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: *X(X1, mark(X2)) -> X(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *X(mark(X1), X2) -> X(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *X(active(X1), X2) -> X(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *X(X1, active(X2)) -> X(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (11) YES ---------------------------------------- (12) Obligation: Q DP problem: The TRS P consists of the following rules: U72^1(X1, mark(X2), X3) -> U72^1(X1, X2, X3) U72^1(mark(X1), X2, X3) -> U72^1(X1, X2, X3) U72^1(X1, X2, mark(X3)) -> U72^1(X1, X2, X3) U72^1(active(X1), X2, X3) -> U72^1(X1, X2, X3) U72^1(X1, active(X2), X3) -> U72^1(X1, X2, X3) U72^1(X1, X2, active(X3)) -> U72^1(X1, X2, X3) The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (13) 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. ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: U72^1(X1, mark(X2), X3) -> U72^1(X1, X2, X3) U72^1(mark(X1), X2, X3) -> U72^1(X1, X2, X3) U72^1(X1, X2, mark(X3)) -> U72^1(X1, X2, X3) U72^1(active(X1), X2, X3) -> U72^1(X1, X2, X3) U72^1(X1, active(X2), X3) -> U72^1(X1, X2, X3) U72^1(X1, X2, active(X3)) -> U72^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) 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]. U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: U72^1(X1, mark(X2), X3) -> U72^1(X1, X2, X3) U72^1(mark(X1), X2, X3) -> U72^1(X1, X2, X3) U72^1(X1, X2, mark(X3)) -> U72^1(X1, X2, X3) U72^1(active(X1), X2, X3) -> U72^1(X1, X2, X3) U72^1(X1, active(X2), X3) -> U72^1(X1, X2, X3) U72^1(X1, X2, active(X3)) -> U72^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) 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: *U72^1(X1, mark(X2), X3) -> U72^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U72^1(mark(X1), X2, X3) -> U72^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U72^1(X1, X2, mark(X3)) -> U72^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U72^1(active(X1), X2, X3) -> U72^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U72^1(X1, active(X2), X3) -> U72^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U72^1(X1, X2, active(X3)) -> U72^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (18) YES ---------------------------------------- (19) Obligation: Q DP problem: The TRS P consists of the following rules: U71^1(X1, mark(X2), X3) -> U71^1(X1, X2, X3) U71^1(mark(X1), X2, X3) -> U71^1(X1, X2, X3) U71^1(X1, X2, mark(X3)) -> U71^1(X1, X2, X3) U71^1(active(X1), X2, X3) -> U71^1(X1, X2, X3) U71^1(X1, active(X2), X3) -> U71^1(X1, X2, X3) U71^1(X1, X2, active(X3)) -> U71^1(X1, X2, X3) The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (20) 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. ---------------------------------------- (21) Obligation: Q DP problem: The TRS P consists of the following rules: U71^1(X1, mark(X2), X3) -> U71^1(X1, X2, X3) U71^1(mark(X1), X2, X3) -> U71^1(X1, X2, X3) U71^1(X1, X2, mark(X3)) -> U71^1(X1, X2, X3) U71^1(active(X1), X2, X3) -> U71^1(X1, X2, X3) U71^1(X1, active(X2), X3) -> U71^1(X1, X2, X3) U71^1(X1, X2, active(X3)) -> U71^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (22) 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]. U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) ---------------------------------------- (23) Obligation: Q DP problem: The TRS P consists of the following rules: U71^1(X1, mark(X2), X3) -> U71^1(X1, X2, X3) U71^1(mark(X1), X2, X3) -> U71^1(X1, X2, X3) U71^1(X1, X2, mark(X3)) -> U71^1(X1, X2, X3) U71^1(active(X1), X2, X3) -> U71^1(X1, X2, X3) U71^1(X1, active(X2), X3) -> U71^1(X1, X2, X3) U71^1(X1, X2, active(X3)) -> U71^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (24) 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: *U71^1(X1, mark(X2), X3) -> U71^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U71^1(mark(X1), X2, X3) -> U71^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U71^1(X1, X2, mark(X3)) -> U71^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U71^1(active(X1), X2, X3) -> U71^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U71^1(X1, active(X2), X3) -> U71^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U71^1(X1, X2, active(X3)) -> U71^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (25) YES ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: U61^1(active(X)) -> U61^1(X) U61^1(mark(X)) -> U61^1(X) The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (27) 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. ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: U61^1(active(X)) -> U61^1(X) U61^1(mark(X)) -> U61^1(X) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) 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]. U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) ---------------------------------------- (30) Obligation: Q DP problem: The TRS P consists of the following rules: U61^1(active(X)) -> U61^1(X) U61^1(mark(X)) -> U61^1(X) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (31) 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: *U61^1(active(X)) -> U61^1(X) The graph contains the following edges 1 > 1 *U61^1(mark(X)) -> U61^1(X) The graph contains the following edges 1 > 1 ---------------------------------------- (32) YES ---------------------------------------- (33) Obligation: Q DP problem: The TRS P consists of the following rules: PLUS(X1, mark(X2)) -> PLUS(X1, X2) PLUS(mark(X1), X2) -> PLUS(X1, X2) PLUS(active(X1), X2) -> PLUS(X1, X2) PLUS(X1, active(X2)) -> PLUS(X1, X2) The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (34) 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. ---------------------------------------- (35) Obligation: Q DP problem: The TRS P consists of the following rules: PLUS(X1, mark(X2)) -> PLUS(X1, X2) PLUS(mark(X1), X2) -> PLUS(X1, X2) PLUS(active(X1), X2) -> PLUS(X1, X2) PLUS(X1, active(X2)) -> PLUS(X1, X2) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (36) 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]. U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) ---------------------------------------- (37) Obligation: Q DP problem: The TRS P consists of the following rules: PLUS(X1, mark(X2)) -> PLUS(X1, X2) PLUS(mark(X1), X2) -> PLUS(X1, X2) PLUS(active(X1), X2) -> PLUS(X1, X2) PLUS(X1, active(X2)) -> PLUS(X1, X2) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (38) 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: *PLUS(X1, mark(X2)) -> PLUS(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *PLUS(mark(X1), X2) -> PLUS(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *PLUS(active(X1), X2) -> PLUS(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *PLUS(X1, active(X2)) -> PLUS(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (39) YES ---------------------------------------- (40) Obligation: Q DP problem: The TRS P consists of the following rules: S(active(X)) -> S(X) S(mark(X)) -> S(X) The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (41) 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. ---------------------------------------- (42) Obligation: Q DP problem: The TRS P consists of the following rules: S(active(X)) -> S(X) S(mark(X)) -> S(X) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (43) 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]. U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) ---------------------------------------- (44) Obligation: Q DP problem: The TRS P consists of the following rules: S(active(X)) -> S(X) S(mark(X)) -> S(X) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (45) 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: *S(active(X)) -> S(X) The graph contains the following edges 1 > 1 *S(mark(X)) -> S(X) The graph contains the following edges 1 > 1 ---------------------------------------- (46) YES ---------------------------------------- (47) Obligation: Q DP problem: The TRS P consists of the following rules: U52^1(X1, mark(X2), X3) -> U52^1(X1, X2, X3) U52^1(mark(X1), X2, X3) -> U52^1(X1, X2, X3) U52^1(X1, X2, mark(X3)) -> U52^1(X1, X2, X3) U52^1(active(X1), X2, X3) -> U52^1(X1, X2, X3) U52^1(X1, active(X2), X3) -> U52^1(X1, X2, X3) U52^1(X1, X2, active(X3)) -> U52^1(X1, X2, X3) The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (48) 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. ---------------------------------------- (49) Obligation: Q DP problem: The TRS P consists of the following rules: U52^1(X1, mark(X2), X3) -> U52^1(X1, X2, X3) U52^1(mark(X1), X2, X3) -> U52^1(X1, X2, X3) U52^1(X1, X2, mark(X3)) -> U52^1(X1, X2, X3) U52^1(active(X1), X2, X3) -> U52^1(X1, X2, X3) U52^1(X1, active(X2), X3) -> U52^1(X1, X2, X3) U52^1(X1, X2, active(X3)) -> U52^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (50) 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]. U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) ---------------------------------------- (51) Obligation: Q DP problem: The TRS P consists of the following rules: U52^1(X1, mark(X2), X3) -> U52^1(X1, X2, X3) U52^1(mark(X1), X2, X3) -> U52^1(X1, X2, X3) U52^1(X1, X2, mark(X3)) -> U52^1(X1, X2, X3) U52^1(active(X1), X2, X3) -> U52^1(X1, X2, X3) U52^1(X1, active(X2), X3) -> U52^1(X1, X2, X3) U52^1(X1, X2, active(X3)) -> U52^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (52) 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: *U52^1(X1, mark(X2), X3) -> U52^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U52^1(mark(X1), X2, X3) -> U52^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U52^1(X1, X2, mark(X3)) -> U52^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U52^1(active(X1), X2, X3) -> U52^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U52^1(X1, active(X2), X3) -> U52^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U52^1(X1, X2, active(X3)) -> U52^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (53) YES ---------------------------------------- (54) Obligation: Q DP problem: The TRS P consists of the following rules: U51^1(X1, mark(X2), X3) -> U51^1(X1, X2, X3) U51^1(mark(X1), X2, X3) -> U51^1(X1, X2, X3) U51^1(X1, X2, mark(X3)) -> U51^1(X1, X2, X3) U51^1(active(X1), X2, X3) -> U51^1(X1, X2, X3) U51^1(X1, active(X2), X3) -> U51^1(X1, X2, X3) U51^1(X1, X2, active(X3)) -> U51^1(X1, X2, X3) The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (55) 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. ---------------------------------------- (56) Obligation: Q DP problem: The TRS P consists of the following rules: U51^1(X1, mark(X2), X3) -> U51^1(X1, X2, X3) U51^1(mark(X1), X2, X3) -> U51^1(X1, X2, X3) U51^1(X1, X2, mark(X3)) -> U51^1(X1, X2, X3) U51^1(active(X1), X2, X3) -> U51^1(X1, X2, X3) U51^1(X1, active(X2), X3) -> U51^1(X1, X2, X3) U51^1(X1, X2, active(X3)) -> U51^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (57) 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]. U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) ---------------------------------------- (58) Obligation: Q DP problem: The TRS P consists of the following rules: U51^1(X1, mark(X2), X3) -> U51^1(X1, X2, X3) U51^1(mark(X1), X2, X3) -> U51^1(X1, X2, X3) U51^1(X1, X2, mark(X3)) -> U51^1(X1, X2, X3) U51^1(active(X1), X2, X3) -> U51^1(X1, X2, X3) U51^1(X1, active(X2), X3) -> U51^1(X1, X2, X3) U51^1(X1, X2, active(X3)) -> U51^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (59) 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: *U51^1(X1, mark(X2), X3) -> U51^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U51^1(mark(X1), X2, X3) -> U51^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U51^1(X1, X2, mark(X3)) -> U51^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U51^1(active(X1), X2, X3) -> U51^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U51^1(X1, active(X2), X3) -> U51^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U51^1(X1, X2, active(X3)) -> U51^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (60) YES ---------------------------------------- (61) Obligation: Q DP problem: The TRS P consists of the following rules: U41^1(X1, mark(X2)) -> U41^1(X1, X2) U41^1(mark(X1), X2) -> U41^1(X1, X2) U41^1(active(X1), X2) -> U41^1(X1, X2) U41^1(X1, active(X2)) -> U41^1(X1, X2) The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (62) 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. ---------------------------------------- (63) Obligation: Q DP problem: The TRS P consists of the following rules: U41^1(X1, mark(X2)) -> U41^1(X1, X2) U41^1(mark(X1), X2) -> U41^1(X1, X2) U41^1(active(X1), X2) -> U41^1(X1, X2) U41^1(X1, active(X2)) -> U41^1(X1, X2) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (64) 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]. U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) ---------------------------------------- (65) Obligation: Q DP problem: The TRS P consists of the following rules: U41^1(X1, mark(X2)) -> U41^1(X1, X2) U41^1(mark(X1), X2) -> U41^1(X1, X2) U41^1(active(X1), X2) -> U41^1(X1, X2) U41^1(X1, active(X2)) -> U41^1(X1, X2) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (66) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U41^1(X1, mark(X2)) -> U41^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *U41^1(mark(X1), X2) -> U41^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U41^1(active(X1), X2) -> U41^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U41^1(X1, active(X2)) -> U41^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (67) YES ---------------------------------------- (68) Obligation: Q DP problem: The TRS P consists of the following rules: U32^1(active(X)) -> U32^1(X) U32^1(mark(X)) -> U32^1(X) The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (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: U32^1(active(X)) -> U32^1(X) U32^1(mark(X)) -> U32^1(X) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (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]. U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) ---------------------------------------- (72) Obligation: Q DP problem: The TRS P consists of the following rules: U32^1(active(X)) -> U32^1(X) U32^1(mark(X)) -> U32^1(X) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (73) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U32^1(active(X)) -> U32^1(X) The graph contains the following edges 1 > 1 *U32^1(mark(X)) -> U32^1(X) The graph contains the following edges 1 > 1 ---------------------------------------- (74) YES ---------------------------------------- (75) Obligation: Q DP problem: The TRS P consists of the following rules: U31^1(X1, mark(X2)) -> U31^1(X1, X2) U31^1(mark(X1), X2) -> U31^1(X1, X2) U31^1(active(X1), X2) -> U31^1(X1, X2) U31^1(X1, active(X2)) -> U31^1(X1, X2) The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (76) 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. ---------------------------------------- (77) Obligation: Q DP problem: The TRS P consists of the following rules: U31^1(X1, mark(X2)) -> U31^1(X1, X2) U31^1(mark(X1), X2) -> U31^1(X1, X2) U31^1(active(X1), X2) -> U31^1(X1, X2) U31^1(X1, active(X2)) -> U31^1(X1, X2) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (78) 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]. U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) ---------------------------------------- (79) Obligation: Q DP problem: The TRS P consists of the following rules: U31^1(X1, mark(X2)) -> U31^1(X1, X2) U31^1(mark(X1), X2) -> U31^1(X1, X2) U31^1(active(X1), X2) -> U31^1(X1, X2) U31^1(X1, active(X2)) -> U31^1(X1, X2) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (80) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U31^1(X1, mark(X2)) -> U31^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *U31^1(mark(X1), X2) -> U31^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U31^1(active(X1), X2) -> U31^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U31^1(X1, active(X2)) -> U31^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (81) YES ---------------------------------------- (82) Obligation: Q DP problem: The TRS P consists of the following rules: U21^1(active(X)) -> U21^1(X) U21^1(mark(X)) -> U21^1(X) The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (83) 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. ---------------------------------------- (84) Obligation: Q DP problem: The TRS P consists of the following rules: U21^1(active(X)) -> U21^1(X) U21^1(mark(X)) -> U21^1(X) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (85) 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]. U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) ---------------------------------------- (86) Obligation: Q DP problem: The TRS P consists of the following rules: U21^1(active(X)) -> U21^1(X) U21^1(mark(X)) -> U21^1(X) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (87) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U21^1(active(X)) -> U21^1(X) The graph contains the following edges 1 > 1 *U21^1(mark(X)) -> U21^1(X) The graph contains the following edges 1 > 1 ---------------------------------------- (88) YES ---------------------------------------- (89) Obligation: Q DP problem: The TRS P consists of the following rules: ISNAT(active(X)) -> ISNAT(X) ISNAT(mark(X)) -> ISNAT(X) The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (90) 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. ---------------------------------------- (91) Obligation: Q DP problem: The TRS P consists of the following rules: ISNAT(active(X)) -> ISNAT(X) ISNAT(mark(X)) -> ISNAT(X) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (92) 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]. U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) ---------------------------------------- (93) Obligation: Q DP problem: The TRS P consists of the following rules: ISNAT(active(X)) -> ISNAT(X) ISNAT(mark(X)) -> ISNAT(X) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (94) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISNAT(active(X)) -> ISNAT(X) The graph contains the following edges 1 > 1 *ISNAT(mark(X)) -> ISNAT(X) The graph contains the following edges 1 > 1 ---------------------------------------- (95) YES ---------------------------------------- (96) Obligation: Q DP problem: The TRS P consists of the following rules: U12^1(active(X)) -> U12^1(X) U12^1(mark(X)) -> U12^1(X) The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (97) 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. ---------------------------------------- (98) Obligation: Q DP problem: The TRS P consists of the following rules: U12^1(active(X)) -> U12^1(X) U12^1(mark(X)) -> U12^1(X) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (99) 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]. U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) ---------------------------------------- (100) Obligation: Q DP problem: The TRS P consists of the following rules: U12^1(active(X)) -> U12^1(X) U12^1(mark(X)) -> U12^1(X) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (101) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U12^1(active(X)) -> U12^1(X) The graph contains the following edges 1 > 1 *U12^1(mark(X)) -> U12^1(X) The graph contains the following edges 1 > 1 ---------------------------------------- (102) YES ---------------------------------------- (103) Obligation: Q DP problem: The TRS P consists of the following rules: U11^1(X1, mark(X2)) -> U11^1(X1, X2) U11^1(mark(X1), X2) -> U11^1(X1, X2) U11^1(active(X1), X2) -> U11^1(X1, X2) U11^1(X1, active(X2)) -> U11^1(X1, X2) The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (104) 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. ---------------------------------------- (105) Obligation: Q DP problem: The TRS P consists of the following rules: U11^1(X1, mark(X2)) -> U11^1(X1, X2) U11^1(mark(X1), X2) -> U11^1(X1, X2) U11^1(active(X1), X2) -> U11^1(X1, X2) U11^1(X1, active(X2)) -> U11^1(X1, X2) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (106) 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]. U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) ---------------------------------------- (107) Obligation: Q DP problem: The TRS P consists of the following rules: U11^1(X1, mark(X2)) -> U11^1(X1, X2) U11^1(mark(X1), X2) -> U11^1(X1, X2) U11^1(active(X1), X2) -> U11^1(X1, X2) U11^1(X1, active(X2)) -> U11^1(X1, X2) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (108) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U11^1(X1, mark(X2)) -> U11^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *U11^1(mark(X1), X2) -> U11^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U11^1(active(X1), X2) -> U11^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U11^1(X1, active(X2)) -> U11^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (109) YES ---------------------------------------- (110) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U12(X)) -> ACTIVE(U12(mark(X))) ACTIVE(U11(tt, V2)) -> MARK(U12(isNat(V2))) MARK(U12(X)) -> MARK(X) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U31(tt, V2)) -> MARK(U32(isNat(V2))) MARK(U32(X)) -> ACTIVE(U32(mark(X))) ACTIVE(U41(tt, N)) -> MARK(N) MARK(U11(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) MARK(U21(X)) -> ACTIVE(U21(mark(X))) ACTIVE(U51(tt, M, N)) -> MARK(U52(isNat(N), M, N)) MARK(U52(X1, X2, X3)) -> ACTIVE(U52(mark(X1), X2, X3)) ACTIVE(U52(tt, M, N)) -> MARK(s(plus(N, M))) MARK(s(X)) -> ACTIVE(s(mark(X))) ACTIVE(U71(tt, M, N)) -> MARK(U72(isNat(N), M, N)) MARK(U72(X1, X2, X3)) -> ACTIVE(U72(mark(X1), X2, X3)) ACTIVE(U72(tt, M, N)) -> MARK(plus(x(N, M), N)) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) ACTIVE(plus(N, 0)) -> MARK(U41(isNat(N), N)) MARK(U41(X1, X2)) -> ACTIVE(U41(mark(X1), X2)) ACTIVE(plus(N, s(M))) -> MARK(U51(isNat(M), M, N)) MARK(U51(X1, X2, X3)) -> ACTIVE(U51(mark(X1), X2, X3)) ACTIVE(x(N, 0)) -> MARK(U61(isNat(N))) MARK(U61(X)) -> ACTIVE(U61(mark(X))) ACTIVE(x(N, s(M))) -> MARK(U71(isNat(M), M, N)) MARK(U71(X1, X2, X3)) -> ACTIVE(U71(mark(X1), X2, X3)) MARK(U71(X1, X2, X3)) -> MARK(X1) MARK(U21(X)) -> MARK(X) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X)) -> MARK(X) MARK(U41(X1, X2)) -> MARK(X1) MARK(U51(X1, X2, X3)) -> MARK(X1) MARK(U52(X1, X2, X3)) -> MARK(X1) MARK(s(X)) -> MARK(X) MARK(plus(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> MARK(X2) MARK(U61(X)) -> MARK(X) MARK(U72(X1, X2, X3)) -> MARK(X1) MARK(x(X1, X2)) -> ACTIVE(x(mark(X1), mark(X2))) MARK(x(X1, X2)) -> MARK(X1) MARK(x(X1, X2)) -> MARK(X2) ACTIVE(isNat(x(V1, V2))) -> MARK(U31(isNat(V1), V2)) The TRS R consists of the following rules: active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U31(tt, V2)) -> mark(U32(isNat(V2))) active(U32(tt)) -> mark(tt) active(U41(tt, N)) -> mark(N) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) active(U61(tt)) -> mark(0) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) active(isNat(0)) -> mark(tt) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) active(x(N, 0)) -> mark(U61(isNat(N))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) mark(s(X)) -> active(s(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(U61(X)) -> active(U61(mark(X))) mark(0) -> active(0) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(X1), X2) -> U41(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(mark(X)) -> s(X) s(active(X)) -> s(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U61(mark(X)) -> U61(X) U61(active(X)) -> U61(X) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) x(mark(X1), X2) -> x(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (111) 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. ---------------------------------------- (112) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U12(X)) -> ACTIVE(U12(mark(X))) ACTIVE(U11(tt, V2)) -> MARK(U12(isNat(V2))) MARK(U12(X)) -> MARK(X) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U31(tt, V2)) -> MARK(U32(isNat(V2))) MARK(U32(X)) -> ACTIVE(U32(mark(X))) ACTIVE(U41(tt, N)) -> MARK(N) MARK(U11(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) MARK(U21(X)) -> ACTIVE(U21(mark(X))) ACTIVE(U51(tt, M, N)) -> MARK(U52(isNat(N), M, N)) MARK(U52(X1, X2, X3)) -> ACTIVE(U52(mark(X1), X2, X3)) ACTIVE(U52(tt, M, N)) -> MARK(s(plus(N, M))) MARK(s(X)) -> ACTIVE(s(mark(X))) ACTIVE(U71(tt, M, N)) -> MARK(U72(isNat(N), M, N)) MARK(U72(X1, X2, X3)) -> ACTIVE(U72(mark(X1), X2, X3)) ACTIVE(U72(tt, M, N)) -> MARK(plus(x(N, M), N)) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) ACTIVE(plus(N, 0)) -> MARK(U41(isNat(N), N)) MARK(U41(X1, X2)) -> ACTIVE(U41(mark(X1), X2)) ACTIVE(plus(N, s(M))) -> MARK(U51(isNat(M), M, N)) MARK(U51(X1, X2, X3)) -> ACTIVE(U51(mark(X1), X2, X3)) ACTIVE(x(N, 0)) -> MARK(U61(isNat(N))) MARK(U61(X)) -> ACTIVE(U61(mark(X))) ACTIVE(x(N, s(M))) -> MARK(U71(isNat(M), M, N)) MARK(U71(X1, X2, X3)) -> ACTIVE(U71(mark(X1), X2, X3)) MARK(U71(X1, X2, X3)) -> MARK(X1) MARK(U21(X)) -> MARK(X) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X)) -> MARK(X) MARK(U41(X1, X2)) -> MARK(X1) MARK(U51(X1, X2, X3)) -> MARK(X1) MARK(U52(X1, X2, X3)) -> MARK(X1) MARK(s(X)) -> MARK(X) MARK(plus(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> MARK(X2) MARK(U61(X)) -> MARK(X) MARK(U72(X1, X2, X3)) -> MARK(X1) MARK(x(X1, X2)) -> ACTIVE(x(mark(X1), mark(X2))) MARK(x(X1, X2)) -> MARK(X1) MARK(x(X1, X2)) -> MARK(X2) ACTIVE(isNat(x(V1, V2))) -> MARK(U31(isNat(V1), V2)) The TRS R consists of the following rules: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (113) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U12(X)) -> ACTIVE(U12(mark(X))) MARK(U32(X)) -> ACTIVE(U32(mark(X))) MARK(U21(X)) -> ACTIVE(U21(mark(X))) MARK(s(X)) -> ACTIVE(s(mark(X))) MARK(U61(X)) -> ACTIVE(U61(mark(X))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = x_1 + 1 POL( U11_2(x_1, x_2) ) = 1 POL( U12_1(x_1) ) = max{0, -2} POL( U21_1(x_1) ) = max{0, -2} POL( U31_2(x_1, x_2) ) = 1 POL( U32_1(x_1) ) = max{0, -2} POL( U41_2(x_1, x_2) ) = 1 POL( U51_3(x_1, ..., x_3) ) = 1 POL( U52_3(x_1, ..., x_3) ) = 1 POL( U61_1(x_1) ) = max{0, -2} POL( U71_3(x_1, ..., x_3) ) = 1 POL( U72_3(x_1, ..., x_3) ) = 1 POL( plus_2(x_1, x_2) ) = 1 POL( s_1(x_1) ) = 0 POL( x_2(x_1, x_2) ) = 1 POL( mark_1(x_1) ) = 2 POL( active_1(x_1) ) = max{0, -2} POL( tt ) = 0 POL( isNat_1(x_1) ) = 1 POL( 0 ) = 0 POL( MARK_1(x_1) ) = 2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) ---------------------------------------- (114) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U11(tt, V2)) -> MARK(U12(isNat(V2))) MARK(U12(X)) -> MARK(X) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U31(tt, V2)) -> MARK(U32(isNat(V2))) ACTIVE(U41(tt, N)) -> MARK(N) MARK(U11(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) ACTIVE(U51(tt, M, N)) -> MARK(U52(isNat(N), M, N)) MARK(U52(X1, X2, X3)) -> ACTIVE(U52(mark(X1), X2, X3)) ACTIVE(U52(tt, M, N)) -> MARK(s(plus(N, M))) ACTIVE(U71(tt, M, N)) -> MARK(U72(isNat(N), M, N)) MARK(U72(X1, X2, X3)) -> ACTIVE(U72(mark(X1), X2, X3)) ACTIVE(U72(tt, M, N)) -> MARK(plus(x(N, M), N)) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) ACTIVE(plus(N, 0)) -> MARK(U41(isNat(N), N)) MARK(U41(X1, X2)) -> ACTIVE(U41(mark(X1), X2)) ACTIVE(plus(N, s(M))) -> MARK(U51(isNat(M), M, N)) MARK(U51(X1, X2, X3)) -> ACTIVE(U51(mark(X1), X2, X3)) ACTIVE(x(N, 0)) -> MARK(U61(isNat(N))) ACTIVE(x(N, s(M))) -> MARK(U71(isNat(M), M, N)) MARK(U71(X1, X2, X3)) -> ACTIVE(U71(mark(X1), X2, X3)) MARK(U71(X1, X2, X3)) -> MARK(X1) MARK(U21(X)) -> MARK(X) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X)) -> MARK(X) MARK(U41(X1, X2)) -> MARK(X1) MARK(U51(X1, X2, X3)) -> MARK(X1) MARK(U52(X1, X2, X3)) -> MARK(X1) MARK(s(X)) -> MARK(X) MARK(plus(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> MARK(X2) MARK(U61(X)) -> MARK(X) MARK(U72(X1, X2, X3)) -> MARK(X1) MARK(x(X1, X2)) -> ACTIVE(x(mark(X1), mark(X2))) MARK(x(X1, X2)) -> MARK(X1) MARK(x(X1, X2)) -> MARK(X2) ACTIVE(isNat(x(V1, V2))) -> MARK(U31(isNat(V1), V2)) The TRS R consists of the following rules: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (115) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U41(tt, N)) -> MARK(N) ACTIVE(U52(tt, M, N)) -> MARK(s(plus(N, M))) ACTIVE(U72(tt, M, N)) -> MARK(plus(x(N, M), N)) ACTIVE(plus(N, s(M))) -> MARK(U51(isNat(M), M, N)) ACTIVE(x(N, 0)) -> MARK(U61(isNat(N))) ACTIVE(x(N, s(M))) -> MARK(U71(isNat(M), M, N)) MARK(U71(X1, X2, X3)) -> MARK(X1) MARK(U41(X1, X2)) -> MARK(X1) MARK(U51(X1, X2, X3)) -> MARK(X1) MARK(U52(X1, X2, X3)) -> MARK(X1) MARK(s(X)) -> MARK(X) MARK(plus(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> MARK(X2) MARK(U72(X1, X2, X3)) -> MARK(X1) MARK(x(X1, X2)) -> MARK(X1) MARK(x(X1, X2)) -> MARK(X2) The remaining pairs can at least be oriented weakly. Used ordering: Combined order from the following AFS and order. ACTIVE(x1) = ACTIVE(x1) U11(x1, x2) = x1 tt = tt MARK(x1) = MARK(x1) U12(x1) = x1 isNat(x1) = isNat mark(x1) = x1 U31(x1, x2) = x1 U32(x1) = x1 U41(x1, x2) = U41(x1, x2) plus(x1, x2) = plus(x1, x2) s(x1) = s(x1) U21(x1) = x1 U51(x1, x2, x3) = U51(x1, x2, x3) U52(x1, x2, x3) = U52(x1, x2, x3) U71(x1, x2, x3) = U71(x1, x2, x3) U72(x1, x2, x3) = U72(x1, x2, x3) x(x1, x2) = x(x1, x2) 0 = 0 U61(x1) = x1 active(x1) = x1 Recursive path order with status [RPO]. Quasi-Precedence: [U71_3, U72_3, x_2] > [U41_2, plus_2, U51_3, U52_3] > [ACTIVE_1, MARK_1] > [tt, isNat, 0] > s_1 Status: ACTIVE_1: multiset status tt: multiset status MARK_1: multiset status isNat: multiset status U41_2: [1,2] plus_2: [2,1] s_1: [1] U51_3: [2,3,1] U52_3: [2,3,1] U71_3: [2,3,1] U72_3: [2,3,1] x_2: [2,1] 0: multiset status The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) s(active(X)) -> s(X) s(mark(X)) -> s(X) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) ---------------------------------------- (116) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U11(tt, V2)) -> MARK(U12(isNat(V2))) MARK(U12(X)) -> MARK(X) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U31(tt, V2)) -> MARK(U32(isNat(V2))) MARK(U11(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) ACTIVE(U51(tt, M, N)) -> MARK(U52(isNat(N), M, N)) MARK(U52(X1, X2, X3)) -> ACTIVE(U52(mark(X1), X2, X3)) ACTIVE(U71(tt, M, N)) -> MARK(U72(isNat(N), M, N)) MARK(U72(X1, X2, X3)) -> ACTIVE(U72(mark(X1), X2, X3)) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) ACTIVE(plus(N, 0)) -> MARK(U41(isNat(N), N)) MARK(U41(X1, X2)) -> ACTIVE(U41(mark(X1), X2)) MARK(U51(X1, X2, X3)) -> ACTIVE(U51(mark(X1), X2, X3)) MARK(U71(X1, X2, X3)) -> ACTIVE(U71(mark(X1), X2, X3)) MARK(U21(X)) -> MARK(X) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X)) -> MARK(X) MARK(U61(X)) -> MARK(X) MARK(x(X1, X2)) -> ACTIVE(x(mark(X1), mark(X2))) ACTIVE(isNat(x(V1, V2))) -> MARK(U31(isNat(V1), V2)) The TRS R consists of the following rules: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (117) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U41(X1, X2)) -> ACTIVE(U41(mark(X1), X2)) The remaining pairs can at least be oriented weakly. Used ordering: Combined order from the following AFS and order. ACTIVE(x1) = x1 U11(x1, x2) = U11 tt = tt MARK(x1) = MARK U12(x1) = U12 isNat(x1) = isNat mark(x1) = mark U31(x1, x2) = U31 U32(x1) = U32 plus(x1, x2) = plus s(x1) = s U21(x1) = U21 U51(x1, x2, x3) = U51 U52(x1, x2, x3) = U52 U71(x1, x2, x3) = U71 U72(x1, x2, x3) = U72 0 = 0 U41(x1, x2) = U41 U61(x1) = U61(x1) x(x1, x2) = x active(x1) = x1 Recursive path order with status [RPO]. Quasi-Precedence: [mark, U32, 0] > U12 > tt > [U11, MARK, isNat, U31, plus, U21, U51, U52, U71, U72, x] > U41 [mark, U32, 0] > s > [U11, MARK, isNat, U31, plus, U21, U51, U52, U71, U72, x] > U41 [mark, U32, 0] > U61_1 > [U11, MARK, isNat, U31, plus, U21, U51, U52, U71, U72, x] > U41 Status: U11: [] tt: multiset status MARK: [] U12: multiset status isNat: [] mark: [] U31: [] U32: multiset status plus: [] s: multiset status U21: [] U51: [] U52: [] U71: [] U72: [] 0: multiset status U41: multiset status U61_1: multiset status x: [] The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) ---------------------------------------- (118) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U11(tt, V2)) -> MARK(U12(isNat(V2))) MARK(U12(X)) -> MARK(X) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U31(tt, V2)) -> MARK(U32(isNat(V2))) MARK(U11(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) ACTIVE(U51(tt, M, N)) -> MARK(U52(isNat(N), M, N)) MARK(U52(X1, X2, X3)) -> ACTIVE(U52(mark(X1), X2, X3)) ACTIVE(U71(tt, M, N)) -> MARK(U72(isNat(N), M, N)) MARK(U72(X1, X2, X3)) -> ACTIVE(U72(mark(X1), X2, X3)) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) ACTIVE(plus(N, 0)) -> MARK(U41(isNat(N), N)) MARK(U51(X1, X2, X3)) -> ACTIVE(U51(mark(X1), X2, X3)) MARK(U71(X1, X2, X3)) -> ACTIVE(U71(mark(X1), X2, X3)) MARK(U21(X)) -> MARK(X) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X)) -> MARK(X) MARK(U61(X)) -> MARK(X) MARK(x(X1, X2)) -> ACTIVE(x(mark(X1), mark(X2))) ACTIVE(isNat(x(V1, V2))) -> MARK(U31(isNat(V1), V2)) The TRS R consists of the following rules: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (119) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (120) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U12(X)) -> MARK(X) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V2)) -> MARK(U12(isNat(V2))) ACTIVE(U31(tt, V2)) -> MARK(U32(isNat(V2))) MARK(U32(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) MARK(U21(X)) -> MARK(X) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U51(tt, M, N)) -> MARK(U52(isNat(N), M, N)) MARK(U52(X1, X2, X3)) -> ACTIVE(U52(mark(X1), X2, X3)) ACTIVE(U71(tt, M, N)) -> MARK(U72(isNat(N), M, N)) MARK(U72(X1, X2, X3)) -> ACTIVE(U72(mark(X1), X2, X3)) MARK(U31(X1, X2)) -> MARK(X1) MARK(U51(X1, X2, X3)) -> ACTIVE(U51(mark(X1), X2, X3)) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(U61(X)) -> MARK(X) MARK(U71(X1, X2, X3)) -> ACTIVE(U71(mark(X1), X2, X3)) MARK(x(X1, X2)) -> ACTIVE(x(mark(X1), mark(X2))) ACTIVE(isNat(x(V1, V2))) -> MARK(U31(isNat(V1), V2)) The TRS R consists of the following rules: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (121) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U51(X1, X2, X3)) -> ACTIVE(U51(mark(X1), X2, X3)) MARK(U61(X)) -> MARK(X) MARK(U71(X1, X2, X3)) -> ACTIVE(U71(mark(X1), X2, X3)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U11_2(x_1, x_2) ) = 2x_1 + 1 POL( U31_2(x_1, x_2) ) = 2x_1 + 1 POL( U51_3(x_1, ..., x_3) ) = 2x_1 + x_2 + x_3 + 2 POL( U52_3(x_1, ..., x_3) ) = 1 POL( U71_3(x_1, ..., x_3) ) = x_1 + x_2 + x_3 + 2 POL( U72_3(x_1, ..., x_3) ) = x_1 + 1 POL( plus_2(x_1, x_2) ) = 1 POL( x_2(x_1, x_2) ) = 2x_1 + x_2 + 1 POL( mark_1(x_1) ) = 0 POL( U12_1(x_1) ) = x_1 + 1 POL( active_1(x_1) ) = max{0, x_1 - 2} POL( tt ) = 1 POL( isNat_1(x_1) ) = 0 POL( U32_1(x_1) ) = x_1 + 1 POL( U41_2(x_1, x_2) ) = max{0, x_1 + 2x_2 - 2} POL( s_1(x_1) ) = 0 POL( U21_1(x_1) ) = 2x_1 + 1 POL( 0 ) = 0 POL( U61_1(x_1) ) = x_1 + 2 POL( MARK_1(x_1) ) = max{0, 2x_1 - 2} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (122) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U12(X)) -> MARK(X) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V2)) -> MARK(U12(isNat(V2))) ACTIVE(U31(tt, V2)) -> MARK(U32(isNat(V2))) MARK(U32(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) MARK(U21(X)) -> MARK(X) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U51(tt, M, N)) -> MARK(U52(isNat(N), M, N)) MARK(U52(X1, X2, X3)) -> ACTIVE(U52(mark(X1), X2, X3)) ACTIVE(U71(tt, M, N)) -> MARK(U72(isNat(N), M, N)) MARK(U72(X1, X2, X3)) -> ACTIVE(U72(mark(X1), X2, X3)) MARK(U31(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(x(X1, X2)) -> ACTIVE(x(mark(X1), mark(X2))) ACTIVE(isNat(x(V1, V2))) -> MARK(U31(isNat(V1), V2)) The TRS R consists of the following rules: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (123) 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: ACTIVE(U51(tt, M, N)) -> MARK(U52(isNat(N), M, N)) ACTIVE(U71(tt, M, N)) -> MARK(U72(isNat(N), M, N)) Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = 2*x_1 POL(MARK(x_1)) = 0 POL(U11(x_1, x_2)) = 0 POL(U12(x_1)) = 0 POL(U21(x_1)) = 0 POL(U31(x_1, x_2)) = 0 POL(U32(x_1)) = 0 POL(U41(x_1, x_2)) = 0 POL(U51(x_1, x_2, x_3)) = 2 POL(U52(x_1, x_2, x_3)) = 0 POL(U61(x_1)) = 0 POL(U71(x_1, x_2, x_3)) = 2 POL(U72(x_1, x_2, x_3)) = 0 POL(active(x_1)) = 0 POL(isNat(x_1)) = 0 POL(mark(x_1)) = 0 POL(plus(x_1, x_2)) = 0 POL(s(x_1)) = 0 POL(tt) = 0 POL(x(x_1, x_2)) = 0 ---------------------------------------- (124) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U12(X)) -> MARK(X) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V2)) -> MARK(U12(isNat(V2))) ACTIVE(U31(tt, V2)) -> MARK(U32(isNat(V2))) MARK(U32(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) MARK(U21(X)) -> MARK(X) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U52(X1, X2, X3)) -> ACTIVE(U52(mark(X1), X2, X3)) MARK(U72(X1, X2, X3)) -> ACTIVE(U72(mark(X1), X2, X3)) MARK(U31(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(x(X1, X2)) -> ACTIVE(x(mark(X1), mark(X2))) ACTIVE(isNat(x(V1, V2))) -> MARK(U31(isNat(V1), V2)) The TRS R consists of the following rules: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (125) 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: MARK(U52(X1, X2, X3)) -> ACTIVE(U52(mark(X1), X2, X3)) MARK(U72(X1, X2, X3)) -> ACTIVE(U72(mark(X1), X2, X3)) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(x(X1, X2)) -> ACTIVE(x(mark(X1), mark(X2))) Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = 2*x_1 POL(MARK(x_1)) = 2 POL(U11(x_1, x_2)) = 1 POL(U12(x_1)) = 0 POL(U21(x_1)) = 0 POL(U31(x_1, x_2)) = 1 POL(U32(x_1)) = 0 POL(U41(x_1, x_2)) = 0 POL(U51(x_1, x_2, x_3)) = 0 POL(U52(x_1, x_2, x_3)) = 0 POL(U61(x_1)) = 0 POL(U71(x_1, x_2, x_3)) = 0 POL(U72(x_1, x_2, x_3)) = 0 POL(active(x_1)) = 0 POL(isNat(x_1)) = 1 POL(mark(x_1)) = 0 POL(plus(x_1, x_2)) = 0 POL(s(x_1)) = 0 POL(tt) = 0 POL(x(x_1, x_2)) = 0 ---------------------------------------- (126) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U12(X)) -> MARK(X) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V2)) -> MARK(U12(isNat(V2))) ACTIVE(U31(tt, V2)) -> MARK(U32(isNat(V2))) MARK(U32(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) MARK(U21(X)) -> MARK(X) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) ACTIVE(isNat(x(V1, V2))) -> MARK(U31(isNat(V1), V2)) The TRS R consists of the following rules: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (127) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U31(tt, V2)) -> MARK(U32(isNat(V2))) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: <<< POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(U12(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(U11(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(ACTIVE(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(tt) = [[0A]] >>> <<< POL(isNat(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(U31(x_1, x_2)) = [[-I]] + [[5A]] * x_1 + [[1A]] * x_2 >>> <<< POL(U32(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[1A]] * x_2 >>> <<< POL(s(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(U21(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(x(x_1, x_2)) = [[0A]] + [[5A]] * x_1 + [[1A]] * x_2 >>> <<< POL(active(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(U41(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(U51(x_1, x_2, x_3)) = [[-I]] + [[0A]] * x_1 + [[1A]] * x_2 + [[0A]] * x_3 >>> <<< POL(U52(x_1, x_2, x_3)) = [[-I]] + [[-I]] * x_1 + [[1A]] * x_2 + [[0A]] * x_3 >>> <<< POL(U71(x_1, x_2, x_3)) = [[-I]] + [[-I]] * x_1 + [[1A]] * x_2 + [[5A]] * x_3 >>> <<< POL(U72(x_1, x_2, x_3)) = [[-I]] + [[1A]] * x_1 + [[1A]] * x_2 + [[5A]] * x_3 >>> <<< POL(0) = [[4A]] >>> <<< POL(U61(x_1)) = [[4A]] + [[-I]] * x_1 >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) ---------------------------------------- (128) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U12(X)) -> MARK(X) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V2)) -> MARK(U12(isNat(V2))) MARK(U32(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) MARK(U21(X)) -> MARK(X) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) ACTIVE(isNat(x(V1, V2))) -> MARK(U31(isNat(V1), V2)) The TRS R consists of the following rules: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (129) 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: MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = 2*x_1 POL(MARK(x_1)) = 2 POL(U11(x_1, x_2)) = 1 POL(U12(x_1)) = 0 POL(U21(x_1)) = 0 POL(U31(x_1, x_2)) = 0 POL(U32(x_1)) = 0 POL(U41(x_1, x_2)) = 0 POL(U51(x_1, x_2, x_3)) = 0 POL(U52(x_1, x_2, x_3)) = 0 POL(U61(x_1)) = 0 POL(U71(x_1, x_2, x_3)) = 0 POL(U72(x_1, x_2, x_3)) = 0 POL(active(x_1)) = 0 POL(isNat(x_1)) = 1 POL(mark(x_1)) = 0 POL(plus(x_1, x_2)) = 0 POL(s(x_1)) = 0 POL(tt) = 0 POL(x(x_1, x_2)) = 0 ---------------------------------------- (130) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U12(X)) -> MARK(X) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V2)) -> MARK(U12(isNat(V2))) MARK(U32(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) MARK(U21(X)) -> MARK(X) MARK(U31(X1, X2)) -> MARK(X1) ACTIVE(isNat(x(V1, V2))) -> MARK(U31(isNat(V1), V2)) The TRS R consists of the following rules: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (131) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U32(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U11_2(x_1, x_2) ) = 2x_1 + 1 POL( mark_1(x_1) ) = 0 POL( U12_1(x_1) ) = x_1 + 1 POL( active_1(x_1) ) = 2 POL( tt ) = 0 POL( isNat_1(x_1) ) = 0 POL( U31_2(x_1, x_2) ) = x_1 + 1 POL( U32_1(x_1) ) = x_1 + 2 POL( U41_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U51_3(x_1, ..., x_3) ) = max{0, x_2 + 2x_3 - 1} POL( U52_3(x_1, ..., x_3) ) = x_1 + x_3 POL( s_1(x_1) ) = max{0, x_1 - 1} POL( plus_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U71_3(x_1, ..., x_3) ) = x_2 + 2 POL( U72_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 - 2} POL( x_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 2} POL( U21_1(x_1) ) = x_1 + 1 POL( 0 ) = 0 POL( U61_1(x_1) ) = 2 POL( MARK_1(x_1) ) = max{0, x_1 - 1} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (132) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U12(X)) -> MARK(X) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V2)) -> MARK(U12(isNat(V2))) MARK(U11(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) MARK(U21(X)) -> MARK(X) MARK(U31(X1, X2)) -> MARK(X1) ACTIVE(isNat(x(V1, V2))) -> MARK(U31(isNat(V1), V2)) The TRS R consists of the following rules: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (133) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U31(X1, X2)) -> MARK(X1) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: <<< POL(MARK(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(U12(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(U11(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(ACTIVE(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(tt) = [[0A]] >>> <<< POL(isNat(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(s(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(U21(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(U31(x_1, x_2)) = [[0A]] + [[1A]] * x_1 + [[0A]] * x_2 >>> <<< POL(x(x_1, x_2)) = [[0A]] + [[1A]] * x_1 + [[0A]] * x_2 >>> <<< POL(active(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(U32(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(U41(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 >>> <<< POL(U51(x_1, x_2, x_3)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 + [[0A]] * x_3 >>> <<< POL(U52(x_1, x_2, x_3)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 + [[0A]] * x_3 >>> <<< POL(U71(x_1, x_2, x_3)) = [[0A]] + [[-I]] * x_1 + [[0A]] * x_2 + [[1A]] * x_3 >>> <<< POL(U72(x_1, x_2, x_3)) = [[0A]] + [[1A]] * x_1 + [[0A]] * x_2 + [[1A]] * x_3 >>> <<< POL(0) = [[0A]] >>> <<< POL(U61(x_1)) = [[0A]] + [[-I]] * x_1 >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) ---------------------------------------- (134) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U12(X)) -> MARK(X) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V2)) -> MARK(U12(isNat(V2))) MARK(U11(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) MARK(U21(X)) -> MARK(X) ACTIVE(isNat(x(V1, V2))) -> MARK(U31(isNat(V1), V2)) The TRS R consists of the following rules: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (135) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (136) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V2)) -> MARK(U12(isNat(V2))) MARK(U12(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) MARK(U21(X)) -> MARK(X) The TRS R consists of the following rules: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (137) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U12(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: <<< POL(MARK(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(U11(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[1A]] * x_2 >>> <<< POL(ACTIVE(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(tt) = [[2A]] >>> <<< POL(U12(x_1)) = [[-I]] + [[1A]] * x_1 >>> <<< POL(isNat(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[1A]] * x_2 >>> <<< POL(s(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(U21(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(active(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(U31(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[-I]] * x_2 >>> <<< POL(U32(x_1)) = [[2A]] + [[-I]] * x_1 >>> <<< POL(U41(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(U51(x_1, x_2, x_3)) = [[-I]] + [[-I]] * x_1 + [[1A]] * x_2 + [[0A]] * x_3 >>> <<< POL(U52(x_1, x_2, x_3)) = [[-I]] + [[-I]] * x_1 + [[1A]] * x_2 + [[0A]] * x_3 >>> <<< POL(U71(x_1, x_2, x_3)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 + [[1A]] * x_3 >>> <<< POL(U72(x_1, x_2, x_3)) = [[0A]] + [[-I]] * x_1 + [[0A]] * x_2 + [[1A]] * x_3 >>> <<< POL(x(x_1, x_2)) = [[0A]] + [[1A]] * x_1 + [[0A]] * x_2 >>> <<< POL(0) = [[2A]] >>> <<< POL(U61(x_1)) = [[0A]] + [[0A]] * x_1 >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) ---------------------------------------- (138) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V2)) -> MARK(U12(isNat(V2))) MARK(U11(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) MARK(U21(X)) -> MARK(X) The TRS R consists of the following rules: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (139) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (140) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) MARK(U11(X1, X2)) -> MARK(X1) MARK(U21(X)) -> MARK(X) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) The TRS R consists of the following rules: mark(U12(X)) -> active(U12(mark(X))) active(U11(tt, V2)) -> mark(U12(isNat(V2))) active(U31(tt, V2)) -> mark(U32(isNat(V2))) mark(U32(X)) -> active(U32(mark(X))) active(U41(tt, N)) -> mark(N) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(U51(tt, M, N)) -> mark(U52(isNat(N), M, N)) mark(U52(X1, X2, X3)) -> active(U52(mark(X1), X2, X3)) active(U52(tt, M, N)) -> mark(s(plus(N, M))) mark(s(X)) -> active(s(mark(X))) active(U71(tt, M, N)) -> mark(U72(isNat(N), M, N)) mark(U72(X1, X2, X3)) -> active(U72(mark(X1), X2, X3)) active(U72(tt, M, N)) -> mark(plus(x(N, M), N)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) active(isNat(plus(V1, V2))) -> mark(U11(isNat(V1), V2)) active(isNat(s(V1))) -> mark(U21(isNat(V1))) mark(U21(X)) -> active(U21(mark(X))) active(isNat(x(V1, V2))) -> mark(U31(isNat(V1), V2)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(plus(N, 0)) -> mark(U41(isNat(N), N)) mark(U41(X1, X2)) -> active(U41(mark(X1), X2)) active(plus(N, s(M))) -> mark(U51(isNat(M), M, N)) mark(U51(X1, X2, X3)) -> active(U51(mark(X1), X2, X3)) active(x(N, 0)) -> mark(U61(isNat(N))) mark(U61(X)) -> active(U61(mark(X))) active(x(N, s(M))) -> mark(U71(isNat(M), M, N)) mark(U71(X1, X2, X3)) -> active(U71(mark(X1), X2, X3)) mark(isNat(X)) -> active(isNat(X)) mark(x(X1, X2)) -> active(x(mark(X1), mark(X2))) mark(tt) -> active(tt) mark(0) -> active(0) x(X1, mark(X2)) -> x(X1, X2) x(mark(X1), X2) -> x(X1, X2) x(active(X1), X2) -> x(X1, X2) x(X1, active(X2)) -> x(X1, X2) U12(active(X)) -> U12(X) U12(mark(X)) -> U12(X) active(U12(tt)) -> mark(tt) active(U21(tt)) -> mark(tt) active(U32(tt)) -> mark(tt) active(U61(tt)) -> mark(0) active(isNat(0)) -> mark(tt) U32(active(X)) -> U32(X) U32(mark(X)) -> U32(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U52(X1, mark(X2), X3) -> U52(X1, X2, X3) U52(mark(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, X2, mark(X3)) -> U52(X1, X2, X3) U52(active(X1), X2, X3) -> U52(X1, X2, X3) U52(X1, active(X2), X3) -> U52(X1, X2, X3) U52(X1, X2, active(X3)) -> U52(X1, X2, X3) s(active(X)) -> s(X) s(mark(X)) -> s(X) U72(X1, mark(X2), X3) -> U72(X1, X2, X3) U72(mark(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, X2, mark(X3)) -> U72(X1, X2, X3) U72(active(X1), X2, X3) -> U72(X1, X2, X3) U72(X1, active(X2), X3) -> U72(X1, X2, X3) U72(X1, X2, active(X3)) -> U72(X1, X2, X3) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) U21(active(X)) -> U21(X) U21(mark(X)) -> U21(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2)) -> U41(X1, X2) U41(mark(X1), X2) -> U41(X1, X2) U41(active(X1), X2) -> U41(X1, X2) U41(X1, active(X2)) -> U41(X1, X2) U51(X1, mark(X2), X3) -> U51(X1, X2, X3) U51(mark(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, X2, mark(X3)) -> U51(X1, X2, X3) U51(active(X1), X2, X3) -> U51(X1, X2, X3) U51(X1, active(X2), X3) -> U51(X1, X2, X3) U51(X1, X2, active(X3)) -> U51(X1, X2, X3) U61(active(X)) -> U61(X) U61(mark(X)) -> U61(X) U71(X1, mark(X2), X3) -> U71(X1, X2, X3) U71(mark(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, X2, mark(X3)) -> U71(X1, X2, X3) U71(active(X1), X2, X3) -> U71(X1, X2, X3) U71(X1, active(X2), X3) -> U71(X1, X2, X3) U71(X1, X2, active(X3)) -> U71(X1, X2, X3) The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (141) 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. ---------------------------------------- (142) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) MARK(U11(X1, X2)) -> MARK(X1) MARK(U21(X)) -> MARK(X) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) R is empty. The set Q consists of the following terms: active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0)) U12(active(x0)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (143) 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]. active(U11(tt, x0)) active(U12(tt)) active(U21(tt)) active(U31(tt, x0)) active(U32(tt)) active(U41(tt, x0)) active(U51(tt, x0, x1)) active(U52(tt, x0, x1)) active(U61(tt)) active(U71(tt, x0, x1)) active(U72(tt, x0, x1)) active(isNat(0)) active(isNat(plus(x0, x1))) active(isNat(s(x0))) active(isNat(x(x0, x1))) active(plus(x0, 0)) active(plus(x0, s(x1))) active(x(x0, 0)) active(x(x0, s(x1))) mark(U11(x0, x1)) mark(tt) mark(U12(x0)) mark(isNat(x0)) mark(U21(x0)) mark(U31(x0, x1)) mark(U32(x0)) mark(U41(x0, x1)) mark(U51(x0, x1, x2)) mark(U52(x0, x1, x2)) mark(s(x0)) mark(plus(x0, x1)) mark(U61(x0)) mark(0) mark(U71(x0, x1, x2)) mark(U72(x0, x1, x2)) mark(x(x0, x1)) U12(mark(x0)) U12(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0)) U32(active(x0)) U41(mark(x0), x1) U41(x0, mark(x1)) U41(active(x0), x1) U41(x0, active(x1)) U51(mark(x0), x1, x2) U51(x0, mark(x1), x2) U51(x0, x1, mark(x2)) U51(active(x0), x1, x2) U51(x0, active(x1), x2) U51(x0, x1, active(x2)) U52(mark(x0), x1, x2) U52(x0, mark(x1), x2) U52(x0, x1, mark(x2)) U52(active(x0), x1, x2) U52(x0, active(x1), x2) U52(x0, x1, active(x2)) U61(mark(x0)) U61(active(x0)) U71(mark(x0), x1, x2) U71(x0, mark(x1), x2) U71(x0, x1, mark(x2)) U71(active(x0), x1, x2) U71(x0, active(x1), x2) U71(x0, x1, active(x2)) U72(mark(x0), x1, x2) U72(x0, mark(x1), x2) U72(x0, x1, mark(x2)) U72(active(x0), x1, x2) U72(x0, active(x1), x2) U72(x0, x1, active(x2)) x(mark(x0), x1) x(x0, mark(x1)) x(active(x0), x1) x(x0, active(x1)) ---------------------------------------- (144) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) MARK(U11(X1, X2)) -> MARK(X1) MARK(U21(X)) -> MARK(X) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) R is empty. The set Q consists of the following terms: U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (145) UsableRulesReductionPairsProof (EQUIVALENT) By using the usable rules with reduction pair processor [LPAR04] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules [FROCOS05] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. The following dependency pairs can be deleted: ACTIVE(isNat(plus(V1, V2))) -> MARK(U11(isNat(V1), V2)) MARK(U21(X)) -> MARK(X) ACTIVE(isNat(s(V1))) -> MARK(U21(isNat(V1))) No rules are removed from R. Used ordering: POLO with Polynomial interpretation [POLO]: POL(ACTIVE(x_1)) = 2 + 2*x_1 POL(MARK(x_1)) = 2 + 2*x_1 POL(U11(x_1, x_2)) = x_1 + x_2 POL(U21(x_1)) = 1 + x_1 POL(isNat(x_1)) = 2 + 2*x_1 POL(plus(x_1, x_2)) = 1 + 2*x_1 + x_2 POL(s(x_1)) = 2 + 2*x_1 ---------------------------------------- (146) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNat(X)) -> ACTIVE(isNat(X)) MARK(U11(X1, X2)) -> MARK(X1) R is empty. The set Q consists of the following terms: U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (147) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (148) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U11(X1, X2)) -> MARK(X1) R is empty. The set Q consists of the following terms: U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (149) 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]. isNat(mark(x0)) isNat(active(x0)) U21(mark(x0)) U21(active(x0)) s(mark(x0)) s(active(x0)) plus(mark(x0), x1) plus(x0, mark(x1)) plus(active(x0), x1) plus(x0, active(x1)) ---------------------------------------- (150) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U11(X1, X2)) -> MARK(X1) R is empty. The set Q consists of the following terms: U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (151) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *MARK(U11(X1, X2)) -> MARK(X1) The graph contains the following edges 1 > 1 ---------------------------------------- (152) YES