YES

We show the termination of the relative TRS R/S:

  R:
  top(ok(new(x))) -> top(check(x))
  top(ok(old(x))) -> top(check(x))

  S:
  bot() -> new(bot())
  check(new(x)) -> new(check(x))
  check(old(x)) -> old(check(x))
  check(old(x)) -> ok(old(x))
  new(ok(x)) -> ok(new(x))
  old(ok(x)) -> ok(old(x))

-- SCC decomposition.

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

p1: top#(ok(new(x))) -> top#(check(x))
p2: top#(ok(old(x))) -> top#(check(x))

and R consists of:

r1: top(ok(new(x))) -> top(check(x))
r2: top(ok(old(x))) -> top(check(x))
r3: bot() -> new(bot())
r4: check(new(x)) -> new(check(x))
r5: check(old(x)) -> old(check(x))
r6: check(old(x)) -> ok(old(x))
r7: new(ok(x)) -> ok(new(x))
r8: old(ok(x)) -> ok(old(x))

The estimated dependency graph contains the following SCCs:

  {p1, p2}


-- Reduction pair.

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

p1: top#(ok(new(x))) -> top#(check(x))
p2: top#(ok(old(x))) -> top#(check(x))

and R consists of:

r1: top(ok(new(x))) -> top(check(x))
r2: top(ok(old(x))) -> top(check(x))
r3: bot() -> new(bot())
r4: check(new(x)) -> new(check(x))
r5: check(old(x)) -> old(check(x))
r6: check(old(x)) -> ok(old(x))
r7: new(ok(x)) -> ok(new(x))
r8: old(ok(x)) -> ok(old(x))

The set of usable rules consists of

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

Take the reduction pair:

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

The next rules are strictly ordered:

  p2

We remove them from the problem.

-- SCC decomposition.

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

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

and R consists of:

r1: top(ok(new(x))) -> top(check(x))
r2: top(ok(old(x))) -> top(check(x))
r3: bot() -> new(bot())
r4: check(new(x)) -> new(check(x))
r5: check(old(x)) -> old(check(x))
r6: check(old(x)) -> ok(old(x))
r7: new(ok(x)) -> ok(new(x))
r8: old(ok(x)) -> ok(old(x))

The estimated dependency graph contains the following SCCs:

  {p1}


-- Reduction pair.

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

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

and R consists of:

r1: top(ok(new(x))) -> top(check(x))
r2: top(ok(old(x))) -> top(check(x))
r3: bot() -> new(bot())
r4: check(new(x)) -> new(check(x))
r5: check(old(x)) -> old(check(x))
r6: check(old(x)) -> ok(old(x))
r7: new(ok(x)) -> ok(new(x))
r8: old(ok(x)) -> ok(old(x))

The set of usable rules consists of

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

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,1)) x1
        ok_A(x1) = ((0,1),(1,0)) x1 + (0,1)
        new_A(x1) = ((1,1),(1,1)) x1
        check_A(x1) = ((1,1),(1,1)) x1
        top_A(x1) = (0,0)
        old_A(x1) = ((1,1),(1,1)) x1 + (0,1)
        bot_A() = (0,0)
    
    2. matrix interpretations:
    
      carrier: N^2
      order: standard order
      interpretations:
        top#_A(x1) = x1
        ok_A(x1) = (2,2)
        new_A(x1) = (1,1)
        check_A(x1) = x1 + (1,3)
        top_A(x1) = (0,0)
        old_A(x1) = (3,2)
        bot_A() = (2,1)
    
    3. matrix interpretations:
    
      carrier: N^2
      order: standard order
      interpretations:
        top#_A(x1) = (0,0)
        ok_A(x1) = (1,1)
        new_A(x1) = (0,2)
        check_A(x1) = (3,1)
        top_A(x1) = (0,0)
        old_A(x1) = (2,2)
        bot_A() = (1,2)
    

The next rules are strictly ordered:

  p1

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