TIMEOUT

The TRS could not be proven terminating. The proof attempt took 60019 ms.

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (22684ms).
 | – Problem 2 was processed with processor SubtermCriterion (5ms).
 | – Problem 3 was processed with processor SubtermCriterion (3ms).
 | – Problem 4 was processed with processor DependencyGraph (621ms).
 |    | – Problem 24 remains open; application of the following processors failed [PolynomialLinearRange4iUR (0ms), DependencyGraph (314ms), PolynomialLinearRange8NegiUR (42ms), DependencyGraph (315ms)].
 | – Problem 5 was processed with processor SubtermCriterion (2ms).
 | – Problem 6 was processed with processor SubtermCriterion (2ms).
 | – Problem 7 was processed with processor SubtermCriterion (3ms).
 | – Problem 8 was processed with processor SubtermCriterion (2ms).
 | – Problem 9 was processed with processor SubtermCriterion (2ms).
 | – Problem 10 was processed with processor SubtermCriterion (3ms).
 | – Problem 11 was processed with processor DependencyGraph (546ms).
 |    | – Problem 25 remains open; application of the following processors failed [PolynomialLinearRange4iUR (4ms), DependencyGraph (329ms), PolynomialLinearRange8NegiUR (1ms), DependencyGraph (327ms)].
 | – Problem 12 was processed with processor SubtermCriterion (3ms).
 | – Problem 13 was processed with processor SubtermCriterion (3ms).
 |    | – Problem 22 remains open; application of the following processors failed [DependencyGraph (2ms), PolynomialLinearRange4iUR (4ms), DependencyGraph (3ms), PolynomialLinearRange8NegiUR (60ms), DependencyGraph (3ms)].
 | – Problem 14 was processed with processor SubtermCriterion (2ms).
 |    | – Problem 23 remains open; application of the following processors failed [DependencyGraph (5ms), PolynomialLinearRange4iUR (26ms), DependencyGraph (4ms), PolynomialLinearRange8NegiUR (19ms), DependencyGraph (3ms)].
 | – Problem 15 was processed with processor SubtermCriterion (2ms).
 | – Problem 16 was processed with processor SubtermCriterion (2ms).
 | – Problem 17 was processed with processor SubtermCriterion (4ms).
 | – Problem 18 was processed with processor SubtermCriterion (4ms).
 | – Problem 19 was processed with processor SubtermCriterion (2ms).
 | – Problem 20 was processed with processor SubtermCriterion (2ms).
 | – Problem 21 remains open; application of the following processors failed [SubtermCriterion (1ms), DependencyGraph (7ms), PolynomialLinearRange4iUR (2000ms), DependencyGraph (7ms), PolynomialLinearRange8NegiUR (6000ms), DependencyGraph (8ms), ReductionPairSAT (timeout)].

The following open problems remain:



Open Dependency Pair Problem 21

Dependency Pairs

top#(mark(X))top#(proper(X))top#(ok(X))top#(active(X))

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, active, U11, ok, U12, proper, U31, U32, U21, top, x




Open Dependency Pair Problem 23

Dependency Pairs

x#(X1, mark(X2))x#(X1, X2)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top




Open Dependency Pair Problem 22

Dependency Pairs

plus#(X1, mark(X2))plus#(X1, X2)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top




Open Dependency Pair Problem 25

Dependency Pairs

active#(U51(X1, X2, X3))active#(X1)active#(U71(X1, X2, X3))active#(X1)
active#(U32(X))active#(X)active#(U12(X))active#(X)
active#(x(X1, X2))active#(X1)active#(U21(X))active#(X)
active#(U41(X1, X2))active#(X1)active#(U72(X1, X2, X3))active#(X1)
active#(plus(X1, X2))active#(X1)active#(s(X))active#(X)
active#(U52(X1, X2, X3))active#(X1)active#(x(X1, X2))active#(X2)
active#(U61(X))active#(X)active#(U31(X1, X2))active#(X1)
active#(plus(X1, X2))active#(X2)active#(U11(X1, X2))active#(X1)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, active, U11, ok, U12, proper, U31, U32, U21, top, x




Open Dependency Pair Problem 24

Dependency Pairs

