MAYBE Problem: app(nil(),xs) -> nil() app(cons(x,xs),ys) -> cons(x,app(xs,ys)) rev(nil()) -> nil() rev(cons(x,xs)) -> append(xs,rev(cons(x,nil()))) Proof: DP Processor: DPs: app#(cons(x,xs),ys) -> app#(xs,ys) rev#(cons(x,xs)) -> rev#(cons(x,nil())) TRS: app(nil(),xs) -> nil() app(cons(x,xs),ys) -> cons(x,app(xs,ys)) rev(nil()) -> nil() rev(cons(x,xs)) -> append(xs,rev(cons(x,nil()))) Usable Rule Processor: DPs: app#(cons(x,xs),ys) -> app#(xs,ys) rev#(cons(x,xs)) -> rev#(cons(x,nil())) TRS: EDG Processor: DPs: app#(cons(x,xs),ys) -> app#(xs,ys) rev#(cons(x,xs)) -> rev#(cons(x,nil())) TRS: graph: rev#(cons(x,xs)) -> rev#(cons(x,nil())) -> rev#(cons(x,xs)) -> rev#(cons(x,nil())) app#(cons(x,xs),ys) -> app#(xs,ys) -> app#(cons(x,xs),ys) -> app#(xs,ys) Restore Modifier: DPs: app#(cons(x,xs),ys) -> app#(xs,ys) rev#(cons(x,xs)) -> rev#(cons(x,nil())) TRS: app(nil(),xs) -> nil() app(cons(x,xs),ys) -> cons(x,app(xs,ys)) rev(nil()) -> nil() rev(cons(x,xs)) -> append(xs,rev(cons(x,nil()))) SCC Processor: #sccs: 2 #rules: 2 #arcs: 2/4 DPs: app#(cons(x,xs),ys) -> app#(xs,ys) TRS: app(nil(),xs) -> nil() app(cons(x,xs),ys) -> cons(x,app(xs,ys)) rev(nil()) -> nil() rev(cons(x,xs)) -> append(xs,rev(cons(x,nil()))) Matrix Interpretation Processor: dimension: 1 interpretation: [app#](x0, x1) = x0, [append](x0, x1) = 0, [rev](x0) = 1, [cons](x0, x1) = x1 + 1, [app](x0, x1) = x0, [nil] = 1 orientation: app#(cons(x,xs),ys) = xs + 1 >= xs = app#(xs,ys) app(nil(),xs) = 1 >= 1 = nil() app(cons(x,xs),ys) = xs + 1 >= xs + 1 = cons(x,app(xs,ys)) rev(nil()) = 1 >= 1 = nil() rev(cons(x,xs)) = 1 >= 0 = append(xs,rev(cons(x,nil()))) problem: DPs: TRS: app(nil(),xs) -> nil() app(cons(x,xs),ys) -> cons(x,app(xs,ys)) rev(nil()) -> nil() rev(cons(x,xs)) -> append(xs,rev(cons(x,nil()))) Qed DPs: rev#(cons(x,xs)) -> rev#(cons(x,nil())) TRS: app(nil(),xs) -> nil() app(cons(x,xs),ys) -> cons(x,app(xs,ys)) rev(nil()) -> nil() rev(cons(x,xs)) -> append(xs,rev(cons(x,nil()))) Open