MAYBE Problem: 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) app(inc(),xs) -> app(app(map(),app(plus(),app(s(),0()))),xs) app(double(),xs) -> app(app(map(),app(times(),app(s(),app(s(),0())))),xs) app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) Proof: DP Processor: DPs: 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) app#(inc(),xs) -> app#(s(),0()) app#(inc(),xs) -> app#(plus(),app(s(),0())) app#(inc(),xs) -> app#(map(),app(plus(),app(s(),0()))) app#(inc(),xs) -> app#(app(map(),app(plus(),app(s(),0()))),xs) app#(double(),xs) -> app#(s(),0()) app#(double(),xs) -> app#(s(),app(s(),0())) app#(double(),xs) -> app#(times(),app(s(),app(s(),0()))) app#(double(),xs) -> app#(map(),app(times(),app(s(),app(s(),0())))) app#(double(),xs) -> app#(app(map(),app(times(),app(s(),app(s(),0())))),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) TRS: 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) app(inc(),xs) -> app(app(map(),app(plus(),app(s(),0()))),xs) app(double(),xs) -> app(app(map(),app(times(),app(s(),app(s(),0())))),xs) app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) ADG Processor: DPs: 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) app#(inc(),xs) -> app#(s(),0()) app#(inc(),xs) -> app#(plus(),app(s(),0())) app#(inc(),xs) -> app#(map(),app(plus(),app(s(),0()))) app#(inc(),xs) -> app#(app(map(),app(plus(),app(s(),0()))),xs) app#(double(),xs) -> app#(s(),0()) app#(double(),xs) -> app#(s(),app(s(),0())) app#(double(),xs) -> app#(times(),app(s(),app(s(),0()))) app#(double(),xs) -> app#(map(),app(times(),app(s(),app(s(),0())))) app#(double(),xs) -> app#(app(map(),app(times(),app(s(),app(s(),0())))),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) TRS: 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) app(inc(),xs) -> app(app(map(),app(plus(),app(s(),0()))),xs) app(double(),xs) -> app(app(map(),app(times(),app(s(),app(s(),0())))),xs) app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) graph: app#(double(),xs) -> app#(app(map(),app(times(),app(s(),app(s(),0())))),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(double(),xs) -> app#(app(map(),app(times(),app(s(),app(s(),0())))),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(double(),xs) -> app#(app(map(),app(times(),app(s(),app(s(),0())))),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(double(),xs) -> app#(app(map(),app(times(),app(s(),app(s(),0())))),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) app#(inc(),xs) -> app#(app(map(),app(plus(),app(s(),0()))),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(inc(),xs) -> app#(app(map(),app(plus(),app(s(),0()))),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(inc(),xs) -> app#(app(map(),app(plus(),app(s(),0()))),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(inc(),xs) -> app#(app(map(),app(plus(),app(s(),0()))),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(plus(),app(s(),x)),y) -> app#(plus(),x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(plus(),app(s(),x)),y) -> app#(s(),app(app(plus(),x),y)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(times(),app(s(),x)),y) -> app#(times(),x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(times(),app(s(),x)),y) -> app#(plus(),app(app(times(),x),y)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(times(),app(s(),x)),y) -> app#(app(plus(),app(app(times(),x),y)),y) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(inc(),xs) -> app#(s(),0()) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(inc(),xs) -> app#(plus(),app(s(),0())) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(inc(),xs) -> app#(map(),app(plus(),app(s(),0()))) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(inc(),xs) -> app#(app(map(),app(plus(),app(s(),0()))),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(double(),xs) -> app#(s(),0()) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(double(),xs) -> app#(s(),app(s(),0())) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(double(),xs) -> app#(times(),app(s(),app(s(),0()))) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(double(),xs) -> app#(map(),app(times(),app(s(),app(s(),0())))) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(double(),xs) -> app#(app(map(),app(times(),app(s(),app(s(),0())))),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) 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)) Restore Modifier: DPs: 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) app#(inc(),xs) -> app#(s(),0()) app#(inc(),xs) -> app#(plus(),app(s(),0())) app#(inc(),xs) -> app#(map(),app(plus(),app(s(),0()))) app#(inc(),xs) -> app#(app(map(),app(plus(),app(s(),0()))),xs) app#(double(),xs) -> app#(s(),0()) app#(double(),xs) -> app#(s(),app(s(),0())) app#(double(),xs) -> app#(times(),app(s(),app(s(),0()))) app#(double(),xs) -> app#(map(),app(times(),app(s(),app(s(),0())))) app#(double(),xs) -> app#(app(map(),app(times(),app(s(),app(s(),0())))),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) TRS: 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) app(inc(),xs) -> app(app(map(),app(plus(),app(s(),0()))),xs) app(double(),xs) -> app(app(map(),app(times(),app(s(),app(s(),0())))),xs) app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) SCC Processor: #sccs: 3 #rules: 6 #arcs: 42/400 DPs: app#(double(),xs) -> app#(app(map(),app(times(),app(s(),app(s(),0())))),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(inc(),xs) -> app#(app(map(),app(plus(),app(s(),0()))),xs) TRS: 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) app(inc(),xs) -> app(app(map(),app(plus(),app(s(),0()))),xs) app(double(),xs) -> app(app(map(),app(times(),app(s(),app(s(),0())))),xs) app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) Matrix Interpretation Processor: dimension: 1 interpretation: [app#](x0, x1) = x0, [cons] = 0, [nil] = 0, [double] = 0, [map] = 0, [inc] = 1, [times] = 0, [s] = 0, [app](x0, x1) = x1, [0] = 0, [plus] = 0 orientation: app#(double(),xs) = 0 >= 0 = app#(app(map(),app(times(),app(s(),app(s(),0())))),xs) app#(app(map(),f),app(app(cons(),x),xs)) = f >= f = app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) = f >= f = app#(app(map(),f),xs) app#(inc(),xs) = 1 >= 0 = app#(app(map(),app(plus(),app(s(),0()))),xs) app(app(plus(),0()),y) = y >= y = y app(app(plus(),app(s(),x)),y) = y >= y = app(s(),app(app(plus(),x),y)) app(app(times(),0()),y) = y >= 0 = 0() app(app(times(),app(s(),x)),y) = y >= y = app(app(plus(),app(app(times(),x),y)),y) app(inc(),xs) = xs >= xs = app(app(map(),app(plus(),app(s(),0()))),xs) app(double(),xs) = xs >= xs = app(app(map(),app(times(),app(s(),app(s(),0())))),xs) app(app(map(),f),nil()) = 0 >= 0 = nil() app(app(map(),f),app(app(cons(),x),xs)) = xs >= xs = app(app(cons(),app(f,x)),app(app(map(),f),xs)) problem: DPs: app#(double(),xs) -> app#(app(map(),app(times(),app(s(),app(s(),0())))),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) TRS: 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) app(inc(),xs) -> app(app(map(),app(plus(),app(s(),0()))),xs) app(double(),xs) -> app(app(map(),app(times(),app(s(),app(s(),0())))),xs) app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) Matrix Interpretation Processor: dimension: 1 interpretation: [app#](x0, x1) = x0, [cons] = 0, [nil] = 0, [double] = 1, [map] = 0, [inc] = 0, [times] = 0, [s] = 0, [app](x0, x1) = x1, [0] = 0, [plus] = 0 orientation: app#(double(),xs) = 1 >= 0 = app#(app(map(),app(times(),app(s(),app(s(),0())))),xs) app#(app(map(),f),app(app(cons(),x),xs)) = f >= f = app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) = f >= f = app#(app(map(),f),xs) app(app(plus(),0()),y) = y >= y = y app(app(plus(),app(s(),x)),y) = y >= y = app(s(),app(app(plus(),x),y)) app(app(times(),0()),y) = y >= 0 = 0() app(app(times(),app(s(),x)),y) = y >= y = app(app(plus(),app(app(times(),x),y)),y) app(inc(),xs) = xs >= xs = app(app(map(),app(plus(),app(s(),0()))),xs) app(double(),xs) = xs >= xs = app(app(map(),app(times(),app(s(),app(s(),0())))),xs) app(app(map(),f),nil()) = 0 >= 0 = nil() app(app(map(),f),app(app(cons(),x),xs)) = xs >= xs = app(app(cons(),app(f,x)),app(app(map(),f),xs)) problem: DPs: app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) TRS: 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) app(inc(),xs) -> app(app(map(),app(plus(),app(s(),0()))),xs) app(double(),xs) -> app(app(map(),app(times(),app(s(),app(s(),0())))),xs) app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) Open DPs: app#(app(times(),app(s(),x)),y) -> app#(app(times(),x),y) TRS: 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) app(inc(),xs) -> app(app(map(),app(plus(),app(s(),0()))),xs) app(double(),xs) -> app(app(map(),app(times(),app(s(),app(s(),0())))),xs) app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) Open DPs: app#(app(plus(),app(s(),x)),y) -> app#(app(plus(),x),y) TRS: 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) app(inc(),xs) -> app(app(map(),app(plus(),app(s(),0()))),xs) app(double(),xs) -> app(app(map(),app(times(),app(s(),app(s(),0())))),xs) app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) Open