YES

We show the termination of the TRS R:

  fst(|0|(),Z) -> nil()
  fst(s(X),cons(Y,Z)) -> cons(Y,n__fst(activate(X),activate(Z)))
  from(X) -> cons(X,n__from(n__s(X)))
  add(|0|(),X) -> X
  add(s(X),Y) -> s(n__add(activate(X),Y))
  len(nil()) -> |0|()
  len(cons(X,Z)) -> s(n__len(activate(Z)))
  fst(X1,X2) -> n__fst(X1,X2)
  from(X) -> n__from(X)
  s(X) -> n__s(X)
  add(X1,X2) -> n__add(X1,X2)
  len(X) -> n__len(X)
  activate(n__fst(X1,X2)) -> fst(activate(X1),activate(X2))
  activate(n__from(X)) -> from(activate(X))
  activate(n__s(X)) -> s(X)
  activate(n__add(X1,X2)) -> add(activate(X1),activate(X2))
  activate(n__len(X)) -> len(activate(X))
  activate(X) -> X

-- SCC decomposition.

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

p1: fst#(s(X),cons(Y,Z)) -> activate#(X)
p2: fst#(s(X),cons(Y,Z)) -> activate#(Z)
p3: add#(s(X),Y) -> s#(n__add(activate(X),Y))
p4: add#(s(X),Y) -> activate#(X)
p5: len#(cons(X,Z)) -> s#(n__len(activate(Z)))
p6: len#(cons(X,Z)) -> activate#(Z)
p7: activate#(n__fst(X1,X2)) -> fst#(activate(X1),activate(X2))
p8: activate#(n__fst(X1,X2)) -> activate#(X1)
p9: activate#(n__fst(X1,X2)) -> activate#(X2)
p10: activate#(n__from(X)) -> from#(activate(X))
p11: activate#(n__from(X)) -> activate#(X)
p12: activate#(n__s(X)) -> s#(X)
p13: activate#(n__add(X1,X2)) -> add#(activate(X1),activate(X2))
p14: activate#(n__add(X1,X2)) -> activate#(X1)
p15: activate#(n__add(X1,X2)) -> activate#(X2)
p16: activate#(n__len(X)) -> len#(activate(X))
p17: activate#(n__len(X)) -> activate#(X)

and R consists of:

r1: fst(|0|(),Z) -> nil()
r2: fst(s(X),cons(Y,Z)) -> cons(Y,n__fst(activate(X),activate(Z)))
r3: from(X) -> cons(X,n__from(n__s(X)))
r4: add(|0|(),X) -> X
r5: add(s(X),Y) -> s(n__add(activate(X),Y))
r6: len(nil()) -> |0|()
r7: len(cons(X,Z)) -> s(n__len(activate(Z)))
r8: fst(X1,X2) -> n__fst(X1,X2)
r9: from(X) -> n__from(X)
r10: s(X) -> n__s(X)
r11: add(X1,X2) -> n__add(X1,X2)
r12: len(X) -> n__len(X)
r13: activate(n__fst(X1,X2)) -> fst(activate(X1),activate(X2))
r14: activate(n__from(X)) -> from(activate(X))
r15: activate(n__s(X)) -> s(X)
r16: activate(n__add(X1,X2)) -> add(activate(X1),activate(X2))
r17: activate(n__len(X)) -> len(activate(X))
r18: activate(X) -> X

The estimated dependency graph contains the following SCCs:

  {p1, p2, p4, p6, p7, p8, p9, p11, p13, p14, p15, p16, p17}


-- Reduction pair.

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

p1: fst#(s(X),cons(Y,Z)) -> activate#(X)
p2: activate#(n__len(X)) -> activate#(X)
p3: activate#(n__len(X)) -> len#(activate(X))
p4: len#(cons(X,Z)) -> activate#(Z)
p5: activate#(n__add(X1,X2)) -> activate#(X2)
p6: activate#(n__add(X1,X2)) -> activate#(X1)
p7: activate#(n__add(X1,X2)) -> add#(activate(X1),activate(X2))
p8: add#(s(X),Y) -> activate#(X)
p9: activate#(n__from(X)) -> activate#(X)
p10: activate#(n__fst(X1,X2)) -> activate#(X2)
p11: activate#(n__fst(X1,X2)) -> activate#(X1)
p12: activate#(n__fst(X1,X2)) -> fst#(activate(X1),activate(X2))
p13: fst#(s(X),cons(Y,Z)) -> activate#(Z)

and R consists of:

