YES

Problem:
 f(a,empty()) -> g(a,empty())
 f(a,cons(x,k)) -> f(cons(x,a),k)
 g(empty(),d) -> d
 g(cons(x,k),d) -> g(k,cons(x,d))

Proof:
 DP Processor:
  DPs:
   f#(a,empty()) -> g#(a,empty())
   f#(a,cons(x,k)) -> f#(cons(x,a),k)
   g#(cons(x,k),d) -> g#(k,cons(x,d))
  TRS:
   f(a,empty()) -> g(a,empty())
   f(a,cons(x,k)) -> f(cons(x,a),k)
   g(empty(),d) -> d
   g(cons(x,k),d) -> g(k,cons(x,d))
  Usable Rule Processor:
   DPs:
    f#(a,empty()) -> g#(a,empty())
    f#(a,cons(x,k)) -> f#(cons(x,a),k)
    g#(cons(x,k),d) -> g#(k,cons(x,d))
   TRS:
    
   TDG Processor:
    DPs:
     f#(a,empty()) -> g#(a,empty())
     f#(a,cons(x,k)) -> f#(cons(x,a),k)
     g#(cons(x,k),d) -> g#(k,cons(x,d))
    TRS:
     
    graph:
     g#(cons(x,k),d) -> g#(k,cons(x,d)) ->
     g#(cons(x,k),d) -> g#(k,cons(x,d))
     f#(a,cons(x,k)) -> f#(cons(x,a),k) ->
     f#(a,cons(x,k)) -> f#(cons(x,a),k)
     f#(a,cons(x,k)) -> f#(cons(x,a),k) ->
     f#(a,empty()) -> g#(a,empty())
     f#(a,empty()) -> g#(a,empty()) -> g#(cons(x,k),d) -> g#(k,cons(x,d))
    Restore Modifier:
     DPs:
      f#(a,empty()) -> g#(a,empty())
      f#(a,cons(x,k)) -> f#(cons(x,a),k)
      g#(cons(x,k),d) -> g#(k,cons(x,d))
     TRS:
      f(a,empty()) -> g(a,empty())
      f(a,cons(x,k)) -> f(cons(x,a),k)
      g(empty(),d) -> d
      g(cons(x,k),d) -> g(k,cons(x,d))
     SCC Processor:
      #sccs: 2
      #rules: 2
      #arcs: 4/9
      DPs:
       f#(a,cons(x,k)) -> f#(cons(x,a),k)
      TRS:
       f(a,empty()) -> g(a,empty())
       f(a,cons(x,k)) -> f(cons(x,a),k)
       g(empty(),d) -> d
       g(cons(x,k),d) -> g(k,cons(x,d))
      Matrix Interpretation Processor:
       dimension: 1
       interpretation:
        [f#](x0, x1) = x1,
        
        [cons](x0, x1) = x0 + x1 + 1,
        
        [g](x0, x1) = x0 + x1,
        
        [f](x0, x1) = x0 + x1,
        
        [empty] = 0
       orientation:
        f#(a,cons(x,k)) = k + x + 1 >= k = f#(cons(x,a),k)
        
        f(a,empty()) = a >= a = g(a,empty())
        
        f(a,cons(x,k)) = a + k + x + 1 >= a + k + x + 1 = f(cons(x,a),k)
        
        g(empty(),d) = d >= d = d
        
        g(cons(x,k),d) = d + k + x + 1 >= d + k + x + 1 = g(k,cons(x,d))
       problem:
        DPs:
         
        TRS:
         f(a,empty()) -> g(a,empty())
         f(a,cons(x,k)) -> f(cons(x,a),k)
         g(empty(),d) -> d
         g(cons(x,k),d) -> g(k,cons(x,d))
       Qed
      
      DPs:
       g#(cons(x,k),d) -> g#(k,cons(x,d))
      TRS:
       f(a,empty()) -> g(a,empty())
       f(a,cons(x,k)) -> f(cons(x,a),k)
       g(empty(),d) -> d
       g(cons(x,k),d) -> g(k,cons(x,d))
      Matrix Interpretation Processor:
       dimension: 1
       interpretation:
        [g#](x0, x1) = x0,
        
        [cons](x0, x1) = x1 + 1,
        
        [g](x0, x1) = x0 + x1,
        
        [f](x0, x1) = x0 + x1,
        
        [empty] = 0
       orientation:
        g#(cons(x,k),d) = k + 1 >= k = g#(k,cons(x,d))
        
        f(a,empty()) = a >= a = g(a,empty())
        
        f(a,cons(x,k)) = a + k + 1 >= a + k + 1 = f(cons(x,a),k)
        
        g(empty(),d) = d >= d = d
        
        g(cons(x,k),d) = d + k + 1 >= d + k + 1 = g(k,cons(x,d))
       problem:
        DPs:
         
        TRS:
         f(a,empty()) -> g(a,empty())
         f(a,cons(x,k)) -> f(cons(x,a),k)
         g(empty(),d) -> d
         g(cons(x,k),d) -> g(k,cons(x,d))
       Qed