YES

We show the termination of the TRS R:

  U11(tt(),N) -> activate(N)
  U21(tt(),M,N) -> s(plus(activate(N),activate(M)))
  and(tt(),X) -> activate(X)
  isNat(n__0()) -> tt()
  isNat(n__plus(V1,V2)) -> and(isNat(activate(V1)),n__isNat(activate(V2)))
  isNat(n__s(V1)) -> isNat(activate(V1))
  plus(N,|0|()) -> U11(isNat(N),N)
  plus(N,s(M)) -> U21(and(isNat(M),n__isNat(N)),M,N)
  |0|() -> n__0()
  plus(X1,X2) -> n__plus(X1,X2)
  isNat(X) -> n__isNat(X)
  s(X) -> n__s(X)
  activate(n__0()) -> |0|()
  activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2))
  activate(n__isNat(X)) -> isNat(X)
  activate(n__s(X)) -> s(activate(X))
  activate(X) -> X

-- SCC decomposition.

Consider the dependency pair problem (P, R), where P consists of

p1: U11#(tt(),N) -> activate#(N)
p2: U21#(tt(),M,N) -> s#(plus(activate(N),activate(M)))
p3: U21#(tt(),M,N) -> plus#(activate(N),activate(M))
p4: U21#(tt(),M,N) -> activate#(N)
p5: U21#(tt(),M,N) -> activate#(M)
p6: and#(tt(),X) -> activate#(X)
p7: isNat#(n__plus(V1,V2)) -> and#(isNat(activate(V1)),n__isNat(activate(V2)))
p8: isNat#(n__plus(V1,V2)) -> isNat#(activate(V1))
p9: isNat#(n__plus(V1,V2)) -> activate#(V1)
p10: isNat#(n__plus(V1,V2)) -> activate#(V2)
p11: isNat#(n__s(V1)) -> isNat#(activate(V1))
p12: isNat#(n__s(V1)) -> activate#(V1)
p13: plus#(N,|0|()) -> U11#(isNat(N),N)
p14: plus#(N,|0|()) -> isNat#(N)
p15: plus#(N,s(M)) -> U21#(and(isNat(M),n__isNat(N)),M,N)
p16: plus#(N,s(M)) -> and#(isNat(M),n__isNat(N))
p17: plus#(N,s(M)) -> isNat#(M)
p18: activate#(n__0()) -> |0|#()
p19: activate#(n__plus(X1,X2)) -> plus#(activate(X1),activate(X2))
p20: activate#(n__plus(X1,X2)) -> activate#(X1)
p21: activate#(n__plus(X1,X2)) -> activate#(X2)
p22: activate#(n__isNat(X)) -> isNat#(X)
p23: activate#(n__s(X)) -> s#(activate(X))
p24: activate#(n__s(X)) -> activate#(X)

and R consists of:

r1: U11(tt(),N) -> activate(N)
r2: U21(tt(),M,N) -> s(plus(activate(N),activate(M)))
r3: and(tt(),X) -> activate(X)
r4: isNat(n__0()) -> tt()
r5: isNat(n__plus(V1,V2)) -> and(isNat(activate(V1)),n__isNat(activate(V2)))
r6: isNat(n__s(V1)) -> isNat(activate(V1))
r7: plus(N,|0|()) -> U11(isNat(N),N)
r8: plus(N,s(M)) -> U21(and(isNat(M),n__isNat(N)),M,N)
r9: |0|() -> n__0()
r10: plus(X1,X2) -> n__plus(X1,X2)
r11: isNat(X) -> n__isNat(X)
r12: s(X) -> n__s(X)
r13: activate(n__0()) -> |0|()
r14: activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2))
r15: activate(n__isNat(X)) -> isNat(X)
r16: activate(n__s(X)) -> s(activate(X))
r17: activate(X) -> X

The estimated dependency graph contains the following SCCs:

  {p1, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p19, p20, p21, p22, p24}


-- Reduction pair.

Consider the dependency pair problem (P, R), where P consists of