active#(U51(X1, X2, X3))active#(X1)active#(U71(X1, X2, X3))active#(X1)
active#(U32(X))active#(X)active#(U12(X))active#(X)
active#(x(X1, X2))active#(X1)active#(U21(X))active#(X)
active#(U41(X1, X2))active#(X1)active#(U72(X1, X2, X3))active#(X1)
active#(plus(X1, X2))active#(X1)active#(s(X))active#(X)
active#(U52(X1, X2, X3))active#(X1)active#(x(X1, X2))active#(X2)
active#(U61(X))active#(X)active#(U31(X1, X2))active#(X1)
active#(plus(X1, X2))active#(X2)active#(U11(X1, X2))active#(X1)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, active, U11, ok, U12, proper, U31, U32, U21, top, x


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

proper#(U41(X1, X2))proper#(X2)active#(U71(X1, X2, X3))U71#(active(X1), X2, X3)
proper#(U41(X1, X2))proper#(X1)proper#(U11(X1, X2))proper#(X1)
active#(U12(X))active#(X)active#(U21(X))U21#(active(X))
U72#(mark(X1), X2, X3)U72#(X1, X2, X3)U11#(mark(X1), X2)U11#(X1, X2)
proper#(U72(X1, X2, X3))proper#(X2)proper#(U11(X1, X2))proper#(X2)
proper#(U71(X1, X2, X3))U71#(proper(X1), proper(X2), proper(X3))proper#(U71(X1, X2, X3))proper#(X1)
x#(ok(X1), ok(X2))x#(X1, X2)x#(X1, mark(X2))x#(X1, X2)
top#(mark(X))proper#(X)active#(plus(N, 0))isNat#(N)
active#(x(N, 0))U61#(isNat(N))active#(U32(X))active#(X)
active#(U71(X1, X2, X3))active#(X1)U71#(mark(X1), X2, X3)U71#(X1, X2, X3)
proper#(U12(X))U12#(proper(X))isNat#(ok(X))isNat#(X)
proper#(U71(X1, X2, X3))proper#(X3)active#(isNat(x(V1, V2)))U31#(isNat(V1), V2)
active#(x(N, s(M)))U71#(isNat(M), M, N)proper#(U52(X1, X2, X3))proper#(X2)
proper#(U51(X1, X2, X3))proper#(X1)active#(U41(X1, X2))active#(X1)
proper#(U21(X))U21#(proper(X))active#(U31(tt, V2))U32#(isNat(V2))
proper#(U32(X))U32#(proper(X))active#(plus(X1, X2))active#(X2)
plus#(mark(X1), X2)plus#(X1, X2)proper#(U72(X1, X2, X3))proper#(X3)
active#(plus(N, 0))U41#(isNat(N), N)proper#(U51(X1, X2, X3))proper#(X2)
U51#(ok(X1), ok(X2), ok(X3))U51#(X1, X2, X3)active#(x(N, 0))isNat#(N)
U32#(mark(X))U32#(X)top#(ok(X))active#(X)
x#(mark(X1), X2)x#(X1, X2)active#(U72(X1, X2, X3))active#(X1)
active#(U52(X1, X2, X3))active#(X1)active#(U31(X1, X2))active#(X1)
proper#(isNat(X))isNat#(proper(X))proper#(U52(X1, X2, X3))proper#(X1)
proper#(U21(X))proper#(X)active#(isNat(s(V1)))isNat#(V1)
plus#(ok(X1), ok(X2))plus#(X1, X2)active#(U72(tt, M, N))x#(N, M)
proper#(U72(X1, X2, X3))U72#(proper(X1), proper(X2), proper(X3))U51#(mark(X1), X2, X3)U51#(X1, X2, X3)
proper#(isNat(X))proper#(X)U61#(mark(X))U61#(X)
proper#(U12(X))proper#(X)active#(isNat(s(V1)))U21#(isNat(V1))
active#(U11(X1, X2))U11#(active(X1), X2)active#(s(X))s#(active(X))
s#(ok(X))s#(X)active#(U51(tt, M, N))U52#(isNat(N), M, N)
active#(isNat(plus(V1, V2)))U11#(isNat(V1), V2)active#(x(N, s(M)))isNat#(M)
active#(U51(X1, X2, X3))U51#(active(X1), X2, X3)proper#(U52(X1, X2, X3))proper#(X3)
active#(plus(N, s(M)))isNat#(M)proper#(s(X))s#(proper(X))
active#(U31(tt, V2))isNat#(V2)active#(x(X1, X2))active#(X2)
proper#(U31(X1, X2))U31#(proper(X1), proper(X2))U31#(ok(X1), ok(X2))U31#(X1, X2)
top#(ok(X))top#(active(X))U61#(ok(X))U61#(X)
active#(isNat(x(V1, V2)))isNat#(V1)proper#(U31(X1, X2))proper#(X1)
U32#(ok(X))U32#(X)U11#(ok(X1), ok(X2))U11#(X1, X2)
proper#(U11(X1, X2))U11#(proper(X1), proper(X2))U12#(mark(X))U12#(X)
proper#(U52(X1, X2, X3))U52#(proper(X1), proper(X2), proper(X3))active#(U41(X1, X2))U41#(active(X1), X2)
active#(plus(N, s(M)))U51#(isNat(M), M, N)plus#(X1, mark(X2))plus#(X1, X2)
active#(U52(tt, M, N))plus#(N, M)active#(U52(X1, X2, X3))U52#(active(X1), X2, X3)
proper#(plus(X1, X2))proper#(X1)active#(U11(X1, X2))active#(X1)
proper#(plus(X1, X2))plus#(proper(X1), proper(X2))U71#(ok(X1), ok(X2), ok(X3))U71#(X1, X2, X3)
U21#(ok(X))U21#(X)active#(U51(X1, X2, X3))active#(X1)
active#(U52(tt, M, N))s#(plus(N, M))top#(mark(X))top#(proper(X))
active#(U72(X1, X2, X3))U72#(active(X1), X2, X3)active#(U61(X))U61#(active(X))
active#(U71(tt, M, N))isNat#(N)active#(x(X1, X2))x#(X1, active(X2))
active#(U11(tt, V2))U12#(isNat(V2))U52#(ok(X1), ok(X2), ok(X3))U52#(X1, X2, X3)
proper#(s(X))proper#(X)active#(plus(X1, X2))active#(X1)
proper#(U51(X1, X2, X3))U51#(proper(X1), proper(X2), proper(X3))proper#(U31(X1, X2))proper#(X2)
U72#(ok(X1), ok(X2), ok(X3))U72#(X1, X2, X3)proper#(x(X1, X2))proper#(X1)
active#(x(X1, X2))x#(active(X1), X2)active#(isNat(plus(V1, V2)))isNat#(V1)
proper#(U61(X))U61#(proper(X))active#(U21(X))active#(X)
proper#(U32(X))proper#(X)U41#(ok(X1), ok(X2))U41#(X1, X2)
active#(U12(X))U12#(active(X))active#(U31(X1, X2))U31#(active(X1), X2)
active#(U72(tt, M, N))plus#(x(N, M), N)proper#(U51(X1, X2, X3))proper#(X3)
U41#(mark(X1), X2)U41#(X1, X2)proper#(plus(X1, X2))proper#(X2)
proper#(x(X1, X2))x#(proper(X1), proper(X2))proper#(U72(X1, X2, X3))proper#(X1)
active#(U11(tt, V2))isNat#(V2)active#(U32(X))U32#(active(X))
proper#(U61(X))proper#(X)U21#(mark(X))U21#(X)
active#(x(X1, X2))active#(X1)active#(U71(tt, M, N))U72#(isNat(N), M, N)
active#(U51(tt, M, N))isNat#(N)proper#(U41(X1, X2))U41#(proper(X1), proper(X2))
U31#(mark(X1), X2)U31#(X1, X2)proper#(x(X1, X2))proper#(X2)
s#(mark(X))s#(X)active#(plus(X1, X2))plus#(X1, active(X2))
U12#(ok(X))U12#(X)active#(s(X))active#(X)
active#(plus(X1, X2))plus#(active(X1), X2)active#(U61(X))active#(X)
proper#(U71(X1, X2, X3))proper#(X2)U52#(mark(X1), X2, X3)U52#(X1, X2, X3)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


