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: RT Transformation Processor: strict: 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()))) weak: Matrix Interpretation Processor: dimension: 1 interpretation: [append](x0, x1) = x0 + x1, [rev](x0) = x0, [cons](x0, x1) = x0 + x1 + 9, [app](x0, x1) = x0 + x1 + 4, [nil] = 2 orientation: app(nil(),xs) = xs + 6 >= 2 = nil() app(cons(x,xs),ys) = x + xs + ys + 13 >= x + xs + ys + 13 = cons(x,app(xs,ys)) rev(nil()) = 2 >= 2 = nil() rev(cons(x,xs)) = x + xs + 9 >= x + xs + 11 = append(xs,rev(cons(x,nil()))) problem: strict: app(cons(x,xs),ys) -> cons(x,app(xs,ys)) rev(nil()) -> nil() rev(cons(x,xs)) -> append(xs,rev(cons(x,nil()))) weak: app(nil(),xs) -> nil() Matrix Interpretation Processor: dimension: 1 interpretation: [append](x0, x1) = x0 + x1 + 12, [rev](x0) = x0 + 2, [cons](x0, x1) = x0 + x1, [app](x0, x1) = x0 + x1 + 4, [nil] = 0 orientation: app(cons(x,xs),ys) = x + xs + ys + 4 >= x + xs + ys + 4 = cons(x,app(xs,ys)) rev(nil()) = 2 >= 0 = nil() rev(cons(x,xs)) = x + xs + 2 >= x + xs + 14 = append(xs,rev(cons(x,nil()))) app(nil(),xs) = xs + 4 >= 0 = nil() problem: strict: app(cons(x,xs),ys) -> cons(x,app(xs,ys)) rev(cons(x,xs)) -> append(xs,rev(cons(x,nil()))) weak: rev(nil()) -> nil() app(nil(),xs) -> nil() Matrix Interpretation Processor: dimension: 2 interpretation: [1 0] [1 0] [append](x0, x1) = [0 0]x0 + [0 0]x1, [1 0] [12] [rev](x0) = [0 0]x0 + [9 ], [1 0] [4] [cons](x0, x1) = [0 0]x0 + x1 + [1], [1 1] [1 0] [0] [app](x0, x1) = [0 1]x0 + [0 0]x1 + [3], [0] [nil] = [9] orientation: [1 0] [1 1] [1 0] [5] [1 0] [1 1] [1 0] [4] app(cons(x,xs),ys) = [0 0]x + [0 1]xs + [0 0]ys + [4] >= [0 0]x + [0 1]xs + [0 0]ys + [4] = cons(x,app(xs,ys)) [1 0] [1 0] [16] [1 0] [1 0] [16] rev(cons(x,xs)) = [0 0]x + [0 0]xs + [9 ] >= [0 0]x + [0 0]xs + [0 ] = append(xs,rev(cons(x,nil()))) [12] [0] rev(nil()) = [9 ] >= [9] = nil() [1 0] [9 ] [0] app(nil(),xs) = [0 0]xs + [12] >= [9] = nil() problem: strict: rev(cons(x,xs)) -> append(xs,rev(cons(x,nil()))) weak: app(cons(x,xs),ys) -> cons(x,app(xs,ys)) rev(nil()) -> nil() app(nil(),xs) -> nil() Open