YES

We show the termination of the TRS R:

  active(f(|0|())) -> mark(cons(|0|(),f(s(|0|()))))
  active(f(s(|0|()))) -> mark(f(p(s(|0|()))))
  active(p(s(X))) -> mark(X)
  mark(f(X)) -> active(f(mark(X)))
  mark(|0|()) -> active(|0|())
  mark(cons(X1,X2)) -> active(cons(mark(X1),X2))
  mark(s(X)) -> active(s(mark(X)))
  mark(p(X)) -> active(p(mark(X)))
  f(mark(X)) -> f(X)
  f(active(X)) -> f(X)
  cons(mark(X1),X2) -> cons(X1,X2)
  cons(X1,mark(X2)) -> cons(X1,X2)
  cons(active(X1),X2) -> cons(X1,X2)
  cons(X1,active(X2)) -> cons(X1,X2)
  s(mark(X)) -> s(X)
  s(active(X)) -> s(X)
  p(mark(X)) -> p(X)
  p(active(X)) -> p(X)

-- SCC decomposition.

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

p1: active#(f(|0|())) -> mark#(cons(|0|(),f(s(|0|()))))
p2: active#(f(|0|())) -> cons#(|0|(),f(s(|0|())))
p3: active#(f(|0|())) -> f#(s(|0|()))
p4: active#(f(|0|())) -> s#(|0|())
p5: active#(f(s(|0|()))) -> mark#(f(p(s(|0|()))))
p6: active#(f(s(|0|()))) -> f#(p(s(|0|())))
p7: active#(f(s(|0|()))) -> p#(s(|0|()))
p8: active#(p(s(X))) -> mark#(X)
p9: mark#(f(X)) -> active#(f(mark(X)))
p10: mark#(f(X)) -> f#(mark(X))
p11: mark#(f(X)) -> mark#(X)
p12: mark#(|0|()) -> active#(|0|())
p13: mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2))
p14: mark#(cons(X1,X2)) -> cons#(mark(X1),X2)
p15: mark#(cons(X1,X2)) -> mark#(X1)
p16: mark#(s(X)) -> active#(s(mark(X)))
p17: mark#(s(X)) -> s#(mark(X))
p18: mark#(s(X)) -> mark#(X)
p19: mark#(p(X)) -> active#(p(mark(X)))
p20: mark#(p(X)) -> p#(mark(X))
p21: mark#(p(X)) -> mark#(X)
p22: f#(mark(X)) -> f#(X)
p23: f#(active(X)) -> f#(X)
p24: cons#(mark(X1),X2) -> cons#(X1,X2)
p25: cons#(X1,mark(X2)) -> cons#(X1,X2)
p26: cons#(active(X1),X2) -> cons#(X1,X2)
p27: cons#(X1,active(X2)) -> cons#(X1,X2)
p28: s#(mark(X)) -> s#(X)
p29: s#(active(X)) -> s#(X)
p30: p#(mark(X)) -> p#(X)
p31: p#(active(X)) -> p#(X)

and R consists of:

r1: active(f(|0|())) -> mark(cons(|0|(),f(s(|0|()))))
r2: active(f(s(|0|()))) -> mark(f(p(s(|0|()))))
r3: active(p(s(X))) -> mark(X)
r4: mark(f(X)) -> active(f(mark(X)))
r5: mark(|0|()) -> active(|0|())
r6: mark(cons(X1,X2)) -> active(cons(mark(X1),X2))
r7: mark(s(X)) -> active(s(mark(X)))
r8: mark(p(X)) -> active(p(mark(X)))
r9: f(mark(X)) -> f(X)
r10: f(active(X)) -> f(X)
r11: cons(mark(X1),X2) -> cons(X1,X2)
r12: cons(X1,mark(X2)) -> cons(X1,X2)
r13: cons(active(X1),X2) -> cons(X1,X2)
r14: cons(X1,active(X2)) -> cons(X1,X2)
r15: s(mark(X)) -> s(X)
r16: s(active(X)) -> s(X)
r17: p(mark(X)) -> p(X)
r18: p(active(X)) -> p(X)

The estimated dependency graph contains the following SCCs:

  {p1, p5, p8, p9, p11, p13, p15, p16, p18, p19, p21}
  {p22, p23}
  {p24, p25, p26, p27}
  {p28, p29}
  {p30, p31}


-- Reduction pair.

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