The following SCCs where found

proper#(U51(X1, X2, X3)) → proper#(X2)proper#(U41(X1, X2)) → proper#(X2)
proper#(U41(X1, X2)) → proper#(X1)proper#(U11(X1, X2)) → proper#(X1)
proper#(U31(X1, X2)) → proper#(X1)proper#(U31(X1, X2)) → proper#(X2)
proper#(x(X1, X2)) → proper#(X1)proper#(U32(X)) → proper#(X)
proper#(U72(X1, X2, X3)) → proper#(X2)proper#(U11(X1, X2)) → proper#(X2)
proper#(U71(X1, X2, X3)) → proper#(X1)proper#(U51(X1, X2, X3)) → proper#(X3)
proper#(plus(X1, X2)) → proper#(X1)proper#(plus(X1, X2)) → proper#(X2)
proper#(U52(X1, X2, X3)) → proper#(X1)proper#(U21(X)) → proper#(X)
proper#(U72(X1, X2, X3)) → proper#(X1)proper#(isNat(X)) → proper#(X)
proper#(U61(X)) → proper#(X)proper#(U12(X)) → proper#(X)
proper#(U71(X1, X2, X3)) → proper#(X3)proper#(x(X1, X2)) → proper#(X2)
proper#(U52(X1, X2, X3)) → proper#(X2)proper#(s(X)) → proper#(X)
proper#(U51(X1, X2, X3)) → proper#(X1)proper#(U52(X1, X2, X3)) → proper#(X3)
proper#(U71(X1, X2, X3)) → proper#(X2)proper#(U72(X1, X2, X3)) → proper#(X3)