p1: U11#(tt(),N) -> activate#(N)
p2: activate#(n__s(X)) -> activate#(X)
p3: activate#(n__isNat(X)) -> isNat#(X)
p4: isNat#(n__s(V1)) -> activate#(V1)
p5: activate#(n__plus(X1,X2)) -> activate#(X2)
p6: activate#(n__plus(X1,X2)) -> activate#(X1)
p7: activate#(n__plus(X1,X2)) -> plus#(activate(X1),activate(X2))
p8: plus#(N,s(M)) -> isNat#(M)
p9: isNat#(n__s(V1)) -> isNat#(activate(V1))
p10: isNat#(n__plus(V1,V2)) -> activate#(V2)
p11: isNat#(n__plus(V1,V2)) -> activate#(V1)
p12: isNat#(n__plus(V1,V2)) -> isNat#(activate(V1))
p13: isNat#(n__plus(V1,V2)) -> and#(isNat(activate(V1)),n__isNat(activate(V2)))
p14: and#(tt(),X) -> activate#(X)
p15: plus#(N,s(M)) -> and#(isNat(M),n__isNat(N))
p16: plus#(N,s(M)) -> U21#(and(isNat(M),n__isNat(N)),M,N)
p17: U21#(tt(),M,N) -> activate#(M)
p18: U21#(tt(),M,N) -> activate#(N)
p19: U21#(tt(),M,N) -> plus#(activate(N),activate(M))
p20: plus#(N,|0|()) -> isNat#(N)
p21: plus#(N,|0|()) -> U11#(isNat(N),N)

and R consists of:

r1: U11(tt(),N) -> activate(N)
r2: U21(tt(),M,N) -> s(plus(activate(N),activate(M)))
r3: and(tt(),X) -> activate(X)
r4: isNat(n__0()) -> tt()
r5: isNat(n__plus(V1,V2)) -> and(isNat(activate(V1)),n__isNat(activate(V2)))
r6: isNat(n__s(V1)) -> isNat(activate(V1))
r7: plus(N,|0|()) -> U11(isNat(N),N)
r8: plus(N,s(M)) -> U21(and(isNat(M),n__isNat(N)),M,N)
r9: |0|() -> n__0()
r10: plus(X1,X2) -> n__plus(X1,X2)
r11: isNat(X) -> n__isNat(X)
r12: s(X) -> n__s(X)
r13: activate(n__0()) -> |0|()
r14: activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2))
r15: activate(n__isNat(X)) -> isNat(X)
r16: activate(n__s(X)) -> s(activate(X))
r17: activate(X) -> X

The set of usable rules consists of

  r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17

Take the reduction pair:

  matrix interpretations:
  
    carrier: N^2
    order: standard order
    interpretations:
      U11#_A(x1,x2) = ((0,1),(0,0)) x2 + (1,0)
      tt_A() = (1,1)
      activate#_A(x1) = ((0,1),(0,0)) x1
      n__s_A(x1) = x1 + (1,0)
      n__isNat_A(x1) = x1 + (1,2)
      isNat#_A(x1) = ((0,1),(0,0)) x1 + (2,0)
      n__plus_A(x1,x2) = ((1,1),(0,1)) x1 + x2 + (1,3)
      plus#_A(x1,x2) = ((0,1),(0,0)) x1 + ((0,1),(0,0)) x2 + (2,0)
      activate_A(x1) = ((1,1),(0,1)) x1 + (1,0)
      s_A(x1) = x1 + (1,0)
      and#_A(x1,x2) = ((0,1),(0,0)) x2
      isNat_A(x1) = ((0,1),(0,1)) x1 + (1,2)
      U21#_A(x1,x2,x3) = ((0,1),(0,0)) x2 + ((0,1),(0,0)) x3 + (2,0)
      and_A(x1,x2) = x1 + ((1,1),(0,1)) x2 + (1,0)
      |0|_A() = (1,0)
      U11_A(x1,x2) = ((1,1),(0,1)) x2 + (1,0)
      U21_A(x1,x2,x3) = x2 + ((0,1),(0,1)) x3 + (1,3)
      plus_A(x1,x2) = ((1,1),(0,1)) x1 + x2 + (1,3)
      n__0_A() = (1,0)

The next rules are strictly ordered:

  p1, p4, p5, p6, p7, p10, p11, p12, p13, p17, p18, p21

