MAYBE

Problem:
 app(app(app(fold(),f),x),nil()) -> x
 app(app(app(fold(),f),x),app(app(cons(),y),z)) -> app(app(f,y),app(app(app(fold(),f),x),z))
 app(app(plus(),0()),y) -> y
 app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y))
 app(app(times(),0()),y) -> 0()
 app(app(times(),app(s(),x)),y) -> app(app(plus(),app(app(times(),x),y)),y)
 sum() -> app(app(fold(),add()),0())
 prod() -> app(app(fold(),mul()),app(s(),0()))

Proof:
 DP Processor:
  DPs:
   app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
   app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
   app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
   app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
   app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
   app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
   app#(app(times(),app(s(),x)),y) -> app#(times(),x)
   app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
   app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
   app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
   sum#() -> app#(fold(),add())
   sum#() -> app#(app(fold(),add()),0())
   prod#() -> app#(s(),0())
   prod#() -> app#(fold(),mul())
   prod#() -> app#(app(fold(),mul()),app(s(),0()))
  TRS:
   app(app(app(fold(),f),x),nil()) -> x
   app(app(app(fold(),f),x),app(app(cons(),y),z)) -> app(app(f,y),app(app(app(fold(),f),x),z))
   app(app(plus(),0()),y) -> y
   app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y))
   app(app(times(),0()),y) -> 0()
   app(app(times(),app(s(),x)),y) -> app(app(plus(),app(app(times(),x),y)),y)
   sum() -> app(app(fold(),add()),0())
   prod() -> app(app(fold(),mul()),app(s(),0()))
  TDG Processor:
   DPs:
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    app#(app(times(),app(s(),x)),y) -> app#(times(),x)
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
    sum#() -> app#(fold(),add())
    sum#() -> app#(app(fold(),add()),0())
    prod#() -> app#(s(),0())
    prod#() -> app#(fold(),mul())
    prod#() -> app#(app(fold(),mul()),app(s(),0()))
   TRS:
    app(app(app(fold(),f),x),nil()) -> x
    app(app(app(fold(),f),x),app(app(cons(),y),z)) -> app(app(f,y),app(app(app(fold(),f),x),z))
    app(app(plus(),0()),y) -> y
    app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y))
    app(app(times(),0()),y) -> 0()
    app(app(times(),app(s(),x)),y) -> app(app(plus(),app(app(times(),x),y)),y)
    sum() -> app(app(fold(),add()),0())
    prod() -> app(app(fold(),mul()),app(s(),0()))
   graph:
    prod#() -> app#(s(),0()) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
    prod#() -> app#(s(),0()) ->
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
    prod#() -> app#(s(),0()) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
    prod#() -> app#(s(),0()) ->
    app#(app(times(),app(s(),x)),y) -> app#(times(),x)
    prod#() -> app#(s(),0()) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    prod#() -> app#(s(),0()) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    prod#() -> app#(s(),0()) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    prod#() -> app#(s(),0()) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    prod#() -> app#(s(),0()) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
    prod#() -> app#(s(),0()) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
    prod#() -> app#(app(fold(),mul()),app(s(),0())) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
    prod#() -> app#(app(fold(),mul()),app(s(),0())) ->
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
    prod#() -> app#(app(fold(),mul()),app(s(),0())) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
    prod#() -> app#(app(fold(),mul()),app(s(),0())) ->
    app#(app(times(),app(s(),x)),y) -> app#(times(),x)
    prod#() -> app#(app(fold(),mul()),app(s(),0())) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    prod#() -> app#(app(fold(),mul()),app(s(),0())) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    prod#() -> app#(app(fold(),mul()),app(s(),0())) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    prod#() -> app#(app(fold(),mul()),app(s(),0())) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    prod#() -> app#(app(fold(),mul()),app(s(),0())) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
    prod#() -> app#(app(fold(),mul()),app(s(),0())) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
    prod#() -> app#(fold(),mul()) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
    prod#() -> app#(fold(),mul()) ->
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
    prod#() -> app#(fold(),mul()) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
    prod#() -> app#(fold(),mul()) ->
    app#(app(times(),app(s(),x)),y) -> app#(times(),x)
    prod#() -> app#(fold(),mul()) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    prod#() -> app#(fold(),mul()) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    prod#() -> app#(fold(),mul()) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    prod#() -> app#(fold(),mul()) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    prod#() -> app#(fold(),mul()) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
    prod#() -> app#(fold(),mul()) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
    sum#() -> app#(app(fold(),add()),0()) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
    sum#() -> app#(app(fold(),add()),0()) ->
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
    sum#() -> app#(app(fold(),add()),0()) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
    sum#() -> app#(app(fold(),add()),0()) ->
    app#(app(times(),app(s(),x)),y) -> app#(times(),x)
    sum#() -> app#(app(fold(),add()),0()) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    sum#() -> app#(app(fold(),add()),0()) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    sum#() -> app#(app(fold(),add()),0()) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    sum#() -> app#(app(fold(),add()),0()) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    sum#() -> app#(app(fold(),add()),0()) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
    sum#() -> app#(app(fold(),add()),0()) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
    sum#() -> app#(fold(),add()) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
    sum#() -> app#(fold(),add()) ->
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
    sum#() -> app#(fold(),add()) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
    sum#() -> app#(fold(),add()) ->
    app#(app(times(),app(s(),x)),y) -> app#(times(),x)
    sum#() -> app#(fold(),add()) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    sum#() -> app#(fold(),add()) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    sum#() -> app#(fold(),add()) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    sum#() -> app#(fold(),add()) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    sum#() -> app#(fold(),add()) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
    sum#() -> app#(fold(),add()) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
    app#(app(times(),app(s(),x)),y) -> app#(times(),x) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
    app#(app(times(),app(s(),x)),y) -> app#(times(),x) ->
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
    app#(app(times(),app(s(),x)),y) -> app#(times(),x) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
    app#(app(times(),app(s(),x)),y) -> app#(times(),x) ->
    app#(app(times(),app(s(),x)),y) -> app#(times(),x)
    app#(app(times(),app(s(),x)),y) -> app#(times(),x) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    app#(app(times(),app(s(),x)),y) -> app#(times(),x) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    app#(app(times(),app(s(),x)),y) -> app#(times(),x) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    app#(app(times(),app(s(),x)),y) -> app#(times(),x) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    app#(app(times(),app(s(),x)),y) -> app#(times(),x) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
    app#(app(times(),app(s(),x)),y) -> app#(times(),x) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y)) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y)) ->
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y)) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y)) ->
    app#(app(times(),app(s(),x)),y) -> app#(times(),x)
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y)) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y)) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y)) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y)) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y)) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y)) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) ->
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) ->
    app#(app(times(),app(s(),x)),y) -> app#(times(),x)
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) ->
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) ->
    app#(app(times(),app(s(),x)),y) -> app#(times(),x)
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y)) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y)) ->
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y)) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y)) ->
    app#(app(times(),app(s(),x)),y) -> app#(times(),x)
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y)) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y)) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y)) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y)) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y)) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y)) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x) ->
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x) ->
    app#(app(times(),app(s(),x)),y) -> app#(times(),x)
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
    app#(app(times(),app(s(),x)),y) -> app#(times(),x)
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z) ->
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z) ->
    app#(app(times(),app(s(),x)),y) -> app#(times(),x)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    ->
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    ->
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    ->
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    ->
    app#(app(times(),app(s(),x)),y) -> app#(times(),x)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
    app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
    app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
    app#(app(times(),app(s(),x)),y) -> app#(times(),x)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
    app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
    app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
   SCC Processor:
    #sccs: 1
    #rules: 10
    #arcs: 150/225
    DPs:
     app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
     app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
     app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
     app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
     app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
     app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
     app#(app(times(),app(s(),x)),y) -> app#(times(),x)
     app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
     app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
     app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
    TRS:
     app(app(app(fold(),f),x),nil()) -> x
     app(app(app(fold(),f),x),app(app(cons(),y),z)) -> app(app(f,y),app(app(app(fold(),f),x),z))
     app(app(plus(),0()),y) -> y
     app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y))
     app(app(times(),0()),y) -> 0()
     app(app(times(),app(s(),x)),y) -> app(app(plus(),app(app(times(),x),y)),y)
     sum() -> app(app(fold(),add()),0())
     prod() -> app(app(fold(),mul()),app(s(),0()))
    EDG Processor:
     DPs:
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
      app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
      app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
      app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
      app#(app(times(),app(s(),x)),y) -> app#(times(),x)
      app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
      app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
      app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
     TRS:
      app(app(app(fold(),f),x),nil()) -> x
      app(app(app(fold(),f),x),app(app(cons(),y),z)) -> app(app(f,y),app(app(app(fold(),f),x),z))
      app(app(plus(),0()),y) -> y
      app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y))
      app(app(times(),0()),y) -> 0()
      app(app(times(),app(s(),x)),y) -> app(app(plus(),app(app(times(),x),y)),y)
      sum() -> app(app(fold(),add()),0())
      prod() -> app(app(fold(),mul()),app(s(),0()))
     graph:
      app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) ->
      app#(app(times(),app(s(),x)),y) -> app#(times(),x)
      app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) ->
      app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
      app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) ->
      app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
      app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) ->
      app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
      app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) ->
      app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
      app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) ->
      app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
      app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) ->
      app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
      app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
      app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
      app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
      app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
      app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) ->
      app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z) ->
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z) ->
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z) ->
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
      ->
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
      ->
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
      ->
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
      ->
      app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
      ->
      app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
      ->
      app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
      ->
      app#(app(times(),app(s(),x)),y) -> app#(times(),x)
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
      ->
      app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
      ->
      app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
      ->
      app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(f,y),app(app(app(fold(),f),x),z))
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
      app#(app(plus(),app(s(),x)),y) -> app#(plus(),x)
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
      app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
      app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y))
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
      app#(app(times(),app(s(),x)),y) -> app#(times(),x)
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
      app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
      app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y))
      app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y) ->
      app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y)
     SCC Processor:
      #sccs: 3
      #rules: 5
      #arcs: 33/100
      DPs:
       app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(app(app(fold(),f),x),z)
       app#(app(app(fold(),f),x),app(app(cons(),y),z)) ->
       app#(app(f,y),app(app(app(fold(),f),x),z))
       app#(app(app(fold(),f),x),app(app(cons(),y),z)) -> app#(f,y)
      TRS:
       app(app(app(fold(),f),x),nil()) -> x
       app(app(app(fold(),f),x),app(app(cons(),y),z)) -> app(app(f,y),app(app(app(fold(),f),x),z))
       app(app(plus(),0()),y) -> y
       app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y))
       app(app(times(),0()),y) -> 0()
       app(app(times(),app(s(),x)),y) -> app(app(plus(),app(app(times(),x),y)),y)
       sum() -> app(app(fold(),add()),0())
       prod() -> app(app(fold(),mul()),app(s(),0()))
      Open
      
      DPs:
       app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y)
      TRS:
       app(app(app(fold(),f),x),nil()) -> x
       app(app(app(fold(),f),x),app(app(cons(),y),z)) -> app(app(f,y),app(app(app(fold(),f),x),z))
       app(app(plus(),0()),y) -> y
       app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y))
       app(app(times(),0()),y) -> 0()
       app(app(times(),app(s(),x)),y) -> app(app(plus(),app(app(times(),x),y)),y)
       sum() -> app(app(fold(),add()),0())
       prod() -> app(app(fold(),mul()),app(s(),0()))
      Open
      
      DPs:
       app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y)
      TRS:
       app(app(app(fold(),f),x),nil()) -> x
       app(app(app(fold(),f),x),app(app(cons(),y),z)) -> app(app(f,y),app(app(app(fold(),f),x),z))
       app(app(plus(),0()),y) -> y
       app(app(plus(),app(s(),x)),y) -> app(s(),app(app(plus(),x),y))
       app(app(times(),0()),y) -> 0()
       app(app(times(),app(s(),x)),y) -> app(app(plus(),app(app(times(),x),y)),y)
       sum() -> app(app(fold(),add()),0())
       prod() -> app(app(fold(),mul()),app(s(),0()))
      Open