U41#(ok(X1), ok(X2)) → U41#(X1, X2)U41#(mark(X1), X2) → U41#(X1, X2)

active#(U51(X1, X2, X3)) → active#(X1)active#(U32(X)) → active#(X)
active#(U71(X1, X2, X3)) → active#(X1)active#(x(X1, X2)) → active#(X1)
active#(U12(X)) → active#(X)active#(U11(X1, X2)) → U11#(active(X1), X2)
active#(U71(tt, M, N)) → U72#(isNat(N), M, N)active#(x(X1, X2)) → x#(X1, active(X2))
active#(U21(X)) → active#(X)active#(U41(X1, X2)) → active#(X1)
active#(U72(X1, X2, X3)) → active#(X1)active#(plus(X1, X2)) → active#(X1)
active#(U52(X1, X2, X3)) → active#(X1)active#(U12(X)) → U12#(active(X))
active#(s(X)) → active#(X)active#(x(X1, X2)) → active#(X2)
active#(U61(X)) → active#(X)active#(U31(X1, X2)) → active#(X1)
active#(plus(X1, X2)) → active#(X2)active#(U11(X1, X2)) → active#(X1)
active#(plus(N, 0)) → U41#(isNat(N), N)

isNat#(ok(X)) → isNat#(X)

U21#(ok(X)) → U21#(X)U21#(mark(X)) → U21#(X)

U32#(ok(X)) → U32#(X)U32#(mark(X)) → U32#(X)

active#(U51(X1, X2, X3)) → active#(X1)active#(U71(X1, X2, X3)) → active#(X1)
active#(U32(X)) → active#(X)active#(U12(X)) → active#(X)
active#(x(X1, X2)) → active#(X1)active#(U21(X)) → active#(X)
active#(U72(X1, X2, X3)) → active#(X1)active#(U41(X1, X2)) → active#(X1)
active#(plus(X1, X2)) → active#(X1)active#(s(X)) → active#(X)
active#(U52(X1, X2, X3)) → active#(X1)active#(x(X1, X2)) → active#(X2)
active#(U61(X)) → active#(X)active#(U31(X1, X2)) → active#(X1)
active#(plus(X1, X2)) → active#(X2)active#(U11(X1, X2)) → active#(X1)

s#(mark(X)) → s#(X)s#(ok(X)) → s#(X)

U61#(mark(X)) → U61#(X)U61#(ok(X)) → U61#(X)

active#(U51(X1, X2, X3)) → active#(X1)active#(U32(X)) → active#(X)
active#(U71(X1, X2, X3)) → active#(X1)active#(x(X1, X2)) → active#(X1)
active#(U12(X)) → active#(X)active#(U11(X1, X2)) → U11#(active(X1), X2)
active#(U71(tt, M, N)) → U72#(isNat(N), M, N)active#(U51(tt, M, N)) → isNat#(N)
active#(x(X1, X2)) → x#(X1, active(X2))active#(U21(X)) → active#(X)
active#(U41(X1, X2)) → active#(X1)active#(U72(X1, X2, X3)) → active#(X1)
active#(plus(X1, X2)) → active#(X1)active#(U52(X1, X2, X3)) → active#(X1)
active#(U12(X)) → U12#(active(X))active#(s(X)) → active#(X)
active#(x(X1, X2)) → active#(X2)active#(U61(X)) → active#(X)
active#(U31(X1, X2)) → active#(X1)active#(plus(X1, X2)) → active#(X2)
active#(U11(X1, X2)) → active#(X1)active#(plus(N, 0)) → U41#(isNat(N), N)

