YES

We show the termination of the TRS R:

  top(free(x)) -> top(check(new(x)))
  new(free(x)) -> free(new(x))
  old(free(x)) -> free(old(x))
  new(serve()) -> free(serve())
  old(serve()) -> free(serve())
  check(free(x)) -> free(check(x))
  check(new(x)) -> new(check(x))
  check(old(x)) -> old(check(x))
  check(old(x)) -> old(x)

-- SCC decomposition.

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

p1: top#(free(x)) -> top#(check(new(x)))
p2: top#(free(x)) -> check#(new(x))
p3: top#(free(x)) -> new#(x)
p4: new#(free(x)) -> new#(x)
p5: old#(free(x)) -> old#(x)
p6: check#(free(x)) -> check#(x)
p7: check#(new(x)) -> new#(check(x))
p8: check#(new(x)) -> check#(x)
p9: check#(old(x)) -> old#(check(x))
p10: check#(old(x)) -> check#(x)

and R consists of:

r1: top(free(x)) -> top(check(new(x)))
r2: new(free(x)) -> free(new(x))
r3: old(free(x)) -> free(old(x))
r4: new(serve()) -> free(serve())
r5: old(serve()) -> free(serve())
r6: check(free(x)) -> free(check(x))
r7: check(new(x)) -> new(check(x))
r8: check(old(x)) -> old(check(x))
r9: check(old(x)) -> old(x)

The estimated dependency graph contains the following SCCs:

  {p1}
  {p6, p8, p10}
  {p4}
  {p5}


-- Reduction pair.

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

p1: top#(free(x)) -> top#(check(new(x)))

and R consists of:

r1: top(free(x)) -> top(check(new(x)))
r2: new(free(x)) -> free(new(x))
r3: old(free(x)) -> free(old(x))
r4: new(serve()) -> free(serve())
r5: old(serve()) -> free(serve())
r6: check(free(x)) -> free(check(x))
r7: check(new(x)) -> new(check(x))
r8: check(old(x)) -> old(check(x))
r9: check(old(x)) -> old(x)

The set of usable rules consists of

  r2, r3, r4, r5, r6, r7, r8, r9

Take the reduction pair:

  lexicographic combination of reduction pairs:
  
    1. matrix interpretations:
    
      carrier: N^2
      order: standard order
      interpretations:
        top#_A(x1) = ((1,1),(0,0)) x1
        free_A(x1) = ((1,0),(1,0)) x1 + (1,2)
        check_A(x1) = ((1,0),(1,0)) x1 + (0,1)
        new_A(x1) = x1 + (1,1)
        old_A(x1) = ((1,0),(1,0)) x1 + (2,3)
        serve_A() = (1,2)
    
    2. matrix interpretations:
    
      carrier: N^2
      order: standard order
      interpretations:
        top#_A(x1) = ((1,1),(0,0)) x1
        free_A(x1) = x1 + (0,3)
        check_A(x1) = x1 + (0,1)
        new_A(x1) = ((1,0),(1,1)) x1 + (0,1)
        old_A(x1) = x1 + (0,1)
        serve_A() = (2,1)
    

The next rules are strictly ordered:

  p1

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: check#(free(x)) -> check#(x)
p2: check#(old(x)) -> check#(x)
p3: check#(new(x)) -> check#(x)

and R consists of:

r1: top(free(x)) -> top(check(new(x)))
r2: new(free(x)) -> free(new(x))
r3: old(free(x)) -> free(old(x))
r4: new(serve()) -> free(serve())
r5: old(serve()) -> free(serve())
r6: check(free(x)) -> free(check(x))
r7: check(new(x)) -> new(check(x))
r8: check(old(x)) -> old(check(x))
r9: check(old(x)) -> old(x)

The set of usable rules consists of

  (no rules)

Take the monotone reduction pair:

  lexicographic combination of reduction pairs:
  
    1. matrix interpretations:
    
      carrier: N^2
      order: standard order
      interpretations:
        check#_A(x1) = ((1,1),(1,1)) x1
        free_A(x1) = ((1,1),(1,1)) x1 + (1,1)
        old_A(x1) = ((1,1),(1,1)) x1 + (1,1)
        new_A(x1) = ((1,1),(1,1)) x1 + (1,1)
    
    2. matrix interpretations:
    
      carrier: N^2
      order: standard order
      interpretations:
        check#_A(x1) = ((1,1),(1,1)) x1
        free_A(x1) = ((1,1),(0,1)) x1 + (1,1)
        old_A(x1) = ((1,1),(1,1)) x1 + (1,1)
        new_A(x1) = ((1,1),(1,1)) x1 + (1,1)
    

The next rules are strictly ordered:

  p1, p2, p3
  r1, r2, r3, r4, r5, r6, r7, r8, r9

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: new#(free(x)) -> new#(x)

and R consists of:

r1: top(free(x)) -> top(check(new(x)))
r2: new(free(x)) -> free(new(x))
r3: old(free(x)) -> free(old(x))
r4: new(serve()) -> free(serve())
r5: old(serve()) -> free(serve())
r6: check(free(x)) -> free(check(x))
r7: check(new(x)) -> new(check(x))
r8: check(old(x)) -> old(check(x))
r9: check(old(x)) -> old(x)

The set of usable rules consists of

  (no rules)

Take the reduction pair:

  lexicographic combination of reduction pairs:
  
    1. matrix interpretations:
    
      carrier: N^2
      order: standard order
      interpretations:
        new#_A(x1) = ((1,1),(1,0)) x1
        free_A(x1) = ((1,1),(1,1)) x1 + (1,1)
    
    2. matrix interpretations:
    
      carrier: N^2
      order: standard order
      interpretations:
        new#_A(x1) = ((0,1),(0,1)) x1
        free_A(x1) = ((0,0),(1,1)) x1 + (1,1)
    

The next rules are strictly ordered:

  p1

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: old#(free(x)) -> old#(x)

and R consists of:

r1: top(free(x)) -> top(check(new(x)))
r2: new(free(x)) -> free(new(x))
r3: old(free(x)) -> free(old(x))
r4: new(serve()) -> free(serve())
r5: old(serve()) -> free(serve())
r6: check(free(x)) -> free(check(x))
r7: check(new(x)) -> new(check(x))
r8: check(old(x)) -> old(check(x))
r9: check(old(x)) -> old(x)

The set of usable rules consists of

  (no rules)

Take the reduction pair:

  lexicographic combination of reduction pairs:
  
    1. matrix interpretations:
    
      carrier: N^2
      order: standard order
      interpretations:
        old#_A(x1) = ((1,1),(1,1)) x1
        free_A(x1) = ((1,1),(1,1)) x1 + (1,1)
    
    2. matrix interpretations:
    
      carrier: N^2
      order: standard order
      interpretations:
        old#_A(x1) = ((0,1),(1,1)) x1
        free_A(x1) = ((1,0),(1,1)) x1 + (1,1)
    

The next rules are strictly ordered:

  p1

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