r1: fst(|0|(),Z) -> nil()
r2: fst(s(X),cons(Y,Z)) -> cons(Y,n__fst(activate(X),activate(Z)))
r3: from(X) -> cons(X,n__from(n__s(X)))
r4: add(|0|(),X) -> X
r5: add(s(X),Y) -> s(n__add(activate(X),Y))
r6: len(nil()) -> |0|()
r7: len(cons(X,Z)) -> s(n__len(activate(Z)))
r8: fst(X1,X2) -> n__fst(X1,X2)
r9: from(X) -> n__from(X)
r10: s(X) -> n__s(X)
r11: add(X1,X2) -> n__add(X1,X2)
r12: len(X) -> n__len(X)
r13: activate(n__fst(X1,X2)) -> fst(activate(X1),activate(X2))
r14: activate(n__from(X)) -> from(activate(X))
r15: activate(n__s(X)) -> s(X)
r16: activate(n__add(X1,X2)) -> add(activate(X1),activate(X2))
r17: activate(n__len(X)) -> len(activate(X))
r18: 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, r18

Take the reduction pair:

  lexicographic combination of reduction pairs:
  
    1. matrix interpretations:
    
      carrier: N^2
      order: standard order
      interpretations:
        fst#_A(x1,x2) = ((0,1),(0,1)) x1 + ((0,1),(0,1)) x2
        s_A(x1) = x1 + (2,0)
        cons_A(x1,x2) = x2 + (1,0)
        activate#_A(x1) = ((0,1),(0,1)) x1
        n__len_A(x1) = ((0,1),(0,1)) x1 + (1,2)
        len#_A(x1) = ((0,1),(0,1)) x1 + (1,0)
        activate_A(x1) = ((1,1),(0,1)) x1 + (1,0)
        n__add_A(x1,x2) = x1 + x2 + (1,2)
        add#_A(x1,x2) = ((0,1),(0,1)) x1 + (1,0)
        n__from_A(x1) = x1 + (1,1)
        n__fst_A(x1,x2) = x1 + x2 + (2,0)
        fst_A(x1,x2) = x1 + x2 + (2,0)
        |0|_A() = (1,1)
        nil_A() = (1,0)
        from_A(x1) = x1 + (2,1)
        n__s_A(x1) = x1 + (1,0)
        add_A(x1,x2) = x1 + x2 + (3,2)
        len_A(x1) = ((0,1),(0,1)) x1 + (4,2)
    
    2. matrix interpretations:
    
      carrier: N^2
      order: standard order
      interpretations:
        fst#_A(x1,x2) = (1,1)
        s_A(x1) = (2,1)
        cons_A(x1,x2) = (7,3)
        activate#_A(x1) = (1,1)
        n__len_A(x1) = (0,1)
        len#_A(x1) = (2,2)
        activate_A(x1) = x1 + (4,0)
        n__add_A(x1,x2) = ((1,0),(1,1)) x2
        add#_A(x1,x2) = (0,0)
        n__from_A(x1) = (1,1)
        n__fst_A(x1,x2) = x2 + (2,3)
        fst_A(x1,x2) = x2 + (2,3)
        |0|_A() = (4,1)
        nil_A() = (1,4)
        from_A(x1) = (6,2)
        n__s_A(x1) = (1,1)
        add_A(x1,x2) = (4,0)
        len_A(x1) = (3,0)
    
    3. matrix interpretations:
    
      carrier: N^2
      order: standard order
      interpretations:
        fst#_A(x1,x2) = (1,1)
        s_A(x1) = (5,3)
        cons_A(x1,x2) = (6,1)
        activate#_A(x1) = (1,1)
        n__len_A(x1) = (0,1)
        len#_A(x1) = (0,0)
        activate_A(x1) = ((1,1),(0,1)) x1 + (2,1)
        n__add_A(x1,x2) = ((0,0),(1,1)) x2
        add#_A(x1,x2) = (0,0)
        n__from_A(x1) = (1,1)
        n__fst_A(x1,x2) = ((1,1),(0,1)) x2 + (1,3)
        fst_A(x1,x2) = ((1,1),(0,1)) x2 + (2,3)
        |0|_A() = (5,0)
        nil_A() = (1,4)
        from_A(x1) = (5,0)
        n__s_A(x1) = (1,1)
        add_A(x1,x2) = (1,0)
        len_A(x1) = (4,0)
    

The next rules are strictly ordered:

  p2, p3, p4, p5, p6, p7, p8, p9

We remove them from the problem.

-- SCC decomposition.

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

p1: fst#(s(X),cons(Y,Z)) -> activate#(X)
p2: activate#(n__fst(X1,X2)) -> activate#(X2)
p3: activate#(n__fst(X1,X2)) -> activate#(X1)
p4: activate#(n__fst(X1,X2)) -> fst#(activate(X1),activate(X2))
p5: fst#(s(X),cons(Y,Z)) -> activate#(Z)

and R consists of:

r1: fst(|0|(),Z) -> nil()
r2: fst(s(X),cons(Y,Z)) -> cons(Y,n__fst(activate(X),activate(Z)))
r3: from(X) -> cons(X,n__from(n__s(X)))
r4: add(|0|(),X) -> X
r5: add(s(X),Y) -> s(n__add(activate(X),Y))
r6: len(nil()) -> |0|()
r7: len(cons(X,Z)) -> s(n__len(activate(Z)))
r8: fst(X1,X2) -> n__fst(X1,X2)
r9: from(X) -> n__from(X)
r10: s(X) -> n__s(X)
r11: add(X1,X2) -> n__add(X1,X2)
r12: len(X) -> n__len(X)
r13: activate(n__fst(X1,X2)) -> fst(activate(X1),activate(X2))
r14: activate(n__from(X)) -> from(activate(X))
r15: activate(n__s(X)) -> s(X)
r16: activate(n__add(X1,X2)) -> add(activate(X1),activate(X2))
r17: activate(n__len(X)) -> len(activate(X))
r18: activate(X) -> X