U12#(ok(X)) → U12#(X)U12#(mark(X)) → U12#(X)

plus#(ok(X1), ok(X2)) → plus#(X1, X2)plus#(X1, mark(X2)) → plus#(X1, X2)
plus#(mark(X1), X2) → plus#(X1, X2)

U71#(ok(X1), ok(X2), ok(X3)) → U71#(X1, X2, X3)U71#(mark(X1), X2, X3) → U71#(X1, X2, X3)

U72#(ok(X1), ok(X2), ok(X3)) → U72#(X1, X2, X3)U72#(mark(X1), X2, X3) → U72#(X1, X2, X3)

x#(mark(X1), X2) → x#(X1, X2)x#(ok(X1), ok(X2)) → x#(X1, X2)
x#(X1, mark(X2)) → x#(X1, X2)

U11#(ok(X1), ok(X2)) → U11#(X1, X2)U11#(mark(X1), X2) → U11#(X1, X2)

U52#(mark(X1), X2, X3) → U52#(X1, X2, X3)U52#(ok(X1), ok(X2), ok(X3)) → U52#(X1, X2, X3)

U51#(mark(X1), X2, X3) → U51#(X1, X2, X3)U51#(ok(X1), ok(X2), ok(X3)) → U51#(X1, X2, X3)

top#(mark(X)) → top#(proper(X))top#(ok(X)) → top#(active(X))

U31#(mark(X1), X2) → U31#(X1, X2)U31#(ok(X1), ok(X2)) → U31#(X1, X2)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

proper#(U51(X1, X2, X3))proper#(X2)proper#(U41(X1, X2))proper#(X2)
proper#(U41(X1, X2))proper#(X1)proper#(U11(X1, X2))proper#(X1)
proper#(U31(X1, X2))proper#(X1)proper#(U31(X1, X2))proper#(X2)
proper#(x(X1, X2))proper#(X1)proper#(U32(X))proper#(X)
proper#(U72(X1, X2, X3))proper#(X2)proper#(U11(X1, X2))proper#(X2)
proper#(U71(X1, X2, X3))proper#(X1)proper#(U51(X1, X2, X3))proper#(X3)
proper#(plus(X1, X2))proper#(X1)proper#(U52(X1, X2, X3))proper#(X1)
proper#(plus(X1, X2))proper#(X2)proper#(U21(X))proper#(X)
proper#(U72(X1, X2, X3))proper#(X1)proper#(isNat(X))proper#(X)
proper#(U12(X))proper#(X)proper#(U61(X))proper#(X)
proper#(U71(X1, X2, X3))proper#(X3)proper#(x(X1, X2))proper#(X2)
proper#(s(X))proper#(X)proper#(U52(X1, X2, X3))proper#(X2)
proper#(U51(X1, X2, X3))proper#(X1)proper#(U52(X1, X2, X3))proper#(X3)
proper#(U71(X1, X2, X3))proper#(X2)proper#(U72(X1, X2, X3))proper#(X3)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

proper#(U41(X1, X2))proper#(X2)proper#(U51(X1, X2, X3))proper#(X2)
proper#(U41(X1, X2))proper#(X1)proper#(U11(X1, X2))proper#(X1)
proper#(U31(X1, X2))proper#(X1)proper#(U31(X1, X2))proper#(X2)
proper#(x(X1, X2))proper#(X1)proper#(U32(X))proper#(X)
proper#(U72(X1, X2, X3))proper#(X2)proper#(U11(X1, X2))proper#(X2)
proper#(U71(X1, X2, X3))proper#(X1)proper#(plus(X1, X2))proper#(X1)
proper#(U51(X1, X2, X3))proper#(X3)proper#(U52(X1, X2, X3))proper#(X1)
proper#(plus(X1, X2))proper#(X2)proper#(U21(X))proper#(X)
proper#(U72(X1, X2, X3))proper#(X1)proper#(isNat(X))proper#(X)
proper#(U61(X))proper#(X)proper#(U12(X))proper#(X)
proper#(U71(X1, X2, X3))proper#(X3)proper#(x(X1, X2))proper#(X2)
proper#(U52(X1, X2, X3))proper#(X2)proper#(s(X))proper#(X)
proper#(U51(X1, X2, X3))proper#(X1)proper#(U52(X1, X2, X3))proper#(X3)
proper#(U71(X1, X2, X3))proper#(X2)proper#(U72(X1, X2, X3))proper#(X3)

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

