YES

We show the termination of the TRS R:

  p(|0|()) -> |0|()
  p(s(x)) -> x
  le(|0|(),y) -> true()
  le(s(x),|0|()) -> false()
  le(s(x),s(y)) -> le(x,y)
  minus(x,|0|()) -> x
  minus(x,s(y)) -> if(le(x,s(y)),|0|(),p(minus(x,p(s(y)))))
  if(true(),x,y) -> x
  if(false(),x,y) -> y

-- SCC decomposition.

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

p1: le#(s(x),s(y)) -> le#(x,y)
p2: minus#(x,s(y)) -> if#(le(x,s(y)),|0|(),p(minus(x,p(s(y)))))
p3: minus#(x,s(y)) -> le#(x,s(y))
p4: minus#(x,s(y)) -> p#(minus(x,p(s(y))))
p5: minus#(x,s(y)) -> minus#(x,p(s(y)))
p6: minus#(x,s(y)) -> p#(s(y))

and R consists of:

r1: p(|0|()) -> |0|()
r2: p(s(x)) -> x
r3: le(|0|(),y) -> true()
r4: le(s(x),|0|()) -> false()
r5: le(s(x),s(y)) -> le(x,y)
r6: minus(x,|0|()) -> x
r7: minus(x,s(y)) -> if(le(x,s(y)),|0|(),p(minus(x,p(s(y)))))
r8: if(true(),x,y) -> x
r9: if(false(),x,y) -> y

The estimated dependency graph contains the following SCCs:

  {p5}
  {p1}


-- Reduction pair.

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

p1: minus#(x,s(y)) -> minus#(x,p(s(y)))

and R consists of:

r1: p(|0|()) -> |0|()
r2: p(s(x)) -> x
r3: le(|0|(),y) -> true()
r4: le(s(x),|0|()) -> false()
r5: le(s(x),s(y)) -> le(x,y)
r6: minus(x,|0|()) -> x
r7: minus(x,s(y)) -> if(le(x,s(y)),|0|(),p(minus(x,p(s(y)))))
r8: if(true(),x,y) -> x
r9: if(false(),x,y) -> y

The set of usable rules consists of

  r2

Take the reduction pair:

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

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: le#(s(x),s(y)) -> le#(x,y)

and R consists of:

r1: p(|0|()) -> |0|()
r2: p(s(x)) -> x
r3: le(|0|(),y) -> true()
r4: le(s(x),|0|()) -> false()
r5: le(s(x),s(y)) -> le(x,y)
r6: minus(x,|0|()) -> x
r7: minus(x,s(y)) -> if(le(x,s(y)),|0|(),p(minus(x,p(s(y)))))
r8: if(true(),x,y) -> x
r9: if(false(),x,y) -> y

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:
      
        s > le#
      
      argument filter:
    
        pi(le#) = 1
        pi(s) = [1]
    
    2. lexicographic path order with precedence:
    
      precedence:
      
        s > le#
      
      argument filter:
    
        pi(le#) = 1
        pi(s) = 1
    
    3. lexicographic path order with precedence:
    
      precedence:
      
        s > le#
      
      argument filter:
    
        pi(le#) = 1
        pi(s) = [1]
    

The next rules are strictly ordered:

  p1

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