We remove them from the problem.

-- SCC decomposition.

Consider the dependency pair problem (P, R), where P consists of

p1: activate#(n__s(X)) -> activate#(X)
p2: activate#(n__isNat(X)) -> isNat#(X)
p3: plus#(N,s(M)) -> isNat#(M)
p4: isNat#(n__s(V1)) -> isNat#(activate(V1))
p5: and#(tt(),X) -> activate#(X)
p6: plus#(N,s(M)) -> and#(isNat(M),n__isNat(N))
p7: plus#(N,s(M)) -> U21#(and(isNat(M),n__isNat(N)),M,N)
p8: U21#(tt(),M,N) -> plus#(activate(N),activate(M))
p9: plus#(N,|0|()) -> isNat#(N)

and R consists of:

r1: U11(tt(),N) -> activate(N)
r2: U21(tt(),M,N) -> s(plus(activate(N),activate(M)))
r3: and(tt(),X) -> activate(X)
r4: isNat(n__0()) -> tt()
r5: isNat(n__plus(V1,V2)) -> and(isNat(activate(V1)),n__isNat(activate(V2)))
r6: isNat(n__s(V1)) -> isNat(activate(V1))
r7: plus(N,|0|()) -> U11(isNat(N),N)
r8: plus(N,s(M)) -> U21(and(isNat(M),n__isNat(N)),M,N)
r9: |0|() -> n__0()
r10: plus(X1,X2) -> n__plus(X1,X2)
r11: isNat(X) -> n__isNat(X)
r12: s(X) -> n__s(X)
r13: activate(n__0()) -> |0|()
r14: activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2))
r15: activate(n__isNat(X)) -> isNat(X)
r16: activate(n__s(X)) -> s(activate(X))
r17: activate(X) -> X

The estimated dependency graph contains the following SCCs:

  {p7, p8}
  {p1}
  {p4}


-- Reduction pair.

Consider the dependency pair problem (P, R), where P consists of

p1: U21#(tt(),M,N) -> plus#(activate(N),activate(M))
p2: plus#(N,s(M)) -> U21#(and(isNat(M),n__isNat(N)),M,N)

and R consists of:

r1: U11(tt(),N) -> activate(N)
r2: U21(tt(),M,N) -> s(plus(activate(N),activate(M)))
r3: and(tt(),X) -> activate(X)
r4: isNat(n__0()) -> tt()
r5: isNat(n__plus(V1,V2)) -> and(isNat(activate(V1)),n__isNat(activate(V2)))
r6: isNat(n__s(V1)) -> isNat(activate(V1))
r7: plus(N,|0|()) -> U11(isNat(N),N)
r8: plus(N,s(M)) -> U21(and(isNat(M),n__isNat(N)),M,N)
r9: |0|() -> n__0()
r10: plus(X1,X2) -> n__plus(X1,X2)
r11: isNat(X) -> n__isNat(X)
r12: s(X) -> n__s(X)
r13: activate(n__0()) -> |0|()
r14: activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2))
r15: activate(n__isNat(X)) -> isNat(X)
r16: activate(n__s(X)) -> s(activate(X))
r17: activate(X) -> X

The set of usable rules consists of

  r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17

Take the reduction pair:

  matrix interpretations:
  
    carrier: N^2
    order: standard order
    interpretations:
      U21#_A(x1,x2,x3) = ((1,0),(1,1)) x2 + x3 + (1,0)
      tt_A() = (1,1)
      plus#_A(x1,x2) = x1 + ((1,0),(1,1)) x2
      activate_A(x1) = x1
      s_A(x1) = x1 + (2,1)
      and_A(x1,x2) = ((1,1),(1,1)) x1 + x2
      isNat_A(x1) = ((1,1),(1,1)) x1 + (1,1)
      n__isNat_A(x1) = ((1,1),(1,1)) x1 + (1,1)
      U11_A(x1,x2) = x2
      U21_A(x1,x2,x3) = ((1,1),(0,1)) x2 + ((1,1),(1,1)) x3 + (4,1)
      plus_A(x1,x2) = ((1,1),(1,1)) x1 + ((1,1),(0,1)) x2 + (2,0)
      |0|_A() = (1,1)
      n__0_A() = (1,1)
      n__plus_A(x1,x2) = ((1,1),(1,1)) x1 + ((1,1),(0,1)) x2 + (2,0)
      n__s_A(x1) = x1 + (2,1)

