Problem: pairNs() -> cons(0(),n__incr(oddNs())) oddNs() -> incr(pairNs()) incr(cons(X,XS)) -> cons(s(X),n__incr(activate(XS))) take(0(),XS) -> nil() take(s(N),cons(X,XS)) -> cons(X,n__take(N,activate(XS))) zip(nil(),XS) -> nil() zip(X,nil()) -> nil() zip(cons(X,XS),cons(Y,YS)) -> cons(pair(X,Y),n__zip(activate(XS),activate(YS))) tail(cons(X,XS)) -> activate(XS) repItems(nil()) -> nil() repItems(cons(X,XS)) -> cons(X,n__cons(X,n__repItems(activate(XS)))) incr(X) -> n__incr(X) take(X1,X2) -> n__take(X1,X2) zip(X1,X2) -> n__zip(X1,X2) cons(X1,X2) -> n__cons(X1,X2) repItems(X) -> n__repItems(X) activate(n__incr(X)) -> incr(X) activate(n__take(X1,X2)) -> take(X1,X2) activate(n__zip(X1,X2)) -> zip(X1,X2) activate(n__cons(X1,X2)) -> cons(X1,X2) activate(n__repItems(X)) -> repItems(X) activate(X) -> X Proof: Matrix Interpretation Processor: dim=1 interpretation: [n__cons](x0, x1) = x0 + x1, [n__repItems](x0) = x0, [repItems](x0) = 2x0, [tail](x0) = x0 + 4, [n__zip](x0, x1) = x0 + x1, [pair](x0, x1) = 2x0 + x1, [zip](x0, x1) = 2x0 + 2x1, [n__take](x0, x1) = x0 + x1 + 2, [nil] = 0, [take](x0, x1) = x0 + 2x1 + 4, [activate](x0) = 2x0, [s](x0) = 2x0, [incr](x0) = 4x0, [cons](x0, x1) = 2x0 + 2x1, [n__incr](x0) = 2x0, [oddNs] = 0, [0] = 0, [pairNs] = 0 orientation: pairNs() = 0 >= 0 = cons(0(),n__incr(oddNs())) oddNs() = 0 >= 0 = incr(pairNs()) incr(cons(X,XS)) = 8X + 8XS >= 4X + 8XS = cons(s(X),n__incr(activate(XS))) take(0(),XS) = 2XS + 4 >= 0 = nil() take(s(N),cons(X,XS)) = 2N + 4X + 4XS + 4 >= 2N + 2X + 4XS + 4 = cons(X,n__take(N,activate(XS))) zip(nil(),XS) = 2XS >= 0 = nil() zip(X,nil()) = 2X >= 0 = nil() zip(cons(X,XS),cons(Y,YS)) = 4X + 4XS + 4Y + 4YS >= 4X + 4XS + 2Y + 4YS = cons(pair(X,Y),n__zip(activate(XS),activate(YS))) tail(cons(X,XS)) = 2X + 2XS + 4 >= 2XS = activate(XS) repItems(nil()) = 0 >= 0 = nil() repItems(cons(X,XS)) = 4X + 4XS >= 4X + 4XS = cons(X,n__cons(X,n__repItems(activate(XS)))) incr(X) = 4X >= 2X = n__incr(X) take(X1,X2) = X1 + 2X2 + 4 >= X1 + X2 + 2 = n__take(X1,X2) zip(X1,X2) = 2X1 + 2X2 >= X1 + X2 = n__zip(X1,X2) cons(X1,X2) = 2X1 + 2X2 >= X1 + X2 = n__cons(X1,X2) repItems(X) = 2X >= X = n__repItems(X) activate(n__incr(X)) = 4X >= 4X = incr(X) activate(n__take(X1,X2)) = 2X1 + 2X2 + 4 >= X1 + 2X2 + 4 = take(X1,X2) activate(n__zip(X1,X2)) = 2X1 + 2X2 >= 2X1 + 2X2 = zip(X1,X2) activate(n__cons(X1,X2)) = 2X1 + 2X2 >= 2X1 + 2X2 = cons(X1,X2) activate(n__repItems(X)) = 2X >= 2X = repItems(X) activate(X) = 2X >= X = X problem: pairNs() -> cons(0(),n__incr(oddNs())) oddNs() -> incr(pairNs()) incr(cons(X,XS)) -> cons(s(X),n__incr(activate(XS))) take(s(N),cons(X,XS)) -> cons(X,n__take(N,activate(XS))) zip(nil(),XS) -> nil() zip(X,nil()) -> nil() zip(cons(X,XS),cons(Y,YS)) -> cons(pair(X,Y),n__zip(activate(XS),activate(YS))) repItems(nil()) -> nil() repItems(cons(X,XS)) -> cons(X,n__cons(X,n__repItems(activate(XS)))) incr(X) -> n__incr(X) zip(X1,X2) -> n__zip(X1,X2) cons(X1,X2) -> n__cons(X1,X2) repItems(X) -> n__repItems(X) activate(n__incr(X)) -> incr(X) activate(n__take(X1,X2)) -> take(X1,X2) activate(n__zip(X1,X2)) -> zip(X1,X2) activate(n__cons(X1,X2)) -> cons(X1,X2) activate(n__repItems(X)) -> repItems(X) activate(X) -> X Matrix Interpretation Processor: dim=1 interpretation: [n__cons](x0, x1) = x0 + x1, [n__repItems](x0) = 4x0 + 4, [repItems](x0) = 4x0 + 4, [n__zip](x0, x1) = 2x0 + 4x1, [pair](x0, x1) = x0 + 4x1, [zip](x0, x1) = 2x0 + 4x1, [n__take](x0, x1) = 4x0 + x1 + 4, [nil] = 1, [take](x0, x1) = 4x0 + x1 + 4, [activate](x0) = x0, [s](x0) = x0, [incr](x0) = x0, [cons](x0, x1) = x0 + x1, [n__incr](x0) = x0, [oddNs] = 4, [0] = 0, [pairNs] = 4 orientation: pairNs() = 4 >= 4 = cons(0(),n__incr(oddNs())) oddNs() = 4 >= 4 = incr(pairNs()) incr(cons(X,XS)) = X + XS >= X + XS = cons(s(X),n__incr(activate(XS))) take(s(N),cons(X,XS)) = 4N + X + XS + 4 >= 4N + X + XS + 4 = cons(X,n__take(N,activate(XS))) zip(nil(),XS) = 4XS + 2 >= 1 = nil() zip(X,nil()) = 2X + 4 >= 1 = nil() zip(cons(X,XS),cons(Y,YS)) = 2X + 2XS + 4Y + 4YS >= X + 2XS + 4Y + 4YS = cons(pair(X,Y),n__zip(activate(XS),activate(YS))) repItems(nil()) = 8 >= 1 = nil() repItems(cons(X,XS)) = 4X + 4XS + 4 >= 2X + 4XS + 4 = cons(X,n__cons(X,n__repItems(activate(XS)))) incr(X) = X >= X = n__incr(X) zip(X1,X2) = 2X1 + 4X2 >= 2X1 + 4X2 = n__zip(X1,X2) cons(X1,X2) = X1 + X2 >= X1 + X2 = n__cons(X1,X2) repItems(X) = 4X + 4 >= 4X + 4 = n__repItems(X) activate(n__incr(X)) = X >= X = incr(X) activate(n__take(X1,X2)) = 4X1 + X2 + 4 >= 4X1 + X2 + 4 = take(X1,X2) activate(n__zip(X1,X2)) = 2X1 + 4X2 >= 2X1 + 4X2 = zip(X1,X2) activate(n__cons(X1,X2)) = X1 + X2 >= X1 + X2 = cons(X1,X2) activate(n__repItems(X)) = 4X + 4 >= 4X + 4 = repItems(X) activate(X) = X >= X = X problem: pairNs() -> cons(0(),n__incr(oddNs())) oddNs() -> incr(pairNs()) incr(cons(X,XS)) -> cons(s(X),n__incr(activate(XS))) take(s(N),cons(X,XS)) -> cons(X,n__take(N,activate(XS))) zip(cons(X,XS),cons(Y,YS)) -> cons(pair(X,Y),n__zip(activate(XS),activate(YS))) repItems(cons(X,XS)) -> cons(X,n__cons(X,n__repItems(activate(XS)))) incr(X) -> n__incr(X) zip(X1,X2) -> n__zip(X1,X2) cons(X1,X2) -> n__cons(X1,X2) repItems(X) -> n__repItems(X) activate(n__incr(X)) -> incr(X) activate(n__take(X1,X2)) -> take(X1,X2) activate(n__zip(X1,X2)) -> zip(X1,X2) activate(n__cons(X1,X2)) -> cons(X1,X2) activate(n__repItems(X)) -> repItems(X) activate(X) -> X Matrix Interpretation Processor: dim=1 interpretation: [n__cons](x0, x1) = 2x0 + x1, [n__repItems](x0) = x0, [repItems](x0) = 2x0, [n__zip](x0, x1) = x0 + x1, [pair](x0, x1) = 2x0 + x1, [zip](x0, x1) = 2x0 + 2x1, [n__take](x0, x1) = 4x0 + 2x1 + 2, [take](x0, x1) = 4x0 + 4x1 + 4, [activate](x0) = 2x0, [s](x0) = 2x0, [incr](x0) = 4x0, [cons](x0, x1) = 4x0 + x1, [n__incr](x0) = 2x0, [oddNs] = 0, [0] = 0, [pairNs] = 0 orientation: pairNs() = 0 >= 0 = cons(0(),n__incr(oddNs())) oddNs() = 0 >= 0 = incr(pairNs()) incr(cons(X,XS)) = 16X + 4XS >= 8X + 4XS = cons(s(X),n__incr(activate(XS))) take(s(N),cons(X,XS)) = 8N + 16X + 4XS + 4 >= 4N + 4X + 4XS + 2 = cons(X,n__take(N,activate(XS))) zip(cons(X,XS),cons(Y,YS)) = 8X + 2XS + 8Y + 2YS >= 8X + 2XS + 4Y + 2YS = cons(pair(X,Y),n__zip(activate(XS),activate(YS))) repItems(cons(X,XS)) = 8X + 2XS >= 6X + 2XS = cons(X,n__cons(X,n__repItems(activate(XS)))) incr(X) = 4X >= 2X = n__incr(X) zip(X1,X2) = 2X1 + 2X2 >= X1 + X2 = n__zip(X1,X2) cons(X1,X2) = 4X1 + X2 >= 2X1 + X2 = n__cons(X1,X2) repItems(X) = 2X >= X = n__repItems(X) activate(n__incr(X)) = 4X >= 4X = incr(X) activate(n__take(X1,X2)) = 8X1 + 4X2 + 4 >= 4X1 + 4X2 + 4 = take(X1,X2) activate(n__zip(X1,X2)) = 2X1 + 2X2 >= 2X1 + 2X2 = zip(X1,X2) activate(n__cons(X1,X2)) = 4X1 + 2X2 >= 4X1 + X2 = cons(X1,X2) activate(n__repItems(X)) = 2X >= 2X = repItems(X) activate(X) = 2X >= X = X problem: pairNs() -> cons(0(),n__incr(oddNs())) oddNs() -> incr(pairNs()) incr(cons(X,XS)) -> cons(s(X),n__incr(activate(XS))) zip(cons(X,XS),cons(Y,YS)) -> cons(pair(X,Y),n__zip(activate(XS),activate(YS))) repItems(cons(X,XS)) -> cons(X,n__cons(X,n__repItems(activate(XS)))) incr(X) -> n__incr(X) zip(X1,X2) -> n__zip(X1,X2) cons(X1,X2) -> n__cons(X1,X2) repItems(X) -> n__repItems(X) activate(n__incr(X)) -> incr(X) activate(n__take(X1,X2)) -> take(X1,X2) activate(n__zip(X1,X2)) -> zip(X1,X2) activate(n__cons(X1,X2)) -> cons(X1,X2) activate(n__repItems(X)) -> repItems(X) activate(X) -> X Unfolding Processor: loop length: 3 terms: oddNs() incr(pairNs()) incr(cons(0(),n__incr(oddNs()))) context: cons(s(0()),n__incr(activate(n__incr([])))) substitution: Qed