YES

Problem:
 lcs(e(),y) -> 0()
 lcs(x,e()) -> 0()
 lcs(a(x),a(y)) -> s(lcs(x,y))
 lcs(b(x),b(y)) -> s(lcs(x,y))
 lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y))
 lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y))
 max(x,0()) -> 0()
 max(0(),y) -> 0()
 max(s(x),s(y)) -> max(x,y)

Proof:
 DP Processor:
  DPs:
   lcs#(a(x),a(y)) -> lcs#(x,y)
   lcs#(b(x),b(y)) -> lcs#(x,y)
   lcs#(a(x),b(y)) -> lcs#(a(x),y)
   lcs#(a(x),b(y)) -> lcs#(x,b(y))
   lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y))
   lcs#(b(x),a(y)) -> lcs#(b(x),y)
   lcs#(b(x),a(y)) -> lcs#(x,a(y))
   lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y))
   max#(s(x),s(y)) -> max#(x,y)
  TRS:
   lcs(e(),y) -> 0()
   lcs(x,e()) -> 0()
   lcs(a(x),a(y)) -> s(lcs(x,y))
   lcs(b(x),b(y)) -> s(lcs(x,y))
   lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y))
   lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y))
   max(x,0()) -> 0()
   max(0(),y) -> 0()
   max(s(x),s(y)) -> max(x,y)
  ADG Processor:
   DPs:
    lcs#(a(x),a(y)) -> lcs#(x,y)
    lcs#(b(x),b(y)) -> lcs#(x,y)
    lcs#(a(x),b(y)) -> lcs#(a(x),y)
    lcs#(a(x),b(y)) -> lcs#(x,b(y))
    lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y))
    lcs#(b(x),a(y)) -> lcs#(b(x),y)
    lcs#(b(x),a(y)) -> lcs#(x,a(y))
    lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y))
    max#(s(x),s(y)) -> max#(x,y)
   TRS:
    lcs(e(),y) -> 0()
    lcs(x,e()) -> 0()
    lcs(a(x),a(y)) -> s(lcs(x,y))
    lcs(b(x),b(y)) -> s(lcs(x,y))
    lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y))
    lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y))
    max(x,0()) -> 0()
    max(0(),y) -> 0()
    max(s(x),s(y)) -> max(x,y)
   graph:
    max#(s(x),s(y)) -> max#(x,y) -> max#(s(x),s(y)) -> max#(x,y)
    lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(a(x),a(y)) -> lcs#(x,y)
    lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(b(x),b(y)) -> lcs#(x,y)
    lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(a(x),b(y)) -> lcs#(a(x),y)
    lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(a(x),b(y)) -> lcs#(x,b(y))
    lcs#(b(x),b(y)) -> lcs#(x,y) ->
    lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y))
    lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(b(x),a(y)) -> lcs#(b(x),y)
    lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(b(x),a(y)) -> lcs#(x,a(y))
    lcs#(b(x),b(y)) -> lcs#(x,y) ->
    lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y))
    lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y)) ->
    max#(s(x),s(y)) -> max#(x,y)
    lcs#(b(x),a(y)) -> lcs#(b(x),y) -> lcs#(b(x),b(y)) -> lcs#(x,y)
    lcs#(b(x),a(y)) -> lcs#(b(x),y) ->
    lcs#(b(x),a(y)) -> lcs#(b(x),y)
    lcs#(b(x),a(y)) -> lcs#(b(x),y) ->
    lcs#(b(x),a(y)) -> lcs#(x,a(y))
    lcs#(b(x),a(y)) -> lcs#(b(x),y) ->
    lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y))
    lcs#(b(x),a(y)) -> lcs#(x,a(y)) -> lcs#(a(x),a(y)) -> lcs#(x,y)
    lcs#(b(x),a(y)) -> lcs#(x,a(y)) ->
    lcs#(b(x),a(y)) -> lcs#(b(x),y)
    lcs#(b(x),a(y)) -> lcs#(x,a(y)) ->
    lcs#(b(x),a(y)) -> lcs#(x,a(y))
    lcs#(b(x),a(y)) -> lcs#(x,a(y)) ->
    lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y))
    lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y)) ->
    max#(s(x),s(y)) -> max#(x,y)
    lcs#(a(x),b(y)) -> lcs#(a(x),y) -> lcs#(a(x),a(y)) -> lcs#(x,y)
    lcs#(a(x),b(y)) -> lcs#(a(x),y) ->
    lcs#(a(x),b(y)) -> lcs#(a(x),y)
    lcs#(a(x),b(y)) -> lcs#(a(x),y) ->
    lcs#(a(x),b(y)) -> lcs#(x,b(y))
    lcs#(a(x),b(y)) -> lcs#(a(x),y) ->
    lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y))
    lcs#(a(x),b(y)) -> lcs#(x,b(y)) -> lcs#(b(x),b(y)) -> lcs#(x,y)
    lcs#(a(x),b(y)) -> lcs#(x,b(y)) ->
    lcs#(a(x),b(y)) -> lcs#(a(x),y)
    lcs#(a(x),b(y)) -> lcs#(x,b(y)) ->
    lcs#(a(x),b(y)) -> lcs#(x,b(y))
    lcs#(a(x),b(y)) -> lcs#(x,b(y)) ->
    lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y))
    lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(a(x),a(y)) -> lcs#(x,y)
    lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(b(x),b(y)) -> lcs#(x,y)
    lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(a(x),b(y)) -> lcs#(a(x),y)
    lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(a(x),b(y)) -> lcs#(x,b(y))
    lcs#(a(x),a(y)) -> lcs#(x,y) ->
    lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y))
    lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(b(x),a(y)) -> lcs#(b(x),y)
    lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(b(x),a(y)) -> lcs#(x,a(y))
    lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y))
   Restore Modifier:
    DPs:
     lcs#(a(x),a(y)) -> lcs#(x,y)
     lcs#(b(x),b(y)) -> lcs#(x,y)
     lcs#(a(x),b(y)) -> lcs#(a(x),y)
     lcs#(a(x),b(y)) -> lcs#(x,b(y))
     lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y))
     lcs#(b(x),a(y)) -> lcs#(b(x),y)
     lcs#(b(x),a(y)) -> lcs#(x,a(y))
     lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y))
     max#(s(x),s(y)) -> max#(x,y)
    TRS:
     lcs(e(),y) -> 0()
     lcs(x,e()) -> 0()
     lcs(a(x),a(y)) -> s(lcs(x,y))
     lcs(b(x),b(y)) -> s(lcs(x,y))
     lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y))
     lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y))
     max(x,0()) -> 0()
     max(0(),y) -> 0()
     max(s(x),s(y)) -> max(x,y)
    SCC Processor:
     #sccs: 2
     #rules: 7
     #arcs: 35/81
     DPs:
      lcs#(b(x),b(y)) -> lcs#(x,y)
      lcs#(b(x),a(y)) -> lcs#(x,a(y))
      lcs#(b(x),a(y)) -> lcs#(b(x),y)
      lcs#(a(x),a(y)) -> lcs#(x,y)
      lcs#(a(x),b(y)) -> lcs#(x,b(y))
      lcs#(a(x),b(y)) -> lcs#(a(x),y)
     TRS:
      lcs(e(),y) -> 0()
      lcs(x,e()) -> 0()
      lcs(a(x),a(y)) -> s(lcs(x,y))
      lcs(b(x),b(y)) -> s(lcs(x,y))
      lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y))
      lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y))
      max(x,0()) -> 0()
      max(0(),y) -> 0()
      max(s(x),s(y)) -> max(x,y)
     Matrix Interpretation Processor:
      dimension: 1
      interpretation:
       [lcs#](x0, x1) = x0 + 1,
       
       [max](x0, x1) = 0,
       
       [b](x0) = x0 + 1,
       
       [s](x0) = 0,
       
       [a](x0) = x0 + 1,
       
       [0] = 0,
       
       [lcs](x0, x1) = 0,
       
       [e] = 0
      orientation:
       lcs#(b(x),b(y)) = x + 2 >= x + 1 = lcs#(x,y)
       
       lcs#(b(x),a(y)) = x + 2 >= x + 1 = lcs#(x,a(y))
       
       lcs#(b(x),a(y)) = x + 2 >= x + 2 = lcs#(b(x),y)
       
       lcs#(a(x),a(y)) = x + 2 >= x + 1 = lcs#(x,y)
       
       lcs#(a(x),b(y)) = x + 2 >= x + 1 = lcs#(x,b(y))
       
       lcs#(a(x),b(y)) = x + 2 >= x + 2 = lcs#(a(x),y)
       
       lcs(e(),y) = 0 >= 0 = 0()
       
       lcs(x,e()) = 0 >= 0 = 0()
       
       lcs(a(x),a(y)) = 0 >= 0 = s(lcs(x,y))
       
       lcs(b(x),b(y)) = 0 >= 0 = s(lcs(x,y))
       
       lcs(a(x),b(y)) = 0 >= 0 = max(lcs(x,b(y)),lcs(a(x),y))
       
       lcs(b(x),a(y)) = 0 >= 0 = max(lcs(x,a(y)),lcs(b(x),y))
       
       max(x,0()) = 0 >= 0 = 0()
       
       max(0(),y) = 0 >= 0 = 0()
       
       max(s(x),s(y)) = 0 >= 0 = max(x,y)
      problem:
       DPs:
        lcs#(b(x),a(y)) -> lcs#(b(x),y)
        lcs#(a(x),b(y)) -> lcs#(a(x),y)
       TRS:
        lcs(e(),y) -> 0()
        lcs(x,e()) -> 0()
        lcs(a(x),a(y)) -> s(lcs(x,y))
        lcs(b(x),b(y)) -> s(lcs(x,y))
        lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y))
        lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y))
        max(x,0()) -> 0()
        max(0(),y) -> 0()
        max(s(x),s(y)) -> max(x,y)
      Matrix Interpretation Processor:
       dimension: 1
       interpretation:
        [lcs#](x0, x1) = x0 + x1 + 1,
        
        [max](x0, x1) = 1,
        
        [b](x0) = x0,
        
        [s](x0) = x0,
        
        [a](x0) = x0 + 1,
        
        [0] = 0,
        
        [lcs](x0, x1) = x0 + x1,
        
        [e] = 0
       orientation:
        lcs#(b(x),a(y)) = x + y + 2 >= x + y + 1 = lcs#(b(x),y)
        
        lcs#(a(x),b(y)) = x + y + 2 >= x + y + 2 = lcs#(a(x),y)
        
        lcs(e(),y) = y >= 0 = 0()
        
        lcs(x,e()) = x >= 0 = 0()
        
        lcs(a(x),a(y)) = x + y + 2 >= x + y = s(lcs(x,y))
        
        lcs(b(x),b(y)) = x + y >= x + y = s(lcs(x,y))
        
        lcs(a(x),b(y)) = x + y + 1 >= 1 = max(lcs(x,b(y)),lcs(a(x),y))
        
        lcs(b(x),a(y)) = x + y + 1 >= 1 = max(lcs(x,a(y)),lcs(b(x),y))
        
        max(x,0()) = 1 >= 0 = 0()
        
        max(0(),y) = 1 >= 0 = 0()
        
        max(s(x),s(y)) = 1 >= 1 = max(x,y)
       problem:
        DPs:
         lcs#(a(x),b(y)) -> lcs#(a(x),y)
        TRS:
         lcs(e(),y) -> 0()
         lcs(x,e()) -> 0()
         lcs(a(x),a(y)) -> s(lcs(x,y))
         lcs(b(x),b(y)) -> s(lcs(x,y))
         lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y))
         lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y))
         max(x,0()) -> 0()
         max(0(),y) -> 0()
         max(s(x),s(y)) -> max(x,y)
       Matrix Interpretation Processor:
        dimension: 1
        interpretation:
         [lcs#](x0, x1) = x1,
         
         [max](x0, x1) = 0,
         
         [b](x0) = x0 + 1,
         
         [s](x0) = 0,
         
         [a](x0) = 0,
         
         [0] = 0,
         
         [lcs](x0, x1) = 0,
         
         [e] = 0
        orientation:
         lcs#(a(x),b(y)) = y + 1 >= y = lcs#(a(x),y)
         
         lcs(e(),y) = 0 >= 0 = 0()
         
         lcs(x,e()) = 0 >= 0 = 0()
         
         lcs(a(x),a(y)) = 0 >= 0 = s(lcs(x,y))
         
         lcs(b(x),b(y)) = 0 >= 0 = s(lcs(x,y))
         
         lcs(a(x),b(y)) = 0 >= 0 = max(lcs(x,b(y)),lcs(a(x),y))
         
         lcs(b(x),a(y)) = 0 >= 0 = max(lcs(x,a(y)),lcs(b(x),y))
         
         max(x,0()) = 0 >= 0 = 0()
         
         max(0(),y) = 0 >= 0 = 0()
         
         max(s(x),s(y)) = 0 >= 0 = max(x,y)
        problem:
         DPs:
          
         TRS:
          lcs(e(),y) -> 0()
          lcs(x,e()) -> 0()
          lcs(a(x),a(y)) -> s(lcs(x,y))
          lcs(b(x),b(y)) -> s(lcs(x,y))
          lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y))
          lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y))
          max(x,0()) -> 0()
          max(0(),y) -> 0()
          max(s(x),s(y)) -> max(x,y)
        Qed
     
     DPs:
      max#(s(x),s(y)) -> max#(x,y)
     TRS:
      lcs(e(),y) -> 0()
      lcs(x,e()) -> 0()
      lcs(a(x),a(y)) -> s(lcs(x,y))
      lcs(b(x),b(y)) -> s(lcs(x,y))
      lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y))
      lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y))
      max(x,0()) -> 0()
      max(0(),y) -> 0()
      max(s(x),s(y)) -> max(x,y)
     Matrix Interpretation Processor:
      dimension: 1
      interpretation:
       [max#](x0, x1) = x0 + 1,
       
       [max](x0, x1) = 1,
       
       [b](x0) = x0 + 1,
       
       [s](x0) = x0 + 1,
       
       [a](x0) = x0 + 1,
       
       [0] = 1,
       
       [lcs](x0, x1) = x1 + 1,
       
       [e] = 0
      orientation:
       max#(s(x),s(y)) = x + 2 >= x + 1 = max#(x,y)
       
       lcs(e(),y) = y + 1 >= 1 = 0()
       
       lcs(x,e()) = 1 >= 1 = 0()
       
       lcs(a(x),a(y)) = y + 2 >= y + 2 = s(lcs(x,y))
       
       lcs(b(x),b(y)) = y + 2 >= y + 2 = s(lcs(x,y))
       
       lcs(a(x),b(y)) = y + 2 >= 1 = max(lcs(x,b(y)),lcs(a(x),y))
       
       lcs(b(x),a(y)) = y + 2 >= 1 = max(lcs(x,a(y)),lcs(b(x),y))
       
       max(x,0()) = 1 >= 1 = 0()
       
       max(0(),y) = 1 >= 1 = 0()
       
       max(s(x),s(y)) = 1 >= 1 = max(x,y)
      problem:
       DPs:
        
       TRS:
        lcs(e(),y) -> 0()
        lcs(x,e()) -> 0()
        lcs(a(x),a(y)) -> s(lcs(x,y))
        lcs(b(x),b(y)) -> s(lcs(x,y))
        lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y))
        lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y))
        max(x,0()) -> 0()
        max(0(),y) -> 0()
        max(s(x),s(y)) -> max(x,y)
      Qed