11.09/3.68 YES 11.09/3.69 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 11.09/3.69 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 11.09/3.69 11.09/3.69 11.09/3.69 Termination w.r.t. Q of the given QTRS could be proven: 11.09/3.69 11.09/3.69 (0) QTRS 11.09/3.69 (1) QTRSToCSRProof [SOUND, 0 ms] 11.09/3.69 (2) CSR 11.09/3.69 (3) CSDependencyPairsProof [EQUIVALENT, 14 ms] 11.09/3.69 (4) QCSDP 11.09/3.69 (5) QCSDependencyGraphProof [EQUIVALENT, 0 ms] 11.09/3.69 (6) AND 11.09/3.69 (7) QCSDP 11.09/3.69 (8) QCSDPReductionPairProof [EQUIVALENT, 54 ms] 11.09/3.69 (9) QCSDP 11.09/3.69 (10) QCSDependencyGraphProof [EQUIVALENT, 0 ms] 11.09/3.69 (11) AND 11.09/3.69 (12) QCSDP 11.09/3.69 (13) QCSDPReductionPairProof [EQUIVALENT, 266 ms] 11.09/3.69 (14) QCSDP 11.09/3.69 (15) QCSDependencyGraphProof [EQUIVALENT, 0 ms] 11.09/3.69 (16) TRUE 11.09/3.69 (17) QCSDP 11.09/3.69 (18) QCSDPReductionPairProof [EQUIVALENT, 335 ms] 11.09/3.69 (19) QCSDP 11.09/3.69 (20) QCSDependencyGraphProof [EQUIVALENT, 0 ms] 11.09/3.69 (21) TRUE 11.09/3.69 (22) QCSDP 11.09/3.69 (23) QCSDPSubtermProof [EQUIVALENT, 0 ms] 11.09/3.69 (24) QCSDP 11.09/3.69 (25) QCSDependencyGraphProof [EQUIVALENT, 0 ms] 11.09/3.69 (26) TRUE 11.09/3.69 (27) QCSDP 11.09/3.69 (28) QCSDPSubtermProof [EQUIVALENT, 0 ms] 11.09/3.69 (29) QCSDP 11.09/3.69 (30) QCSDependencyGraphProof [EQUIVALENT, 0 ms] 11.09/3.69 (31) TRUE 11.09/3.69 11.09/3.69 11.09/3.69 ---------------------------------------- 11.09/3.69 11.09/3.69 (0) 11.09/3.69 Obligation: 11.09/3.69 Q restricted rewrite system: 11.09/3.69 The TRS R consists of the following rules: 11.09/3.69 11.09/3.69 active(U11(tt, V1, V2)) -> mark(U12(isNat(V1), V2)) 11.09/3.69 active(U12(tt, V2)) -> mark(U13(isNat(V2))) 11.09/3.69 active(U13(tt)) -> mark(tt) 11.09/3.69 active(U21(tt, V1)) -> mark(U22(isNat(V1))) 11.09/3.69 active(U22(tt)) -> mark(tt) 11.09/3.69 active(U31(tt, V1, V2)) -> mark(U32(isNat(V1), V2)) 11.09/3.69 active(U32(tt, V2)) -> mark(U33(isNat(V2))) 11.09/3.69 active(U33(tt)) -> mark(tt) 11.09/3.69 active(U41(tt, N)) -> mark(N) 11.09/3.69 active(U51(tt, M, N)) -> mark(s(plus(N, M))) 11.09/3.69 active(U61(tt)) -> mark(0) 11.09/3.69 active(U71(tt, M, N)) -> mark(plus(x(N, M), N)) 11.09/3.69 active(and(tt, X)) -> mark(X) 11.09/3.69 active(isNat(0)) -> mark(tt) 11.09/3.69 active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)) 11.09/3.69 active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) 11.09/3.69 active(isNat(x(V1, V2))) -> mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2)) 11.09/3.69 active(isNatKind(0)) -> mark(tt) 11.09/3.69 active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))) 11.09/3.69 active(isNatKind(s(V1))) -> mark(isNatKind(V1)) 11.09/3.69 active(isNatKind(x(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))) 11.09/3.69 active(plus(N, 0)) -> mark(U41(and(isNat(N), isNatKind(N)), N)) 11.09/3.69 active(plus(N, s(M))) -> mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) 11.09/3.69 active(x(N, 0)) -> mark(U61(and(isNat(N), isNatKind(N)))) 11.09/3.69 active(x(N, s(M))) -> mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) 11.09/3.69 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 11.09/3.69 active(U12(X1, X2)) -> U12(active(X1), X2) 11.09/3.69 active(U13(X)) -> U13(active(X)) 11.09/3.69 active(U21(X1, X2)) -> U21(active(X1), X2) 11.09/3.69 active(U22(X)) -> U22(active(X)) 11.09/3.69 active(U31(X1, X2, X3)) -> U31(active(X1), X2, X3) 11.09/3.69 active(U32(X1, X2)) -> U32(active(X1), X2) 11.09/3.69 active(U33(X)) -> U33(active(X)) 11.09/3.69 active(U41(X1, X2)) -> U41(active(X1), X2) 11.09/3.69 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 11.09/3.69 active(s(X)) -> s(active(X)) 11.09/3.69 active(plus(X1, X2)) -> plus(active(X1), X2) 11.09/3.69 active(plus(X1, X2)) -> plus(X1, active(X2)) 11.09/3.69 active(U61(X)) -> U61(active(X)) 11.09/3.69 active(U71(X1, X2, X3)) -> U71(active(X1), X2, X3) 11.09/3.69 active(x(X1, X2)) -> x(active(X1), X2) 11.09/3.69 active(x(X1, X2)) -> x(X1, active(X2)) 11.09/3.69 active(and(X1, X2)) -> and(active(X1), X2) 11.09/3.69 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 11.09/3.69 U12(mark(X1), X2) -> mark(U12(X1, X2)) 11.09/3.69 U13(mark(X)) -> mark(U13(X)) 11.09/3.69 U21(mark(X1), X2) -> mark(U21(X1, X2)) 11.09/3.69 U22(mark(X)) -> mark(U22(X)) 11.09/3.69 U31(mark(X1), X2, X3) -> mark(U31(X1, X2, X3)) 11.09/3.69 U32(mark(X1), X2) -> mark(U32(X1, X2)) 11.09/3.69 U33(mark(X)) -> mark(U33(X)) 11.09/3.69 U41(mark(X1), X2) -> mark(U41(X1, X2)) 11.09/3.69 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 11.09/3.69 s(mark(X)) -> mark(s(X)) 11.09/3.69 plus(mark(X1), X2) -> mark(plus(X1, X2)) 11.09/3.69 plus(X1, mark(X2)) -> mark(plus(X1, X2)) 11.09/3.69 U61(mark(X)) -> mark(U61(X)) 11.09/3.69 U71(mark(X1), X2, X3) -> mark(U71(X1, X2, X3)) 11.09/3.69 x(mark(X1), X2) -> mark(x(X1, X2)) 11.09/3.69 x(X1, mark(X2)) -> mark(x(X1, X2)) 11.09/3.69 and(mark(X1), X2) -> mark(and(X1, X2)) 11.09/3.69 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 11.09/3.69 proper(tt) -> ok(tt) 11.09/3.69 proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)) 11.09/3.69 proper(isNat(X)) -> isNat(proper(X)) 11.09/3.69 proper(U13(X)) -> U13(proper(X)) 11.09/3.69 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 11.09/3.69 proper(U22(X)) -> U22(proper(X)) 11.09/3.69 proper(U31(X1, X2, X3)) -> U31(proper(X1), proper(X2), proper(X3)) 11.09/3.69 proper(U32(X1, X2)) -> U32(proper(X1), proper(X2)) 11.09/3.69 proper(U33(X)) -> U33(proper(X)) 11.09/3.69 proper(U41(X1, X2)) -> U41(proper(X1), proper(X2)) 11.09/3.69 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 11.09/3.69 proper(s(X)) -> s(proper(X)) 11.09/3.69 proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)) 11.09/3.69 proper(U61(X)) -> U61(proper(X)) 11.09/3.69 proper(0) -> ok(0) 11.09/3.69 proper(U71(X1, X2, X3)) -> U71(proper(X1), proper(X2), proper(X3)) 11.09/3.69 proper(x(X1, X2)) -> x(proper(X1), proper(X2)) 11.09/3.69 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 11.09/3.69 proper(isNatKind(X)) -> isNatKind(proper(X)) 11.09/3.69 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 11.09/3.69 U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)) 11.09/3.69 isNat(ok(X)) -> ok(isNat(X)) 11.09/3.69 U13(ok(X)) -> ok(U13(X)) 11.09/3.69 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 11.09/3.69 U22(ok(X)) -> ok(U22(X)) 11.09/3.69 U31(ok(X1), ok(X2), ok(X3)) -> ok(U31(X1, X2, X3)) 11.09/3.69 U32(ok(X1), ok(X2)) -> ok(U32(X1, X2)) 11.09/3.69 U33(ok(X)) -> ok(U33(X)) 11.09/3.69 U41(ok(X1), ok(X2)) -> ok(U41(X1, X2)) 11.09/3.69 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 11.09/3.69 s(ok(X)) -> ok(s(X)) 11.09/3.69 plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)) 11.09/3.69 U61(ok(X)) -> ok(U61(X)) 11.09/3.69 U71(ok(X1), ok(X2), ok(X3)) -> ok(U71(X1, X2, X3)) 11.09/3.69 x(ok(X1), ok(X2)) -> ok(x(X1, X2)) 11.09/3.69 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 11.09/3.69 isNatKind(ok(X)) -> ok(isNatKind(X)) 11.09/3.69 top(mark(X)) -> top(proper(X)) 11.09/3.69 top(ok(X)) -> top(active(X)) 11.09/3.69 11.09/3.69 The set Q consists of the following terms: 11.09/3.69 11.09/3.69 active(isNat(0)) 11.09/3.69 active(isNat(plus(x0, x1))) 11.09/3.69 active(isNat(s(x0))) 11.09/3.69 active(isNat(x(x0, x1))) 11.09/3.69 active(isNatKind(0)) 11.09/3.69 active(isNatKind(plus(x0, x1))) 11.09/3.69 active(isNatKind(s(x0))) 11.09/3.69 active(isNatKind(x(x0, x1))) 11.09/3.69 active(U11(x0, x1, x2)) 11.09/3.69 active(U12(x0, x1)) 11.09/3.69 active(U13(x0)) 11.09/3.69 active(U21(x0, x1)) 11.09/3.69 active(U22(x0)) 11.09/3.69 active(U31(x0, x1, x2)) 11.09/3.69 active(U32(x0, x1)) 11.09/3.69 active(U33(x0)) 11.09/3.69 active(U41(x0, x1)) 11.09/3.69 active(U51(x0, x1, x2)) 11.09/3.69 active(s(x0)) 11.09/3.69 active(plus(x0, x1)) 11.09/3.69 active(U61(x0)) 11.09/3.69 active(U71(x0, x1, x2)) 11.09/3.69 active(x(x0, x1)) 11.09/3.69 active(and(x0, x1)) 11.09/3.69 U11(mark(x0), x1, x2) 11.09/3.69 U12(mark(x0), x1) 11.09/3.69 U13(mark(x0)) 11.09/3.69 U21(mark(x0), x1) 11.09/3.69 U22(mark(x0)) 11.09/3.69 U31(mark(x0), x1, x2) 11.09/3.69 U32(mark(x0), x1) 11.09/3.69 U33(mark(x0)) 11.09/3.69 U41(mark(x0), x1) 11.09/3.69 U51(mark(x0), x1, x2) 11.09/3.69 s(mark(x0)) 11.09/3.69 plus(mark(x0), x1) 11.09/3.69 plus(x0, mark(x1)) 11.09/3.69 U61(mark(x0)) 11.09/3.69 U71(mark(x0), x1, x2) 11.09/3.69 x(mark(x0), x1) 11.09/3.69 x(x0, mark(x1)) 11.09/3.69 and(mark(x0), x1) 11.09/3.69 proper(U11(x0, x1, x2)) 11.09/3.69 proper(tt) 11.09/3.69 proper(U12(x0, x1)) 11.09/3.69 proper(isNat(x0)) 11.09/3.69 proper(U13(x0)) 11.09/3.69 proper(U21(x0, x1)) 11.09/3.69 proper(U22(x0)) 11.09/3.69 proper(U31(x0, x1, x2)) 11.09/3.69 proper(U32(x0, x1)) 11.09/3.69 proper(U33(x0)) 11.09/3.69 proper(U41(x0, x1)) 11.09/3.69 proper(U51(x0, x1, x2)) 11.09/3.69 proper(s(x0)) 11.09/3.69 proper(plus(x0, x1)) 11.09/3.69 proper(U61(x0)) 11.09/3.69 proper(0) 11.09/3.69 proper(U71(x0, x1, x2)) 11.09/3.69 proper(x(x0, x1)) 11.09/3.69 proper(and(x0, x1)) 11.09/3.69 proper(isNatKind(x0)) 11.09/3.69 U11(ok(x0), ok(x1), ok(x2)) 11.09/3.69 U12(ok(x0), ok(x1)) 11.09/3.69 isNat(ok(x0)) 11.09/3.69 U13(ok(x0)) 11.09/3.69 U21(ok(x0), ok(x1)) 11.09/3.69 U22(ok(x0)) 11.09/3.69 U31(ok(x0), ok(x1), ok(x2)) 11.09/3.69 U32(ok(x0), ok(x1)) 11.09/3.69 U33(ok(x0)) 11.09/3.69 U41(ok(x0), ok(x1)) 11.09/3.69 U51(ok(x0), ok(x1), ok(x2)) 11.09/3.69 s(ok(x0)) 11.09/3.69 plus(ok(x0), ok(x1)) 11.09/3.69 U61(ok(x0)) 11.09/3.69 U71(ok(x0), ok(x1), ok(x2)) 11.09/3.69 x(ok(x0), ok(x1)) 11.09/3.69 and(ok(x0), ok(x1)) 11.09/3.69 isNatKind(ok(x0)) 11.09/3.69 top(mark(x0)) 11.09/3.69 top(ok(x0)) 11.09/3.69 11.09/3.69 11.09/3.69 ---------------------------------------- 11.09/3.69 11.09/3.69 (1) QTRSToCSRProof (SOUND) 11.09/3.69 The following Q TRS is given: Q restricted rewrite system: 11.09/3.69 The TRS R consists of the following rules: 11.09/3.69 11.09/3.69 active(U11(tt, V1, V2)) -> mark(U12(isNat(V1), V2)) 11.09/3.69 active(U12(tt, V2)) -> mark(U13(isNat(V2))) 11.09/3.69 active(U13(tt)) -> mark(tt) 11.09/3.69 active(U21(tt, V1)) -> mark(U22(isNat(V1))) 11.09/3.69 active(U22(tt)) -> mark(tt) 11.09/3.69 active(U31(tt, V1, V2)) -> mark(U32(isNat(V1), V2)) 11.09/3.69 active(U32(tt, V2)) -> mark(U33(isNat(V2))) 11.09/3.69 active(U33(tt)) -> mark(tt) 11.09/3.69 active(U41(tt, N)) -> mark(N) 11.09/3.69 active(U51(tt, M, N)) -> mark(s(plus(N, M))) 11.09/3.69 active(U61(tt)) -> mark(0) 11.09/3.69 active(U71(tt, M, N)) -> mark(plus(x(N, M), N)) 11.09/3.69 active(and(tt, X)) -> mark(X) 11.09/3.69 active(isNat(0)) -> mark(tt) 11.09/3.69 active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)) 11.09/3.69 active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) 11.09/3.69 active(isNat(x(V1, V2))) -> mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2)) 11.09/3.69 active(isNatKind(0)) -> mark(tt) 11.09/3.69 active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))) 11.09/3.69 active(isNatKind(s(V1))) -> mark(isNatKind(V1)) 11.09/3.69 active(isNatKind(x(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))) 11.09/3.69 active(plus(N, 0)) -> mark(U41(and(isNat(N), isNatKind(N)), N)) 11.09/3.69 active(plus(N, s(M))) -> mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) 11.09/3.69 active(x(N, 0)) -> mark(U61(and(isNat(N), isNatKind(N)))) 11.09/3.69 active(x(N, s(M))) -> mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) 11.09/3.69 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 11.09/3.69 active(U12(X1, X2)) -> U12(active(X1), X2) 11.09/3.69 active(U13(X)) -> U13(active(X)) 11.09/3.69 active(U21(X1, X2)) -> U21(active(X1), X2) 11.09/3.69 active(U22(X)) -> U22(active(X)) 11.09/3.69 active(U31(X1, X2, X3)) -> U31(active(X1), X2, X3) 11.09/3.69 active(U32(X1, X2)) -> U32(active(X1), X2) 11.09/3.69 active(U33(X)) -> U33(active(X)) 11.09/3.69 active(U41(X1, X2)) -> U41(active(X1), X2) 11.09/3.69 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 11.09/3.69 active(s(X)) -> s(active(X)) 11.09/3.69 active(plus(X1, X2)) -> plus(active(X1), X2) 11.09/3.69 active(plus(X1, X2)) -> plus(X1, active(X2)) 11.09/3.69 active(U61(X)) -> U61(active(X)) 11.09/3.69 active(U71(X1, X2, X3)) -> U71(active(X1), X2, X3) 11.09/3.69 active(x(X1, X2)) -> x(active(X1), X2) 11.09/3.69 active(x(X1, X2)) -> x(X1, active(X2)) 11.09/3.69 active(and(X1, X2)) -> and(active(X1), X2) 11.09/3.69 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 11.09/3.69 U12(mark(X1), X2) -> mark(U12(X1, X2)) 11.09/3.69 U13(mark(X)) -> mark(U13(X)) 11.09/3.69 U21(mark(X1), X2) -> mark(U21(X1, X2)) 11.09/3.69 U22(mark(X)) -> mark(U22(X)) 11.09/3.69 U31(mark(X1), X2, X3) -> mark(U31(X1, X2, X3)) 11.09/3.69 U32(mark(X1), X2) -> mark(U32(X1, X2)) 11.09/3.69 U33(mark(X)) -> mark(U33(X)) 11.09/3.69 U41(mark(X1), X2) -> mark(U41(X1, X2)) 11.09/3.69 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 11.09/3.69 s(mark(X)) -> mark(s(X)) 11.09/3.69 plus(mark(X1), X2) -> mark(plus(X1, X2)) 11.09/3.69 plus(X1, mark(X2)) -> mark(plus(X1, X2)) 11.09/3.69 U61(mark(X)) -> mark(U61(X)) 11.09/3.69 U71(mark(X1), X2, X3) -> mark(U71(X1, X2, X3)) 11.09/3.69 x(mark(X1), X2) -> mark(x(X1, X2)) 11.09/3.69 x(X1, mark(X2)) -> mark(x(X1, X2)) 11.09/3.69 and(mark(X1), X2) -> mark(and(X1, X2)) 11.09/3.69 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 11.09/3.69 proper(tt) -> ok(tt) 11.09/3.69 proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)) 11.09/3.69 proper(isNat(X)) -> isNat(proper(X)) 11.09/3.69 proper(U13(X)) -> U13(proper(X)) 11.09/3.69 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 11.09/3.69 proper(U22(X)) -> U22(proper(X)) 11.09/3.69 proper(U31(X1, X2, X3)) -> U31(proper(X1), proper(X2), proper(X3)) 11.09/3.69 proper(U32(X1, X2)) -> U32(proper(X1), proper(X2)) 11.09/3.69 proper(U33(X)) -> U33(proper(X)) 11.09/3.69 proper(U41(X1, X2)) -> U41(proper(X1), proper(X2)) 11.09/3.69 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 11.09/3.69 proper(s(X)) -> s(proper(X)) 11.09/3.69 proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)) 11.09/3.69 proper(U61(X)) -> U61(proper(X)) 11.09/3.69 proper(0) -> ok(0) 11.09/3.69 proper(U71(X1, X2, X3)) -> U71(proper(X1), proper(X2), proper(X3)) 11.09/3.69 proper(x(X1, X2)) -> x(proper(X1), proper(X2)) 11.09/3.69 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 11.09/3.69 proper(isNatKind(X)) -> isNatKind(proper(X)) 11.09/3.69 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 11.09/3.69 U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)) 11.09/3.69 isNat(ok(X)) -> ok(isNat(X)) 11.09/3.69 U13(ok(X)) -> ok(U13(X)) 11.09/3.69 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 11.09/3.69 U22(ok(X)) -> ok(U22(X)) 11.09/3.69 U31(ok(X1), ok(X2), ok(X3)) -> ok(U31(X1, X2, X3)) 11.09/3.69 U32(ok(X1), ok(X2)) -> ok(U32(X1, X2)) 11.09/3.69 U33(ok(X)) -> ok(U33(X)) 11.09/3.69 U41(ok(X1), ok(X2)) -> ok(U41(X1, X2)) 11.09/3.69 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 11.09/3.69 s(ok(X)) -> ok(s(X)) 11.09/3.69 plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)) 11.09/3.69 U61(ok(X)) -> ok(U61(X)) 11.09/3.69 U71(ok(X1), ok(X2), ok(X3)) -> ok(U71(X1, X2, X3)) 11.09/3.69 x(ok(X1), ok(X2)) -> ok(x(X1, X2)) 11.09/3.69 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 11.09/3.69 isNatKind(ok(X)) -> ok(isNatKind(X)) 11.09/3.69 top(mark(X)) -> top(proper(X)) 11.09/3.69 top(ok(X)) -> top(active(X)) 11.09/3.69 11.09/3.69 The set Q consists of the following terms: 11.09/3.69 11.09/3.69 active(isNat(0)) 11.09/3.69 active(isNat(plus(x0, x1))) 11.09/3.69 active(isNat(s(x0))) 11.09/3.69 active(isNat(x(x0, x1))) 11.09/3.69 active(isNatKind(0)) 11.09/3.69 active(isNatKind(plus(x0, x1))) 11.09/3.69 active(isNatKind(s(x0))) 11.09/3.69 active(isNatKind(x(x0, x1))) 11.09/3.69 active(U11(x0, x1, x2)) 11.09/3.69 active(U12(x0, x1)) 11.09/3.69 active(U13(x0)) 11.09/3.69 active(U21(x0, x1)) 11.09/3.69 active(U22(x0)) 11.09/3.69 active(U31(x0, x1, x2)) 11.09/3.69 active(U32(x0, x1)) 11.09/3.69 active(U33(x0)) 11.09/3.69 active(U41(x0, x1)) 11.09/3.69 active(U51(x0, x1, x2)) 11.09/3.69 active(s(x0)) 11.09/3.69 active(plus(x0, x1)) 11.09/3.69 active(U61(x0)) 11.09/3.69 active(U71(x0, x1, x2)) 11.09/3.69 active(x(x0, x1)) 11.09/3.69 active(and(x0, x1)) 11.09/3.69 U11(mark(x0), x1, x2) 11.09/3.69 U12(mark(x0), x1) 11.09/3.69 U13(mark(x0)) 11.09/3.69 U21(mark(x0), x1) 11.09/3.69 U22(mark(x0)) 11.09/3.69 U31(mark(x0), x1, x2) 11.09/3.69 U32(mark(x0), x1) 11.09/3.69 U33(mark(x0)) 11.09/3.69 U41(mark(x0), x1) 11.09/3.69 U51(mark(x0), x1, x2) 11.09/3.69 s(mark(x0)) 11.09/3.69 plus(mark(x0), x1) 11.09/3.69 plus(x0, mark(x1)) 11.09/3.69 U61(mark(x0)) 11.09/3.69 U71(mark(x0), x1, x2) 11.09/3.69 x(mark(x0), x1) 11.09/3.69 x(x0, mark(x1)) 11.09/3.69 and(mark(x0), x1) 11.09/3.69 proper(U11(x0, x1, x2)) 11.09/3.69 proper(tt) 11.09/3.69 proper(U12(x0, x1)) 11.09/3.69 proper(isNat(x0)) 11.09/3.69 proper(U13(x0)) 11.09/3.69 proper(U21(x0, x1)) 11.09/3.69 proper(U22(x0)) 11.09/3.69 proper(U31(x0, x1, x2)) 11.09/3.69 proper(U32(x0, x1)) 11.09/3.69 proper(U33(x0)) 11.09/3.69 proper(U41(x0, x1)) 11.09/3.69 proper(U51(x0, x1, x2)) 11.09/3.69 proper(s(x0)) 11.09/3.69 proper(plus(x0, x1)) 11.09/3.69 proper(U61(x0)) 11.09/3.69 proper(0) 11.09/3.69 proper(U71(x0, x1, x2)) 11.09/3.69 proper(x(x0, x1)) 11.09/3.69 proper(and(x0, x1)) 11.09/3.69 proper(isNatKind(x0)) 11.09/3.69 U11(ok(x0), ok(x1), ok(x2)) 11.09/3.69 U12(ok(x0), ok(x1)) 11.09/3.69 isNat(ok(x0)) 11.09/3.69 U13(ok(x0)) 11.09/3.69 U21(ok(x0), ok(x1)) 11.09/3.69 U22(ok(x0)) 11.09/3.69 U31(ok(x0), ok(x1), ok(x2)) 11.09/3.69 U32(ok(x0), ok(x1)) 11.09/3.69 U33(ok(x0)) 11.09/3.69 U41(ok(x0), ok(x1)) 11.09/3.69 U51(ok(x0), ok(x1), ok(x2)) 11.09/3.69 s(ok(x0)) 11.09/3.69 plus(ok(x0), ok(x1)) 11.09/3.69 U61(ok(x0)) 11.09/3.69 U71(ok(x0), ok(x1), ok(x2)) 11.09/3.69 x(ok(x0), ok(x1)) 11.09/3.69 and(ok(x0), ok(x1)) 11.09/3.69 isNatKind(ok(x0)) 11.09/3.69 top(mark(x0)) 11.09/3.69 top(ok(x0)) 11.09/3.69 11.09/3.69 Special symbols used for the transformation (see [GM04]): 11.09/3.69 top: top_1, active: active_1, mark: mark_1, ok: ok_1, proper: proper_1 11.09/3.69 The replacement map contains the following entries: 11.09/3.69 11.09/3.69 U11: {1} 11.09/3.69 tt: empty set 11.09/3.69 U12: {1} 11.09/3.69 isNat: empty set 11.09/3.69 U13: {1} 11.09/3.69 U21: {1} 11.09/3.69 U22: {1} 11.09/3.69 U31: {1} 11.09/3.69 U32: {1} 11.09/3.69 U33: {1} 11.09/3.69 U41: {1} 11.09/3.69 U51: {1} 11.09/3.69 s: {1} 11.09/3.69 plus: {1, 2} 11.09/3.69 U61: {1} 11.09/3.69 0: empty set 11.09/3.69 U71: {1} 11.09/3.69 x: {1, 2} 11.09/3.69 and: {1} 11.09/3.69 isNatKind: empty set 11.09/3.69 The QTRS contained just a subset of rules created by the complete Giesl-Middeldorp transformation. Therefore, the inverse transformation is sound, but not necessarily complete. 11.09/3.69 ---------------------------------------- 11.09/3.69 11.09/3.69 (2) 11.09/3.69 Obligation: 11.09/3.69 Context-sensitive rewrite system: 11.09/3.69 The TRS R consists of the following rules: 11.09/3.69 11.09/3.69 U11(tt, V1, V2) -> U12(isNat(V1), V2) 11.09/3.69 U12(tt, V2) -> U13(isNat(V2)) 11.09/3.69 U13(tt) -> tt 11.09/3.69 U21(tt, V1) -> U22(isNat(V1)) 11.09/3.69 U22(tt) -> tt 11.09/3.69 U31(tt, V1, V2) -> U32(isNat(V1), V2) 11.09/3.69 U32(tt, V2) -> U33(isNat(V2)) 11.09/3.69 U33(tt) -> tt 11.09/3.69 U41(tt, N) -> N 11.09/3.69 U51(tt, M, N) -> s(plus(N, M)) 11.09/3.69 U61(tt) -> 0 11.09/3.69 U71(tt, M, N) -> plus(x(N, M), N) 11.09/3.69 and(tt, X) -> X 11.09/3.69 isNat(0) -> tt 11.09/3.69 isNat(plus(V1, V2)) -> U11(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.69 isNat(s(V1)) -> U21(isNatKind(V1), V1) 11.09/3.69 isNat(x(V1, V2)) -> U31(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.69 isNatKind(0) -> tt 11.09/3.69 isNatKind(plus(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.69 isNatKind(s(V1)) -> isNatKind(V1) 11.09/3.69 isNatKind(x(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.69 plus(N, 0) -> U41(and(isNat(N), isNatKind(N)), N) 11.09/3.69 plus(N, s(M)) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.69 x(N, 0) -> U61(and(isNat(N), isNatKind(N))) 11.09/3.69 x(N, s(M)) -> U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.69 11.09/3.69 The replacement map contains the following entries: 11.09/3.69 11.09/3.69 U11: {1} 11.09/3.69 tt: empty set 11.09/3.69 U12: {1} 11.09/3.69 isNat: empty set 11.09/3.69 U13: {1} 11.09/3.69 U21: {1} 11.09/3.69 U22: {1} 11.09/3.69 U31: {1} 11.09/3.69 U32: {1} 11.09/3.69 U33: {1} 11.09/3.69 U41: {1} 11.09/3.69 U51: {1} 11.09/3.69 s: {1} 11.09/3.69 plus: {1, 2} 11.09/3.69 U61: {1} 11.09/3.69 0: empty set 11.09/3.69 U71: {1} 11.09/3.69 x: {1, 2} 11.09/3.69 and: {1} 11.09/3.69 isNatKind: empty set 11.09/3.69 11.09/3.69 ---------------------------------------- 11.09/3.69 11.09/3.69 (3) CSDependencyPairsProof (EQUIVALENT) 11.09/3.69 Using Improved CS-DPs [LPAR08] we result in the following initial Q-CSDP problem. 11.09/3.69 ---------------------------------------- 11.09/3.69 11.09/3.69 (4) 11.09/3.69 Obligation: 11.09/3.69 Q-restricted context-sensitive dependency pair problem: 11.09/3.69 The symbols in {U13_1, U22_1, U33_1, s_1, plus_2, U61_1, x_2, U13'_1, U22'_1, U33'_1, PLUS_2, X_2, U61'_1} are replacing on all positions. 11.09/3.69 For all symbols f in {U11_3, U12_2, U21_2, U31_3, U32_2, U41_2, U51_3, U71_3, and_2, U12'_2, U11'_3, U21'_2, U32'_2, U31'_3, U51'_3, U71'_3, AND_2, U41'_2} we have mu(f) = {1}. 11.09/3.69 The symbols in {isNat_1, isNatKind_1, ISNAT_1, ISNATKIND_1, U_1} are not replacing on any position. 11.09/3.69 11.09/3.69 The ordinary context-sensitive dependency pairs DP_o are: 11.09/3.69 U11'(tt, V1, V2) -> U12'(isNat(V1), V2) 11.09/3.69 U11'(tt, V1, V2) -> ISNAT(V1) 11.09/3.69 U12'(tt, V2) -> U13'(isNat(V2)) 11.09/3.69 U12'(tt, V2) -> ISNAT(V2) 11.09/3.69 U21'(tt, V1) -> U22'(isNat(V1)) 11.09/3.69 U21'(tt, V1) -> ISNAT(V1) 11.09/3.69 U31'(tt, V1, V2) -> U32'(isNat(V1), V2) 11.09/3.69 U31'(tt, V1, V2) -> ISNAT(V1) 11.09/3.69 U32'(tt, V2) -> U33'(isNat(V2)) 11.09/3.69 U32'(tt, V2) -> ISNAT(V2) 11.09/3.69 U51'(tt, M, N) -> PLUS(N, M) 11.09/3.69 U71'(tt, M, N) -> PLUS(x(N, M), N) 11.09/3.69 U71'(tt, M, N) -> X(N, M) 11.09/3.69 ISNAT(plus(V1, V2)) -> U11'(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.69 ISNAT(plus(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 11.09/3.69 ISNAT(plus(V1, V2)) -> ISNATKIND(V1) 11.09/3.69 ISNAT(s(V1)) -> U21'(isNatKind(V1), V1) 11.09/3.69 ISNAT(s(V1)) -> ISNATKIND(V1) 11.09/3.69 ISNAT(x(V1, V2)) -> U31'(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.69 ISNAT(x(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 11.09/3.69 ISNAT(x(V1, V2)) -> ISNATKIND(V1) 11.09/3.69 ISNATKIND(plus(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 11.09/3.69 ISNATKIND(plus(V1, V2)) -> ISNATKIND(V1) 11.09/3.69 ISNATKIND(s(V1)) -> ISNATKIND(V1) 11.09/3.69 ISNATKIND(x(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 11.09/3.69 ISNATKIND(x(V1, V2)) -> ISNATKIND(V1) 11.09/3.70 PLUS(N, 0) -> U41'(and(isNat(N), isNatKind(N)), N) 11.09/3.70 PLUS(N, 0) -> AND(isNat(N), isNatKind(N)) 11.09/3.70 PLUS(N, 0) -> ISNAT(N) 11.09/3.70 PLUS(N, s(M)) -> U51'(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 PLUS(N, s(M)) -> AND(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))) 11.09/3.70 PLUS(N, s(M)) -> AND(isNat(M), isNatKind(M)) 11.09/3.70 PLUS(N, s(M)) -> ISNAT(M) 11.09/3.70 X(N, 0) -> U61'(and(isNat(N), isNatKind(N))) 11.09/3.70 X(N, 0) -> AND(isNat(N), isNatKind(N)) 11.09/3.70 X(N, 0) -> ISNAT(N) 11.09/3.70 X(N, s(M)) -> U71'(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 X(N, s(M)) -> AND(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))) 11.09/3.70 X(N, s(M)) -> AND(isNat(M), isNatKind(M)) 11.09/3.70 X(N, s(M)) -> ISNAT(M) 11.09/3.70 11.09/3.70 The collapsing dependency pairs are DP_c: 11.09/3.70 U41'(tt, N) -> N 11.09/3.70 U51'(tt, M, N) -> N 11.09/3.70 U51'(tt, M, N) -> M 11.09/3.70 U71'(tt, M, N) -> N 11.09/3.70 U71'(tt, M, N) -> M 11.09/3.70 AND(tt, X) -> X 11.09/3.70 11.09/3.70 11.09/3.70 The hidden terms of R are: 11.09/3.70 11.09/3.70 isNatKind(x0) 11.09/3.70 and(isNat(x0), isNatKind(x0)) 11.09/3.70 isNat(x0) 11.09/3.70 11.09/3.70 Every hiding context is built from: 11.09/3.70 aprove.DPFramework.CSDPProblem.QCSDPProblem$1@bebcc6a 11.09/3.70 11.09/3.70 Hence, the new unhiding pairs DP_u are : 11.09/3.70 U41'(tt, N) -> U(N) 11.09/3.70 U51'(tt, M, N) -> U(N) 11.09/3.70 U51'(tt, M, N) -> U(M) 11.09/3.70 U71'(tt, M, N) -> U(N) 11.09/3.70 U71'(tt, M, N) -> U(M) 11.09/3.70 AND(tt, X) -> U(X) 11.09/3.70 U(and(x_0, x_1)) -> U(x_0) 11.09/3.70 U(isNatKind(x0)) -> ISNATKIND(x0) 11.09/3.70 U(and(isNat(x0), isNatKind(x0))) -> AND(isNat(x0), isNatKind(x0)) 11.09/3.70 U(isNat(x0)) -> ISNAT(x0) 11.09/3.70 11.09/3.70 The TRS R consists of the following rules: 11.09/3.70 11.09/3.70 U11(tt, V1, V2) -> U12(isNat(V1), V2) 11.09/3.70 U12(tt, V2) -> U13(isNat(V2)) 11.09/3.70 U13(tt) -> tt 11.09/3.70 U21(tt, V1) -> U22(isNat(V1)) 11.09/3.70 U22(tt) -> tt 11.09/3.70 U31(tt, V1, V2) -> U32(isNat(V1), V2) 11.09/3.70 U32(tt, V2) -> U33(isNat(V2)) 11.09/3.70 U33(tt) -> tt 11.09/3.70 U41(tt, N) -> N 11.09/3.70 U51(tt, M, N) -> s(plus(N, M)) 11.09/3.70 U61(tt) -> 0 11.09/3.70 U71(tt, M, N) -> plus(x(N, M), N) 11.09/3.70 and(tt, X) -> X 11.09/3.70 isNat(0) -> tt 11.09/3.70 isNat(plus(V1, V2)) -> U11(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNat(s(V1)) -> U21(isNatKind(V1), V1) 11.09/3.70 isNat(x(V1, V2)) -> U31(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNatKind(0) -> tt 11.09/3.70 isNatKind(plus(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 isNatKind(s(V1)) -> isNatKind(V1) 11.09/3.70 isNatKind(x(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 plus(N, 0) -> U41(and(isNat(N), isNatKind(N)), N) 11.09/3.70 plus(N, s(M)) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 x(N, 0) -> U61(and(isNat(N), isNatKind(N))) 11.09/3.70 x(N, s(M)) -> U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 11.09/3.70 Q is empty. 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (5) QCSDependencyGraphProof (EQUIVALENT) 11.09/3.70 The approximation of the Context-Sensitive Dependency Graph [LPAR08] contains 3 SCCs with 21 less nodes. 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (6) 11.09/3.70 Complex Obligation (AND) 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (7) 11.09/3.70 Obligation: 11.09/3.70 Q-restricted context-sensitive dependency pair problem: 11.09/3.70 The symbols in {U13_1, U22_1, U33_1, s_1, plus_2, U61_1, x_2} are replacing on all positions. 11.09/3.70 For all symbols f in {U11_3, U12_2, U21_2, U31_3, U32_2, U41_2, U51_3, U71_3, and_2, U12'_2, U11'_3, AND_2, U21'_2, U31'_3, U32'_2} we have mu(f) = {1}. 11.09/3.70 The symbols in {isNat_1, isNatKind_1, ISNAT_1, U_1, ISNATKIND_1} are not replacing on any position. 11.09/3.70 11.09/3.70 The TRS P consists of the following rules: 11.09/3.70 11.09/3.70 U12'(tt, V2) -> ISNAT(V2) 11.09/3.70 ISNAT(plus(V1, V2)) -> U11'(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 U11'(tt, V1, V2) -> U12'(isNat(V1), V2) 11.09/3.70 U11'(tt, V1, V2) -> ISNAT(V1) 11.09/3.70 ISNAT(plus(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 11.09/3.70 AND(tt, X) -> U(X) 11.09/3.70 U(and(x_0, x_1)) -> U(x_0) 11.09/3.70 U(isNatKind(x0)) -> ISNATKIND(x0) 11.09/3.70 ISNATKIND(plus(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 11.09/3.70 ISNATKIND(plus(V1, V2)) -> ISNATKIND(V1) 11.09/3.70 ISNATKIND(s(V1)) -> ISNATKIND(V1) 11.09/3.70 ISNATKIND(x(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 11.09/3.70 ISNATKIND(x(V1, V2)) -> ISNATKIND(V1) 11.09/3.70 U(and(isNat(x0), isNatKind(x0))) -> AND(isNat(x0), isNatKind(x0)) 11.09/3.70 U(isNat(x0)) -> ISNAT(x0) 11.09/3.70 ISNAT(plus(V1, V2)) -> ISNATKIND(V1) 11.09/3.70 ISNAT(s(V1)) -> U21'(isNatKind(V1), V1) 11.09/3.70 U21'(tt, V1) -> ISNAT(V1) 11.09/3.70 ISNAT(s(V1)) -> ISNATKIND(V1) 11.09/3.70 ISNAT(x(V1, V2)) -> U31'(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 U31'(tt, V1, V2) -> U32'(isNat(V1), V2) 11.09/3.70 U32'(tt, V2) -> ISNAT(V2) 11.09/3.70 ISNAT(x(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 11.09/3.70 ISNAT(x(V1, V2)) -> ISNATKIND(V1) 11.09/3.70 U31'(tt, V1, V2) -> ISNAT(V1) 11.09/3.70 11.09/3.70 The TRS R consists of the following rules: 11.09/3.70 11.09/3.70 U11(tt, V1, V2) -> U12(isNat(V1), V2) 11.09/3.70 U12(tt, V2) -> U13(isNat(V2)) 11.09/3.70 U13(tt) -> tt 11.09/3.70 U21(tt, V1) -> U22(isNat(V1)) 11.09/3.70 U22(tt) -> tt 11.09/3.70 U31(tt, V1, V2) -> U32(isNat(V1), V2) 11.09/3.70 U32(tt, V2) -> U33(isNat(V2)) 11.09/3.70 U33(tt) -> tt 11.09/3.70 U41(tt, N) -> N 11.09/3.70 U51(tt, M, N) -> s(plus(N, M)) 11.09/3.70 U61(tt) -> 0 11.09/3.70 U71(tt, M, N) -> plus(x(N, M), N) 11.09/3.70 and(tt, X) -> X 11.09/3.70 isNat(0) -> tt 11.09/3.70 isNat(plus(V1, V2)) -> U11(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNat(s(V1)) -> U21(isNatKind(V1), V1) 11.09/3.70 isNat(x(V1, V2)) -> U31(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNatKind(0) -> tt 11.09/3.70 isNatKind(plus(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 isNatKind(s(V1)) -> isNatKind(V1) 11.09/3.70 isNatKind(x(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 plus(N, 0) -> U41(and(isNat(N), isNatKind(N)), N) 11.09/3.70 plus(N, s(M)) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 x(N, 0) -> U61(and(isNat(N), isNatKind(N))) 11.09/3.70 x(N, s(M)) -> U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 11.09/3.70 Q is empty. 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (8) QCSDPReductionPairProof (EQUIVALENT) 11.09/3.70 Using the order 11.09/3.70 11.09/3.70 Polynomial interpretation [POLO]: 11.09/3.70 11.09/3.70 POL(0) = 0 11.09/3.70 POL(AND(x_1, x_2)) = x_1 + 2*x_2 11.09/3.70 POL(ISNAT(x_1)) = 0 11.09/3.70 POL(ISNATKIND(x_1)) = 0 11.09/3.70 POL(U(x_1)) = 2*x_1 11.09/3.70 POL(U11(x_1, x_2, x_3)) = 0 11.09/3.70 POL(U11'(x_1, x_2, x_3)) = 0 11.09/3.70 POL(U12(x_1, x_2)) = 0 11.09/3.70 POL(U12'(x_1, x_2)) = 0 11.09/3.70 POL(U13(x_1)) = 0 11.09/3.70 POL(U21(x_1, x_2)) = 0 11.09/3.70 POL(U21'(x_1, x_2)) = 0 11.09/3.70 POL(U22(x_1)) = 0 11.09/3.70 POL(U31(x_1, x_2, x_3)) = 2 11.09/3.70 POL(U31'(x_1, x_2, x_3)) = 0 11.09/3.70 POL(U32(x_1, x_2)) = 0 11.09/3.70 POL(U32'(x_1, x_2)) = 0 11.09/3.70 POL(U33(x_1)) = 0 11.09/3.70 POL(U41(x_1, x_2)) = x_2 11.09/3.70 POL(U51(x_1, x_2, x_3)) = 0 11.09/3.70 POL(U61(x_1)) = 0 11.09/3.70 POL(U71(x_1, x_2, x_3)) = 0 11.09/3.70 POL(and(x_1, x_2)) = x_1 + 2*x_2 11.09/3.70 POL(isNat(x_1)) = 2 11.09/3.70 POL(isNatKind(x_1)) = 0 11.09/3.70 POL(plus(x_1, x_2)) = x_1 11.09/3.70 POL(s(x_1)) = 0 11.09/3.70 POL(tt) = 0 11.09/3.70 POL(x(x_1, x_2)) = 0 11.09/3.70 11.09/3.70 11.09/3.70 the following usable rules 11.09/3.70 11.09/3.70 11.09/3.70 plus(N, 0) -> U41(and(isNat(N), isNatKind(N)), N) 11.09/3.70 plus(N, s(M)) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 U41(tt, N) -> N 11.09/3.70 and(tt, X) -> X 11.09/3.70 isNat(0) -> tt 11.09/3.70 isNat(plus(V1, V2)) -> U11(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNat(s(V1)) -> U21(isNatKind(V1), V1) 11.09/3.70 isNat(x(V1, V2)) -> U31(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 U11(tt, V1, V2) -> U12(isNat(V1), V2) 11.09/3.70 U12(tt, V2) -> U13(isNat(V2)) 11.09/3.70 U13(tt) -> tt 11.09/3.70 isNatKind(0) -> tt 11.09/3.70 isNatKind(plus(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 isNatKind(s(V1)) -> isNatKind(V1) 11.09/3.70 isNatKind(x(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 x(N, 0) -> U61(and(isNat(N), isNatKind(N))) 11.09/3.70 x(N, s(M)) -> U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 U61(tt) -> 0 11.09/3.70 U71(tt, M, N) -> plus(x(N, M), N) 11.09/3.70 U21(tt, V1) -> U22(isNat(V1)) 11.09/3.70 U22(tt) -> tt 11.09/3.70 U31(tt, V1, V2) -> U32(isNat(V1), V2) 11.09/3.70 U32(tt, V2) -> U33(isNat(V2)) 11.09/3.70 U33(tt) -> tt 11.09/3.70 U51(tt, M, N) -> s(plus(N, M)) 11.09/3.70 11.09/3.70 11.09/3.70 could all be oriented weakly. 11.09/3.70 11.09/3.70 Furthermore, the pairs 11.09/3.70 11.09/3.70 11.09/3.70 U(and(isNat(x0), isNatKind(x0))) -> AND(isNat(x0), isNatKind(x0)) 11.09/3.70 U(isNat(x0)) -> ISNAT(x0) 11.09/3.70 11.09/3.70 11.09/3.70 could be oriented strictly and thus removed by the CS-Reduction Pair Processor [LPAR08,DA_EMMES]. 11.09/3.70 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (9) 11.09/3.70 Obligation: 11.09/3.70 Q-restricted context-sensitive dependency pair problem: 11.09/3.70 The symbols in {U13_1, U22_1, U33_1, s_1, plus_2, U61_1, x_2} are replacing on all positions. 11.09/3.70 For all symbols f in {U11_3, U12_2, U21_2, U31_3, U32_2, U41_2, U51_3, U71_3, and_2, U12'_2, U11'_3, AND_2, U21'_2, U31'_3, U32'_2} we have mu(f) = {1}. 11.09/3.70 The symbols in {isNat_1, isNatKind_1, ISNAT_1, U_1, ISNATKIND_1} are not replacing on any position. 11.09/3.70 11.09/3.70 The TRS P consists of the following rules: 11.09/3.70 11.09/3.70 U12'(tt, V2) -> ISNAT(V2) 11.09/3.70 ISNAT(plus(V1, V2)) -> U11'(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 U11'(tt, V1, V2) -> U12'(isNat(V1), V2) 11.09/3.70 U11'(tt, V1, V2) -> ISNAT(V1) 11.09/3.70 ISNAT(plus(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 11.09/3.70 AND(tt, X) -> U(X) 11.09/3.70 U(and(x_0, x_1)) -> U(x_0) 11.09/3.70 U(isNatKind(x0)) -> ISNATKIND(x0) 11.09/3.70 ISNATKIND(plus(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 11.09/3.70 ISNATKIND(plus(V1, V2)) -> ISNATKIND(V1) 11.09/3.70 ISNATKIND(s(V1)) -> ISNATKIND(V1) 11.09/3.70 ISNATKIND(x(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 11.09/3.70 ISNATKIND(x(V1, V2)) -> ISNATKIND(V1) 11.09/3.70 ISNAT(plus(V1, V2)) -> ISNATKIND(V1) 11.09/3.70 ISNAT(s(V1)) -> U21'(isNatKind(V1), V1) 11.09/3.70 U21'(tt, V1) -> ISNAT(V1) 11.09/3.70 ISNAT(s(V1)) -> ISNATKIND(V1) 11.09/3.70 ISNAT(x(V1, V2)) -> U31'(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 U31'(tt, V1, V2) -> U32'(isNat(V1), V2) 11.09/3.70 U32'(tt, V2) -> ISNAT(V2) 11.09/3.70 ISNAT(x(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 11.09/3.70 ISNAT(x(V1, V2)) -> ISNATKIND(V1) 11.09/3.70 U31'(tt, V1, V2) -> ISNAT(V1) 11.09/3.70 11.09/3.70 The TRS R consists of the following rules: 11.09/3.70 11.09/3.70 U11(tt, V1, V2) -> U12(isNat(V1), V2) 11.09/3.70 U12(tt, V2) -> U13(isNat(V2)) 11.09/3.70 U13(tt) -> tt 11.09/3.70 U21(tt, V1) -> U22(isNat(V1)) 11.09/3.70 U22(tt) -> tt 11.09/3.70 U31(tt, V1, V2) -> U32(isNat(V1), V2) 11.09/3.70 U32(tt, V2) -> U33(isNat(V2)) 11.09/3.70 U33(tt) -> tt 11.09/3.70 U41(tt, N) -> N 11.09/3.70 U51(tt, M, N) -> s(plus(N, M)) 11.09/3.70 U61(tt) -> 0 11.09/3.70 U71(tt, M, N) -> plus(x(N, M), N) 11.09/3.70 and(tt, X) -> X 11.09/3.70 isNat(0) -> tt 11.09/3.70 isNat(plus(V1, V2)) -> U11(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNat(s(V1)) -> U21(isNatKind(V1), V1) 11.09/3.70 isNat(x(V1, V2)) -> U31(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNatKind(0) -> tt 11.09/3.70 isNatKind(plus(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 isNatKind(s(V1)) -> isNatKind(V1) 11.09/3.70 isNatKind(x(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 plus(N, 0) -> U41(and(isNat(N), isNatKind(N)), N) 11.09/3.70 plus(N, s(M)) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 x(N, 0) -> U61(and(isNat(N), isNatKind(N))) 11.09/3.70 x(N, s(M)) -> U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 11.09/3.70 Q is empty. 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (10) QCSDependencyGraphProof (EQUIVALENT) 11.09/3.70 The approximation of the Context-Sensitive Dependency Graph [LPAR08] contains 2 SCCs with 5 less nodes. 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (11) 11.09/3.70 Complex Obligation (AND) 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (12) 11.09/3.70 Obligation: 11.09/3.70 Q-restricted context-sensitive dependency pair problem: 11.09/3.70 The symbols in {U13_1, U22_1, U33_1, s_1, plus_2, U61_1, x_2} are replacing on all positions. 11.09/3.70 For all symbols f in {U11_3, U12_2, U21_2, U31_3, U32_2, U41_2, U51_3, U71_3, and_2, AND_2} we have mu(f) = {1}. 11.09/3.70 The symbols in {isNat_1, isNatKind_1, U_1, ISNATKIND_1} are not replacing on any position. 11.09/3.70 11.09/3.70 The TRS P consists of the following rules: 11.09/3.70 11.09/3.70 U(and(x_0, x_1)) -> U(x_0) 11.09/3.70 U(isNatKind(x0)) -> ISNATKIND(x0) 11.09/3.70 ISNATKIND(plus(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 11.09/3.70 AND(tt, X) -> U(X) 11.09/3.70 ISNATKIND(plus(V1, V2)) -> ISNATKIND(V1) 11.09/3.70 ISNATKIND(s(V1)) -> ISNATKIND(V1) 11.09/3.70 ISNATKIND(x(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 11.09/3.70 ISNATKIND(x(V1, V2)) -> ISNATKIND(V1) 11.09/3.70 11.09/3.70 The TRS R consists of the following rules: 11.09/3.70 11.09/3.70 U11(tt, V1, V2) -> U12(isNat(V1), V2) 11.09/3.70 U12(tt, V2) -> U13(isNat(V2)) 11.09/3.70 U13(tt) -> tt 11.09/3.70 U21(tt, V1) -> U22(isNat(V1)) 11.09/3.70 U22(tt) -> tt 11.09/3.70 U31(tt, V1, V2) -> U32(isNat(V1), V2) 11.09/3.70 U32(tt, V2) -> U33(isNat(V2)) 11.09/3.70 U33(tt) -> tt 11.09/3.70 U41(tt, N) -> N 11.09/3.70 U51(tt, M, N) -> s(plus(N, M)) 11.09/3.70 U61(tt) -> 0 11.09/3.70 U71(tt, M, N) -> plus(x(N, M), N) 11.09/3.70 and(tt, X) -> X 11.09/3.70 isNat(0) -> tt 11.09/3.70 isNat(plus(V1, V2)) -> U11(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNat(s(V1)) -> U21(isNatKind(V1), V1) 11.09/3.70 isNat(x(V1, V2)) -> U31(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNatKind(0) -> tt 11.09/3.70 isNatKind(plus(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 isNatKind(s(V1)) -> isNatKind(V1) 11.09/3.70 isNatKind(x(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 plus(N, 0) -> U41(and(isNat(N), isNatKind(N)), N) 11.09/3.70 plus(N, s(M)) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 x(N, 0) -> U61(and(isNat(N), isNatKind(N))) 11.09/3.70 x(N, s(M)) -> U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 11.09/3.70 Q is empty. 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (13) QCSDPReductionPairProof (EQUIVALENT) 11.09/3.70 Using the order 11.09/3.70 11.09/3.70 U/1(YES) 11.09/3.70 and/2(YES,YES) 11.09/3.70 isNatKind/1)YES( 11.09/3.70 ISNATKIND/1(YES) 11.09/3.70 plus/2(YES,YES) 11.09/3.70 AND/2(NO,YES) 11.09/3.70 tt/0) 11.09/3.70 s/1(YES) 11.09/3.70 x/2(YES,YES) 11.09/3.70 0/0) 11.09/3.70 U41/2)NO,YES( 11.09/3.70 isNat/1)YES( 11.09/3.70 U51/3(YES,YES,YES) 11.09/3.70 U11/3(NO,NO,NO) 11.09/3.70 U21/2(NO,YES) 11.09/3.70 U31/3(NO,NO,YES) 11.09/3.70 U12/2(NO,NO) 11.09/3.70 U13/1(NO) 11.09/3.70 U22/1)YES( 11.09/3.70 U61/1(YES) 11.09/3.70 U71/3(YES,YES,YES) 11.09/3.70 U32/2)NO,YES( 11.09/3.70 U33/1)YES( 11.09/3.70 11.09/3.70 Quasi precedence: 11.09/3.70 [U_1, ISNATKIND_1, AND_1, x_2, U71_3] > [plus_2, U51_3, U11] > [and_2, tt, s_1, U21_1, U12, U13] 11.09/3.70 [U_1, ISNATKIND_1, AND_1, x_2, U71_3] > [0, U61_1] > [and_2, tt, s_1, U21_1, U12, U13] 11.09/3.70 [U_1, ISNATKIND_1, AND_1, x_2, U71_3] > U31_1 11.09/3.70 11.09/3.70 11.09/3.70 Status: 11.09/3.70 U_1: multiset status 11.09/3.70 and_2: [1,2] 11.09/3.70 ISNATKIND_1: multiset status 11.09/3.70 plus_2: [1,2] 11.09/3.70 AND_1: multiset status 11.09/3.70 tt: multiset status 11.09/3.70 s_1: [1] 11.09/3.70 x_2: [2,1] 11.09/3.70 0: multiset status 11.09/3.70 U51_3: [3,2,1] 11.09/3.70 U11: [] 11.09/3.70 U21_1: [1] 11.09/3.70 U31_1: multiset status 11.09/3.70 U12: [] 11.09/3.70 U13: [] 11.09/3.70 U61_1: multiset status 11.09/3.70 U71_3: [2,3,1] 11.09/3.70 11.09/3.70 11.09/3.70 11.09/3.70 the following usable rules 11.09/3.70 11.09/3.70 11.09/3.70 and(tt, X) -> X 11.09/3.70 isNatKind(0) -> tt 11.09/3.70 isNatKind(plus(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 isNatKind(s(V1)) -> isNatKind(V1) 11.09/3.70 isNatKind(x(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 plus(N, 0) -> U41(and(isNat(N), isNatKind(N)), N) 11.09/3.70 plus(N, s(M)) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 U41(tt, N) -> N 11.09/3.70 isNat(0) -> tt 11.09/3.70 isNat(plus(V1, V2)) -> U11(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNat(s(V1)) -> U21(isNatKind(V1), V1) 11.09/3.70 isNat(x(V1, V2)) -> U31(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 U11(tt, V1, V2) -> U12(isNat(V1), V2) 11.09/3.70 U12(tt, V2) -> U13(isNat(V2)) 11.09/3.70 U13(tt) -> tt 11.09/3.70 U21(tt, V1) -> U22(isNat(V1)) 11.09/3.70 U22(tt) -> tt 11.09/3.70 x(N, 0) -> U61(and(isNat(N), isNatKind(N))) 11.09/3.70 x(N, s(M)) -> U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 U61(tt) -> 0 11.09/3.70 U71(tt, M, N) -> plus(x(N, M), N) 11.09/3.70 U31(tt, V1, V2) -> U32(isNat(V1), V2) 11.09/3.70 U32(tt, V2) -> U33(isNat(V2)) 11.09/3.70 U33(tt) -> tt 11.09/3.70 U51(tt, M, N) -> s(plus(N, M)) 11.09/3.70 11.09/3.70 11.09/3.70 could all be oriented weakly. 11.09/3.70 11.09/3.70 Furthermore, the pairs 11.09/3.70 11.09/3.70 11.09/3.70 U(and(x_0, x_1)) -> U(x_0) 11.09/3.70 ISNATKIND(plus(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 11.09/3.70 ISNATKIND(plus(V1, V2)) -> ISNATKIND(V1) 11.09/3.70 ISNATKIND(s(V1)) -> ISNATKIND(V1) 11.09/3.70 ISNATKIND(x(V1, V2)) -> AND(isNatKind(V1), isNatKind(V2)) 11.09/3.70 ISNATKIND(x(V1, V2)) -> ISNATKIND(V1) 11.09/3.70 11.09/3.70 11.09/3.70 could be oriented strictly and thus removed by the CS-Reduction Pair Processor [LPAR08,DA_EMMES]. 11.09/3.70 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (14) 11.09/3.70 Obligation: 11.09/3.70 Q-restricted context-sensitive dependency pair problem: 11.09/3.70 The symbols in {U13_1, U22_1, U33_1, s_1, plus_2, U61_1, x_2} are replacing on all positions. 11.09/3.70 For all symbols f in {U11_3, U12_2, U21_2, U31_3, U32_2, U41_2, U51_3, U71_3, and_2, AND_2} we have mu(f) = {1}. 11.09/3.70 The symbols in {isNat_1, isNatKind_1, ISNATKIND_1, U_1} are not replacing on any position. 11.09/3.70 11.09/3.70 The TRS P consists of the following rules: 11.09/3.70 11.09/3.70 U(isNatKind(x0)) -> ISNATKIND(x0) 11.09/3.70 AND(tt, X) -> U(X) 11.09/3.70 11.09/3.70 The TRS R consists of the following rules: 11.09/3.70 11.09/3.70 U11(tt, V1, V2) -> U12(isNat(V1), V2) 11.09/3.70 U12(tt, V2) -> U13(isNat(V2)) 11.09/3.70 U13(tt) -> tt 11.09/3.70 U21(tt, V1) -> U22(isNat(V1)) 11.09/3.70 U22(tt) -> tt 11.09/3.70 U31(tt, V1, V2) -> U32(isNat(V1), V2) 11.09/3.70 U32(tt, V2) -> U33(isNat(V2)) 11.09/3.70 U33(tt) -> tt 11.09/3.70 U41(tt, N) -> N 11.09/3.70 U51(tt, M, N) -> s(plus(N, M)) 11.09/3.70 U61(tt) -> 0 11.09/3.70 U71(tt, M, N) -> plus(x(N, M), N) 11.09/3.70 and(tt, X) -> X 11.09/3.70 isNat(0) -> tt 11.09/3.70 isNat(plus(V1, V2)) -> U11(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNat(s(V1)) -> U21(isNatKind(V1), V1) 11.09/3.70 isNat(x(V1, V2)) -> U31(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNatKind(0) -> tt 11.09/3.70 isNatKind(plus(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 isNatKind(s(V1)) -> isNatKind(V1) 11.09/3.70 isNatKind(x(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 plus(N, 0) -> U41(and(isNat(N), isNatKind(N)), N) 11.09/3.70 plus(N, s(M)) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 x(N, 0) -> U61(and(isNat(N), isNatKind(N))) 11.09/3.70 x(N, s(M)) -> U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 11.09/3.70 Q is empty. 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (15) QCSDependencyGraphProof (EQUIVALENT) 11.09/3.70 The approximation of the Context-Sensitive Dependency Graph [LPAR08] contains 0 SCCs with 2 less nodes. 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (16) 11.09/3.70 TRUE 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (17) 11.09/3.70 Obligation: 11.09/3.70 Q-restricted context-sensitive dependency pair problem: 11.09/3.70 The symbols in {U13_1, U22_1, U33_1, s_1, plus_2, U61_1, x_2} are replacing on all positions. 11.09/3.70 For all symbols f in {U11_3, U12_2, U21_2, U31_3, U32_2, U41_2, U51_3, U71_3, and_2, U11'_3, U12'_2, U21'_2, U31'_3, U32'_2} we have mu(f) = {1}. 11.09/3.70 The symbols in {isNat_1, isNatKind_1, ISNAT_1} are not replacing on any position. 11.09/3.70 11.09/3.70 The TRS P consists of the following rules: 11.09/3.70 11.09/3.70 ISNAT(plus(V1, V2)) -> U11'(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 U11'(tt, V1, V2) -> U12'(isNat(V1), V2) 11.09/3.70 U12'(tt, V2) -> ISNAT(V2) 11.09/3.70 ISNAT(s(V1)) -> U21'(isNatKind(V1), V1) 11.09/3.70 U21'(tt, V1) -> ISNAT(V1) 11.09/3.70 ISNAT(x(V1, V2)) -> U31'(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 U31'(tt, V1, V2) -> U32'(isNat(V1), V2) 11.09/3.70 U32'(tt, V2) -> ISNAT(V2) 11.09/3.70 U31'(tt, V1, V2) -> ISNAT(V1) 11.09/3.70 U11'(tt, V1, V2) -> ISNAT(V1) 11.09/3.70 11.09/3.70 The TRS R consists of the following rules: 11.09/3.70 11.09/3.70 U11(tt, V1, V2) -> U12(isNat(V1), V2) 11.09/3.70 U12(tt, V2) -> U13(isNat(V2)) 11.09/3.70 U13(tt) -> tt 11.09/3.70 U21(tt, V1) -> U22(isNat(V1)) 11.09/3.70 U22(tt) -> tt 11.09/3.70 U31(tt, V1, V2) -> U32(isNat(V1), V2) 11.09/3.70 U32(tt, V2) -> U33(isNat(V2)) 11.09/3.70 U33(tt) -> tt 11.09/3.70 U41(tt, N) -> N 11.09/3.70 U51(tt, M, N) -> s(plus(N, M)) 11.09/3.70 U61(tt) -> 0 11.09/3.70 U71(tt, M, N) -> plus(x(N, M), N) 11.09/3.70 and(tt, X) -> X 11.09/3.70 isNat(0) -> tt 11.09/3.70 isNat(plus(V1, V2)) -> U11(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNat(s(V1)) -> U21(isNatKind(V1), V1) 11.09/3.70 isNat(x(V1, V2)) -> U31(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNatKind(0) -> tt 11.09/3.70 isNatKind(plus(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 isNatKind(s(V1)) -> isNatKind(V1) 11.09/3.70 isNatKind(x(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 plus(N, 0) -> U41(and(isNat(N), isNatKind(N)), N) 11.09/3.70 plus(N, s(M)) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 x(N, 0) -> U61(and(isNat(N), isNatKind(N))) 11.09/3.70 x(N, s(M)) -> U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 11.09/3.70 Q is empty. 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (18) QCSDPReductionPairProof (EQUIVALENT) 11.09/3.70 Using the order 11.09/3.70 11.09/3.70 ISNAT/1(YES) 11.09/3.70 plus/2(YES,YES) 11.09/3.70 U11'/3(NO,YES,YES) 11.09/3.70 and/2)NO,YES( 11.09/3.70 isNatKind/1(YES) 11.09/3.70 tt/0) 11.09/3.70 U12'/2(NO,YES) 11.09/3.70 isNat/1(NO) 11.09/3.70 s/1(YES) 11.09/3.70 U21'/2(NO,YES) 11.09/3.70 x/2(YES,YES) 11.09/3.70 U31'/3(YES,YES,YES) 11.09/3.70 U32'/2(NO,YES) 11.09/3.70 0/0) 11.09/3.70 U41/2(YES,YES) 11.09/3.70 U51/3(YES,YES,YES) 11.09/3.70 U11/3(NO,NO,NO) 11.09/3.70 U21/2(NO,NO) 11.09/3.70 U31/3(NO,NO,NO) 11.09/3.70 U12/2(NO,NO) 11.09/3.70 U13/1(NO) 11.09/3.70 U61/1(NO) 11.09/3.70 U71/3(YES,YES,YES) 11.09/3.70 U22/1)YES( 11.09/3.70 U32/2(NO,NO) 11.09/3.70 U33/1(NO) 11.09/3.70 11.09/3.70 Quasi precedence: 11.09/3.70 [ISNAT_1, U11'_2, U12'_1, U21'_1, x_2, U31'_3, U32'_1, U71_3] > [plus_2, isNatKind_1, isNat, U51_3, U21] > s_1 > U41_2 11.09/3.70 [ISNAT_1, U11'_2, U12'_1, U21'_1, x_2, U31'_3, U32'_1, U71_3] > [plus_2, isNatKind_1, isNat, U51_3, U21] > U11 > U12 > U13 > [tt, 0, U61] > U41_2 11.09/3.70 [ISNAT_1, U11'_2, U12'_1, U21'_1, x_2, U31'_3, U32'_1, U71_3] > [plus_2, isNatKind_1, isNat, U51_3, U21] > U31 > U32 > U33 > [tt, 0, U61] > U41_2 11.09/3.70 11.09/3.70 11.09/3.70 Status: 11.09/3.70 ISNAT_1: multiset status 11.09/3.70 plus_2: [1,2] 11.09/3.70 U11'_2: multiset status 11.09/3.70 isNatKind_1: [1] 11.09/3.70 tt: multiset status 11.09/3.70 U12'_1: multiset status 11.09/3.70 isNat: multiset status 11.09/3.70 s_1: [1] 11.09/3.70 U21'_1: multiset status 11.09/3.70 x_2: [2,1] 11.09/3.70 U31'_3: multiset status 11.09/3.70 U32'_1: multiset status 11.09/3.70 0: multiset status 11.09/3.70 U41_2: [1,2] 11.09/3.70 U51_3: [3,2,1] 11.09/3.70 U11: multiset status 11.09/3.70 U21: multiset status 11.09/3.70 U31: [] 11.09/3.70 U12: [] 11.09/3.70 U13: multiset status 11.09/3.70 U61: multiset status 11.09/3.70 U71_3: [2,3,1] 11.09/3.70 U32: multiset status 11.09/3.70 U33: multiset status 11.09/3.70 11.09/3.70 11.09/3.70 11.09/3.70 the following usable rules 11.09/3.70 11.09/3.70 11.09/3.70 plus(N, 0) -> U41(and(isNat(N), isNatKind(N)), N) 11.09/3.70 plus(N, s(M)) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 U41(tt, N) -> N 11.09/3.70 and(tt, X) -> X 11.09/3.70 isNat(0) -> tt 11.09/3.70 isNat(plus(V1, V2)) -> U11(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNat(s(V1)) -> U21(isNatKind(V1), V1) 11.09/3.70 isNat(x(V1, V2)) -> U31(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 U11(tt, V1, V2) -> U12(isNat(V1), V2) 11.09/3.70 U12(tt, V2) -> U13(isNat(V2)) 11.09/3.70 U13(tt) -> tt 11.09/3.70 isNatKind(0) -> tt 11.09/3.70 isNatKind(plus(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 isNatKind(s(V1)) -> isNatKind(V1) 11.09/3.70 isNatKind(x(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 x(N, 0) -> U61(and(isNat(N), isNatKind(N))) 11.09/3.70 x(N, s(M)) -> U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 U61(tt) -> 0 11.09/3.70 U71(tt, M, N) -> plus(x(N, M), N) 11.09/3.70 U21(tt, V1) -> U22(isNat(V1)) 11.09/3.70 U22(tt) -> tt 11.09/3.70 U31(tt, V1, V2) -> U32(isNat(V1), V2) 11.09/3.70 U32(tt, V2) -> U33(isNat(V2)) 11.09/3.70 U33(tt) -> tt 11.09/3.70 U51(tt, M, N) -> s(plus(N, M)) 11.09/3.70 11.09/3.70 11.09/3.70 could all be oriented weakly. 11.09/3.70 11.09/3.70 Furthermore, the pairs 11.09/3.70 11.09/3.70 11.09/3.70 ISNAT(plus(V1, V2)) -> U11'(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 U11'(tt, V1, V2) -> U12'(isNat(V1), V2) 11.09/3.70 ISNAT(s(V1)) -> U21'(isNatKind(V1), V1) 11.09/3.70 ISNAT(x(V1, V2)) -> U31'(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 U31'(tt, V1, V2) -> U32'(isNat(V1), V2) 11.09/3.70 U31'(tt, V1, V2) -> ISNAT(V1) 11.09/3.70 U11'(tt, V1, V2) -> ISNAT(V1) 11.09/3.70 11.09/3.70 11.09/3.70 could be oriented strictly and thus removed by the CS-Reduction Pair Processor [LPAR08,DA_EMMES]. 11.09/3.70 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (19) 11.09/3.70 Obligation: 11.09/3.70 Q-restricted context-sensitive dependency pair problem: 11.09/3.70 The symbols in {U13_1, U22_1, U33_1, s_1, plus_2, U61_1, x_2} are replacing on all positions. 11.09/3.70 For all symbols f in {U11_3, U12_2, U21_2, U31_3, U32_2, U41_2, U51_3, U71_3, and_2, U12'_2, U21'_2, U32'_2} we have mu(f) = {1}. 11.09/3.70 The symbols in {isNat_1, isNatKind_1, ISNAT_1} are not replacing on any position. 11.09/3.70 11.09/3.70 The TRS P consists of the following rules: 11.09/3.70 11.09/3.70 U12'(tt, V2) -> ISNAT(V2) 11.09/3.70 U21'(tt, V1) -> ISNAT(V1) 11.09/3.70 U32'(tt, V2) -> ISNAT(V2) 11.09/3.70 11.09/3.70 The TRS R consists of the following rules: 11.09/3.70 11.09/3.70 U11(tt, V1, V2) -> U12(isNat(V1), V2) 11.09/3.70 U12(tt, V2) -> U13(isNat(V2)) 11.09/3.70 U13(tt) -> tt 11.09/3.70 U21(tt, V1) -> U22(isNat(V1)) 11.09/3.70 U22(tt) -> tt 11.09/3.70 U31(tt, V1, V2) -> U32(isNat(V1), V2) 11.09/3.70 U32(tt, V2) -> U33(isNat(V2)) 11.09/3.70 U33(tt) -> tt 11.09/3.70 U41(tt, N) -> N 11.09/3.70 U51(tt, M, N) -> s(plus(N, M)) 11.09/3.70 U61(tt) -> 0 11.09/3.70 U71(tt, M, N) -> plus(x(N, M), N) 11.09/3.70 and(tt, X) -> X 11.09/3.70 isNat(0) -> tt 11.09/3.70 isNat(plus(V1, V2)) -> U11(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNat(s(V1)) -> U21(isNatKind(V1), V1) 11.09/3.70 isNat(x(V1, V2)) -> U31(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNatKind(0) -> tt 11.09/3.70 isNatKind(plus(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 isNatKind(s(V1)) -> isNatKind(V1) 11.09/3.70 isNatKind(x(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 plus(N, 0) -> U41(and(isNat(N), isNatKind(N)), N) 11.09/3.70 plus(N, s(M)) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 x(N, 0) -> U61(and(isNat(N), isNatKind(N))) 11.09/3.70 x(N, s(M)) -> U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 11.09/3.70 Q is empty. 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (20) QCSDependencyGraphProof (EQUIVALENT) 11.09/3.70 The approximation of the Context-Sensitive Dependency Graph [LPAR08] contains 0 SCCs with 3 less nodes. 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (21) 11.09/3.70 TRUE 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (22) 11.09/3.70 Obligation: 11.09/3.70 Q-restricted context-sensitive dependency pair problem: 11.09/3.70 The symbols in {U13_1, U22_1, U33_1, s_1, plus_2, U61_1, x_2, PLUS_2} are replacing on all positions. 11.09/3.70 For all symbols f in {U11_3, U12_2, U21_2, U31_3, U32_2, U41_2, U51_3, U71_3, and_2, U51'_3} we have mu(f) = {1}. 11.09/3.70 The symbols in {isNat_1, isNatKind_1} are not replacing on any position. 11.09/3.70 11.09/3.70 The TRS P consists of the following rules: 11.09/3.70 11.09/3.70 PLUS(N, s(M)) -> U51'(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 U51'(tt, M, N) -> PLUS(N, M) 11.09/3.70 11.09/3.70 The TRS R consists of the following rules: 11.09/3.70 11.09/3.70 U11(tt, V1, V2) -> U12(isNat(V1), V2) 11.09/3.70 U12(tt, V2) -> U13(isNat(V2)) 11.09/3.70 U13(tt) -> tt 11.09/3.70 U21(tt, V1) -> U22(isNat(V1)) 11.09/3.70 U22(tt) -> tt 11.09/3.70 U31(tt, V1, V2) -> U32(isNat(V1), V2) 11.09/3.70 U32(tt, V2) -> U33(isNat(V2)) 11.09/3.70 U33(tt) -> tt 11.09/3.70 U41(tt, N) -> N 11.09/3.70 U51(tt, M, N) -> s(plus(N, M)) 11.09/3.70 U61(tt) -> 0 11.09/3.70 U71(tt, M, N) -> plus(x(N, M), N) 11.09/3.70 and(tt, X) -> X 11.09/3.70 isNat(0) -> tt 11.09/3.70 isNat(plus(V1, V2)) -> U11(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNat(s(V1)) -> U21(isNatKind(V1), V1) 11.09/3.70 isNat(x(V1, V2)) -> U31(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNatKind(0) -> tt 11.09/3.70 isNatKind(plus(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 isNatKind(s(V1)) -> isNatKind(V1) 11.09/3.70 isNatKind(x(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 plus(N, 0) -> U41(and(isNat(N), isNatKind(N)), N) 11.09/3.70 plus(N, s(M)) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 x(N, 0) -> U61(and(isNat(N), isNatKind(N))) 11.09/3.70 x(N, s(M)) -> U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 11.09/3.70 Q is empty. 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (23) QCSDPSubtermProof (EQUIVALENT) 11.09/3.70 We use the subterm processor [DA_EMMES]. 11.09/3.70 11.09/3.70 11.09/3.70 The following pairs can be oriented strictly and are deleted. 11.09/3.70 11.09/3.70 PLUS(N, s(M)) -> U51'(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 The remaining pairs can at least be oriented weakly. 11.09/3.70 11.09/3.70 U51'(tt, M, N) -> PLUS(N, M) 11.09/3.70 Used ordering: Combined order from the following AFS and order. 11.09/3.70 U51'(x1, x2, x3) = x2 11.09/3.70 11.09/3.70 PLUS(x1, x2) = x2 11.09/3.70 11.09/3.70 11.09/3.70 Subterm Order 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (24) 11.09/3.70 Obligation: 11.09/3.70 Q-restricted context-sensitive dependency pair problem: 11.09/3.70 The symbols in {U13_1, U22_1, U33_1, s_1, plus_2, U61_1, x_2, PLUS_2} are replacing on all positions. 11.09/3.70 For all symbols f in {U11_3, U12_2, U21_2, U31_3, U32_2, U41_2, U51_3, U71_3, and_2, U51'_3} we have mu(f) = {1}. 11.09/3.70 The symbols in {isNat_1, isNatKind_1} are not replacing on any position. 11.09/3.70 11.09/3.70 The TRS P consists of the following rules: 11.09/3.70 11.09/3.70 U51'(tt, M, N) -> PLUS(N, M) 11.09/3.70 11.09/3.70 The TRS R consists of the following rules: 11.09/3.70 11.09/3.70 U11(tt, V1, V2) -> U12(isNat(V1), V2) 11.09/3.70 U12(tt, V2) -> U13(isNat(V2)) 11.09/3.70 U13(tt) -> tt 11.09/3.70 U21(tt, V1) -> U22(isNat(V1)) 11.09/3.70 U22(tt) -> tt 11.09/3.70 U31(tt, V1, V2) -> U32(isNat(V1), V2) 11.09/3.70 U32(tt, V2) -> U33(isNat(V2)) 11.09/3.70 U33(tt) -> tt 11.09/3.70 U41(tt, N) -> N 11.09/3.70 U51(tt, M, N) -> s(plus(N, M)) 11.09/3.70 U61(tt) -> 0 11.09/3.70 U71(tt, M, N) -> plus(x(N, M), N) 11.09/3.70 and(tt, X) -> X 11.09/3.70 isNat(0) -> tt 11.09/3.70 isNat(plus(V1, V2)) -> U11(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNat(s(V1)) -> U21(isNatKind(V1), V1) 11.09/3.70 isNat(x(V1, V2)) -> U31(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNatKind(0) -> tt 11.09/3.70 isNatKind(plus(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 isNatKind(s(V1)) -> isNatKind(V1) 11.09/3.70 isNatKind(x(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 plus(N, 0) -> U41(and(isNat(N), isNatKind(N)), N) 11.09/3.70 plus(N, s(M)) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 x(N, 0) -> U61(and(isNat(N), isNatKind(N))) 11.09/3.70 x(N, s(M)) -> U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 11.09/3.70 Q is empty. 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (25) QCSDependencyGraphProof (EQUIVALENT) 11.09/3.70 The approximation of the Context-Sensitive Dependency Graph [LPAR08] contains 0 SCCs with 1 less node. 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (26) 11.09/3.70 TRUE 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (27) 11.09/3.70 Obligation: 11.09/3.70 Q-restricted context-sensitive dependency pair problem: 11.09/3.70 The symbols in {U13_1, U22_1, U33_1, s_1, plus_2, U61_1, x_2, X_2} are replacing on all positions. 11.09/3.70 For all symbols f in {U11_3, U12_2, U21_2, U31_3, U32_2, U41_2, U51_3, U71_3, and_2, U71'_3} we have mu(f) = {1}. 11.09/3.70 The symbols in {isNat_1, isNatKind_1} are not replacing on any position. 11.09/3.70 11.09/3.70 The TRS P consists of the following rules: 11.09/3.70 11.09/3.70 U71'(tt, M, N) -> X(N, M) 11.09/3.70 X(N, s(M)) -> U71'(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 11.09/3.70 The TRS R consists of the following rules: 11.09/3.70 11.09/3.70 U11(tt, V1, V2) -> U12(isNat(V1), V2) 11.09/3.70 U12(tt, V2) -> U13(isNat(V2)) 11.09/3.70 U13(tt) -> tt 11.09/3.70 U21(tt, V1) -> U22(isNat(V1)) 11.09/3.70 U22(tt) -> tt 11.09/3.70 U31(tt, V1, V2) -> U32(isNat(V1), V2) 11.09/3.70 U32(tt, V2) -> U33(isNat(V2)) 11.09/3.70 U33(tt) -> tt 11.09/3.70 U41(tt, N) -> N 11.09/3.70 U51(tt, M, N) -> s(plus(N, M)) 11.09/3.70 U61(tt) -> 0 11.09/3.70 U71(tt, M, N) -> plus(x(N, M), N) 11.09/3.70 and(tt, X) -> X 11.09/3.70 isNat(0) -> tt 11.09/3.70 isNat(plus(V1, V2)) -> U11(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNat(s(V1)) -> U21(isNatKind(V1), V1) 11.09/3.70 isNat(x(V1, V2)) -> U31(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNatKind(0) -> tt 11.09/3.70 isNatKind(plus(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 isNatKind(s(V1)) -> isNatKind(V1) 11.09/3.70 isNatKind(x(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 plus(N, 0) -> U41(and(isNat(N), isNatKind(N)), N) 11.09/3.70 plus(N, s(M)) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 x(N, 0) -> U61(and(isNat(N), isNatKind(N))) 11.09/3.70 x(N, s(M)) -> U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 11.09/3.70 Q is empty. 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (28) QCSDPSubtermProof (EQUIVALENT) 11.09/3.70 We use the subterm processor [DA_EMMES]. 11.09/3.70 11.09/3.70 11.09/3.70 The following pairs can be oriented strictly and are deleted. 11.09/3.70 11.09/3.70 X(N, s(M)) -> U71'(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 The remaining pairs can at least be oriented weakly. 11.09/3.70 11.09/3.70 U71'(tt, M, N) -> X(N, M) 11.09/3.70 Used ordering: Combined order from the following AFS and order. 11.09/3.70 X(x1, x2) = x2 11.09/3.70 11.09/3.70 U71'(x1, x2, x3) = x2 11.09/3.70 11.09/3.70 11.09/3.70 Subterm Order 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (29) 11.09/3.70 Obligation: 11.09/3.70 Q-restricted context-sensitive dependency pair problem: 11.09/3.70 The symbols in {U13_1, U22_1, U33_1, s_1, plus_2, U61_1, x_2, X_2} are replacing on all positions. 11.09/3.70 For all symbols f in {U11_3, U12_2, U21_2, U31_3, U32_2, U41_2, U51_3, U71_3, and_2, U71'_3} we have mu(f) = {1}. 11.09/3.70 The symbols in {isNat_1, isNatKind_1} are not replacing on any position. 11.09/3.70 11.09/3.70 The TRS P consists of the following rules: 11.09/3.70 11.09/3.70 U71'(tt, M, N) -> X(N, M) 11.09/3.70 11.09/3.70 The TRS R consists of the following rules: 11.09/3.70 11.09/3.70 U11(tt, V1, V2) -> U12(isNat(V1), V2) 11.09/3.70 U12(tt, V2) -> U13(isNat(V2)) 11.09/3.70 U13(tt) -> tt 11.09/3.70 U21(tt, V1) -> U22(isNat(V1)) 11.09/3.70 U22(tt) -> tt 11.09/3.70 U31(tt, V1, V2) -> U32(isNat(V1), V2) 11.09/3.70 U32(tt, V2) -> U33(isNat(V2)) 11.09/3.70 U33(tt) -> tt 11.09/3.70 U41(tt, N) -> N 11.09/3.70 U51(tt, M, N) -> s(plus(N, M)) 11.09/3.70 U61(tt) -> 0 11.09/3.70 U71(tt, M, N) -> plus(x(N, M), N) 11.09/3.70 and(tt, X) -> X 11.09/3.70 isNat(0) -> tt 11.09/3.70 isNat(plus(V1, V2)) -> U11(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNat(s(V1)) -> U21(isNatKind(V1), V1) 11.09/3.70 isNat(x(V1, V2)) -> U31(and(isNatKind(V1), isNatKind(V2)), V1, V2) 11.09/3.70 isNatKind(0) -> tt 11.09/3.70 isNatKind(plus(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 isNatKind(s(V1)) -> isNatKind(V1) 11.09/3.70 isNatKind(x(V1, V2)) -> and(isNatKind(V1), isNatKind(V2)) 11.09/3.70 plus(N, 0) -> U41(and(isNat(N), isNatKind(N)), N) 11.09/3.70 plus(N, s(M)) -> U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 x(N, 0) -> U61(and(isNat(N), isNatKind(N))) 11.09/3.70 x(N, s(M)) -> U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N) 11.09/3.70 11.09/3.70 Q is empty. 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (30) QCSDependencyGraphProof (EQUIVALENT) 11.09/3.70 The approximation of the Context-Sensitive Dependency Graph [LPAR08] contains 0 SCCs with 1 less node. 11.09/3.70 11.09/3.70 ---------------------------------------- 11.09/3.70 11.09/3.70 (31) 11.09/3.70 TRUE 11.44/3.77 EOF