U41#(ok(X1), ok(X2))U41#(X1, X2)U41#(mark(X1), X2)U41#(X1, X2)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

U41#(ok(X1), ok(X2))U41#(X1, X2)U41#(mark(X1), X2)U41#(X1, X2)

Problem 4: DependencyGraph



Dependency Pair Problem

Dependency Pairs

active#(U51(X1, X2, X3))active#(X1)active#(U71(X1, X2, X3))active#(X1)
active#(U32(X))active#(X)active#(U12(X))active#(X)
active#(x(X1, X2))active#(X1)active#(U71(tt, M, N))U72#(isNat(N), M, N)
active#(U11(X1, X2))U11#(active(X1), X2)active#(U51(tt, M, N))isNat#(N)
active#(x(X1, X2))x#(X1, active(X2))active#(U21(X))active#(X)
active#(U72(X1, X2, X3))active#(X1)active#(U41(X1, X2))active#(X1)
active#(plus(X1, X2))active#(X1)active#(U52(X1, X2, X3))active#(X1)
active#(U12(X))U12#(active(X))active#(s(X))active#(X)
active#(x(X1, X2))active#(X2)active#(U61(X))active#(X)
active#(U31(X1, X2))active#(X1)active#(plus(X1, X2))active#(X2)
active#(U11(X1, X2))active#(X1)active#(plus(N, 0))U41#(isNat(N), N)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


The following SCCs where found

active#(U51(X1, X2, X3)) → active#(X1)active#(U32(X)) → active#(X)
active#(U71(X1, X2, X3)) → active#(X1)active#(x(X1, X2)) → active#(X1)
active#(U12(X)) → active#(X)active#(U21(X)) → active#(X)
active#(U72(X1, X2, X3)) → active#(X1)active#(U41(X1, X2)) → active#(X1)
active#(plus(X1, X2)) → active#(X1)active#(U52(X1, X2, X3)) → active#(X1)
active#(s(X)) → active#(X)active#(x(X1, X2)) → active#(X2)
active#(U31(X1, X2)) → active#(X1)active#(U61(X)) → active#(X)
active#(plus(X1, X2)) → active#(X2)active#(U11(X1, X2)) → active#(X1)

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

U51#(mark(X1), X2, X3)U51#(X1, X2, X3)U51#(ok(X1), ok(X2), ok(X3))U51#(X1, X2, X3)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

U51#(mark(X1), X2, X3)U51#(X1, X2, X3)U51#(ok(X1), ok(X2), ok(X3))U51#(X1, X2, X3)

Problem 6: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

U72#(ok(X1), ok(X2), ok(X3))U72#(X1, X2, X3)U72#(mark(X1), X2, X3)U72#(X1, X2, X3)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

U72#(ok(X1), ok(X2), ok(X3))U72#(X1, X2, X3)U72#(mark(X1), X2, X3)U72#(X1, X2, X3)

Problem 7: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

U61#(mark(X))U61#(X)U61#(ok(X))U61#(X)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

U61#(mark(X))U61#(X)U61#(ok(X))U61#(X)

Problem 8: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

U11#(ok(X1), ok(X2))U11#(X1, X2)U11#(mark(X1), X2)U11#(X1, X2)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

U11#(ok(X1), ok(X2))U11#(X1, X2)U11#(mark(X1), X2)U11#(X1, X2)

Problem 9: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

U71#(ok(X1), ok(X2), ok(X3))U71#(X1, X2, X3)U71#(mark(X1), X2, X3)U71#(X1, X2, X3)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

U71#(ok(X1), ok(X2), ok(X3))U71#(X1, X2, X3)U71#(mark(X1), X2, X3)U71#(X1, X2, X3)

Problem 10: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

U21#(ok(X))U21#(X)U21#(mark(X))U21#(X)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

U21#(ok(X))U21#(X)U21#(mark(X))U21#(X)

Problem 11: DependencyGraph



Dependency Pair Problem

Dependency Pairs