p1: active#(f(|0|())) -> mark#(cons(|0|(),f(s(|0|()))))
p2: mark#(cons(X1,X2)) -> mark#(X1)
p3: mark#(p(X)) -> mark#(X)
p4: mark#(p(X)) -> active#(p(mark(X)))
p5: active#(p(s(X))) -> mark#(X)
p6: mark#(s(X)) -> mark#(X)
p7: mark#(s(X)) -> active#(s(mark(X)))
p8: active#(f(s(|0|()))) -> mark#(f(p(s(|0|()))))
p9: mark#(f(X)) -> mark#(X)
p10: mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2))
p11: mark#(f(X)) -> active#(f(mark(X)))

and R consists of:

r1: active(f(|0|())) -> mark(cons(|0|(),f(s(|0|()))))
r2: active(f(s(|0|()))) -> mark(f(p(s(|0|()))))
r3: active(p(s(X))) -> mark(X)
r4: mark(f(X)) -> active(f(mark(X)))
r5: mark(|0|()) -> active(|0|())
r6: mark(cons(X1,X2)) -> active(cons(mark(X1),X2))
r7: mark(s(X)) -> active(s(mark(X)))
r8: mark(p(X)) -> active(p(mark(X)))
r9: f(mark(X)) -> f(X)
r10: f(active(X)) -> f(X)
r11: cons(mark(X1),X2) -> cons(X1,X2)
r12: cons(X1,mark(X2)) -> cons(X1,X2)
r13: cons(active(X1),X2) -> cons(X1,X2)
r14: cons(X1,active(X2)) -> cons(X1,X2)
r15: s(mark(X)) -> s(X)
r16: s(active(X)) -> s(X)
r17: p(mark(X)) -> p(X)
r18: p(active(X)) -> p(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. lexicographic path order with precedence:
    
      precedence:
      
        |0| > s > f > p > mark > mark# > active# > cons > active
      
      argument filter:
    
        pi(active#) = 1
        pi(f) = [1]
        pi(|0|) = []
        pi(mark#) = 1
        pi(cons) = 1
        pi(s) = [1]
        pi(p) = 1
        pi(mark) = 1
        pi(active) = 1
    
    2. lexicographic path order with precedence:
    
      precedence:
      
        |0| > active > mark# > mark > s > p > f > cons > active#
      
      argument filter:
    
        pi(active#) = 1
        pi(f) = []
        pi(|0|) = []
        pi(mark#) = 1
        pi(cons) = [1]
        pi(s) = 1
        pi(p) = 1
        pi(mark) = 1
        pi(active) = 1
    
    3. lexicographic path order with precedence:
    
      precedence:
      
        p > |0| > s > active > f > active# > mark# > cons > mark
      
      argument filter:
    
        pi(active#) = 1
        pi(f) = []
        pi(|0|) = []
        pi(mark#) = 1
        pi(cons) = []
        pi(s) = []
        pi(p) = 1
        pi(mark) = 1
        pi(active) = 1
    

The next rules are strictly ordered:

  p1, p2, p5, p6, p9

We remove them from the problem.

-- SCC decomposition.

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

p1: mark#(p(X)) -> mark#(X)
p2: mark#(p(X)) -> active#(p(mark(X)))
p3: mark#(s(X)) -> active#(s(mark(X)))
p4: active#(f(s(|0|()))) -> mark#(f(p(s(|0|()))))
p5: mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2))
p6: mark#(f(X)) -> active#(f(mark(X)))

and R consists of:

r1: active(f(|0|())) -> mark(cons(|0|(),f(s(|0|()))))
r2: active(f(s(|0|()))) -> mark(f(p(s(|0|()))))
r3: active(p(s(X))) -> mark(X)
r4: mark(f(X)) -> active(f(mark(X)))
r5: mark(|0|()) -> active(|0|())
r6: mark(cons(X1,X2)) -> active(cons(mark(X1),X2))
r7: mark(s(X)) -> active(s(mark(X)))
r8: mark(p(X)) -> active(p(mark(X)))
r9: f(mark(X)) -> f(X)
r10: f(active(X)) -> f(X)
r11: cons(mark(X1),X2) -> cons(X1,X2)
r12: cons(X1,mark(X2)) -> cons(X1,X2)
r13: cons(active(X1),X2) -> cons(X1,X2)
r14: cons(X1,active(X2)) -> cons(X1,X2)
r15: s(mark(X)) -> s(X)
r16: s(active(X)) -> s(X)
r17: p(mark(X)) -> p(X)
r18: p(active(X)) -> p(X)

The estimated dependency graph contains the following SCCs:

  {p1}
  {p4, p6}


-- Reduction pair.

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

p1: mark#(p(X)) -> mark#(X)

and R consists of:

r1: active(f(|0|())) -> mark(cons(|0|(),f(s(|0|()))))
r2: active(f(s(|0|()))) -> mark(f(p(s(|0|()))))
r3: active(p(s(X))) -> mark(X)
r4: mark(f(X)) -> active(f(mark(X)))
r5: mark(|0|()) -> active(|0|())
r6: mark(cons(X1,X2)) -> active(cons(mark(X1),X2))
r7: mark(s(X)) -> active(s(mark(X)))
r8: mark(p(X)) -> active(p(mark(X)))
r9: f(mark(X)) -> f(X)
r10: f(active(X)) -> f(X)
r11: cons(mark(X1),X2) -> cons(X1,X2)
r12: cons(X1,mark(X2)) -> cons(X1,X2)
r13: cons(active(X1),X2) -> cons(X1,X2)
r14: cons(X1,active(X2)) -> cons(X1,X2)
r15: s(mark(X)) -> s(X)
r16: s(active(X)) -> s(X)
r17: p(mark(X)) -> p(X)
r18: p(active(X)) -> p(X)

The set of usable rules consists of

  (no rules)

Take the monotone reduction pair:

  lexicographic combination of reduction pairs:
  
    1. lexicographic path order with precedence:
    
      precedence:
      
        p > mark#
      
      argument filter:
    
        pi(mark#) = [1]
        pi(p) = [1]
    
    2. lexicographic path order with precedence:
    
      precedence:
      
        p > mark#
      
      argument filter:
    
        pi(mark#) = [1]
        pi(p) = [1]
    
    3. lexicographic path order with precedence:
    
      precedence:
      
        p > mark#
      
      argument filter:
    
        pi(mark#) = [1]
        pi(p) = [1]
    

The next rules are strictly ordered:

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

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: mark#(f(X)) -> active#(f(mark(X)))
p2: active#(f(s(|0|()))) -> mark#(f(p(s(|0|()))))

and R consists of:

r1: active(f(|0|())) -> mark(cons(|0|(),f(s(|0|()))))
r2: active(f(s(|0|()))) -> mark(f(p(s(|0|()))))
r3: active(p(s(X))) -> mark(X)
r4: mark(f(X)) -> active(f(mark(X)))
r5: mark(|0|()) -> active(|0|())
r6: mark(cons(X1,X2)) -> active(cons(mark(X1),X2))
r7: mark(s(X)) -> active(s(mark(X)))
r8: mark(p(X)) -> active(p(mark(X)))
r9: f(mark(X)) -> f(X)
r10: f(active(X)) -> f(X)
r11: cons(mark(X1),X2) -> cons(X1,X2)
r12: cons(X1,mark(X2)) -> cons(X1,X2)
r13: cons(active(X1),X2) -> cons(X1,X2)
r14: cons(X1,active(X2)) -> cons(X1,X2)
r15: s(mark(X)) -> s(X)
r16: s(active(X)) -> s(X)
r17: p(mark(X)) -> p(X)
r18: p(active(X)) -> p(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. lexicographic path order with precedence:
    
      precedence:
      
        |0| > cons > active > p > active# > mark# > s > f > mark
      
      argument filter:
    
        pi(mark#) = 1
        pi(f) = 1
        pi(active#) = 1
        pi(mark) = 1
        pi(s) = 1
        pi(|0|) = []
        pi(p) = 1
        pi(active) = 1
        pi(cons) = []
    
    2. lexicographic path order with precedence:
    
      precedence:
      
        s > mark > cons > f > mark# > |0| > active > p > active#
      
      argument filter:
    
        pi(mark#) = 1
        pi(f) = 1
        pi(active#) = 1
        pi(mark) = 1
        pi(s) = [1]
        pi(|0|) = []
        pi(p) = 1
        pi(active) = 1
        pi(cons) = []
    
    3. lexicographic path order with precedence:
    
      precedence:
      
        s > p > mark > |0| > active > mark# > active# > f > cons
      
      argument filter:
    
        pi(mark#) = 1
        pi(f) = [1]
        pi(active#) = 1
        pi(mark) = 1
        pi(s) = []
        pi(|0|) = []
        pi(p) = []
        pi(active) = 1
        pi(cons) = []
    

The next rules are strictly ordered:

  p2

We remove them from the problem.

-- SCC decomposition.

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

p1: mark#(f(X)) -> active#(f(mark(X)))

and R consists of:

r1: active(f(|0|())) -> mark(cons(|0|(),f(s(|0|()))))
r2: active(f(s(|0|()))) -> mark(f(p(s(|0|()))))
r3: active(p(s(X))) -> mark(X)
r4: mark(f(X)) -> active(f(mark(X)))
r5: mark(|0|()) -> active(|0|())
r6: mark(cons(X1,X2)) -> active(cons(mark(X1),X2))
r7: mark(s(X)) -> active(s(mark(X)))
r8: mark(p(X)) -> active(p(mark(X)))
r9: f(mark(X)) -> f(X)
r10: f(active(X)) -> f(X)
r11: cons(mark(X1),X2) -> cons(X1,X2)
r12: cons(X1,mark(X2)) -> cons(X1,X2)
r13: cons(active(X1),X2) -> cons(X1,X2)
r14: cons(X1,active(X2)) -> cons(X1,X2)
r15: s(mark(X)) -> s(X)
r16: s(active(X)) -> s(X)
r17: p(mark(X)) -> p(X)
r18: p(active(X)) -> p(X)

The estimated dependency graph contains the following SCCs:

  (no SCCs)

-- Reduction pair.

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

p1: f#(mark(X)) -> f#(X)
p2: f#(active(X)) -> f#(X)

and R consists of:

r1: active(f(|0|())) -> mark(cons(|0|(),f(s(|0|()))))
r2: active(f(s(|0|()))) -> mark(f(p(s(|0|()))))
r3: active(p(s(X))) -> mark(X)
r4: mark(f(X)) -> active(f(mark(X)))
r5: mark(|0|()) -> active(|0|())
r6: mark(cons(X1,X2)) -> active(cons(mark(X1),X2))
r7: mark(s(X)) -> active(s(mark(X)))
r8: mark(p(X)) -> active(p(mark(X)))
r9: f(mark(X)) -> f(X)
r10: f(active(X)) -> f(X)
r11: cons(mark(X1),X2) -> cons(X1,X2)
r12: cons(X1,mark(X2)) -> cons(X1,X2)
r13: cons(active(X1),X2) -> cons(X1,X2)
r14: cons(X1,active(X2)) -> cons(X1,X2)
r15: s(mark(X)) -> s(X)
r16: s(active(X)) -> s(X)
r17: p(mark(X)) -> p(X)
r18: p(active(X)) -> p(X)

The set of usable rules consists of

  (no rules)

Take the monotone reduction pair:

  lexicographic combination of reduction pairs:
  
    1. lexicographic path order with precedence:
    
      precedence:
      
        f# > active > mark
      
      argument filter:
    
        pi(f#) = 1
        pi(mark) = [1]
        pi(active) = 1
    
    2. lexicographic path order with precedence:
    
      precedence:
      
        f# > active > mark
      
      argument filter:
    
        pi(f#) = 1
        pi(mark) = [1]
        pi(active) = 1
    
    3. lexicographic path order with precedence:
    
      precedence:
      
        f# > active > mark
      
      argument filter:
    
        pi(f#) = 1
        pi(mark) = [1]
        pi(active) = [1]
    

The next rules are strictly ordered:

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

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: cons#(mark(X1),X2) -> cons#(X1,X2)
p2: cons#(X1,active(X2)) -> cons#(X1,X2)
p3: cons#(active(X1),X2) -> cons#(X1,X2)
p4: cons#(X1,mark(X2)) -> cons#(X1,X2)

and R consists of:

r1: active(f(|0|())) -> mark(cons(|0|(),f(s(|0|()))))
r2: active(f(s(|0|()))) -> mark(f(p(s(|0|()))))
r3: active(p(s(X))) -> mark(X)
r4: mark(f(X)) -> active(f(mark(X)))
r5: mark(|0|()) -> active(|0|())
r6: mark(cons(X1,X2)) -> active(cons(mark(X1),X2))
r7: mark(s(X)) -> active(s(mark(X)))
r8: mark(p(X)) -> active(p(mark(X)))
r9: f(mark(X)) -> f(X)
r10: f(active(X)) -> f(X)
r11: cons(mark(X1),X2) -> cons(X1,X2)
r12: cons(X1,mark(X2)) -> cons(X1,X2)
r13: cons(active(X1),X2) -> cons(X1,X2)
r14: cons(X1,active(X2)) -> cons(X1,X2)
r15: s(mark(X)) -> s(X)
r16: s(active(X)) -> s(X)
r17: p(mark(X)) -> p(X)
r18: p(active(X)) -> p(X)

The set of usable rules consists of

  (no rules)

Take the monotone reduction pair:

  lexicographic combination of reduction pairs:
  
    1. lexicographic path order with precedence:
    
      precedence:
      
        cons# > active > mark
      
      argument filter:
    
        pi(cons#) = [1, 2]
        pi(mark) = 1
        pi(active) = 1
    
    2. lexicographic path order with precedence:
    
      precedence:
      
        cons# > active > mark
      
      argument filter:
    
        pi(cons#) = [1, 2]
        pi(mark) = 1
        pi(active) = 1
    
    3. lexicographic path order with precedence:
    
      precedence:
      
        cons# > active > mark
      
      argument filter:
    
        pi(cons#) = [1, 2]
        pi(mark) = [1]
        pi(active) = [1]
    

The next rules are strictly ordered:

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

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: s#(mark(X)) -> s#(X)
p2: s#(active(X)) -> s#(X)

and R consists of:

r1: active(f(|0|())) -> mark(cons(|0|(),f(s(|0|()))))
r2: active(f(s(|0|()))) -> mark(f(p(s(|0|()))))
r3: active(p(s(X))) -> mark(X)
r4: mark(f(X)) -> active(f(mark(X)))
r5: mark(|0|()) -> active(|0|())
r6: mark(cons(X1,X2)) -> active(cons(mark(X1),X2))
r7: mark(s(X)) -> active(s(mark(X)))
r8: mark(p(X)) -> active(p(mark(X)))
r9: f(mark(X)) -> f(X)
r10: f(active(X)) -> f(X)
r11: cons(mark(X1),X2) -> cons(X1,X2)
r12: cons(X1,mark(X2)) -> cons(X1,X2)
r13: cons(active(X1),X2) -> cons(X1,X2)
r14: cons(X1,active(X2)) -> cons(X1,X2)
r15: s(mark(X)) -> s(X)
r16: s(active(X)) -> s(X)
r17: p(mark(X)) -> p(X)
r18: p(active(X)) -> p(X)

The set of usable rules consists of

  (no rules)

Take the monotone reduction pair:

  lexicographic combination of reduction pairs:
  
    1. lexicographic path order with precedence:
    
      precedence:
      
        s# > active > mark
      
      argument filter:
    
        pi(s#) = 1
        pi(mark) = [1]
        pi(active) = 1
    
    2. lexicographic path order with precedence:
    
      precedence:
      
        s# > active > mark
      
      argument filter:
    
        pi(s#) = 1
        pi(mark) = [1]
        pi(active) = 1
    
    3. lexicographic path order with precedence:
    
      precedence:
      
        s# > active > mark
      
      argument filter:
    
        pi(s#) = 1
        pi(mark) = [1]
        pi(active) = [1]
    

The next rules are strictly ordered:

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

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: p#(mark(X)) -> p#(X)
p2: p#(active(X)) -> p#(X)

and R consists of:

r1: active(f(|0|())) -> mark(cons(|0|(),f(s(|0|()))))
r2: active(f(s(|0|()))) -> mark(f(p(s(|0|()))))
r3: active(p(s(X))) -> mark(X)
r4: mark(f(X)) -> active(f(mark(X)))
r5: mark(|0|()) -> active(|0|())
r6: mark(cons(X1,X2)) -> active(cons(mark(X1),X2))
r7: mark(s(X)) -> active(s(mark(X)))
r8: mark(p(X)) -> active(p(mark(X)))
r9: f(mark(X)) -> f(X)
r10: f(active(X)) -> f(X)
r11: cons(mark(X1),X2) -> cons(X1,X2)
r12: cons(X1,mark(X2)) -> cons(X1,X2)
r13: cons(active(X1),X2) -> cons(X1,X2)
r14: cons(X1,active(X2)) -> cons(X1,X2)
r15: s(mark(X)) -> s(X)
r16: s(active(X)) -> s(X)
r17: p(mark(X)) -> p(X)
r18: p(active(X)) -> p(X)

The set of usable rules consists of

  (no rules)

Take the monotone reduction pair:

  lexicographic combination of reduction pairs:
  
    1. lexicographic path order with precedence:
    
      precedence:
      
        p# > active > mark
      
      argument filter:
    
        pi(p#) = 1
        pi(mark) = [1]
        pi(active) = 1
    
    2. lexicographic path order with precedence:
    
      precedence:
      
        p# > active > mark
      
      argument filter:
    
        pi(p#) = 1
        pi(mark) = [1]
        pi(active) = 1
    
    3. lexicographic path order with precedence:
    
      precedence:
      
        p# > active > mark
      
      argument filter:
    
        pi(p#) = 1
        pi(mark) = [1]
        pi(active) = [1]
    

The next rules are strictly ordered:

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

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