Problem:
nats() -> cons(0(),n__incr(n__nats()))
pairs() -> cons(0(),n__incr(n__odds()))
odds() -> incr(pairs())
incr(cons(X,XS)) -> cons(s(X),n__incr(activate(XS)))
head(cons(X,XS)) -> X
tail(cons(X,XS)) -> activate(XS)
incr(X) -> n__incr(X)
nats() -> n__nats()
odds() -> n__odds()
activate(n__incr(X)) -> incr(activate(X))
activate(n__nats()) -> nats()
activate(n__odds()) -> odds()
activate(X) -> X
Proof:
Matrix Interpretation Processor: dim=1
interpretation:
[tail](x0) = x0,
[head](x0) = x0 + 1,
[activate](x0) = x0,
[s](x0) = x0,
[incr](x0) = x0,
[odds] = 0,
[n__odds] = 0,
[pairs] = 0,
[cons](x0, x1) = x0 + x1,
[n__incr](x0) = x0,
[n__nats] = 0,
[0] = 0,
[nats] = 0
orientation:
nats() = 0 >= 0 = cons(0(),n__incr(n__nats()))
pairs() = 0 >= 0 = cons(0(),n__incr(n__odds()))
odds() = 0 >= 0 = incr(pairs())
incr(cons(X,XS)) = X + XS >= X + XS = cons(s(X),n__incr(activate(XS)))
head(cons(X,XS)) = X + XS + 1 >= X = X
tail(cons(X,XS)) = X + XS >= XS = activate(XS)
incr(X) = X >= X = n__incr(X)
nats() = 0 >= 0 = n__nats()
odds() = 0 >= 0 = n__odds()
activate(n__incr(X)) = X >= X = incr(activate(X))
activate(n__nats()) = 0 >= 0 = nats()
activate(n__odds()) = 0 >= 0 = odds()
activate(X) = X >= X = X
problem:
nats() -> cons(0(),n__incr(n__nats()))
pairs() -> cons(0(),n__incr(n__odds()))
odds() -> incr(pairs())
incr(cons(X,XS)) -> cons(s(X),n__incr(activate(XS)))
tail(cons(X,XS)) -> activate(XS)
incr(X) -> n__incr(X)
nats() -> n__nats()
odds() -> n__odds()
activate(n__incr(X)) -> incr(activate(X))
activate(n__nats()) -> nats()
activate(n__odds()) -> odds()
activate(X) -> X
Matrix Interpretation Processor: dim=3
interpretation:
[1 0 0] [1]
[tail](x0) = [0 1 0]x0 + [1]
[1 1 0] [0],
[1 0 0] [0]
[activate](x0) = [0 1 0]x0 + [1]
[1 0 1] [0],
[1 0 0]
[s](x0) = [0 0 0]x0
[0 0 0] ,
[1 0 0]
[incr](x0) = [1 0 0]x0
[0 0 0] ,
[1]
[odds] = [1]
[0],
[1]
[n__odds] = [0]
[0],
[1]
[pairs] = [1]
[0],
[1 0 0] [1 0 0]
[cons](x0, x1) = [0 0 0]x0 + [0 1 1]x1
[0 0 0] [0 0 0] ,
[1 0 0]
[n__incr](x0) = [1 0 0]x0
[0 0 0] ,
[1]
[n__nats] = [0]
[0],
[0]
[0] = [0]
[0],
[1]
[nats] = [1]
[0]
orientation:
[1] [1]
nats() = [1] >= [1] = cons(0(),n__incr(n__nats()))
[0] [0]
[1] [1]
pairs() = [1] >= [1] = cons(0(),n__incr(n__odds()))
[0] [0]
[1] [1]
odds() = [1] >= [1] = incr(pairs())
[0] [0]
[1 0 0] [1 0 0] [1 0 0] [1 0 0]
incr(cons(X,XS)) = [1 0 0]X + [1 0 0]XS >= [0 0 0]X + [1 0 0]XS = cons(s(X),n__incr(activate(XS)))
[0 0 0] [0 0 0] [0 0 0] [0 0 0]
[1 0 0] [1 0 0] [1] [1 0 0] [0]
tail(cons(X,XS)) = [0 0 0]X + [0 1 1]XS + [1] >= [0 1 0]XS + [1] = activate(XS)
[1 0 0] [1 1 1] [0] [1 0 1] [0]
[1 0 0] [1 0 0]
incr(X) = [1 0 0]X >= [1 0 0]X = n__incr(X)
[0 0 0] [0 0 0]
[1] [1]
nats() = [1] >= [0] = n__nats()
[0] [0]
[1] [1]
odds() = [1] >= [0] = n__odds()
[0] [0]
[1 0 0] [0] [1 0 0]
activate(n__incr(X)) = [1 0 0]X + [1] >= [1 0 0]X = incr(activate(X))
[1 0 0] [0] [0 0 0]
[1] [1]
activate(n__nats()) = [1] >= [1] = nats()
[1] [0]
[1] [1]
activate(n__odds()) = [1] >= [1] = odds()
[1] [0]
[1 0 0] [0]
activate(X) = [0 1 0]X + [1] >= X = X
[1 0 1] [0]
problem:
nats() -> cons(0(),n__incr(n__nats()))
pairs() -> cons(0(),n__incr(n__odds()))
odds() -> incr(pairs())
incr(cons(X,XS)) -> cons(s(X),n__incr(activate(XS)))
incr(X) -> n__incr(X)
nats() -> n__nats()
odds() -> n__odds()
activate(n__incr(X)) -> incr(activate(X))
activate(n__nats()) -> nats()
activate(n__odds()) -> odds()
activate(X) -> X
Unfolding Processor:
loop length: 4
terms:
incr(cons(X,n__incr(n__nats())))
cons(s(X),n__incr(activate(n__incr(n__nats()))))
cons(s(X),n__incr(incr(activate(n__nats()))))
cons(s(X),n__incr(incr(nats())))
context: cons(s(X),n__incr([]))
substitution:
X -> 0()
Qed