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:

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

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:

  matrix interpretations:
  
    carrier: N^2
    order: lexicographic order
    interpretations:
      top#_A(x1) = x1
      ok_A(x1) = x1 + (0,2)
      new_A(x1) = ((1,0),(1,1)) x1
      check_A(x1) = ((1,0),(1,1)) x1 + (0,1)
      top_A(x1) = ((0,0),(1,0)) x1
      old_A(x1) = ((1,0),(1,1)) x1 + (2,1)
      bot_A() = (0,1)

The next rules are strictly ordered:

  p1

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