The estimated dependency graph contains the following SCCs:

  {p1, p2, p3, p4, p5}


-- Reduction pair.

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

p1: fst#(s(X),cons(Y,Z)) -> activate#(X)
p2: activate#(n__fst(X1,X2)) -> fst#(activate(X1),activate(X2))
p3: fst#(s(X),cons(Y,Z)) -> activate#(Z)
p4: activate#(n__fst(X1,X2)) -> activate#(X1)
p5: activate#(n__fst(X1,X2)) -> activate#(X2)

and R consists of:

r1: fst(|0|(),Z) -> nil()
r2: fst(s(X),cons(Y,Z)) -> cons(Y,n__fst(activate(X),activate(Z)))
r3: from(X) -> cons(X,n__from(n__s(X)))
r4: add(|0|(),X) -> X
r5: add(s(X),Y) -> s(n__add(activate(X),Y))
r6: len(nil()) -> |0|()
r7: len(cons(X,Z)) -> s(n__len(activate(Z)))
r8: fst(X1,X2) -> n__fst(X1,X2)
r9: from(X) -> n__from(X)
r10: s(X) -> n__s(X)
r11: add(X1,X2) -> n__add(X1,X2)
r12: len(X) -> n__len(X)
r13: activate(n__fst(X1,X2)) -> fst(activate(X1),activate(X2))
r14: activate(n__from(X)) -> from(activate(X))
r15: activate(n__s(X)) -> s(X)
r16: activate(n__add(X1,X2)) -> add(activate(X1),activate(X2))
r17: activate(n__len(X)) -> len(activate(X))
r18: 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, r18

Take the reduction pair:

  lexicographic combination of reduction pairs:
  
    1. matrix interpretations:
    
      carrier: N^2
      order: standard order
      interpretations:
        fst#_A(x1,x2) = ((0,1),(0,1)) x1 + ((0,1),(0,1)) x2 + (1,0)
        s_A(x1) = x1
        cons_A(x1,x2) = x2
        activate#_A(x1) = ((0,1),(0,1)) x1
        n__fst_A(x1,x2) = x1 + x2 + (1,2)
        activate_A(x1) = x1 + (2,0)
        fst_A(x1,x2) = x1 + x2 + (2,2)
        |0|_A() = (1,1)
        nil_A() = (0,3)
        from_A(x1) = x1 + (1,0)
        n__from_A(x1) = x1 + (1,0)
        n__s_A(x1) = x1
        add_A(x1,x2) = x2 + (1,1)
        n__add_A(x1,x2) = x2 + (1,1)
        len_A(x1) = x1 + (2,0)
        n__len_A(x1) = x1 + (2,0)
    
    2. matrix interpretations:
    
      carrier: N^2
      order: standard order
      interpretations:
        fst#_A(x1,x2) = (1,1)
        s_A(x1) = (2,4)
        cons_A(x1,x2) = (5,5)
        activate#_A(x1) = (0,0)
        n__fst_A(x1,x2) = (1,1)
        activate_A(x1) = ((1,1),(1,1)) x1 + (1,1)
        fst_A(x1,x2) = (4,4)
        |0|_A() = (0,5)
        nil_A() = (1,1)
        from_A(x1) = x1
        n__from_A(x1) = x1
        n__s_A(x1) = (1,1)
        add_A(x1,x2) = ((1,1),(1,1)) x2 + (3,4)
        n__add_A(x1,x2) = ((1,1),(1,1)) x2 + (2,3)
        len_A(x1) = (3,4)
        n__len_A(x1) = (2,1)
    
    3. matrix interpretations:
    
      carrier: N^2
      order: standard order
      interpretations:
        fst#_A(x1,x2) = (0,1)
        s_A(x1) = (0,3)
        cons_A(x1,x2) = (3,5)
        activate#_A(x1) = (1,0)
        n__fst_A(x1,x2) = (1,0)
        activate_A(x1) = ((1,1),(0,0)) x1 + (0,3)
        fst_A(x1,x2) = (2,4)
        |0|_A() = (2,4)
        nil_A() = (1,1)
        from_A(x1) = (2,2)
        n__from_A(x1) = (1,2)
        n__s_A(x1) = (1,1)
        add_A(x1,x2) = (2,2)
        n__add_A(x1,x2) = (1,2)
        len_A(x1) = (1,3)
        n__len_A(x1) = (2,4)
    

The next rules are strictly ordered:

  p1, p2, p3, p4, p5

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