Runtime Complexity TRS:
The TRS R consists of the following rules:
from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
s(X) → n__s(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(n__zWquot(X1, X2)) → zWquot(activate(X1), activate(X2))
activate(X) → X
Renamed function symbols to avoid clashes with predefined symbol.
Runtime Complexity TRS:
The TRS R consists of the following rules:
from'(X) → cons'(X, n__from'(n__s'(X)))
sel'(0', cons'(X, XS)) → X
sel'(s'(N), cons'(X, XS)) → sel'(N, activate'(XS))
minus'(X, 0') → 0'
minus'(s'(X), s'(Y)) → minus'(X, Y)
quot'(0', s'(Y)) → 0'
quot'(s'(X), s'(Y)) → s'(quot'(minus'(X, Y), s'(Y)))
zWquot'(XS, nil') → nil'
zWquot'(nil', XS) → nil'
zWquot'(cons'(X, XS), cons'(Y, YS)) → cons'(quot'(X, Y), n__zWquot'(activate'(XS), activate'(YS)))
from'(X) → n__from'(X)
s'(X) → n__s'(X)
zWquot'(X1, X2) → n__zWquot'(X1, X2)
activate'(n__from'(X)) → from'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__zWquot'(X1, X2)) → zWquot'(activate'(X1), activate'(X2))
activate'(X) → X
Infered types.
Rules:
from'(X) → cons'(X, n__from'(n__s'(X)))
sel'(0', cons'(X, XS)) → X
sel'(s'(N), cons'(X, XS)) → sel'(N, activate'(XS))
minus'(X, 0') → 0'
minus'(s'(X), s'(Y)) → minus'(X, Y)
quot'(0', s'(Y)) → 0'
quot'(s'(X), s'(Y)) → s'(quot'(minus'(X, Y), s'(Y)))
zWquot'(XS, nil') → nil'
zWquot'(nil', XS) → nil'
zWquot'(cons'(X, XS), cons'(Y, YS)) → cons'(quot'(X, Y), n__zWquot'(activate'(XS), activate'(YS)))
from'(X) → n__from'(X)
s'(X) → n__s'(X)
zWquot'(X1, X2) → n__zWquot'(X1, X2)
activate'(n__from'(X)) → from'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__zWquot'(X1, X2)) → zWquot'(activate'(X1), activate'(X2))
activate'(X) → X
Types:
from' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
cons' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
n__from' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
n__s' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
sel' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
0' :: n__s':n__from':cons':0':nil':n__zWquot'
s' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
activate' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
minus' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
quot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
zWquot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
nil' :: n__s':n__from':cons':0':nil':n__zWquot'
n__zWquot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
_hole_n__s':n__from':cons':0':nil':n__zWquot'1 :: n__s':n__from':cons':0':nil':n__zWquot'
_gen_n__s':n__from':cons':0':nil':n__zWquot'2 :: Nat → n__s':n__from':cons':0':nil':n__zWquot'
Heuristically decided to analyse the following defined symbols:
sel', activate', minus', quot'
They will be analysed ascendingly in the following order:
activate' < sel'
quot' < activate'
minus' < quot'
Rules:
from'(X) → cons'(X, n__from'(n__s'(X)))
sel'(0', cons'(X, XS)) → X
sel'(s'(N), cons'(X, XS)) → sel'(N, activate'(XS))
minus'(X, 0') → 0'
minus'(s'(X), s'(Y)) → minus'(X, Y)
quot'(0', s'(Y)) → 0'
quot'(s'(X), s'(Y)) → s'(quot'(minus'(X, Y), s'(Y)))
zWquot'(XS, nil') → nil'
zWquot'(nil', XS) → nil'
zWquot'(cons'(X, XS), cons'(Y, YS)) → cons'(quot'(X, Y), n__zWquot'(activate'(XS), activate'(YS)))
from'(X) → n__from'(X)
s'(X) → n__s'(X)
zWquot'(X1, X2) → n__zWquot'(X1, X2)
activate'(n__from'(X)) → from'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__zWquot'(X1, X2)) → zWquot'(activate'(X1), activate'(X2))
activate'(X) → X
Types:
from' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
cons' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
n__from' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
n__s' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
sel' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
0' :: n__s':n__from':cons':0':nil':n__zWquot'
s' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
activate' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
minus' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
quot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
zWquot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
nil' :: n__s':n__from':cons':0':nil':n__zWquot'
n__zWquot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
_hole_n__s':n__from':cons':0':nil':n__zWquot'1 :: n__s':n__from':cons':0':nil':n__zWquot'
_gen_n__s':n__from':cons':0':nil':n__zWquot'2 :: Nat → n__s':n__from':cons':0':nil':n__zWquot'
Generator Equations:
_gen_n__s':n__from':cons':0':nil':n__zWquot'2(0) ⇔ 0'
_gen_n__s':n__from':cons':0':nil':n__zWquot'2(+(x, 1)) ⇔ cons'(0', _gen_n__s':n__from':cons':0':nil':n__zWquot'2(x))
The following defined symbols remain to be analysed:
minus', sel', activate', quot'
They will be analysed ascendingly in the following order:
activate' < sel'
quot' < activate'
minus' < quot'
Could not prove a rewrite lemma for the defined symbol minus'.
Rules:
from'(X) → cons'(X, n__from'(n__s'(X)))
sel'(0', cons'(X, XS)) → X
sel'(s'(N), cons'(X, XS)) → sel'(N, activate'(XS))
minus'(X, 0') → 0'
minus'(s'(X), s'(Y)) → minus'(X, Y)
quot'(0', s'(Y)) → 0'
quot'(s'(X), s'(Y)) → s'(quot'(minus'(X, Y), s'(Y)))
zWquot'(XS, nil') → nil'
zWquot'(nil', XS) → nil'
zWquot'(cons'(X, XS), cons'(Y, YS)) → cons'(quot'(X, Y), n__zWquot'(activate'(XS), activate'(YS)))
from'(X) → n__from'(X)
s'(X) → n__s'(X)
zWquot'(X1, X2) → n__zWquot'(X1, X2)
activate'(n__from'(X)) → from'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__zWquot'(X1, X2)) → zWquot'(activate'(X1), activate'(X2))
activate'(X) → X
Types:
from' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
cons' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
n__from' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
n__s' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
sel' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
0' :: n__s':n__from':cons':0':nil':n__zWquot'
s' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
activate' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
minus' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
quot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
zWquot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
nil' :: n__s':n__from':cons':0':nil':n__zWquot'
n__zWquot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
_hole_n__s':n__from':cons':0':nil':n__zWquot'1 :: n__s':n__from':cons':0':nil':n__zWquot'
_gen_n__s':n__from':cons':0':nil':n__zWquot'2 :: Nat → n__s':n__from':cons':0':nil':n__zWquot'
Generator Equations:
_gen_n__s':n__from':cons':0':nil':n__zWquot'2(0) ⇔ 0'
_gen_n__s':n__from':cons':0':nil':n__zWquot'2(+(x, 1)) ⇔ cons'(0', _gen_n__s':n__from':cons':0':nil':n__zWquot'2(x))
The following defined symbols remain to be analysed:
quot', sel', activate'
They will be analysed ascendingly in the following order:
activate' < sel'
quot' < activate'
Could not prove a rewrite lemma for the defined symbol quot'.
Rules:
from'(X) → cons'(X, n__from'(n__s'(X)))
sel'(0', cons'(X, XS)) → X
sel'(s'(N), cons'(X, XS)) → sel'(N, activate'(XS))
minus'(X, 0') → 0'
minus'(s'(X), s'(Y)) → minus'(X, Y)
quot'(0', s'(Y)) → 0'
quot'(s'(X), s'(Y)) → s'(quot'(minus'(X, Y), s'(Y)))
zWquot'(XS, nil') → nil'
zWquot'(nil', XS) → nil'
zWquot'(cons'(X, XS), cons'(Y, YS)) → cons'(quot'(X, Y), n__zWquot'(activate'(XS), activate'(YS)))
from'(X) → n__from'(X)
s'(X) → n__s'(X)
zWquot'(X1, X2) → n__zWquot'(X1, X2)
activate'(n__from'(X)) → from'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__zWquot'(X1, X2)) → zWquot'(activate'(X1), activate'(X2))
activate'(X) → X
Types:
from' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
cons' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
n__from' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
n__s' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
sel' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
0' :: n__s':n__from':cons':0':nil':n__zWquot'
s' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
activate' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
minus' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
quot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
zWquot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
nil' :: n__s':n__from':cons':0':nil':n__zWquot'
n__zWquot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
_hole_n__s':n__from':cons':0':nil':n__zWquot'1 :: n__s':n__from':cons':0':nil':n__zWquot'
_gen_n__s':n__from':cons':0':nil':n__zWquot'2 :: Nat → n__s':n__from':cons':0':nil':n__zWquot'
Generator Equations:
_gen_n__s':n__from':cons':0':nil':n__zWquot'2(0) ⇔ 0'
_gen_n__s':n__from':cons':0':nil':n__zWquot'2(+(x, 1)) ⇔ cons'(0', _gen_n__s':n__from':cons':0':nil':n__zWquot'2(x))
The following defined symbols remain to be analysed:
activate', sel'
They will be analysed ascendingly in the following order:
activate' < sel'
Could not prove a rewrite lemma for the defined symbol activate'.
Rules:
from'(X) → cons'(X, n__from'(n__s'(X)))
sel'(0', cons'(X, XS)) → X
sel'(s'(N), cons'(X, XS)) → sel'(N, activate'(XS))
minus'(X, 0') → 0'
minus'(s'(X), s'(Y)) → minus'(X, Y)
quot'(0', s'(Y)) → 0'
quot'(s'(X), s'(Y)) → s'(quot'(minus'(X, Y), s'(Y)))
zWquot'(XS, nil') → nil'
zWquot'(nil', XS) → nil'
zWquot'(cons'(X, XS), cons'(Y, YS)) → cons'(quot'(X, Y), n__zWquot'(activate'(XS), activate'(YS)))
from'(X) → n__from'(X)
s'(X) → n__s'(X)
zWquot'(X1, X2) → n__zWquot'(X1, X2)
activate'(n__from'(X)) → from'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__zWquot'(X1, X2)) → zWquot'(activate'(X1), activate'(X2))
activate'(X) → X
Types:
from' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
cons' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
n__from' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
n__s' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
sel' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
0' :: n__s':n__from':cons':0':nil':n__zWquot'
s' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
activate' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
minus' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
quot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
zWquot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
nil' :: n__s':n__from':cons':0':nil':n__zWquot'
n__zWquot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
_hole_n__s':n__from':cons':0':nil':n__zWquot'1 :: n__s':n__from':cons':0':nil':n__zWquot'
_gen_n__s':n__from':cons':0':nil':n__zWquot'2 :: Nat → n__s':n__from':cons':0':nil':n__zWquot'
Generator Equations:
_gen_n__s':n__from':cons':0':nil':n__zWquot'2(0) ⇔ 0'
_gen_n__s':n__from':cons':0':nil':n__zWquot'2(+(x, 1)) ⇔ cons'(0', _gen_n__s':n__from':cons':0':nil':n__zWquot'2(x))
The following defined symbols remain to be analysed:
sel'
Could not prove a rewrite lemma for the defined symbol sel'.
Rules:
from'(X) → cons'(X, n__from'(n__s'(X)))
sel'(0', cons'(X, XS)) → X
sel'(s'(N), cons'(X, XS)) → sel'(N, activate'(XS))
minus'(X, 0') → 0'
minus'(s'(X), s'(Y)) → minus'(X, Y)
quot'(0', s'(Y)) → 0'
quot'(s'(X), s'(Y)) → s'(quot'(minus'(X, Y), s'(Y)))
zWquot'(XS, nil') → nil'
zWquot'(nil', XS) → nil'
zWquot'(cons'(X, XS), cons'(Y, YS)) → cons'(quot'(X, Y), n__zWquot'(activate'(XS), activate'(YS)))
from'(X) → n__from'(X)
s'(X) → n__s'(X)
zWquot'(X1, X2) → n__zWquot'(X1, X2)
activate'(n__from'(X)) → from'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__zWquot'(X1, X2)) → zWquot'(activate'(X1), activate'(X2))
activate'(X) → X
Types:
from' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
cons' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
n__from' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
n__s' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
sel' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
0' :: n__s':n__from':cons':0':nil':n__zWquot'
s' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
activate' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
minus' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
quot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
zWquot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
nil' :: n__s':n__from':cons':0':nil':n__zWquot'
n__zWquot' :: n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot' → n__s':n__from':cons':0':nil':n__zWquot'
_hole_n__s':n__from':cons':0':nil':n__zWquot'1 :: n__s':n__from':cons':0':nil':n__zWquot'
_gen_n__s':n__from':cons':0':nil':n__zWquot'2 :: Nat → n__s':n__from':cons':0':nil':n__zWquot'
Generator Equations:
_gen_n__s':n__from':cons':0':nil':n__zWquot'2(0) ⇔ 0'
_gen_n__s':n__from':cons':0':nil':n__zWquot'2(+(x, 1)) ⇔ cons'(0', _gen_n__s':n__from':cons':0':nil':n__zWquot'2(x))
No more defined symbols left to analyse.