YES

We show the termination of the TRS R:

  msort(nil()) -> nil()
  msort(.(x,y)) -> .(min(x,y),msort(del(min(x,y),.(x,y))))
  min(x,nil()) -> x
  min(x,.(y,z)) -> if(<=(x,y),min(x,z),min(y,z))
  del(x,nil()) -> nil()
  del(x,.(y,z)) -> if(=(x,y),z,.(y,del(x,z)))

-- SCC decomposition.

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

p1: msort#(.(x,y)) -> min#(x,y)
p2: msort#(.(x,y)) -> msort#(del(min(x,y),.(x,y)))
p3: msort#(.(x,y)) -> del#(min(x,y),.(x,y))
p4: min#(x,.(y,z)) -> min#(x,z)
p5: min#(x,.(y,z)) -> min#(y,z)
p6: del#(x,.(y,z)) -> del#(x,z)

and R consists of:

r1: msort(nil()) -> nil()
r2: msort(.(x,y)) -> .(min(x,y),msort(del(min(x,y),.(x,y))))
r3: min(x,nil()) -> x
r4: min(x,.(y,z)) -> if(<=(x,y),min(x,z),min(y,z))
r5: del(x,nil()) -> nil()
r6: del(x,.(y,z)) -> if(=(x,y),z,.(y,del(x,z)))

The estimated dependency graph contains the following SCCs:

  {p2}
  {p4, p5}
  {p6}


-- Reduction pair.

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

p1: msort#(.(x,y)) -> msort#(del(min(x,y),.(x,y)))

and R consists of:

r1: msort(nil()) -> nil()
r2: msort(.(x,y)) -> .(min(x,y),msort(del(min(x,y),.(x,y))))
r3: min(x,nil()) -> x
r4: min(x,.(y,z)) -> if(<=(x,y),min(x,z),min(y,z))
r5: del(x,nil()) -> nil()
r6: del(x,.(y,z)) -> if(=(x,y),z,.(y,del(x,z)))

The set of usable rules consists of

  r3, r4, r5, r6

Take the reduction pair:

  lexicographic combination of reduction pairs:
  
    1. lexicographic path order with precedence:
    
      precedence:
      
        = > <= > if > del > nil > min > . > msort#
      
      argument filter:
    
        pi(msort#) = 1
        pi(.) = [2]
        pi(del) = 2
        pi(min) = 1
        pi(nil) = []
        pi(if) = 2
        pi(<=) = [1, 2]
        pi(=) = 2
    
    2. lexicographic path order with precedence:
    
      precedence:
      
        = > <= > . > del > nil > min > if > msort#
      
      argument filter:
    
        pi(msort#) = [1]
        pi(.) = [2]
        pi(del) = []
        pi(min) = [1]
        pi(nil) = []
        pi(if) = []
        pi(<=) = 2
        pi(=) = 2
    
    3. lexicographic path order with precedence:
    
      precedence:
      
        = > <= > if > nil > min > . > del > msort#
      
      argument filter:
    
        pi(msort#) = []
        pi(.) = []
        pi(del) = []
        pi(min) = 1
        pi(nil) = []
        pi(if) = []
        pi(<=) = 2
        pi(=) = 2
    

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: min#(x,.(y,z)) -> min#(x,z)
p2: min#(x,.(y,z)) -> min#(y,z)

and R consists of:

r1: msort(nil()) -> nil()
r2: msort(.(x,y)) -> .(min(x,y),msort(del(min(x,y),.(x,y))))
r3: min(x,nil()) -> x
r4: min(x,.(y,z)) -> if(<=(x,y),min(x,z),min(y,z))
r5: del(x,nil()) -> nil()
r6: del(x,.(y,z)) -> if(=(x,y),z,.(y,del(x,z)))

The set of usable rules consists of

  (no rules)

Take the reduction pair:

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

The next rules are strictly ordered:

  p1, p2

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: del#(x,.(y,z)) -> del#(x,z)

and R consists of:

r1: msort(nil()) -> nil()
r2: msort(.(x,y)) -> .(min(x,y),msort(del(min(x,y),.(x,y))))
r3: min(x,nil()) -> x
r4: min(x,.(y,z)) -> if(<=(x,y),min(x,z),min(y,z))
r5: del(x,nil()) -> nil()
r6: del(x,.(y,z)) -> if(=(x,y),z,.(y,del(x,z)))

The set of usable rules consists of

  (no rules)

Take the reduction pair:

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

The next rules are strictly ordered:

  p1

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