active#(U51(X1, X2, X3))active#(X1)active#(U71(X1, X2, X3))active#(X1)
active#(U32(X))active#(X)active#(U12(X))active#(X)
active#(x(X1, X2))active#(X1)active#(U71(tt, M, N))U72#(isNat(N), M, N)
active#(U11(X1, X2))U11#(active(X1), X2)active#(x(X1, X2))x#(X1, active(X2))
active#(U21(X))active#(X)active#(U72(X1, X2, X3))active#(X1)
active#(U41(X1, X2))active#(X1)active#(plus(X1, X2))active#(X1)
active#(U52(X1, X2, X3))active#(X1)active#(U12(X))U12#(active(X))
active#(s(X))active#(X)active#(x(X1, X2))active#(X2)
active#(U61(X))active#(X)active#(U31(X1, X2))active#(X1)
active#(plus(X1, X2))active#(X2)active#(U11(X1, X2))active#(X1)
active#(plus(N, 0))U41#(isNat(N), N)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


The following SCCs where found

active#(U51(X1, X2, X3)) → active#(X1)active#(U32(X)) → active#(X)
active#(U71(X1, X2, X3)) → active#(X1)active#(x(X1, X2)) → active#(X1)
active#(U12(X)) → active#(X)active#(U21(X)) → active#(X)
active#(U72(X1, X2, X3)) → active#(X1)active#(U41(X1, X2)) → active#(X1)
active#(plus(X1, X2)) → active#(X1)active#(U52(X1, X2, X3)) → active#(X1)
active#(s(X)) → active#(X)active#(x(X1, X2)) → active#(X2)
active#(U31(X1, X2)) → active#(X1)active#(U61(X)) → active#(X)
active#(plus(X1, X2)) → active#(X2)active#(U11(X1, X2)) → active#(X1)

Problem 12: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

active#(U51(X1, X2, X3))active#(X1)active#(U32(X))active#(X)
active#(U71(X1, X2, X3))active#(X1)active#(x(X1, X2))active#(X1)
active#(U12(X))active#(X)active#(U21(X))active#(X)
active#(U41(X1, X2))active#(X1)active#(U72(X1, X2, X3))active#(X1)
active#(plus(X1, X2))active#(X1)active#(U52(X1, X2, X3))active#(X1)
active#(s(X))active#(X)active#(x(X1, X2))active#(X2)
active#(U61(X))active#(X)active#(U31(X1, X2))active#(X1)
active#(plus(X1, X2))active#(X2)active#(U11(X1, X2))active#(X1)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

active#(U51(X1, X2, X3))active#(X1)active#(U32(X))active#(X)
active#(U71(X1, X2, X3))active#(X1)active#(U12(X))active#(X)
active#(x(X1, X2))active#(X1)active#(U21(X))active#(X)
active#(U41(X1, X2))active#(X1)active#(U72(X1, X2, X3))active#(X1)
active#(plus(X1, X2))active#(X1)active#(s(X))active#(X)
active#(U52(X1, X2, X3))active#(X1)active#(x(X1, X2))active#(X2)
active#(U31(X1, X2))active#(X1)active#(U61(X))active#(X)
active#(plus(X1, X2))active#(X2)active#(U11(X1, X2))active#(X1)

Problem 13: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

plus#(ok(X1), ok(X2))plus#(X1, X2)plus#(X1, mark(X2))plus#(X1, X2)
plus#(mark(X1), X2)plus#(X1, X2)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

plus#(ok(X1), ok(X2))plus#(X1, X2)plus#(mark(X1), X2)plus#(X1, X2)

Problem 14: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

x#(mark(X1), X2)x#(X1, X2)x#(ok(X1), ok(X2))x#(X1, X2)
x#(X1, mark(X2))x#(X1, X2)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

x#(mark(X1), X2)x#(X1, X2)x#(ok(X1), ok(X2))x#(X1, X2)

Problem 15: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

isNat#(ok(X))isNat#(X)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

isNat#(ok(X))isNat#(X)

Problem 16: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

U31#(mark(X1), X2)U31#(X1, X2)U31#(ok(X1), ok(X2))U31#(X1, X2)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

U31#(mark(X1), X2)U31#(X1, X2)U31#(ok(X1), ok(X2))U31#(X1, X2)

Problem 17: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

U12#(ok(X))U12#(X)U12#(mark(X))U12#(X)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

U12#(ok(X))U12#(X)U12#(mark(X))U12#(X)

Problem 18: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

s#(mark(X))s#(X)s#(ok(X))s#(X)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

s#(mark(X))s#(X)s#(ok(X))s#(X)

