YES
Time: 0.007132
TRS:
 {f a() -> f b(),
  g b() -> g a()}
 DP:
  DP:
   {f# a() -> f# b(),
    g# b() -> g# a()}
  TRS:
  {f a() -> f b(),
   g b() -> g a()}
  EDG:
   {(g# b() -> g# a(), g# b() -> g# a())
    (f# a() -> f# b(), f# a() -> f# b())}
   STATUS:
    arrows: 0.500000
    SCCS (2):
     Scc:
      {g# b() -> g# a()}
     Scc:
      {f# a() -> f# b()}
     
     SCC (1):
      Strict:
       {g# b() -> g# a()}
      Weak:
      {f a() -> f b(),
       g b() -> g a()}
      POLY:
       Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true
       Interpretation:
        [f](x0) = 0,
        
        [g](x0) = 0,
        
        [b] = 1,
        
        [a] = 0,
        
        [g#](x0) = x0 + 1
       Strict:
        g# b() -> g# a()
        2 >= 1
       Weak:
        g b() -> g a()
        0 >= 0
        f a() -> f b()
        0 >= 0
      Qed
    SCC (1):
     Strict:
      {f# a() -> f# b()}
     Weak:
     {f a() -> f b(),
      g b() -> g a()}
     POLY:
      Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true
      Interpretation:
       [f](x0) = x0 + 1,
       
       [g](x0) = 0,
       
       [b] = 0,
       
       [a] = 1,
       
       [f#](x0) = x0 + 1
      Strict:
       f# a() -> f# b()
       2 >= 1
      Weak:
       g b() -> g a()
       0 >= 0
       f a() -> f b()
       2 >= 1
     Qed