The next rules are strictly ordered:

  p1, p2

We remove them from the problem.  Then no dependency pair remains.

-- Reduction pair.

Consider the dependency pair problem (P, R), where P consists of

p1: activate#(n__s(X)) -> activate#(X)

and R consists of:

r1: U11(tt(),N) -> activate(N)
r2: U21(tt(),M,N) -> s(plus(activate(N),activate(M)))
r3: and(tt(),X) -> activate(X)
r4: isNat(n__0()) -> tt()
r5: isNat(n__plus(V1,V2)) -> and(isNat(activate(V1)),n__isNat(activate(V2)))
r6: isNat(n__s(V1)) -> isNat(activate(V1))
r7: plus(N,|0|()) -> U11(isNat(N),N)
r8: plus(N,s(M)) -> U21(and(isNat(M),n__isNat(N)),M,N)
r9: |0|() -> n__0()
r10: plus(X1,X2) -> n__plus(X1,X2)
r11: isNat(X) -> n__isNat(X)
r12: s(X) -> n__s(X)
r13: activate(n__0()) -> |0|()
r14: activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2))
r15: activate(n__isNat(X)) -> isNat(X)
r16: activate(n__s(X)) -> s(activate(X))
r17: activate(X) -> X

The set of usable rules consists of

  (no rules)

Take the monotone reduction pair:

  matrix interpretations:
  
    carrier: N^2
    order: standard order
    interpretations:
      activate#_A(x1) = ((1,0),(1,0)) x1
      n__s_A(x1) = ((1,1),(1,1)) x1 + (1,0)

The next rules are strictly ordered:

  p1
  r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17

We remove them from the problem.  Then no dependency pair remains.

-- Reduction pair.

Consider the dependency pair problem (P, R), where P consists of

p1: isNat#(n__s(V1)) -> isNat#(activate(V1))

and R consists of:

r1: U11(tt(),N) -> activate(N)
r2: U21(tt(),M,N) -> s(plus(activate(N),activate(M)))
r3: and(tt(),X) -> activate(X)
r4: isNat(n__0()) -> tt()
r5: isNat(n__plus(V1,V2)) -> and(isNat(activate(V1)),n__isNat(activate(V2)))
r6: isNat(n__s(V1)) -> isNat(activate(V1))
r7: plus(N,|0|()) -> U11(isNat(N),N)
r8: plus(N,s(M)) -> U21(and(isNat(M),n__isNat(N)),M,N)
r9: |0|() -> n__0()
r10: plus(X1,X2) -> n__plus(X1,X2)
r11: isNat(X) -> n__isNat(X)
r12: s(X) -> n__s(X)
r13: activate(n__0()) -> |0|()
r14: activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2))
r15: activate(n__isNat(X)) -> isNat(X)
r16: activate(n__s(X)) -> s(activate(X))
r17: activate(X) -> X

The set of usable rules consists of

  r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17

Take the reduction pair:

  matrix interpretations:
  
    carrier: N^2
    order: standard order
    interpretations:
      isNat#_A(x1) = ((0,1),(0,1)) x1
      n__s_A(x1) = x1 + (0,1)
      activate_A(x1) = x1
      U11_A(x1,x2) = x1 + ((1,1),(0,1)) x2
      tt_A() = (0,1)
      U21_A(x1,x2,x3) = ((0,1),(0,0)) x1 + x2 + x3 + (0,1)
      s_A(x1) = x1 + (0,1)
      plus_A(x1,x2) = ((1,1),(0,1)) x1 + x2
      and_A(x1,x2) = x2
      isNat_A(x1) = x1
      n__0_A() = (0,1)
      n__plus_A(x1,x2) = ((1,1),(0,1)) x1 + x2
      n__isNat_A(x1) = x1
      |0|_A() = (0,1)

The next rules are strictly ordered:

  p1

We remove them from the problem.  Then no dependency pair remains.