YES
Termination Proof using AProVETerm Rewriting System R:
[V2, N, M, V1]
U11(tt, V2) -> U12(isNat(V2))
U12(tt) -> tt
U21(tt) -> tt
U31(tt, V2) -> U32(isNat(V2))
U32(tt) -> tt
U41(tt, N) -> N
U51(tt, M, N) -> U52(isNat(N), M, N)
U52(tt, M, N) -> s(plus(N, M))
U61(tt) -> 0
U71(tt, M, N) -> U72(isNat(N), M, N)
U72(tt, M, N) -> plus(x(N, M), N)
isNat(0) -> tt
isNat(plus(V1, V2)) -> U11(isNat(V1), V2)
isNat(s(V1)) -> U21(isNat(V1))
isNat(x(V1, V2)) -> U31(isNat(V1), V2)
plus(N, 0) -> U41(isNat(N), N)
plus(N, s(M)) -> U51(isNat(M), M, N)
x(N, 0) -> U61(isNat(N))
x(N, s(M)) -> U71(isNat(M), M, N)
Termination of R to be shown.
TRS
↳CSR to TRS Transformation
Trivial-Transformation successful.
Replacement map:
U71(1, 2, 3)
plus(1, 2)
U31(1, 2)
x(1, 2)
U12(1)
U52(1, 2, 3)
U11(1, 2)
isNat(1)
U51(1, 2, 3)
U41(1, 2)
U32(1)
U21(1)
U72(1, 2, 3)
s(1)
U61(1)
Old CSR:
U11(tt, V2) -> U12(isNat(V2))
U12(tt) -> tt
U21(tt) -> tt
U31(tt, V2) -> U32(isNat(V2))
U32(tt) -> tt
U41(tt, N) -> N
U51(tt, M, N) -> U52(isNat(N), M, N)
U52(tt, M, N) -> s(plus(N, M))
U61(tt) -> 0
U71(tt, M, N) -> U72(isNat(N), M, N)
U72(tt, M, N) -> plus(x(N, M), N)
isNat(0) -> tt
isNat(plus(V1, V2)) -> U11(isNat(V1), V2)
isNat(s(V1)) -> U21(isNat(V1))
isNat(x(V1, V2)) -> U31(isNat(V1), V2)
plus(N, 0) -> U41(isNat(N), N)
plus(N, s(M)) -> U51(isNat(M), M, N)
x(N, 0) -> U61(isNat(N))
x(N, s(M)) -> U71(isNat(M), M, N)
new TRS:
U11(tt, V2) -> U12(isNat(V2))
U12(tt) -> tt
isNat(0) -> tt
isNat(plus(V1, V2)) -> U11(isNat(V1), V2)
isNat(s(V1)) -> U21(isNat(V1))
isNat(x(V1, V2)) -> U31(isNat(V1), V2)
U21(tt) -> tt
U31(tt, V2) -> U32(isNat(V2))
U32(tt) -> tt
U41(tt, N) -> N
U51(tt, M, N) -> U52(isNat(N), M, N)
U52(tt, M, N) -> s(plus(N, M))
plus(N, 0) -> U41(isNat(N), N)
plus(N, s(M)) -> U51(isNat(M), M, N)
U61(tt) -> 0
U71(tt, M, N) -> U72(isNat(N), M, N)
U72(tt, M, N) -> plus(x(N, M), N)
x(N, 0) -> U61(isNat(N))
x(N, s(M)) -> U71(isNat(M), M, N)
TRS
↳CSRtoTRS
→TRS1
↳Dependency Pair Analysis
R contains the following Dependency Pairs:
U11'(tt, V2) -> U12'(isNat(V2))
U11'(tt, V2) -> ISNAT(V2)
ISNAT(plus(V1, V2)) -> U11'(isNat(V1), V2)
ISNAT(plus(V1, V2)) -> ISNAT(V1)
ISNAT(s(V1)) -> U21'(isNat(V1))
ISNAT(s(V1)) -> ISNAT(V1)
ISNAT(x(V1, V2)) -> U31'(isNat(V1), V2)
ISNAT(x(V1, V2)) -> ISNAT(V1)
U31'(tt, V2) -> U32'(isNat(V2))
U31'(tt, V2) -> ISNAT(V2)
U51'(tt, M, N) -> U52'(isNat(N), M, N)
U51'(tt, M, N) -> ISNAT(N)
U52'(tt, M, N) -> PLUS(N, M)
PLUS(N, 0) -> U41'(isNat(N), N)
PLUS(N, 0) -> ISNAT(N)
PLUS(N, s(M)) -> U51'(isNat(M), M, N)
PLUS(N, s(M)) -> ISNAT(M)
U71'(tt, M, N) -> U72'(isNat(N), M, N)
U71'(tt, M, N) -> ISNAT(N)
U72'(tt, M, N) -> PLUS(x(N, M), N)
U72'(tt, M, N) -> X(N, M)
X(N, 0) -> U61'(isNat(N))
X(N, 0) -> ISNAT(N)
X(N, s(M)) -> U71'(isNat(M), M, N)
X(N, s(M)) -> ISNAT(M)
Furthermore, R contains three SCCs.
TRS
↳CSRtoTRS
→TRS1
↳DPs
→DP Problem 1
↳Size-Change Principle
→DP Problem 2
↳SCP
→DP Problem 3
↳SCP
Dependency Pairs:
ISNAT(x(V1, V2)) -> ISNAT(V1)
U31'(tt, V2) -> ISNAT(V2)
ISNAT(x(V1, V2)) -> U31'(isNat(V1), V2)
ISNAT(s(V1)) -> ISNAT(V1)
ISNAT(plus(V1, V2)) -> ISNAT(V1)
ISNAT(plus(V1, V2)) -> U11'(isNat(V1), V2)
U11'(tt, V2) -> ISNAT(V2)
Rules:
U11(tt, V2) -> U12(isNat(V2))
U12(tt) -> tt
isNat(0) -> tt
isNat(plus(V1, V2)) -> U11(isNat(V1), V2)
isNat(s(V1)) -> U21(isNat(V1))
isNat(x(V1, V2)) -> U31(isNat(V1), V2)
U21(tt) -> tt
U31(tt, V2) -> U32(isNat(V2))
U32(tt) -> tt
U41(tt, N) -> N
U51(tt, M, N) -> U52(isNat(N), M, N)
U52(tt, M, N) -> s(plus(N, M))
plus(N, 0) -> U41(isNat(N), N)
plus(N, s(M)) -> U51(isNat(M), M, N)
U61(tt) -> 0
U71(tt, M, N) -> U72(isNat(N), M, N)
U72(tt, M, N) -> plus(x(N, M), N)
x(N, 0) -> U61(isNat(N))
x(N, s(M)) -> U71(isNat(M), M, N)
We number the DPs as follows:
- ISNAT(x(V1, V2)) -> ISNAT(V1)
- U31'(tt, V2) -> ISNAT(V2)
- ISNAT(x(V1, V2)) -> U31'(isNat(V1), V2)
- ISNAT(s(V1)) -> ISNAT(V1)
- ISNAT(plus(V1, V2)) -> ISNAT(V1)
- ISNAT(plus(V1, V2)) -> U11'(isNat(V1), V2)
- U11'(tt, V2) -> ISNAT(V2)
and get the following Size-Change Graph(s):
which lead(s) to this/these maximal multigraph(s):
DP: empty set
Oriented Rules: none
We used the order Homeomorphic Embedding Order with Non-Strict Precedence.
trivial
with Argument Filtering System:
plus(x1, x2) -> plus(x1, x2)
x(x1, x2) -> x(x1, x2)
s(x1) -> s(x1)
We obtain no new DP problems.
TRS
↳CSRtoTRS
→TRS1
↳DPs
→DP Problem 1
↳SCP
→DP Problem 2
↳Size-Change Principle
→DP Problem 3
↳SCP
Dependency Pairs:
PLUS(N, s(M)) -> U51'(isNat(M), M, N)
U52'(tt, M, N) -> PLUS(N, M)
U51'(tt, M, N) -> U52'(isNat(N), M, N)
Rules:
U11(tt, V2) -> U12(isNat(V2))
U12(tt) -> tt
isNat(0) -> tt
isNat(plus(V1, V2)) -> U11(isNat(V1), V2)
isNat(s(V1)) -> U21(isNat(V1))
isNat(x(V1, V2)) -> U31(isNat(V1), V2)
U21(tt) -> tt
U31(tt, V2) -> U32(isNat(V2))
U32(tt) -> tt
U41(tt, N) -> N
U51(tt, M, N) -> U52(isNat(N), M, N)
U52(tt, M, N) -> s(plus(N, M))
plus(N, 0) -> U41(isNat(N), N)
plus(N, s(M)) -> U51(isNat(M), M, N)
U61(tt) -> 0
U71(tt, M, N) -> U72(isNat(N), M, N)
U72(tt, M, N) -> plus(x(N, M), N)
x(N, 0) -> U61(isNat(N))
x(N, s(M)) -> U71(isNat(M), M, N)
We number the DPs as follows:
- PLUS(N, s(M)) -> U51'(isNat(M), M, N)
- U52'(tt, M, N) -> PLUS(N, M)
- U51'(tt, M, N) -> U52'(isNat(N), M, N)
and get the following Size-Change Graph(s):
which lead(s) to this/these maximal multigraph(s):
DP: empty set
Oriented Rules: none
We used the order Homeomorphic Embedding Order with Non-Strict Precedence.
trivial
with Argument Filtering System:
s(x1) -> s(x1)
We obtain no new DP problems.
TRS
↳CSRtoTRS
→TRS1
↳DPs
→DP Problem 1
↳SCP
→DP Problem 2
↳SCP
→DP Problem 3
↳Size-Change Principle
Dependency Pairs:
X(N, s(M)) -> U71'(isNat(M), M, N)
U72'(tt, M, N) -> X(N, M)
U71'(tt, M, N) -> U72'(isNat(N), M, N)
Rules:
U11(tt, V2) -> U12(isNat(V2))
U12(tt) -> tt
isNat(0) -> tt
isNat(plus(V1, V2)) -> U11(isNat(V1), V2)
isNat(s(V1)) -> U21(isNat(V1))
isNat(x(V1, V2)) -> U31(isNat(V1), V2)
U21(tt) -> tt
U31(tt, V2) -> U32(isNat(V2))
U32(tt) -> tt
U41(tt, N) -> N
U51(tt, M, N) -> U52(isNat(N), M, N)
U52(tt, M, N) -> s(plus(N, M))
plus(N, 0) -> U41(isNat(N), N)
plus(N, s(M)) -> U51(isNat(M), M, N)
U61(tt) -> 0
U71(tt, M, N) -> U72(isNat(N), M, N)
U72(tt, M, N) -> plus(x(N, M), N)
x(N, 0) -> U61(isNat(N))
x(N, s(M)) -> U71(isNat(M), M, N)
We number the DPs as follows:
- X(N, s(M)) -> U71'(isNat(M), M, N)
- U72'(tt, M, N) -> X(N, M)
- U71'(tt, M, N) -> U72'(isNat(N), M, N)
and get the following Size-Change Graph(s):
which lead(s) to this/these maximal multigraph(s):
DP: empty set
Oriented Rules: none
We used the order Homeomorphic Embedding Order with Non-Strict Precedence.
trivial
with Argument Filtering System:
s(x1) -> s(x1)
We obtain no new DP problems.
Termination of R successfully shown.
Duration:
0:23 minutes