Problem 19: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

U32#(ok(X))U32#(X)U32#(mark(X))U32#(X)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

U32#(ok(X))U32#(X)U32#(mark(X))U32#(X)

Problem 20: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

U52#(mark(X1), X2, X3)U52#(X1, X2, X3)U52#(ok(X1), ok(X2), ok(X3))U52#(X1, X2, X3)

Rewrite 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))active(U11(X1, X2))U11(active(X1), X2)
active(U12(X))U12(active(X))active(U21(X))U21(active(X))
active(U31(X1, X2))U31(active(X1), X2)active(U32(X))U32(active(X))
active(U41(X1, X2))U41(active(X1), X2)active(U51(X1, X2, X3))U51(active(X1), X2, X3)
active(U52(X1, X2, X3))U52(active(X1), X2, X3)active(s(X))s(active(X))
active(plus(X1, X2))plus(active(X1), X2)active(plus(X1, X2))plus(X1, active(X2))
active(U61(X))U61(active(X))active(U71(X1, X2, X3))U71(active(X1), X2, X3)
active(U72(X1, X2, X3))U72(active(X1), X2, X3)active(x(X1, X2))x(active(X1), X2)
active(x(X1, X2))x(X1, active(X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X))mark(U12(X))U21(mark(X))mark(U21(X))
U31(mark(X1), X2)mark(U31(X1, X2))U32(mark(X))mark(U32(X))
U41(mark(X1), X2)mark(U41(X1, X2))U51(mark(X1), X2, X3)mark(U51(X1, X2, X3))
U52(mark(X1), X2, X3)mark(U52(X1, X2, X3))s(mark(X))mark(s(X))
plus(mark(X1), X2)mark(plus(X1, X2))plus(X1, mark(X2))mark(plus(X1, X2))
U61(mark(X))mark(U61(X))U71(mark(X1), X2, X3)mark(U71(X1, X2, X3))
U72(mark(X1), X2, X3)mark(U72(X1, X2, X3))x(mark(X1), X2)mark(x(X1, X2))
x(X1, mark(X2))mark(x(X1, X2))proper(U11(X1, X2))U11(proper(X1), proper(X2))
proper(tt)ok(tt)proper(U12(X))U12(proper(X))
proper(isNat(X))isNat(proper(X))proper(U21(X))U21(proper(X))
proper(U31(X1, X2))U31(proper(X1), proper(X2))proper(U32(X))U32(proper(X))
proper(U41(X1, X2))U41(proper(X1), proper(X2))proper(U51(X1, X2, X3))U51(proper(X1), proper(X2), proper(X3))
proper(U52(X1, X2, X3))U52(proper(X1), proper(X2), proper(X3))proper(s(X))s(proper(X))
proper(plus(X1, X2))plus(proper(X1), proper(X2))proper(U61(X))U61(proper(X))
proper(0)ok(0)proper(U71(X1, X2, X3))U71(proper(X1), proper(X2), proper(X3))
proper(U72(X1, X2, X3))U72(proper(X1), proper(X2), proper(X3))proper(x(X1, X2))x(proper(X1), proper(X2))
U11(ok(X1), ok(X2))ok(U11(X1, X2))U12(ok(X))ok(U12(X))
isNat(ok(X))ok(isNat(X))U21(ok(X))ok(U21(X))
U31(ok(X1), ok(X2))ok(U31(X1, X2))U32(ok(X))ok(U32(X))
U41(ok(X1), ok(X2))ok(U41(X1, X2))U51(ok(X1), ok(X2), ok(X3))ok(U51(X1, X2, X3))
U52(ok(X1), ok(X2), ok(X3))ok(U52(X1, X2, X3))s(ok(X))ok(s(X))
plus(ok(X1), ok(X2))ok(plus(X1, X2))U61(ok(X))ok(U61(X))
U71(ok(X1), ok(X2), ok(X3))ok(U71(X1, X2, X3))U72(ok(X1), ok(X2), ok(X3))ok(U72(X1, X2, X3))
x(ok(X1), ok(X2))ok(x(X1, X2))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: plus, mark, U71, isNat, U72, U61, 0, s, U51, tt, U41, U52, U11, active, U12, ok, U31, proper, U32, U21, x, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

U52#(mark(X1), X2, X3)U52#(X1, X2, X3)U52#(ok(X1), ok(X2), ok(X3))U52#(X1, X2, X3)