Tool CaT
stdout:
MAYBE
Problem:
plus(x,y) -> ifPlus(isZero(x),x,inc(y))
ifPlus(true(),x,y) -> p(y)
ifPlus(false(),x,y) -> plus(p(x),y)
times(x,y) -> timesIter(0(),x,y,0())
timesIter(i,x,y,z) -> ifTimes(ge(i,x),i,x,y,z)
ifTimes(true(),i,x,y,z) -> z
ifTimes(false(),i,x,y,z) -> timesIter(inc(i),x,y,plus(z,y))
isZero(0()) -> true()
isZero(s(0())) -> false()
isZero(s(s(x))) -> isZero(s(x))
inc(0()) -> s(0())
inc(s(x)) -> s(inc(x))
inc(x) -> s(x)
p(0()) -> 0()
p(s(x)) -> x
p(s(s(x))) -> s(p(s(x)))
ge(x,0()) -> true()
ge(0(),s(y)) -> false()
ge(s(x),s(y)) -> ge(x,y)
f0(0(),y,x) -> f1(x,y,x)
f1(x,y,z) -> f2(x,y,z)
f2(x,1(),z) -> f0(x,z,z)
f0(x,y,z) -> d()
f1(x,y,z) -> c()
Proof:
OpenTool IRC1
stdout:
MAYBE
Tool IRC2
stdout:
MAYBE
'Fastest (timeout of 60.0 seconds)'
-----------------------------------
Answer: MAYBE
Input Problem: innermost runtime-complexity with respect to
Rules:
{ plus(x, y) -> ifPlus(isZero(x), x, inc(y))
, ifPlus(true(), x, y) -> p(y)
, ifPlus(false(), x, y) -> plus(p(x), y)
, times(x, y) -> timesIter(0(), x, y, 0())
, timesIter(i, x, y, z) -> ifTimes(ge(i, x), i, x, y, z)
, ifTimes(true(), i, x, y, z) -> z
, ifTimes(false(), i, x, y, z) ->
timesIter(inc(i), x, y, plus(z, y))
, isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))
, ge(x, 0()) -> true()
, ge(0(), s(y)) -> false()
, ge(s(x), s(y)) -> ge(x, y)
, f0(0(), y, x) -> f1(x, y, x)
, f1(x, y, z) -> f2(x, y, z)
, f2(x, 1(), z) -> f0(x, z, z)
, f0(x, y, z) -> d()
, f1(x, y, z) -> c()}
Proof Output:
None of the processors succeeded.
Details of failed attempt(s):
-----------------------------
1) 'wdg' failed due to the following reason:
Transformation Details:
-----------------------
We have computed the following set of weak (innermost) dependency pairs:
{ 1: plus^#(x, y) -> c_0(ifPlus^#(isZero(x), x, inc(y)))
, 2: ifPlus^#(true(), x, y) -> c_1(p^#(y))
, 3: ifPlus^#(false(), x, y) -> c_2(plus^#(p(x), y))
, 4: times^#(x, y) -> c_3(timesIter^#(0(), x, y, 0()))
, 5: timesIter^#(i, x, y, z) ->
c_4(ifTimes^#(ge(i, x), i, x, y, z))
, 6: ifTimes^#(true(), i, x, y, z) -> c_5()
, 7: ifTimes^#(false(), i, x, y, z) ->
c_6(timesIter^#(inc(i), x, y, plus(z, y)))
, 8: isZero^#(0()) -> c_7()
, 9: isZero^#(s(0())) -> c_8()
, 10: isZero^#(s(s(x))) -> c_9(isZero^#(s(x)))
, 11: inc^#(0()) -> c_10()
, 12: inc^#(s(x)) -> c_11(inc^#(x))
, 13: inc^#(x) -> c_12()
, 14: p^#(0()) -> c_13()
, 15: p^#(s(x)) -> c_14()
, 16: p^#(s(s(x))) -> c_15(p^#(s(x)))
, 17: ge^#(x, 0()) -> c_16()
, 18: ge^#(0(), s(y)) -> c_17()
, 19: ge^#(s(x), s(y)) -> c_18(ge^#(x, y))
, 20: f0^#(0(), y, x) -> c_19(f1^#(x, y, x))
, 21: f1^#(x, y, z) -> c_20(f2^#(x, y, z))
, 22: f2^#(x, 1(), z) -> c_21(f0^#(x, z, z))
, 23: f0^#(x, y, z) -> c_22()
, 24: f1^#(x, y, z) -> c_23()}
Following Dependency Graph (modulo SCCs) was computed. (Answers to
subproofs are indicated to the right.)
->{20,22,21} [ MAYBE ]
|
|->{23} [ NA ]
|
`->{24} [ NA ]
->{19} [ YES(?,O(n^1)) ]
|
|->{17} [ YES(?,O(n^3)) ]
|
`->{18} [ YES(?,O(n^2)) ]
->{12} [ YES(?,O(n^2)) ]
|
|->{11} [ YES(?,O(n^2)) ]
|
`->{13} [ YES(?,O(n^2)) ]
->{10} [ NA ]
|
`->{9} [ NA ]
->{8} [ YES(?,O(1)) ]
->{4} [ inherited ]
|
`->{5,7} [ inherited ]
|
`->{6} [ NA ]
->{1,3} [ NA ]
|
`->{2} [ NA ]
|
|->{14} [ NA ]
|
|->{15} [ NA ]
|
`->{16} [ NA ]
|
`->{15} [ NA ]
Sub-problems:
-------------
* Path {1,3}: NA
--------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weight gap principle does not apply:
The input cannot be shown compatible
Complexity induced by the adequate RMI: MAYBE
We have not generated a proof for the resulting sub-problem.
* Path {1,3}->{2}: NA
-------------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {1}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {1}, Uargs(c_0) = {1}, Uargs(ifPlus^#) = {1, 3},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {1},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
ifPlus(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
isZero(x1) = [0 1 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc(x1) = [2 2 2] x1 + [3]
[0 1 3] [1]
[0 0 1] [2]
true() = [0]
[0]
[0]
p(x1) = [3 3 2] x1 + [2]
[0 3 3] [1]
[0 0 2] [0]
false() = [1]
[0]
[0]
times(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
0() = [2]
[1]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
ge(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
s(x1) = [1 2 2] x1 + [2]
[0 1 3] [1]
[0 0 1] [2]
f0(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f1(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f2(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
1() = [0]
[0]
[0]
d() = [0]
[0]
[0]
c() = [0]
[0]
[0]
plus^#(x1, x2) = [3 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_0(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
ifPlus^#(x1, x2, x3) = [3 0 0] x1 + [3 3 3] x2 + [3 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_1(x1) = [0 0 3] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
p^#(x1) = [3 3 3] x1 + [0]
[3 3 3] [0]
[1 1 1] [0]
c_2(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
times^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_3(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_4(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_5() = [0]
[0]
[0]
c_6(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
isZero^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_7() = [0]
[0]
[0]
c_8() = [0]
[0]
[0]
c_9(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_10() = [0]
[0]
[0]
c_11(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_12() = [0]
[0]
[0]
c_13() = [0]
[0]
[0]
c_14() = [0]
[0]
[0]
c_15(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ge^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_16() = [0]
[0]
[0]
c_17() = [0]
[0]
[0]
c_18(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_19(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f1^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_20(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f2^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_21(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_22() = [0]
[0]
[0]
c_23() = [0]
[0]
[0]
Complexity induced by the adequate RMI: YES(?,O(n^3))
We have not generated a proof for the resulting sub-problem.
* Path {1,3}->{2}->{14}: NA
-------------------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {1}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {1}, Uargs(c_0) = {1}, Uargs(ifPlus^#) = {1, 3},
Uargs(c_1) = {1}, Uargs(p^#) = {}, Uargs(c_2) = {1},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
ifPlus(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
isZero(x1) = [0 1 0] x1 + [0]
[0 1 0] [0]
[0 3 3] [2]
inc(x1) = [1 0 1] x1 + [1]
[3 1 2] [0]
[0 0 1] [1]
true() = [0]
[1]
[0]
p(x1) = [2 0 2] x1 + [0]
[0 2 0] [0]
[0 0 1] [0]
false() = [1]
[0]
[0]
times(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
0() = [2]
[1]
[1]
ifTimes(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
ge(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
s(x1) = [1 0 0] x1 + [0]
[0 1 1] [0]
[0 0 1] [1]
f0(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f1(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f2(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
1() = [0]
[0]
[0]
d() = [0]
[0]
[0]
c() = [0]
[0]
[0]
plus^#(x1, x2) = [3 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_0(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
ifPlus^#(x1, x2, x3) = [3 0 0] x1 + [0 0 0] x2 + [3 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_1(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
p^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_2(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
times^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_3(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_4(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_5() = [0]
[0]
[0]
c_6(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
isZero^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_7() = [0]
[0]
[0]
c_8() = [0]
[0]
[0]
c_9(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_10() = [0]
[0]
[0]
c_11(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_12() = [0]
[0]
[0]
c_13() = [0]
[0]
[0]
c_14() = [0]
[0]
[0]
c_15(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ge^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_16() = [0]
[0]
[0]
c_17() = [0]
[0]
[0]
c_18(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_19(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f1^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_20(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f2^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_21(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_22() = [0]
[0]
[0]
c_23() = [0]
[0]
[0]
Complexity induced by the adequate RMI: YES(?,O(n^3))
We have not generated a proof for the resulting sub-problem.
* Path {1,3}->{2}->{15}: NA
-------------------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {1}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {1}, Uargs(c_0) = {1}, Uargs(ifPlus^#) = {1, 3},
Uargs(c_1) = {1}, Uargs(p^#) = {}, Uargs(c_2) = {1},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
ifPlus(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
isZero(x1) = [0 1 0] x1 + [0]
[0 1 0] [0]
[0 3 3] [2]
inc(x1) = [1 0 1] x1 + [1]
[3 1 2] [0]
[0 0 1] [1]
true() = [0]
[1]
[0]
p(x1) = [2 0 2] x1 + [0]
[0 2 0] [0]
[0 0 1] [0]
false() = [1]
[0]
[0]
times(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
0() = [2]
[1]
[1]
ifTimes(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
ge(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
s(x1) = [1 0 0] x1 + [0]
[0 1 1] [0]
[0 0 1] [1]
f0(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f1(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f2(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
1() = [0]
[0]
[0]
d() = [0]
[0]
[0]
c() = [0]
[0]
[0]
plus^#(x1, x2) = [3 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_0(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
ifPlus^#(x1, x2, x3) = [3 0 0] x1 + [0 0 0] x2 + [3 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_1(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
p^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_2(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
times^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_3(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_4(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_5() = [0]
[0]
[0]
c_6(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
isZero^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_7() = [0]
[0]
[0]
c_8() = [0]
[0]
[0]
c_9(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_10() = [0]
[0]
[0]
c_11(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_12() = [0]
[0]
[0]
c_13() = [0]
[0]
[0]
c_14() = [0]
[0]
[0]
c_15(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ge^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_16() = [0]
[0]
[0]
c_17() = [0]
[0]
[0]
c_18(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_19(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f1^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_20(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f2^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_21(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_22() = [0]
[0]
[0]
c_23() = [0]
[0]
[0]
Complexity induced by the adequate RMI: YES(?,O(n^3))
We have not generated a proof for the resulting sub-problem.
* Path {1,3}->{2}->{16}: NA
-------------------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {1}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {1}, Uargs(c_0) = {1}, Uargs(ifPlus^#) = {1, 3},
Uargs(c_1) = {1}, Uargs(p^#) = {}, Uargs(c_2) = {1},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {1}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
ifPlus(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
isZero(x1) = [0 0 2] x1 + [0]
[0 1 0] [0]
[0 1 0] [0]
inc(x1) = [2 0 1] x1 + [2]
[0 1 2] [0]
[0 0 1] [2]
true() = [1]
[0]
[0]
p(x1) = [1 0 2] x1 + [0]
[0 1 0] [0]
[0 0 2] [0]
false() = [1]
[0]
[0]
times(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
0() = [0]
[0]
[2]
ifTimes(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
ge(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
s(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [2]
f0(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f1(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f2(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
1() = [0]
[0]
[0]
d() = [0]
[0]
[0]
c() = [0]
[0]
[0]
plus^#(x1, x2) = [3 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_0(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
ifPlus^#(x1, x2, x3) = [3 0 0] x1 + [0 0 0] x2 + [3 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_1(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
p^#(x1) = [0 0 0] x1 + [0]
[3 3 3] [0]
[3 3 3] [0]
c_2(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
times^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_3(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_4(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_5() = [0]
[0]
[0]
c_6(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
isZero^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_7() = [0]
[0]
[0]
c_8() = [0]
[0]
[0]
c_9(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_10() = [0]
[0]
[0]
c_11(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_12() = [0]
[0]
[0]
c_13() = [0]
[0]
[0]
c_14() = [0]
[0]
[0]
c_15(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
ge^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_16() = [0]
[0]
[0]
c_17() = [0]
[0]
[0]
c_18(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_19(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f1^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_20(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f2^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_21(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_22() = [0]
[0]
[0]
c_23() = [0]
[0]
[0]
Complexity induced by the adequate RMI: YES(?,O(n^1))
We have not generated a proof for the resulting sub-problem.
* Path {1,3}->{2}->{16}->{15}: NA
-------------------------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {1}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {1}, Uargs(c_0) = {1}, Uargs(ifPlus^#) = {1, 3},
Uargs(c_1) = {1}, Uargs(p^#) = {}, Uargs(c_2) = {1},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {1}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
ifPlus(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
isZero(x1) = [0 0 1] x1 + [2]
[0 1 0] [0]
[0 1 0] [0]
inc(x1) = [2 0 2] x1 + [1]
[0 2 0] [2]
[0 0 2] [3]
true() = [1]
[0]
[0]
p(x1) = [2 2 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [2]
false() = [0]
[0]
[0]
times(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
0() = [2]
[0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
ge(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
s(x1) = [1 0 0] x1 + [0]
[0 1 0] [2]
[0 0 1] [1]
f0(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f1(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f2(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
1() = [0]
[0]
[0]
d() = [0]
[0]
[0]
c() = [0]
[0]
[0]
plus^#(x1, x2) = [3 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_0(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
ifPlus^#(x1, x2, x3) = [3 0 0] x1 + [0 0 0] x2 + [3 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_1(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
p^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_2(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
times^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_3(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_4(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_5() = [0]
[0]
[0]
c_6(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
isZero^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_7() = [0]
[0]
[0]
c_8() = [0]
[0]
[0]
c_9(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_10() = [0]
[0]
[0]
c_11(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_12() = [0]
[0]
[0]
c_13() = [0]
[0]
[0]
c_14() = [0]
[0]
[0]
c_15(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
ge^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_16() = [0]
[0]
[0]
c_17() = [0]
[0]
[0]
c_18(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_19(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f1^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_20(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f2^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_21(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_22() = [0]
[0]
[0]
c_23() = [0]
[0]
[0]
Complexity induced by the adequate RMI: YES(?,O(n^1))
We have not generated a proof for the resulting sub-problem.
* Path {4}: inherited
-------------------
This path is subsumed by the proof of path {4}->{5,7}->{6}.
* Path {4}->{5,7}: inherited
--------------------------
This path is subsumed by the proof of path {4}->{5,7}->{6}.
* Path {4}->{5,7}->{6}: NA
------------------------
The usable rules for this path are:
{ plus(x, y) -> ifPlus(isZero(x), x, inc(y))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, ge(x, 0()) -> true()
, ge(0(), s(y)) -> false()
, ge(s(x), s(y)) -> ge(x, y)
, ifPlus(true(), x, y) -> p(y)
, ifPlus(false(), x, y) -> plus(p(x), y)
, isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weight gap principle does not apply:
The input cannot be shown compatible
Complexity induced by the adequate RMI: MAYBE
We have not generated a proof for the resulting sub-problem.
* Path {8}: YES(?,O(1))
---------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
ifPlus(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
isZero(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
true() = [0]
[0]
[0]
p(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
false() = [0]
[0]
[0]
times(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
0() = [0]
[0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
ge(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
s(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f1(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f2(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
1() = [0]
[0]
[0]
d() = [0]
[0]
[0]
c() = [0]
[0]
[0]
plus^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_0(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_1(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
p^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_2(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
times^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_3(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_4(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_5() = [0]
[0]
[0]
c_6(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
isZero^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_7() = [0]
[0]
[0]
c_8() = [0]
[0]
[0]
c_9(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_10() = [0]
[0]
[0]
c_11(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_12() = [0]
[0]
[0]
c_13() = [0]
[0]
[0]
c_14() = [0]
[0]
[0]
c_15(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ge^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_16() = [0]
[0]
[0]
c_17() = [0]
[0]
[0]
c_18(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_19(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f1^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_20(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f2^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_21(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_22() = [0]
[0]
[0]
c_23() = [0]
[0]
[0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 3'
--------------------------------------
Answer: YES(?,O(1))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {isZero^#(0()) -> c_7()}
Weak Rules: {}
Proof Output:
The following argument positions are usable:
Uargs(isZero^#) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
0() = [2]
[2]
[2]
isZero^#(x1) = [0 2 0] x1 + [7]
[2 2 0] [3]
[2 2 2] [3]
c_7() = [0]
[1]
[1]
* Path {10}: NA
-------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {1}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
ifPlus(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
isZero(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
true() = [0]
[0]
[0]
p(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
false() = [0]
[0]
[0]
times(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
0() = [0]
[0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
ge(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
s(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f1(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f2(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
1() = [0]
[0]
[0]
d() = [0]
[0]
[0]
c() = [0]
[0]
[0]
plus^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_0(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_1(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
p^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_2(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
times^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_3(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_4(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_5() = [0]
[0]
[0]
c_6(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
isZero^#(x1) = [0 0 0] x1 + [0]
[3 3 3] [0]
[3 3 3] [0]
c_7() = [0]
[0]
[0]
c_8() = [0]
[0]
[0]
c_9(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
inc^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_10() = [0]
[0]
[0]
c_11(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_12() = [0]
[0]
[0]
c_13() = [0]
[0]
[0]
c_14() = [0]
[0]
[0]
c_15(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ge^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_16() = [0]
[0]
[0]
c_17() = [0]
[0]
[0]
c_18(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_19(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f1^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_20(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f2^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_21(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_22() = [0]
[0]
[0]
c_23() = [0]
[0]
[0]
We have not generated a proof for the resulting sub-problem.
* Path {10}->{9}: NA
------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {1}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
ifPlus(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
isZero(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
true() = [0]
[0]
[0]
p(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
false() = [0]
[0]
[0]
times(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
0() = [0]
[0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
ge(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
s(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f1(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f2(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
1() = [0]
[0]
[0]
d() = [0]
[0]
[0]
c() = [0]
[0]
[0]
plus^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_0(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_1(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
p^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_2(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
times^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_3(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_4(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_5() = [0]
[0]
[0]
c_6(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
isZero^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_7() = [0]
[0]
[0]
c_8() = [0]
[0]
[0]
c_9(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
inc^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_10() = [0]
[0]
[0]
c_11(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_12() = [0]
[0]
[0]
c_13() = [0]
[0]
[0]
c_14() = [0]
[0]
[0]
c_15(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ge^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_16() = [0]
[0]
[0]
c_17() = [0]
[0]
[0]
c_18(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_19(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f1^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_20(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f2^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_21(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_22() = [0]
[0]
[0]
c_23() = [0]
[0]
[0]
We have not generated a proof for the resulting sub-problem.
* Path {12}: YES(?,O(n^2))
------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {1}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
ifPlus(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
isZero(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
true() = [0]
[0]
[0]
p(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
false() = [0]
[0]
[0]
times(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
0() = [0]
[0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
ge(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
s(x1) = [1 3 0] x1 + [0]
[0 1 0] [0]
[0 0 0] [0]
f0(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f1(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f2(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
1() = [0]
[0]
[0]
d() = [0]
[0]
[0]
c() = [0]
[0]
[0]
plus^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_0(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_1(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
p^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_2(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
times^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_3(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_4(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_5() = [0]
[0]
[0]
c_6(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
isZero^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_7() = [0]
[0]
[0]
c_8() = [0]
[0]
[0]
c_9(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc^#(x1) = [0 0 0] x1 + [0]
[3 3 3] [0]
[3 3 3] [0]
c_10() = [0]
[0]
[0]
c_11(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
c_12() = [0]
[0]
[0]
c_13() = [0]
[0]
[0]
c_14() = [0]
[0]
[0]
c_15(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ge^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_16() = [0]
[0]
[0]
c_17() = [0]
[0]
[0]
c_18(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_19(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f1^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_20(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f2^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_21(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_22() = [0]
[0]
[0]
c_23() = [0]
[0]
[0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 3'
--------------------------------------
Answer: YES(?,O(n^2))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {inc^#(s(x)) -> c_11(inc^#(x))}
Weak Rules: {}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(inc^#) = {}, Uargs(c_11) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
s(x1) = [1 2 2] x1 + [2]
[0 1 2] [2]
[0 0 0] [0]
inc^#(x1) = [0 1 0] x1 + [2]
[6 0 0] [0]
[2 3 0] [2]
c_11(x1) = [1 0 0] x1 + [1]
[2 0 2] [0]
[0 0 0] [0]
* Path {12}->{11}: YES(?,O(n^2))
------------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {1}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
ifPlus(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
isZero(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
true() = [0]
[0]
[0]
p(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
false() = [0]
[0]
[0]
times(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
0() = [0]
[0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
ge(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
s(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f1(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f2(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
1() = [0]
[0]
[0]
d() = [0]
[0]
[0]
c() = [0]
[0]
[0]
plus^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_0(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_1(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
p^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_2(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
times^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_3(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_4(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_5() = [0]
[0]
[0]
c_6(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
isZero^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_7() = [0]
[0]
[0]
c_8() = [0]
[0]
[0]
c_9(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_10() = [0]
[0]
[0]
c_11(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
c_12() = [0]
[0]
[0]
c_13() = [0]
[0]
[0]
c_14() = [0]
[0]
[0]
c_15(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ge^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_16() = [0]
[0]
[0]
c_17() = [0]
[0]
[0]
c_18(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_19(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f1^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_20(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f2^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_21(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_22() = [0]
[0]
[0]
c_23() = [0]
[0]
[0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 3'
--------------------------------------
Answer: YES(?,O(n^2))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {inc^#(0()) -> c_10()}
Weak Rules: {inc^#(s(x)) -> c_11(inc^#(x))}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(inc^#) = {}, Uargs(c_11) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
0() = [2]
[2]
[2]
s(x1) = [1 1 0] x1 + [0]
[0 1 1] [1]
[0 0 0] [0]
inc^#(x1) = [2 2 2] x1 + [0]
[0 6 0] [0]
[0 0 2] [0]
c_10() = [1]
[0]
[0]
c_11(x1) = [1 0 0] x1 + [2]
[0 0 0] [3]
[0 0 0] [0]
* Path {12}->{13}: YES(?,O(n^2))
------------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {1}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
ifPlus(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
isZero(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
true() = [0]
[0]
[0]
p(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
false() = [0]
[0]
[0]
times(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
0() = [0]
[0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
ge(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
s(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f1(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f2(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
1() = [0]
[0]
[0]
d() = [0]
[0]
[0]
c() = [0]
[0]
[0]
plus^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_0(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_1(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
p^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_2(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
times^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_3(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_4(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_5() = [0]
[0]
[0]
c_6(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
isZero^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_7() = [0]
[0]
[0]
c_8() = [0]
[0]
[0]
c_9(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_10() = [0]
[0]
[0]
c_11(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
c_12() = [0]
[0]
[0]
c_13() = [0]
[0]
[0]
c_14() = [0]
[0]
[0]
c_15(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ge^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_16() = [0]
[0]
[0]
c_17() = [0]
[0]
[0]
c_18(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_19(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f1^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_20(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f2^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_21(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_22() = [0]
[0]
[0]
c_23() = [0]
[0]
[0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 3'
--------------------------------------
Answer: YES(?,O(n^2))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {inc^#(x) -> c_12()}
Weak Rules: {inc^#(s(x)) -> c_11(inc^#(x))}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(inc^#) = {}, Uargs(c_11) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
s(x1) = [1 2 2] x1 + [2]
[0 1 2] [0]
[0 0 0] [3]
inc^#(x1) = [0 1 2] x1 + [2]
[2 2 2] [0]
[3 3 1] [0]
c_11(x1) = [1 0 0] x1 + [5]
[2 0 0] [3]
[3 1 0] [0]
c_12() = [1]
[0]
[0]
* Path {19}: YES(?,O(n^1))
------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {1}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
ifPlus(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
isZero(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
true() = [0]
[0]
[0]
p(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
false() = [0]
[0]
[0]
times(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
0() = [0]
[0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
ge(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
s(x1) = [1 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f1(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f2(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
1() = [0]
[0]
[0]
d() = [0]
[0]
[0]
c() = [0]
[0]
[0]
plus^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_0(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_1(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
p^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_2(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
times^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_3(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_4(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_5() = [0]
[0]
[0]
c_6(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
isZero^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_7() = [0]
[0]
[0]
c_8() = [0]
[0]
[0]
c_9(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_10() = [0]
[0]
[0]
c_11(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_12() = [0]
[0]
[0]
c_13() = [0]
[0]
[0]
c_14() = [0]
[0]
[0]
c_15(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ge^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[3 3 3] [3 3 3] [0]
[3 3 3] [3 3 3] [0]
c_16() = [0]
[0]
[0]
c_17() = [0]
[0]
[0]
c_18(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
f0^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_19(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f1^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_20(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f2^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_21(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_22() = [0]
[0]
[0]
c_23() = [0]
[0]
[0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 3'
--------------------------------------
Answer: YES(?,O(n^1))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {ge^#(s(x), s(y)) -> c_18(ge^#(x, y))}
Weak Rules: {}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(ge^#) = {}, Uargs(c_18) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
s(x1) = [1 1 0] x1 + [2]
[0 0 2] [2]
[0 0 0] [0]
ge^#(x1, x2) = [1 0 0] x1 + [5 0 0] x2 + [0]
[2 2 0] [0 2 0] [0]
[4 0 0] [0 2 0] [0]
c_18(x1) = [1 0 0] x1 + [7]
[0 0 0] [7]
[0 0 0] [7]
* Path {19}->{17}: YES(?,O(n^3))
------------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {1}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
ifPlus(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
isZero(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
true() = [0]
[0]
[0]
p(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
false() = [0]
[0]
[0]
times(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
0() = [0]
[0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
ge(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
s(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f1(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f2(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
1() = [0]
[0]
[0]
d() = [0]
[0]
[0]
c() = [0]
[0]
[0]
plus^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_0(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_1(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
p^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_2(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
times^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_3(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_4(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_5() = [0]
[0]
[0]
c_6(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
isZero^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_7() = [0]
[0]
[0]
c_8() = [0]
[0]
[0]
c_9(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_10() = [0]
[0]
[0]
c_11(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_12() = [0]
[0]
[0]
c_13() = [0]
[0]
[0]
c_14() = [0]
[0]
[0]
c_15(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ge^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_16() = [0]
[0]
[0]
c_17() = [0]
[0]
[0]
c_18(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
f0^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_19(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f1^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_20(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f2^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_21(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_22() = [0]
[0]
[0]
c_23() = [0]
[0]
[0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 3'
--------------------------------------
Answer: YES(?,O(n^3))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {ge^#(x, 0()) -> c_16()}
Weak Rules: {ge^#(s(x), s(y)) -> c_18(ge^#(x, y))}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(ge^#) = {}, Uargs(c_18) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
0() = [2]
[2]
[2]
s(x1) = [1 2 0] x1 + [2]
[0 1 3] [2]
[0 0 1] [2]
ge^#(x1, x2) = [0 0 0] x1 + [0 2 2] x2 + [0]
[0 0 2] [2 2 0] [0]
[0 0 0] [0 2 2] [0]
c_16() = [1]
[0]
[0]
c_18(x1) = [1 0 0] x1 + [3]
[0 0 0] [0]
[0 0 0] [7]
* Path {19}->{18}: YES(?,O(n^2))
------------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {1}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
ifPlus(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
isZero(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
true() = [0]
[0]
[0]
p(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
false() = [0]
[0]
[0]
times(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
0() = [0]
[0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
ge(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
s(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f1(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f2(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
1() = [0]
[0]
[0]
d() = [0]
[0]
[0]
c() = [0]
[0]
[0]
plus^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_0(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_1(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
p^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_2(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
times^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_3(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_4(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_5() = [0]
[0]
[0]
c_6(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
isZero^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_7() = [0]
[0]
[0]
c_8() = [0]
[0]
[0]
c_9(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_10() = [0]
[0]
[0]
c_11(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_12() = [0]
[0]
[0]
c_13() = [0]
[0]
[0]
c_14() = [0]
[0]
[0]
c_15(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ge^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_16() = [0]
[0]
[0]
c_17() = [0]
[0]
[0]
c_18(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
f0^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_19(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f1^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_20(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f2^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_21(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_22() = [0]
[0]
[0]
c_23() = [0]
[0]
[0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 3'
--------------------------------------
Answer: YES(?,O(n^2))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {ge^#(0(), s(y)) -> c_17()}
Weak Rules: {ge^#(s(x), s(y)) -> c_18(ge^#(x, y))}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(ge^#) = {}, Uargs(c_18) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
0() = [0]
[2]
[0]
s(x1) = [1 1 2] x1 + [0]
[0 1 0] [2]
[0 0 0] [0]
ge^#(x1, x2) = [0 2 0] x1 + [1 0 2] x2 + [0]
[7 1 0] [4 0 0] [0]
[4 2 0] [4 0 0] [0]
c_17() = [1]
[0]
[0]
c_18(x1) = [1 0 0] x1 + [3]
[2 0 0] [2]
[0 0 0] [2]
* Path {20,22,21}: MAYBE
----------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {1},
Uargs(f1^#) = {}, Uargs(c_20) = {1}, Uargs(f2^#) = {},
Uargs(c_21) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
ifPlus(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
isZero(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
true() = [0]
[0]
[0]
p(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
false() = [0]
[0]
[0]
times(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
0() = [0]
[0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
ge(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
s(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f1(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f2(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
1() = [0]
[0]
[0]
d() = [0]
[0]
[0]
c() = [0]
[0]
[0]
plus^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_0(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_1(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
p^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_2(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
times^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_3(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_4(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_5() = [0]
[0]
[0]
c_6(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
isZero^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_7() = [0]
[0]
[0]
c_8() = [0]
[0]
[0]
c_9(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_10() = [0]
[0]
[0]
c_11(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_12() = [0]
[0]
[0]
c_13() = [0]
[0]
[0]
c_14() = [0]
[0]
[0]
c_15(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ge^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_16() = [0]
[0]
[0]
c_17() = [0]
[0]
[0]
c_18(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [3 3 3] x3 + [0]
[3 3 3] [3 3 3] [3 3 3] [0]
[3 3 3] [3 3 3] [3 3 3] [0]
c_19(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
f1^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [3 3 3] x3 + [0]
[3 3 3] [3 3 3] [3 3 3] [0]
[3 3 3] [3 3 3] [3 3 3] [0]
c_20(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
f2^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [3 3 3] x3 + [0]
[3 3 3] [3 3 3] [3 3 3] [0]
[3 3 3] [3 3 3] [3 3 3] [0]
c_21(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
c_22() = [0]
[0]
[0]
c_23() = [0]
[0]
[0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 3'
--------------------------------------
Answer: MAYBE
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules:
{ f0^#(0(), y, x) -> c_19(f1^#(x, y, x))
, f2^#(x, 1(), z) -> c_21(f0^#(x, z, z))
, f1^#(x, y, z) -> c_20(f2^#(x, y, z))}
Weak Rules: {}
Proof Output:
The input cannot be shown compatible
* Path {20,22,21}->{23}: NA
-------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {1},
Uargs(f1^#) = {}, Uargs(c_20) = {1}, Uargs(f2^#) = {},
Uargs(c_21) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
ifPlus(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
isZero(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
true() = [0]
[0]
[0]
p(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
false() = [0]
[0]
[0]
times(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
0() = [0]
[0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
ge(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
s(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f1(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f2(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
1() = [0]
[0]
[0]
d() = [0]
[0]
[0]
c() = [0]
[0]
[0]
plus^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_0(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_1(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
p^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_2(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
times^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_3(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_4(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_5() = [0]
[0]
[0]
c_6(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
isZero^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_7() = [0]
[0]
[0]
c_8() = [0]
[0]
[0]
c_9(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_10() = [0]
[0]
[0]
c_11(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_12() = [0]
[0]
[0]
c_13() = [0]
[0]
[0]
c_14() = [0]
[0]
[0]
c_15(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ge^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_16() = [0]
[0]
[0]
c_17() = [0]
[0]
[0]
c_18(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_19(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
f1^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_20(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
f2^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_21(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
c_22() = [0]
[0]
[0]
c_23() = [0]
[0]
[0]
We have not generated a proof for the resulting sub-problem.
* Path {20,22,21}->{24}: NA
-------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {1},
Uargs(f1^#) = {}, Uargs(c_20) = {1}, Uargs(f2^#) = {},
Uargs(c_21) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
ifPlus(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
isZero(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
true() = [0]
[0]
[0]
p(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
false() = [0]
[0]
[0]
times(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
0() = [0]
[0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
ge(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
s(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f1(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
f2(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
1() = [0]
[0]
[0]
d() = [0]
[0]
[0]
c() = [0]
[0]
[0]
plus^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_0(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_1(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
p^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_2(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
times^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_3(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_4(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0 0 0] x4 + [0 0 0] x5 + [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0]
c_5() = [0]
[0]
[0]
c_6(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
isZero^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_7() = [0]
[0]
[0]
c_8() = [0]
[0]
[0]
c_9(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
inc^#(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_10() = [0]
[0]
[0]
c_11(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
c_12() = [0]
[0]
[0]
c_13() = [0]
[0]
[0]
c_14() = [0]
[0]
[0]
c_15(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
ge^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
[0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0]
c_16() = [0]
[0]
[0]
c_17() = [0]
[0]
[0]
c_18(x1) = [0 0 0] x1 + [0]
[0 0 0] [0]
[0 0 0] [0]
f0^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_19(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
f1^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_20(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
f2^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
[0 0 0] [0 0 0] [0 0 0] [0]
[0 0 0] [0 0 0] [0 0 0] [0]
c_21(x1) = [1 0 0] x1 + [0]
[0 1 0] [0]
[0 0 1] [0]
c_22() = [0]
[0]
[0]
c_23() = [0]
[0]
[0]
We have not generated a proof for the resulting sub-problem.
2) 'wdg' failed due to the following reason:
Transformation Details:
-----------------------
We have computed the following set of weak (innermost) dependency pairs:
{ 1: plus^#(x, y) -> c_0(ifPlus^#(isZero(x), x, inc(y)))
, 2: ifPlus^#(true(), x, y) -> c_1(p^#(y))
, 3: ifPlus^#(false(), x, y) -> c_2(plus^#(p(x), y))
, 4: times^#(x, y) -> c_3(timesIter^#(0(), x, y, 0()))
, 5: timesIter^#(i, x, y, z) ->
c_4(ifTimes^#(ge(i, x), i, x, y, z))
, 6: ifTimes^#(true(), i, x, y, z) -> c_5()
, 7: ifTimes^#(false(), i, x, y, z) ->
c_6(timesIter^#(inc(i), x, y, plus(z, y)))
, 8: isZero^#(0()) -> c_7()
, 9: isZero^#(s(0())) -> c_8()
, 10: isZero^#(s(s(x))) -> c_9(isZero^#(s(x)))
, 11: inc^#(0()) -> c_10()
, 12: inc^#(s(x)) -> c_11(inc^#(x))
, 13: inc^#(x) -> c_12()
, 14: p^#(0()) -> c_13()
, 15: p^#(s(x)) -> c_14()
, 16: p^#(s(s(x))) -> c_15(p^#(s(x)))
, 17: ge^#(x, 0()) -> c_16()
, 18: ge^#(0(), s(y)) -> c_17()
, 19: ge^#(s(x), s(y)) -> c_18(ge^#(x, y))
, 20: f0^#(0(), y, x) -> c_19(f1^#(x, y, x))
, 21: f1^#(x, y, z) -> c_20(f2^#(x, y, z))
, 22: f2^#(x, 1(), z) -> c_21(f0^#(x, z, z))
, 23: f0^#(x, y, z) -> c_22()
, 24: f1^#(x, y, z) -> c_23()}
Following Dependency Graph (modulo SCCs) was computed. (Answers to
subproofs are indicated to the right.)
->{20,22,21} [ MAYBE ]
|
|->{23} [ NA ]
|
`->{24} [ NA ]
->{19} [ YES(?,O(n^2)) ]
|
|->{17} [ YES(?,O(n^2)) ]
|
`->{18} [ YES(?,O(n^2)) ]
->{12} [ YES(?,O(n^1)) ]
|
|->{11} [ YES(?,O(n^1)) ]
|
`->{13} [ YES(?,O(n^1)) ]
->{10} [ YES(?,O(n^1)) ]
|
`->{9} [ NA ]
->{8} [ YES(?,O(1)) ]
->{4} [ inherited ]
|
`->{5,7} [ inherited ]
|
`->{6} [ NA ]
->{1,3} [ NA ]
|
`->{2} [ NA ]
|
|->{14} [ NA ]
|
|->{15} [ NA ]
|
`->{16} [ NA ]
|
`->{15} [ NA ]
Sub-problems:
-------------
* Path {1,3}: NA
--------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weight gap principle does not apply:
The input cannot be shown compatible
Complexity induced by the adequate RMI: MAYBE
We have not generated a proof for the resulting sub-problem.
* Path {1,3}->{2}: NA
-------------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {1}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {1}, Uargs(c_0) = {1}, Uargs(ifPlus^#) = {1, 3},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {1},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
ifPlus(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
isZero(x1) = [0 1] x1 + [0]
[0 0] [0]
inc(x1) = [2 2] x1 + [1]
[0 2] [2]
true() = [0]
[0]
p(x1) = [1 2] x1 + [0]
[0 1] [3]
false() = [1]
[0]
times(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
0() = [0]
[1]
ifTimes(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
ge(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
s(x1) = [1 0] x1 + [0]
[0 1] [1]
f0(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f1(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f2(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
1() = [0]
[0]
d() = [0]
[0]
c() = [0]
[0]
plus^#(x1, x2) = [3 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_0(x1) = [1 0] x1 + [0]
[0 1] [0]
ifPlus^#(x1, x2, x3) = [3 0] x1 + [3 3] x2 + [3 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_1(x1) = [0 1] x1 + [0]
[0 0] [0]
p^#(x1) = [3 3] x1 + [0]
[3 3] [0]
c_2(x1) = [1 0] x1 + [0]
[0 1] [0]
times^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_3(x1) = [0 0] x1 + [0]
[0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
c_4(x1) = [0 0] x1 + [0]
[0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
c_5() = [0]
[0]
c_6(x1) = [0 0] x1 + [0]
[0 0] [0]
isZero^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_7() = [0]
[0]
c_8() = [0]
[0]
c_9(x1) = [0 0] x1 + [0]
[0 0] [0]
inc^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_10() = [0]
[0]
c_11(x1) = [0 0] x1 + [0]
[0 0] [0]
c_12() = [0]
[0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15(x1) = [0 0] x1 + [0]
[0 0] [0]
ge^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_16() = [0]
[0]
c_17() = [0]
[0]
c_18(x1) = [0 0] x1 + [0]
[0 0] [0]
f0^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_19(x1) = [0 0] x1 + [0]
[0 0] [0]
f1^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_20(x1) = [0 0] x1 + [0]
[0 0] [0]
f2^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_21(x1) = [0 0] x1 + [0]
[0 0] [0]
c_22() = [0]
[0]
c_23() = [0]
[0]
Complexity induced by the adequate RMI: YES(?,O(n^1))
We have not generated a proof for the resulting sub-problem.
* Path {1,3}->{2}->{14}: NA
-------------------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {1}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {1}, Uargs(c_0) = {1}, Uargs(ifPlus^#) = {1, 3},
Uargs(c_1) = {1}, Uargs(p^#) = {}, Uargs(c_2) = {1},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
ifPlus(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
isZero(x1) = [2 0] x1 + [2]
[0 0] [0]
inc(x1) = [3 1] x1 + [3]
[0 3] [1]
true() = [1]
[0]
p(x1) = [2 1] x1 + [0]
[0 1] [0]
false() = [1]
[0]
times(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
0() = [1]
[1]
ifTimes(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
ge(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
s(x1) = [1 1] x1 + [1]
[0 1] [0]
f0(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f1(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f2(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
1() = [0]
[0]
d() = [0]
[0]
c() = [0]
[0]
plus^#(x1, x2) = [3 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_0(x1) = [1 0] x1 + [0]
[0 1] [0]
ifPlus^#(x1, x2, x3) = [3 0] x1 + [0 0] x2 + [3 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_1(x1) = [1 0] x1 + [0]
[0 1] [0]
p^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_2(x1) = [1 0] x1 + [0]
[0 1] [0]
times^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_3(x1) = [0 0] x1 + [0]
[0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
c_4(x1) = [0 0] x1 + [0]
[0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
c_5() = [0]
[0]
c_6(x1) = [0 0] x1 + [0]
[0 0] [0]
isZero^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_7() = [0]
[0]
c_8() = [0]
[0]
c_9(x1) = [0 0] x1 + [0]
[0 0] [0]
inc^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_10() = [0]
[0]
c_11(x1) = [0 0] x1 + [0]
[0 0] [0]
c_12() = [0]
[0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15(x1) = [0 0] x1 + [0]
[0 0] [0]
ge^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_16() = [0]
[0]
c_17() = [0]
[0]
c_18(x1) = [0 0] x1 + [0]
[0 0] [0]
f0^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_19(x1) = [0 0] x1 + [0]
[0 0] [0]
f1^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_20(x1) = [0 0] x1 + [0]
[0 0] [0]
f2^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_21(x1) = [0 0] x1 + [0]
[0 0] [0]
c_22() = [0]
[0]
c_23() = [0]
[0]
Complexity induced by the adequate RMI: YES(?,O(n^2))
We have not generated a proof for the resulting sub-problem.
* Path {1,3}->{2}->{15}: NA
-------------------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {1}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {1}, Uargs(c_0) = {1}, Uargs(ifPlus^#) = {1, 3},
Uargs(c_1) = {1}, Uargs(p^#) = {}, Uargs(c_2) = {1},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
ifPlus(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
isZero(x1) = [2 0] x1 + [2]
[0 0] [0]
inc(x1) = [3 1] x1 + [3]
[0 3] [1]
true() = [1]
[0]
p(x1) = [2 1] x1 + [0]
[0 1] [0]
false() = [1]
[0]
times(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
0() = [1]
[1]
ifTimes(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
ge(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
s(x1) = [1 1] x1 + [1]
[0 1] [0]
f0(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f1(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f2(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
1() = [0]
[0]
d() = [0]
[0]
c() = [0]
[0]
plus^#(x1, x2) = [3 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_0(x1) = [1 0] x1 + [0]
[0 1] [0]
ifPlus^#(x1, x2, x3) = [3 0] x1 + [0 0] x2 + [3 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_1(x1) = [1 0] x1 + [0]
[0 1] [0]
p^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_2(x1) = [1 0] x1 + [0]
[0 1] [0]
times^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_3(x1) = [0 0] x1 + [0]
[0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
c_4(x1) = [0 0] x1 + [0]
[0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
c_5() = [0]
[0]
c_6(x1) = [0 0] x1 + [0]
[0 0] [0]
isZero^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_7() = [0]
[0]
c_8() = [0]
[0]
c_9(x1) = [0 0] x1 + [0]
[0 0] [0]
inc^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_10() = [0]
[0]
c_11(x1) = [0 0] x1 + [0]
[0 0] [0]
c_12() = [0]
[0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15(x1) = [0 0] x1 + [0]
[0 0] [0]
ge^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_16() = [0]
[0]
c_17() = [0]
[0]
c_18(x1) = [0 0] x1 + [0]
[0 0] [0]
f0^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_19(x1) = [0 0] x1 + [0]
[0 0] [0]
f1^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_20(x1) = [0 0] x1 + [0]
[0 0] [0]
f2^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_21(x1) = [0 0] x1 + [0]
[0 0] [0]
c_22() = [0]
[0]
c_23() = [0]
[0]
Complexity induced by the adequate RMI: YES(?,O(n^2))
We have not generated a proof for the resulting sub-problem.
* Path {1,3}->{2}->{16}: NA
-------------------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {1}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {1}, Uargs(c_0) = {1}, Uargs(ifPlus^#) = {1, 3},
Uargs(c_1) = {1}, Uargs(p^#) = {}, Uargs(c_2) = {1},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {1}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
ifPlus(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
isZero(x1) = [2 0] x1 + [0]
[2 0] [0]
inc(x1) = [2 0] x1 + [3]
[0 2] [0]
true() = [1]
[0]
p(x1) = [2 0] x1 + [0]
[0 1] [0]
false() = [1]
[0]
times(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
0() = [2]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
ge(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
s(x1) = [1 0] x1 + [2]
[0 1] [0]
f0(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f1(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f2(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
1() = [0]
[0]
d() = [0]
[0]
c() = [0]
[0]
plus^#(x1, x2) = [3 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_0(x1) = [1 0] x1 + [0]
[0 1] [0]
ifPlus^#(x1, x2, x3) = [3 0] x1 + [0 0] x2 + [3 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_1(x1) = [1 0] x1 + [0]
[0 1] [0]
p^#(x1) = [0 0] x1 + [0]
[3 3] [0]
c_2(x1) = [1 0] x1 + [0]
[0 1] [0]
times^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_3(x1) = [0 0] x1 + [0]
[0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
c_4(x1) = [0 0] x1 + [0]
[0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
c_5() = [0]
[0]
c_6(x1) = [0 0] x1 + [0]
[0 0] [0]
isZero^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_7() = [0]
[0]
c_8() = [0]
[0]
c_9(x1) = [0 0] x1 + [0]
[0 0] [0]
inc^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_10() = [0]
[0]
c_11(x1) = [0 0] x1 + [0]
[0 0] [0]
c_12() = [0]
[0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15(x1) = [1 0] x1 + [0]
[0 1] [0]
ge^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_16() = [0]
[0]
c_17() = [0]
[0]
c_18(x1) = [0 0] x1 + [0]
[0 0] [0]
f0^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_19(x1) = [0 0] x1 + [0]
[0 0] [0]
f1^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_20(x1) = [0 0] x1 + [0]
[0 0] [0]
f2^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_21(x1) = [0 0] x1 + [0]
[0 0] [0]
c_22() = [0]
[0]
c_23() = [0]
[0]
Complexity induced by the adequate RMI: YES(?,O(n^1))
We have not generated a proof for the resulting sub-problem.
* Path {1,3}->{2}->{16}->{15}: NA
-------------------------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {1}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {1}, Uargs(c_0) = {1}, Uargs(ifPlus^#) = {1, 3},
Uargs(c_1) = {1}, Uargs(p^#) = {}, Uargs(c_2) = {1},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {1}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
ifPlus(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
isZero(x1) = [2 0] x1 + [0]
[2 0] [0]
inc(x1) = [2 0] x1 + [3]
[0 2] [0]
true() = [1]
[0]
p(x1) = [2 0] x1 + [0]
[0 1] [0]
false() = [1]
[0]
times(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
0() = [2]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
ge(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
s(x1) = [1 0] x1 + [2]
[0 1] [0]
f0(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f1(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f2(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
1() = [0]
[0]
d() = [0]
[0]
c() = [0]
[0]
plus^#(x1, x2) = [3 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_0(x1) = [1 0] x1 + [0]
[0 1] [0]
ifPlus^#(x1, x2, x3) = [3 0] x1 + [0 0] x2 + [3 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_1(x1) = [1 0] x1 + [0]
[0 1] [0]
p^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_2(x1) = [1 0] x1 + [0]
[0 1] [0]
times^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_3(x1) = [0 0] x1 + [0]
[0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
c_4(x1) = [0 0] x1 + [0]
[0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
c_5() = [0]
[0]
c_6(x1) = [0 0] x1 + [0]
[0 0] [0]
isZero^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_7() = [0]
[0]
c_8() = [0]
[0]
c_9(x1) = [0 0] x1 + [0]
[0 0] [0]
inc^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_10() = [0]
[0]
c_11(x1) = [0 0] x1 + [0]
[0 0] [0]
c_12() = [0]
[0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15(x1) = [1 0] x1 + [0]
[0 1] [0]
ge^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_16() = [0]
[0]
c_17() = [0]
[0]
c_18(x1) = [0 0] x1 + [0]
[0 0] [0]
f0^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_19(x1) = [0 0] x1 + [0]
[0 0] [0]
f1^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_20(x1) = [0 0] x1 + [0]
[0 0] [0]
f2^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_21(x1) = [0 0] x1 + [0]
[0 0] [0]
c_22() = [0]
[0]
c_23() = [0]
[0]
Complexity induced by the adequate RMI: YES(?,O(n^1))
We have not generated a proof for the resulting sub-problem.
* Path {4}: inherited
-------------------
This path is subsumed by the proof of path {4}->{5,7}->{6}.
* Path {4}->{5,7}: inherited
--------------------------
This path is subsumed by the proof of path {4}->{5,7}->{6}.
* Path {4}->{5,7}->{6}: NA
------------------------
The usable rules for this path are:
{ plus(x, y) -> ifPlus(isZero(x), x, inc(y))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, ge(x, 0()) -> true()
, ge(0(), s(y)) -> false()
, ge(s(x), s(y)) -> ge(x, y)
, ifPlus(true(), x, y) -> p(y)
, ifPlus(false(), x, y) -> plus(p(x), y)
, isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weight gap principle does not apply:
The input cannot be shown compatible
Complexity induced by the adequate RMI: MAYBE
We have not generated a proof for the resulting sub-problem.
* Path {8}: YES(?,O(1))
---------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
ifPlus(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
isZero(x1) = [0 0] x1 + [0]
[0 0] [0]
inc(x1) = [0 0] x1 + [0]
[0 0] [0]
true() = [0]
[0]
p(x1) = [0 0] x1 + [0]
[0 0] [0]
false() = [0]
[0]
times(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
0() = [0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
ge(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
f0(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f1(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f2(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
1() = [0]
[0]
d() = [0]
[0]
c() = [0]
[0]
plus^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_0(x1) = [0 0] x1 + [0]
[0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_1(x1) = [0 0] x1 + [0]
[0 0] [0]
p^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_2(x1) = [0 0] x1 + [0]
[0 0] [0]
times^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_3(x1) = [0 0] x1 + [0]
[0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
c_4(x1) = [0 0] x1 + [0]
[0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
c_5() = [0]
[0]
c_6(x1) = [0 0] x1 + [0]
[0 0] [0]
isZero^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_7() = [0]
[0]
c_8() = [0]
[0]
c_9(x1) = [0 0] x1 + [0]
[0 0] [0]
inc^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_10() = [0]
[0]
c_11(x1) = [0 0] x1 + [0]
[0 0] [0]
c_12() = [0]
[0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15(x1) = [0 0] x1 + [0]
[0 0] [0]
ge^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_16() = [0]
[0]
c_17() = [0]
[0]
c_18(x1) = [0 0] x1 + [0]
[0 0] [0]
f0^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_19(x1) = [0 0] x1 + [0]
[0 0] [0]
f1^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_20(x1) = [0 0] x1 + [0]
[0 0] [0]
f2^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_21(x1) = [0 0] x1 + [0]
[0 0] [0]
c_22() = [0]
[0]
c_23() = [0]
[0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 2'
--------------------------------------
Answer: YES(?,O(1))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {isZero^#(0()) -> c_7()}
Weak Rules: {}
Proof Output:
The following argument positions are usable:
Uargs(isZero^#) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
0() = [2]
[2]
isZero^#(x1) = [2 0] x1 + [7]
[2 2] [7]
c_7() = [0]
[1]
* Path {10}: YES(?,O(n^1))
------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {1}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
ifPlus(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
isZero(x1) = [0 0] x1 + [0]
[0 0] [0]
inc(x1) = [0 0] x1 + [0]
[0 0] [0]
true() = [0]
[0]
p(x1) = [0 0] x1 + [0]
[0 0] [0]
false() = [0]
[0]
times(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
0() = [0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
ge(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
f0(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f1(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f2(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
1() = [0]
[0]
d() = [0]
[0]
c() = [0]
[0]
plus^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_0(x1) = [0 0] x1 + [0]
[0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_1(x1) = [0 0] x1 + [0]
[0 0] [0]
p^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_2(x1) = [0 0] x1 + [0]
[0 0] [0]
times^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_3(x1) = [0 0] x1 + [0]
[0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
c_4(x1) = [0 0] x1 + [0]
[0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
c_5() = [0]
[0]
c_6(x1) = [0 0] x1 + [0]
[0 0] [0]
isZero^#(x1) = [0 0] x1 + [0]
[3 3] [0]
c_7() = [0]
[0]
c_8() = [0]
[0]
c_9(x1) = [1 0] x1 + [0]
[0 1] [0]
inc^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_10() = [0]
[0]
c_11(x1) = [0 0] x1 + [0]
[0 0] [0]
c_12() = [0]
[0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15(x1) = [0 0] x1 + [0]
[0 0] [0]
ge^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_16() = [0]
[0]
c_17() = [0]
[0]
c_18(x1) = [0 0] x1 + [0]
[0 0] [0]
f0^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_19(x1) = [0 0] x1 + [0]
[0 0] [0]
f1^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_20(x1) = [0 0] x1 + [0]
[0 0] [0]
f2^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_21(x1) = [0 0] x1 + [0]
[0 0] [0]
c_22() = [0]
[0]
c_23() = [0]
[0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 2'
--------------------------------------
Answer: YES(?,O(n^1))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {isZero^#(s(s(x))) -> c_9(isZero^#(s(x)))}
Weak Rules: {}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(isZero^#) = {}, Uargs(c_9) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
s(x1) = [1 0] x1 + [1]
[0 0] [0]
isZero^#(x1) = [1 0] x1 + [0]
[0 0] [0]
c_9(x1) = [1 0] x1 + [0]
[0 0] [0]
* Path {10}->{9}: NA
------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {1}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
ifPlus(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
isZero(x1) = [0 0] x1 + [0]
[0 0] [0]
inc(x1) = [0 0] x1 + [0]
[0 0] [0]
true() = [0]
[0]
p(x1) = [0 0] x1 + [0]
[0 0] [0]
false() = [0]
[0]
times(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
0() = [0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
ge(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
f0(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f1(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f2(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
1() = [0]
[0]
d() = [0]
[0]
c() = [0]
[0]
plus^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_0(x1) = [0 0] x1 + [0]
[0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_1(x1) = [0 0] x1 + [0]
[0 0] [0]
p^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_2(x1) = [0 0] x1 + [0]
[0 0] [0]
times^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_3(x1) = [0 0] x1 + [0]
[0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
c_4(x1) = [0 0] x1 + [0]
[0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
c_5() = [0]
[0]
c_6(x1) = [0 0] x1 + [0]
[0 0] [0]
isZero^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_7() = [0]
[0]
c_8() = [0]
[0]
c_9(x1) = [1 0] x1 + [0]
[0 1] [0]
inc^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_10() = [0]
[0]
c_11(x1) = [0 0] x1 + [0]
[0 0] [0]
c_12() = [0]
[0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15(x1) = [0 0] x1 + [0]
[0 0] [0]
ge^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_16() = [0]
[0]
c_17() = [0]
[0]
c_18(x1) = [0 0] x1 + [0]
[0 0] [0]
f0^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_19(x1) = [0 0] x1 + [0]
[0 0] [0]
f1^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_20(x1) = [0 0] x1 + [0]
[0 0] [0]
f2^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_21(x1) = [0 0] x1 + [0]
[0 0] [0]
c_22() = [0]
[0]
c_23() = [0]
[0]
We have not generated a proof for the resulting sub-problem.
* Path {12}: YES(?,O(n^1))
------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {1}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
ifPlus(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
isZero(x1) = [0 0] x1 + [0]
[0 0] [0]
inc(x1) = [0 0] x1 + [0]
[0 0] [0]
true() = [0]
[0]
p(x1) = [0 0] x1 + [0]
[0 0] [0]
false() = [0]
[0]
times(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
0() = [0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
ge(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
s(x1) = [1 2] x1 + [0]
[0 0] [0]
f0(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f1(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f2(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
1() = [0]
[0]
d() = [0]
[0]
c() = [0]
[0]
plus^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_0(x1) = [0 0] x1 + [0]
[0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_1(x1) = [0 0] x1 + [0]
[0 0] [0]
p^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_2(x1) = [0 0] x1 + [0]
[0 0] [0]
times^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_3(x1) = [0 0] x1 + [0]
[0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
c_4(x1) = [0 0] x1 + [0]
[0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
c_5() = [0]
[0]
c_6(x1) = [0 0] x1 + [0]
[0 0] [0]
isZero^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_7() = [0]
[0]
c_8() = [0]
[0]
c_9(x1) = [0 0] x1 + [0]
[0 0] [0]
inc^#(x1) = [3 3] x1 + [0]
[3 3] [0]
c_10() = [0]
[0]
c_11(x1) = [1 0] x1 + [0]
[0 1] [0]
c_12() = [0]
[0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15(x1) = [0 0] x1 + [0]
[0 0] [0]
ge^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_16() = [0]
[0]
c_17() = [0]
[0]
c_18(x1) = [0 0] x1 + [0]
[0 0] [0]
f0^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_19(x1) = [0 0] x1 + [0]
[0 0] [0]
f1^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_20(x1) = [0 0] x1 + [0]
[0 0] [0]
f2^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_21(x1) = [0 0] x1 + [0]
[0 0] [0]
c_22() = [0]
[0]
c_23() = [0]
[0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 2'
--------------------------------------
Answer: YES(?,O(n^1))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {inc^#(s(x)) -> c_11(inc^#(x))}
Weak Rules: {}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(inc^#) = {}, Uargs(c_11) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
s(x1) = [1 0] x1 + [0]
[0 1] [1]
inc^#(x1) = [0 1] x1 + [1]
[0 0] [0]
c_11(x1) = [1 0] x1 + [0]
[0 0] [0]
* Path {12}->{11}: YES(?,O(n^1))
------------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {1}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
ifPlus(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
isZero(x1) = [0 0] x1 + [0]
[0 0] [0]
inc(x1) = [0 0] x1 + [0]
[0 0] [0]
true() = [0]
[0]
p(x1) = [0 0] x1 + [0]
[0 0] [0]
false() = [0]
[0]
times(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
0() = [0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
ge(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
f0(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f1(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f2(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
1() = [0]
[0]
d() = [0]
[0]
c() = [0]
[0]
plus^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_0(x1) = [0 0] x1 + [0]
[0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_1(x1) = [0 0] x1 + [0]
[0 0] [0]
p^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_2(x1) = [0 0] x1 + [0]
[0 0] [0]
times^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_3(x1) = [0 0] x1 + [0]
[0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
c_4(x1) = [0 0] x1 + [0]
[0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
c_5() = [0]
[0]
c_6(x1) = [0 0] x1 + [0]
[0 0] [0]
isZero^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_7() = [0]
[0]
c_8() = [0]
[0]
c_9(x1) = [0 0] x1 + [0]
[0 0] [0]
inc^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_10() = [0]
[0]
c_11(x1) = [1 0] x1 + [0]
[0 1] [0]
c_12() = [0]
[0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15(x1) = [0 0] x1 + [0]
[0 0] [0]
ge^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_16() = [0]
[0]
c_17() = [0]
[0]
c_18(x1) = [0 0] x1 + [0]
[0 0] [0]
f0^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_19(x1) = [0 0] x1 + [0]
[0 0] [0]
f1^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_20(x1) = [0 0] x1 + [0]
[0 0] [0]
f2^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_21(x1) = [0 0] x1 + [0]
[0 0] [0]
c_22() = [0]
[0]
c_23() = [0]
[0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 2'
--------------------------------------
Answer: YES(?,O(n^1))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {inc^#(0()) -> c_10()}
Weak Rules: {inc^#(s(x)) -> c_11(inc^#(x))}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(inc^#) = {}, Uargs(c_11) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
0() = [2]
[2]
s(x1) = [1 2] x1 + [1]
[0 0] [3]
inc^#(x1) = [1 2] x1 + [2]
[6 1] [0]
c_10() = [1]
[0]
c_11(x1) = [1 0] x1 + [5]
[2 0] [3]
* Path {12}->{13}: YES(?,O(n^1))
------------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {1}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
ifPlus(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
isZero(x1) = [0 0] x1 + [0]
[0 0] [0]
inc(x1) = [0 0] x1 + [0]
[0 0] [0]
true() = [0]
[0]
p(x1) = [0 0] x1 + [0]
[0 0] [0]
false() = [0]
[0]
times(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
0() = [0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
ge(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
f0(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f1(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f2(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
1() = [0]
[0]
d() = [0]
[0]
c() = [0]
[0]
plus^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_0(x1) = [0 0] x1 + [0]
[0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_1(x1) = [0 0] x1 + [0]
[0 0] [0]
p^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_2(x1) = [0 0] x1 + [0]
[0 0] [0]
times^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_3(x1) = [0 0] x1 + [0]
[0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
c_4(x1) = [0 0] x1 + [0]
[0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
c_5() = [0]
[0]
c_6(x1) = [0 0] x1 + [0]
[0 0] [0]
isZero^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_7() = [0]
[0]
c_8() = [0]
[0]
c_9(x1) = [0 0] x1 + [0]
[0 0] [0]
inc^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_10() = [0]
[0]
c_11(x1) = [1 0] x1 + [0]
[0 1] [0]
c_12() = [0]
[0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15(x1) = [0 0] x1 + [0]
[0 0] [0]
ge^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_16() = [0]
[0]
c_17() = [0]
[0]
c_18(x1) = [0 0] x1 + [0]
[0 0] [0]
f0^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_19(x1) = [0 0] x1 + [0]
[0 0] [0]
f1^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_20(x1) = [0 0] x1 + [0]
[0 0] [0]
f2^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_21(x1) = [0 0] x1 + [0]
[0 0] [0]
c_22() = [0]
[0]
c_23() = [0]
[0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 2'
--------------------------------------
Answer: YES(?,O(n^1))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {inc^#(x) -> c_12()}
Weak Rules: {inc^#(s(x)) -> c_11(inc^#(x))}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(inc^#) = {}, Uargs(c_11) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
s(x1) = [1 4] x1 + [0]
[0 0] [0]
inc^#(x1) = [0 0] x1 + [2]
[2 0] [0]
c_11(x1) = [1 0] x1 + [0]
[0 0] [0]
c_12() = [1]
[0]
* Path {19}: YES(?,O(n^2))
------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {1}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
ifPlus(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
isZero(x1) = [0 0] x1 + [0]
[0 0] [0]
inc(x1) = [0 0] x1 + [0]
[0 0] [0]
true() = [0]
[0]
p(x1) = [0 0] x1 + [0]
[0 0] [0]
false() = [0]
[0]
times(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
0() = [0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
ge(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
s(x1) = [1 2] x1 + [0]
[0 0] [0]
f0(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f1(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f2(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
1() = [0]
[0]
d() = [0]
[0]
c() = [0]
[0]
plus^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_0(x1) = [0 0] x1 + [0]
[0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_1(x1) = [0 0] x1 + [0]
[0 0] [0]
p^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_2(x1) = [0 0] x1 + [0]
[0 0] [0]
times^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_3(x1) = [0 0] x1 + [0]
[0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
c_4(x1) = [0 0] x1 + [0]
[0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
c_5() = [0]
[0]
c_6(x1) = [0 0] x1 + [0]
[0 0] [0]
isZero^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_7() = [0]
[0]
c_8() = [0]
[0]
c_9(x1) = [0 0] x1 + [0]
[0 0] [0]
inc^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_10() = [0]
[0]
c_11(x1) = [0 0] x1 + [0]
[0 0] [0]
c_12() = [0]
[0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15(x1) = [0 0] x1 + [0]
[0 0] [0]
ge^#(x1, x2) = [3 3] x1 + [3 3] x2 + [0]
[3 3] [3 3] [0]
c_16() = [0]
[0]
c_17() = [0]
[0]
c_18(x1) = [1 0] x1 + [0]
[0 1] [0]
f0^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_19(x1) = [0 0] x1 + [0]
[0 0] [0]
f1^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_20(x1) = [0 0] x1 + [0]
[0 0] [0]
f2^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_21(x1) = [0 0] x1 + [0]
[0 0] [0]
c_22() = [0]
[0]
c_23() = [0]
[0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 2'
--------------------------------------
Answer: YES(?,O(n^2))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {ge^#(s(x), s(y)) -> c_18(ge^#(x, y))}
Weak Rules: {}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(ge^#) = {}, Uargs(c_18) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
s(x1) = [1 2] x1 + [1]
[0 1] [2]
ge^#(x1, x2) = [4 1] x1 + [1 2] x2 + [0]
[0 2] [0 0] [0]
c_18(x1) = [1 2] x1 + [5]
[0 0] [3]
* Path {19}->{17}: YES(?,O(n^2))
------------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {1}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
ifPlus(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
isZero(x1) = [0 0] x1 + [0]
[0 0] [0]
inc(x1) = [0 0] x1 + [0]
[0 0] [0]
true() = [0]
[0]
p(x1) = [0 0] x1 + [0]
[0 0] [0]
false() = [0]
[0]
times(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
0() = [0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
ge(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
f0(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f1(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f2(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
1() = [0]
[0]
d() = [0]
[0]
c() = [0]
[0]
plus^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_0(x1) = [0 0] x1 + [0]
[0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_1(x1) = [0 0] x1 + [0]
[0 0] [0]
p^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_2(x1) = [0 0] x1 + [0]
[0 0] [0]
times^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_3(x1) = [0 0] x1 + [0]
[0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
c_4(x1) = [0 0] x1 + [0]
[0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
c_5() = [0]
[0]
c_6(x1) = [0 0] x1 + [0]
[0 0] [0]
isZero^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_7() = [0]
[0]
c_8() = [0]
[0]
c_9(x1) = [0 0] x1 + [0]
[0 0] [0]
inc^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_10() = [0]
[0]
c_11(x1) = [0 0] x1 + [0]
[0 0] [0]
c_12() = [0]
[0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15(x1) = [0 0] x1 + [0]
[0 0] [0]
ge^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_16() = [0]
[0]
c_17() = [0]
[0]
c_18(x1) = [1 0] x1 + [0]
[0 1] [0]
f0^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_19(x1) = [0 0] x1 + [0]
[0 0] [0]
f1^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_20(x1) = [0 0] x1 + [0]
[0 0] [0]
f2^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_21(x1) = [0 0] x1 + [0]
[0 0] [0]
c_22() = [0]
[0]
c_23() = [0]
[0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 2'
--------------------------------------
Answer: YES(?,O(n^2))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {ge^#(x, 0()) -> c_16()}
Weak Rules: {ge^#(s(x), s(y)) -> c_18(ge^#(x, y))}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(ge^#) = {}, Uargs(c_18) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
0() = [2]
[0]
s(x1) = [1 2] x1 + [2]
[0 1] [0]
ge^#(x1, x2) = [2 1] x1 + [2 0] x2 + [4]
[0 0] [4 1] [0]
c_16() = [1]
[0]
c_18(x1) = [1 0] x1 + [6]
[0 0] [7]
* Path {19}->{18}: YES(?,O(n^2))
------------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {1}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
ifPlus(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
isZero(x1) = [0 0] x1 + [0]
[0 0] [0]
inc(x1) = [0 0] x1 + [0]
[0 0] [0]
true() = [0]
[0]
p(x1) = [0 0] x1 + [0]
[0 0] [0]
false() = [0]
[0]
times(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
0() = [0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
ge(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
f0(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f1(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f2(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
1() = [0]
[0]
d() = [0]
[0]
c() = [0]
[0]
plus^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_0(x1) = [0 0] x1 + [0]
[0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_1(x1) = [0 0] x1 + [0]
[0 0] [0]
p^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_2(x1) = [0 0] x1 + [0]
[0 0] [0]
times^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_3(x1) = [0 0] x1 + [0]
[0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
c_4(x1) = [0 0] x1 + [0]
[0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
c_5() = [0]
[0]
c_6(x1) = [0 0] x1 + [0]
[0 0] [0]
isZero^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_7() = [0]
[0]
c_8() = [0]
[0]
c_9(x1) = [0 0] x1 + [0]
[0 0] [0]
inc^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_10() = [0]
[0]
c_11(x1) = [0 0] x1 + [0]
[0 0] [0]
c_12() = [0]
[0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15(x1) = [0 0] x1 + [0]
[0 0] [0]
ge^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_16() = [0]
[0]
c_17() = [0]
[0]
c_18(x1) = [1 0] x1 + [0]
[0 1] [0]
f0^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_19(x1) = [0 0] x1 + [0]
[0 0] [0]
f1^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_20(x1) = [0 0] x1 + [0]
[0 0] [0]
f2^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_21(x1) = [0 0] x1 + [0]
[0 0] [0]
c_22() = [0]
[0]
c_23() = [0]
[0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 2'
--------------------------------------
Answer: YES(?,O(n^2))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {ge^#(0(), s(y)) -> c_17()}
Weak Rules: {ge^#(s(x), s(y)) -> c_18(ge^#(x, y))}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(ge^#) = {}, Uargs(c_18) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
0() = [2]
[2]
s(x1) = [1 6] x1 + [2]
[0 1] [2]
ge^#(x1, x2) = [2 1] x1 + [0 1] x2 + [0]
[1 2] [2 0] [0]
c_17() = [1]
[0]
c_18(x1) = [1 0] x1 + [7]
[0 0] [7]
* Path {20,22,21}: MAYBE
----------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {1},
Uargs(f1^#) = {}, Uargs(c_20) = {1}, Uargs(f2^#) = {},
Uargs(c_21) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
ifPlus(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
isZero(x1) = [0 0] x1 + [0]
[0 0] [0]
inc(x1) = [0 0] x1 + [0]
[0 0] [0]
true() = [0]
[0]
p(x1) = [0 0] x1 + [0]
[0 0] [0]
false() = [0]
[0]
times(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
0() = [0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
ge(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
f0(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f1(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f2(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
1() = [0]
[0]
d() = [0]
[0]
c() = [0]
[0]
plus^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_0(x1) = [0 0] x1 + [0]
[0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_1(x1) = [0 0] x1 + [0]
[0 0] [0]
p^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_2(x1) = [0 0] x1 + [0]
[0 0] [0]
times^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_3(x1) = [0 0] x1 + [0]
[0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
c_4(x1) = [0 0] x1 + [0]
[0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
c_5() = [0]
[0]
c_6(x1) = [0 0] x1 + [0]
[0 0] [0]
isZero^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_7() = [0]
[0]
c_8() = [0]
[0]
c_9(x1) = [0 0] x1 + [0]
[0 0] [0]
inc^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_10() = [0]
[0]
c_11(x1) = [0 0] x1 + [0]
[0 0] [0]
c_12() = [0]
[0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15(x1) = [0 0] x1 + [0]
[0 0] [0]
ge^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_16() = [0]
[0]
c_17() = [0]
[0]
c_18(x1) = [0 0] x1 + [0]
[0 0] [0]
f0^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [3 2] x3 + [0]
[3 3] [3 3] [3 3] [0]
c_19(x1) = [1 0] x1 + [0]
[0 1] [0]
f1^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [3 2] x3 + [0]
[3 3] [3 3] [3 3] [0]
c_20(x1) = [1 0] x1 + [0]
[0 1] [0]
f2^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [3 2] x3 + [0]
[3 3] [3 3] [3 3] [0]
c_21(x1) = [1 0] x1 + [0]
[0 1] [0]
c_22() = [0]
[0]
c_23() = [0]
[0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 2'
--------------------------------------
Answer: MAYBE
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules:
{ f0^#(0(), y, x) -> c_19(f1^#(x, y, x))
, f2^#(x, 1(), z) -> c_21(f0^#(x, z, z))
, f1^#(x, y, z) -> c_20(f2^#(x, y, z))}
Weak Rules: {}
Proof Output:
The input cannot be shown compatible
* Path {20,22,21}->{23}: NA
-------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {1},
Uargs(f1^#) = {}, Uargs(c_20) = {1}, Uargs(f2^#) = {},
Uargs(c_21) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
ifPlus(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
isZero(x1) = [0 0] x1 + [0]
[0 0] [0]
inc(x1) = [0 0] x1 + [0]
[0 0] [0]
true() = [0]
[0]
p(x1) = [0 0] x1 + [0]
[0 0] [0]
false() = [0]
[0]
times(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
0() = [0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
ge(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
f0(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f1(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f2(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
1() = [0]
[0]
d() = [0]
[0]
c() = [0]
[0]
plus^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_0(x1) = [0 0] x1 + [0]
[0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_1(x1) = [0 0] x1 + [0]
[0 0] [0]
p^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_2(x1) = [0 0] x1 + [0]
[0 0] [0]
times^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_3(x1) = [0 0] x1 + [0]
[0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
c_4(x1) = [0 0] x1 + [0]
[0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
c_5() = [0]
[0]
c_6(x1) = [0 0] x1 + [0]
[0 0] [0]
isZero^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_7() = [0]
[0]
c_8() = [0]
[0]
c_9(x1) = [0 0] x1 + [0]
[0 0] [0]
inc^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_10() = [0]
[0]
c_11(x1) = [0 0] x1 + [0]
[0 0] [0]
c_12() = [0]
[0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15(x1) = [0 0] x1 + [0]
[0 0] [0]
ge^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_16() = [0]
[0]
c_17() = [0]
[0]
c_18(x1) = [0 0] x1 + [0]
[0 0] [0]
f0^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_19(x1) = [1 0] x1 + [0]
[0 1] [0]
f1^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_20(x1) = [1 0] x1 + [0]
[0 1] [0]
f2^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_21(x1) = [1 0] x1 + [0]
[0 1] [0]
c_22() = [0]
[0]
c_23() = [0]
[0]
We have not generated a proof for the resulting sub-problem.
* Path {20,22,21}->{24}: NA
-------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {1},
Uargs(f1^#) = {}, Uargs(c_20) = {1}, Uargs(f2^#) = {},
Uargs(c_21) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
ifPlus(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
isZero(x1) = [0 0] x1 + [0]
[0 0] [0]
inc(x1) = [0 0] x1 + [0]
[0 0] [0]
true() = [0]
[0]
p(x1) = [0 0] x1 + [0]
[0 0] [0]
false() = [0]
[0]
times(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
timesIter(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
0() = [0]
[0]
ifTimes(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
ge(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
s(x1) = [0 0] x1 + [0]
[0 0] [0]
f0(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f1(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
f2(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
1() = [0]
[0]
d() = [0]
[0]
c() = [0]
[0]
plus^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_0(x1) = [0 0] x1 + [0]
[0 0] [0]
ifPlus^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_1(x1) = [0 0] x1 + [0]
[0 0] [0]
p^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_2(x1) = [0 0] x1 + [0]
[0 0] [0]
times^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_3(x1) = [0 0] x1 + [0]
[0 0] [0]
timesIter^#(x1, x2, x3, x4) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
[0 0] [0 0] [0 0] [0 0] [0]
c_4(x1) = [0 0] x1 + [0]
[0 0] [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0 0] x5 + [0]
[0 0] [0 0] [0 0] [0 0] [0 0] [0]
c_5() = [0]
[0]
c_6(x1) = [0 0] x1 + [0]
[0 0] [0]
isZero^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_7() = [0]
[0]
c_8() = [0]
[0]
c_9(x1) = [0 0] x1 + [0]
[0 0] [0]
inc^#(x1) = [0 0] x1 + [0]
[0 0] [0]
c_10() = [0]
[0]
c_11(x1) = [0 0] x1 + [0]
[0 0] [0]
c_12() = [0]
[0]
c_13() = [0]
[0]
c_14() = [0]
[0]
c_15(x1) = [0 0] x1 + [0]
[0 0] [0]
ge^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
[0 0] [0 0] [0]
c_16() = [0]
[0]
c_17() = [0]
[0]
c_18(x1) = [0 0] x1 + [0]
[0 0] [0]
f0^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_19(x1) = [1 0] x1 + [0]
[0 1] [0]
f1^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_20(x1) = [1 0] x1 + [0]
[0 1] [0]
f2^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
[0 0] [0 0] [0 0] [0]
c_21(x1) = [1 0] x1 + [0]
[0 1] [0]
c_22() = [0]
[0]
c_23() = [0]
[0]
We have not generated a proof for the resulting sub-problem.
3) 'wdg' failed due to the following reason:
Transformation Details:
-----------------------
We have computed the following set of weak (innermost) dependency pairs:
{ 1: plus^#(x, y) -> c_0(ifPlus^#(isZero(x), x, inc(y)))
, 2: ifPlus^#(true(), x, y) -> c_1(p^#(y))
, 3: ifPlus^#(false(), x, y) -> c_2(plus^#(p(x), y))
, 4: times^#(x, y) -> c_3(timesIter^#(0(), x, y, 0()))
, 5: timesIter^#(i, x, y, z) ->
c_4(ifTimes^#(ge(i, x), i, x, y, z))
, 6: ifTimes^#(true(), i, x, y, z) -> c_5()
, 7: ifTimes^#(false(), i, x, y, z) ->
c_6(timesIter^#(inc(i), x, y, plus(z, y)))
, 8: isZero^#(0()) -> c_7()
, 9: isZero^#(s(0())) -> c_8()
, 10: isZero^#(s(s(x))) -> c_9(isZero^#(s(x)))
, 11: inc^#(0()) -> c_10()
, 12: inc^#(s(x)) -> c_11(inc^#(x))
, 13: inc^#(x) -> c_12()
, 14: p^#(0()) -> c_13()
, 15: p^#(s(x)) -> c_14()
, 16: p^#(s(s(x))) -> c_15(p^#(s(x)))
, 17: ge^#(x, 0()) -> c_16()
, 18: ge^#(0(), s(y)) -> c_17()
, 19: ge^#(s(x), s(y)) -> c_18(ge^#(x, y))
, 20: f0^#(0(), y, x) -> c_19(f1^#(x, y, x))
, 21: f1^#(x, y, z) -> c_20(f2^#(x, y, z))
, 22: f2^#(x, 1(), z) -> c_21(f0^#(x, z, z))
, 23: f0^#(x, y, z) -> c_22()
, 24: f1^#(x, y, z) -> c_23()}
Following Dependency Graph (modulo SCCs) was computed. (Answers to
subproofs are indicated to the right.)
->{20,22,21} [ MAYBE ]
|
|->{23} [ NA ]
|
`->{24} [ NA ]
->{19} [ YES(?,O(n^1)) ]
|
|->{17} [ YES(?,O(n^1)) ]
|
`->{18} [ YES(?,O(n^1)) ]
->{12} [ YES(?,O(n^1)) ]
|
|->{11} [ YES(?,O(n^1)) ]
|
`->{13} [ YES(?,O(n^1)) ]
->{10} [ YES(?,O(n^1)) ]
|
`->{9} [ YES(?,O(1)) ]
->{8} [ YES(?,O(1)) ]
->{4} [ inherited ]
|
`->{5,7} [ inherited ]
|
`->{6} [ NA ]
->{1,3} [ NA ]
|
`->{2} [ NA ]
|
|->{14} [ NA ]
|
|->{15} [ NA ]
|
`->{16} [ NA ]
|
`->{15} [ NA ]
Sub-problems:
-------------
* Path {1,3}: NA
--------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weight gap principle does not apply:
The input cannot be shown compatible
Complexity induced by the adequate RMI: MAYBE
We have not generated a proof for the resulting sub-problem.
* Path {1,3}->{2}: NA
-------------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {1}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {1}, Uargs(c_0) = {1}, Uargs(ifPlus^#) = {1, 3},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {1},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0] x1 + [0] x2 + [0]
ifPlus(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
isZero(x1) = [2] x1 + [0]
inc(x1) = [2] x1 + [3]
true() = [1]
p(x1) = [2] x1 + [2]
false() = [1]
times(x1, x2) = [0] x1 + [0] x2 + [0]
timesIter(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
0() = [3]
ifTimes(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
ge(x1, x2) = [0] x1 + [0] x2 + [0]
s(x1) = [1] x1 + [2]
f0(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f1(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f2(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
1() = [0]
d() = [0]
c() = [0]
plus^#(x1, x2) = [3] x1 + [0] x2 + [0]
c_0(x1) = [1] x1 + [0]
ifPlus^#(x1, x2, x3) = [3] x1 + [3] x2 + [3] x3 + [0]
c_1(x1) = [3] x1 + [0]
p^#(x1) = [1] x1 + [0]
c_2(x1) = [1] x1 + [0]
times^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_3(x1) = [0] x1 + [0]
timesIter^#(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
c_4(x1) = [0] x1 + [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
c_5() = [0]
c_6(x1) = [0] x1 + [0]
isZero^#(x1) = [0] x1 + [0]
c_7() = [0]
c_8() = [0]
c_9(x1) = [0] x1 + [0]
inc^#(x1) = [0] x1 + [0]
c_10() = [0]
c_11(x1) = [0] x1 + [0]
c_12() = [0]
c_13() = [0]
c_14() = [0]
c_15(x1) = [0] x1 + [0]
ge^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_16() = [0]
c_17() = [0]
c_18(x1) = [0] x1 + [0]
f0^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_19(x1) = [0] x1 + [0]
f1^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_20(x1) = [0] x1 + [0]
f2^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_21(x1) = [0] x1 + [0]
c_22() = [0]
c_23() = [0]
Complexity induced by the adequate RMI: YES(?,O(n^1))
We have not generated a proof for the resulting sub-problem.
* Path {1,3}->{2}->{14}: NA
-------------------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {1}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {1}, Uargs(c_0) = {1}, Uargs(ifPlus^#) = {1, 3},
Uargs(c_1) = {1}, Uargs(p^#) = {}, Uargs(c_2) = {1},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0] x1 + [0] x2 + [0]
ifPlus(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
isZero(x1) = [2] x1 + [0]
inc(x1) = [2] x1 + [3]
true() = [1]
p(x1) = [2] x1 + [0]
false() = [1]
times(x1, x2) = [0] x1 + [0] x2 + [0]
timesIter(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
0() = [2]
ifTimes(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
ge(x1, x2) = [0] x1 + [0] x2 + [0]
s(x1) = [1] x1 + [2]
f0(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f1(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f2(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
1() = [0]
d() = [0]
c() = [0]
plus^#(x1, x2) = [3] x1 + [0] x2 + [0]
c_0(x1) = [1] x1 + [0]
ifPlus^#(x1, x2, x3) = [3] x1 + [0] x2 + [3] x3 + [0]
c_1(x1) = [1] x1 + [0]
p^#(x1) = [0] x1 + [0]
c_2(x1) = [1] x1 + [0]
times^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_3(x1) = [0] x1 + [0]
timesIter^#(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
c_4(x1) = [0] x1 + [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
c_5() = [0]
c_6(x1) = [0] x1 + [0]
isZero^#(x1) = [0] x1 + [0]
c_7() = [0]
c_8() = [0]
c_9(x1) = [0] x1 + [0]
inc^#(x1) = [0] x1 + [0]
c_10() = [0]
c_11(x1) = [0] x1 + [0]
c_12() = [0]
c_13() = [0]
c_14() = [0]
c_15(x1) = [0] x1 + [0]
ge^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_16() = [0]
c_17() = [0]
c_18(x1) = [0] x1 + [0]
f0^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_19(x1) = [0] x1 + [0]
f1^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_20(x1) = [0] x1 + [0]
f2^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_21(x1) = [0] x1 + [0]
c_22() = [0]
c_23() = [0]
Complexity induced by the adequate RMI: YES(?,O(n^1))
We have not generated a proof for the resulting sub-problem.
* Path {1,3}->{2}->{15}: NA
-------------------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {1}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {1}, Uargs(c_0) = {1}, Uargs(ifPlus^#) = {1, 3},
Uargs(c_1) = {1}, Uargs(p^#) = {}, Uargs(c_2) = {1},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0] x1 + [0] x2 + [0]
ifPlus(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
isZero(x1) = [2] x1 + [0]
inc(x1) = [2] x1 + [3]
true() = [1]
p(x1) = [2] x1 + [0]
false() = [1]
times(x1, x2) = [0] x1 + [0] x2 + [0]
timesIter(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
0() = [2]
ifTimes(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
ge(x1, x2) = [0] x1 + [0] x2 + [0]
s(x1) = [1] x1 + [2]
f0(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f1(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f2(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
1() = [0]
d() = [0]
c() = [0]
plus^#(x1, x2) = [3] x1 + [0] x2 + [0]
c_0(x1) = [1] x1 + [0]
ifPlus^#(x1, x2, x3) = [3] x1 + [0] x2 + [3] x3 + [0]
c_1(x1) = [1] x1 + [0]
p^#(x1) = [0] x1 + [0]
c_2(x1) = [1] x1 + [0]
times^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_3(x1) = [0] x1 + [0]
timesIter^#(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
c_4(x1) = [0] x1 + [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
c_5() = [0]
c_6(x1) = [0] x1 + [0]
isZero^#(x1) = [0] x1 + [0]
c_7() = [0]
c_8() = [0]
c_9(x1) = [0] x1 + [0]
inc^#(x1) = [0] x1 + [0]
c_10() = [0]
c_11(x1) = [0] x1 + [0]
c_12() = [0]
c_13() = [0]
c_14() = [0]
c_15(x1) = [0] x1 + [0]
ge^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_16() = [0]
c_17() = [0]
c_18(x1) = [0] x1 + [0]
f0^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_19(x1) = [0] x1 + [0]
f1^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_20(x1) = [0] x1 + [0]
f2^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_21(x1) = [0] x1 + [0]
c_22() = [0]
c_23() = [0]
Complexity induced by the adequate RMI: YES(?,O(n^1))
We have not generated a proof for the resulting sub-problem.
* Path {1,3}->{2}->{16}: NA
-------------------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {1}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {1}, Uargs(c_0) = {1}, Uargs(ifPlus^#) = {1, 3},
Uargs(c_1) = {1}, Uargs(p^#) = {}, Uargs(c_2) = {1},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {1}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0] x1 + [0] x2 + [0]
ifPlus(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
isZero(x1) = [2] x1 + [0]
inc(x1) = [2] x1 + [3]
true() = [1]
p(x1) = [2] x1 + [0]
false() = [1]
times(x1, x2) = [0] x1 + [0] x2 + [0]
timesIter(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
0() = [2]
ifTimes(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
ge(x1, x2) = [0] x1 + [0] x2 + [0]
s(x1) = [1] x1 + [1]
f0(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f1(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f2(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
1() = [0]
d() = [0]
c() = [0]
plus^#(x1, x2) = [3] x1 + [0] x2 + [0]
c_0(x1) = [1] x1 + [0]
ifPlus^#(x1, x2, x3) = [3] x1 + [0] x2 + [3] x3 + [0]
c_1(x1) = [1] x1 + [0]
p^#(x1) = [3] x1 + [0]
c_2(x1) = [1] x1 + [0]
times^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_3(x1) = [0] x1 + [0]
timesIter^#(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
c_4(x1) = [0] x1 + [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
c_5() = [0]
c_6(x1) = [0] x1 + [0]
isZero^#(x1) = [0] x1 + [0]
c_7() = [0]
c_8() = [0]
c_9(x1) = [0] x1 + [0]
inc^#(x1) = [0] x1 + [0]
c_10() = [0]
c_11(x1) = [0] x1 + [0]
c_12() = [0]
c_13() = [0]
c_14() = [0]
c_15(x1) = [1] x1 + [0]
ge^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_16() = [0]
c_17() = [0]
c_18(x1) = [0] x1 + [0]
f0^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_19(x1) = [0] x1 + [0]
f1^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_20(x1) = [0] x1 + [0]
f2^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_21(x1) = [0] x1 + [0]
c_22() = [0]
c_23() = [0]
Complexity induced by the adequate RMI: YES(?,O(n^1))
We have not generated a proof for the resulting sub-problem.
* Path {1,3}->{2}->{16}->{15}: NA
-------------------------------
The usable rules for this path are:
{ isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {1}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {1}, Uargs(c_0) = {1}, Uargs(ifPlus^#) = {1, 3},
Uargs(c_1) = {1}, Uargs(p^#) = {}, Uargs(c_2) = {1},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {1}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0] x1 + [0] x2 + [0]
ifPlus(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
isZero(x1) = [2] x1 + [0]
inc(x1) = [2] x1 + [3]
true() = [1]
p(x1) = [2] x1 + [0]
false() = [1]
times(x1, x2) = [0] x1 + [0] x2 + [0]
timesIter(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
0() = [2]
ifTimes(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
ge(x1, x2) = [0] x1 + [0] x2 + [0]
s(x1) = [1] x1 + [2]
f0(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f1(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f2(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
1() = [0]
d() = [0]
c() = [0]
plus^#(x1, x2) = [3] x1 + [0] x2 + [0]
c_0(x1) = [1] x1 + [0]
ifPlus^#(x1, x2, x3) = [3] x1 + [0] x2 + [3] x3 + [0]
c_1(x1) = [1] x1 + [0]
p^#(x1) = [0] x1 + [0]
c_2(x1) = [1] x1 + [0]
times^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_3(x1) = [0] x1 + [0]
timesIter^#(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
c_4(x1) = [0] x1 + [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
c_5() = [0]
c_6(x1) = [0] x1 + [0]
isZero^#(x1) = [0] x1 + [0]
c_7() = [0]
c_8() = [0]
c_9(x1) = [0] x1 + [0]
inc^#(x1) = [0] x1 + [0]
c_10() = [0]
c_11(x1) = [0] x1 + [0]
c_12() = [0]
c_13() = [0]
c_14() = [0]
c_15(x1) = [1] x1 + [0]
ge^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_16() = [0]
c_17() = [0]
c_18(x1) = [0] x1 + [0]
f0^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_19(x1) = [0] x1 + [0]
f1^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_20(x1) = [0] x1 + [0]
f2^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_21(x1) = [0] x1 + [0]
c_22() = [0]
c_23() = [0]
Complexity induced by the adequate RMI: YES(?,O(n^1))
We have not generated a proof for the resulting sub-problem.
* Path {4}: inherited
-------------------
This path is subsumed by the proof of path {4}->{5,7}->{6}.
* Path {4}->{5,7}: inherited
--------------------------
This path is subsumed by the proof of path {4}->{5,7}->{6}.
* Path {4}->{5,7}->{6}: NA
------------------------
The usable rules for this path are:
{ plus(x, y) -> ifPlus(isZero(x), x, inc(y))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, ge(x, 0()) -> true()
, ge(0(), s(y)) -> false()
, ge(s(x), s(y)) -> ge(x, y)
, ifPlus(true(), x, y) -> p(y)
, ifPlus(false(), x, y) -> plus(p(x), y)
, isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))}
The weight gap principle does not apply:
The input cannot be shown compatible
Complexity induced by the adequate RMI: MAYBE
We have not generated a proof for the resulting sub-problem.
* Path {8}: YES(?,O(1))
---------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0] x1 + [0] x2 + [0]
ifPlus(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
isZero(x1) = [0] x1 + [0]
inc(x1) = [0] x1 + [0]
true() = [0]
p(x1) = [0] x1 + [0]
false() = [0]
times(x1, x2) = [0] x1 + [0] x2 + [0]
timesIter(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
0() = [0]
ifTimes(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
ge(x1, x2) = [0] x1 + [0] x2 + [0]
s(x1) = [0] x1 + [0]
f0(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f1(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f2(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
1() = [0]
d() = [0]
c() = [0]
plus^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_0(x1) = [0] x1 + [0]
ifPlus^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_1(x1) = [0] x1 + [0]
p^#(x1) = [0] x1 + [0]
c_2(x1) = [0] x1 + [0]
times^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_3(x1) = [0] x1 + [0]
timesIter^#(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
c_4(x1) = [0] x1 + [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
c_5() = [0]
c_6(x1) = [0] x1 + [0]
isZero^#(x1) = [0] x1 + [0]
c_7() = [0]
c_8() = [0]
c_9(x1) = [0] x1 + [0]
inc^#(x1) = [0] x1 + [0]
c_10() = [0]
c_11(x1) = [0] x1 + [0]
c_12() = [0]
c_13() = [0]
c_14() = [0]
c_15(x1) = [0] x1 + [0]
ge^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_16() = [0]
c_17() = [0]
c_18(x1) = [0] x1 + [0]
f0^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_19(x1) = [0] x1 + [0]
f1^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_20(x1) = [0] x1 + [0]
f2^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_21(x1) = [0] x1 + [0]
c_22() = [0]
c_23() = [0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 1'
--------------------------------------
Answer: YES(?,O(1))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {isZero^#(0()) -> c_7()}
Weak Rules: {}
Proof Output:
The following argument positions are usable:
Uargs(isZero^#) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
0() = [7]
isZero^#(x1) = [1] x1 + [7]
c_7() = [1]
* Path {10}: YES(?,O(n^1))
------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {1}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0] x1 + [0] x2 + [0]
ifPlus(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
isZero(x1) = [0] x1 + [0]
inc(x1) = [0] x1 + [0]
true() = [0]
p(x1) = [0] x1 + [0]
false() = [0]
times(x1, x2) = [0] x1 + [0] x2 + [0]
timesIter(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
0() = [0]
ifTimes(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
ge(x1, x2) = [0] x1 + [0] x2 + [0]
s(x1) = [1] x1 + [0]
f0(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f1(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f2(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
1() = [0]
d() = [0]
c() = [0]
plus^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_0(x1) = [0] x1 + [0]
ifPlus^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_1(x1) = [0] x1 + [0]
p^#(x1) = [0] x1 + [0]
c_2(x1) = [0] x1 + [0]
times^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_3(x1) = [0] x1 + [0]
timesIter^#(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
c_4(x1) = [0] x1 + [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
c_5() = [0]
c_6(x1) = [0] x1 + [0]
isZero^#(x1) = [3] x1 + [0]
c_7() = [0]
c_8() = [0]
c_9(x1) = [1] x1 + [0]
inc^#(x1) = [0] x1 + [0]
c_10() = [0]
c_11(x1) = [0] x1 + [0]
c_12() = [0]
c_13() = [0]
c_14() = [0]
c_15(x1) = [0] x1 + [0]
ge^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_16() = [0]
c_17() = [0]
c_18(x1) = [0] x1 + [0]
f0^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_19(x1) = [0] x1 + [0]
f1^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_20(x1) = [0] x1 + [0]
f2^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_21(x1) = [0] x1 + [0]
c_22() = [0]
c_23() = [0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 1'
--------------------------------------
Answer: YES(?,O(n^1))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {isZero^#(s(s(x))) -> c_9(isZero^#(s(x)))}
Weak Rules: {}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(isZero^#) = {}, Uargs(c_9) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
s(x1) = [1] x1 + [4]
isZero^#(x1) = [1] x1 + [0]
c_9(x1) = [1] x1 + [3]
* Path {10}->{9}: YES(?,O(1))
---------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {1}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0] x1 + [0] x2 + [0]
ifPlus(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
isZero(x1) = [0] x1 + [0]
inc(x1) = [0] x1 + [0]
true() = [0]
p(x1) = [0] x1 + [0]
false() = [0]
times(x1, x2) = [0] x1 + [0] x2 + [0]
timesIter(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
0() = [0]
ifTimes(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
ge(x1, x2) = [0] x1 + [0] x2 + [0]
s(x1) = [0] x1 + [0]
f0(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f1(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f2(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
1() = [0]
d() = [0]
c() = [0]
plus^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_0(x1) = [0] x1 + [0]
ifPlus^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_1(x1) = [0] x1 + [0]
p^#(x1) = [0] x1 + [0]
c_2(x1) = [0] x1 + [0]
times^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_3(x1) = [0] x1 + [0]
timesIter^#(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
c_4(x1) = [0] x1 + [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
c_5() = [0]
c_6(x1) = [0] x1 + [0]
isZero^#(x1) = [0] x1 + [0]
c_7() = [0]
c_8() = [0]
c_9(x1) = [1] x1 + [0]
inc^#(x1) = [0] x1 + [0]
c_10() = [0]
c_11(x1) = [0] x1 + [0]
c_12() = [0]
c_13() = [0]
c_14() = [0]
c_15(x1) = [0] x1 + [0]
ge^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_16() = [0]
c_17() = [0]
c_18(x1) = [0] x1 + [0]
f0^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_19(x1) = [0] x1 + [0]
f1^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_20(x1) = [0] x1 + [0]
f2^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_21(x1) = [0] x1 + [0]
c_22() = [0]
c_23() = [0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 1'
--------------------------------------
Answer: YES(?,O(1))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {isZero^#(s(0())) -> c_8()}
Weak Rules: {isZero^#(s(s(x))) -> c_9(isZero^#(s(x)))}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(isZero^#) = {}, Uargs(c_9) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
0() = [0]
s(x1) = [0] x1 + [3]
isZero^#(x1) = [2] x1 + [2]
c_8() = [1]
c_9(x1) = [1] x1 + [0]
* Path {12}: YES(?,O(n^1))
------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {1}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0] x1 + [0] x2 + [0]
ifPlus(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
isZero(x1) = [0] x1 + [0]
inc(x1) = [0] x1 + [0]
true() = [0]
p(x1) = [0] x1 + [0]
false() = [0]
times(x1, x2) = [0] x1 + [0] x2 + [0]
timesIter(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
0() = [0]
ifTimes(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
ge(x1, x2) = [0] x1 + [0] x2 + [0]
s(x1) = [1] x1 + [0]
f0(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f1(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f2(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
1() = [0]
d() = [0]
c() = [0]
plus^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_0(x1) = [0] x1 + [0]
ifPlus^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_1(x1) = [0] x1 + [0]
p^#(x1) = [0] x1 + [0]
c_2(x1) = [0] x1 + [0]
times^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_3(x1) = [0] x1 + [0]
timesIter^#(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
c_4(x1) = [0] x1 + [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
c_5() = [0]
c_6(x1) = [0] x1 + [0]
isZero^#(x1) = [0] x1 + [0]
c_7() = [0]
c_8() = [0]
c_9(x1) = [0] x1 + [0]
inc^#(x1) = [3] x1 + [0]
c_10() = [0]
c_11(x1) = [1] x1 + [0]
c_12() = [0]
c_13() = [0]
c_14() = [0]
c_15(x1) = [0] x1 + [0]
ge^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_16() = [0]
c_17() = [0]
c_18(x1) = [0] x1 + [0]
f0^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_19(x1) = [0] x1 + [0]
f1^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_20(x1) = [0] x1 + [0]
f2^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_21(x1) = [0] x1 + [0]
c_22() = [0]
c_23() = [0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 1'
--------------------------------------
Answer: YES(?,O(n^1))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {inc^#(s(x)) -> c_11(inc^#(x))}
Weak Rules: {}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(inc^#) = {}, Uargs(c_11) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
s(x1) = [1] x1 + [4]
inc^#(x1) = [2] x1 + [0]
c_11(x1) = [1] x1 + [7]
* Path {12}->{11}: YES(?,O(n^1))
------------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {1}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0] x1 + [0] x2 + [0]
ifPlus(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
isZero(x1) = [0] x1 + [0]
inc(x1) = [0] x1 + [0]
true() = [0]
p(x1) = [0] x1 + [0]
false() = [0]
times(x1, x2) = [0] x1 + [0] x2 + [0]
timesIter(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
0() = [0]
ifTimes(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
ge(x1, x2) = [0] x1 + [0] x2 + [0]
s(x1) = [0] x1 + [0]
f0(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f1(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f2(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
1() = [0]
d() = [0]
c() = [0]
plus^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_0(x1) = [0] x1 + [0]
ifPlus^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_1(x1) = [0] x1 + [0]
p^#(x1) = [0] x1 + [0]
c_2(x1) = [0] x1 + [0]
times^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_3(x1) = [0] x1 + [0]
timesIter^#(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
c_4(x1) = [0] x1 + [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
c_5() = [0]
c_6(x1) = [0] x1 + [0]
isZero^#(x1) = [0] x1 + [0]
c_7() = [0]
c_8() = [0]
c_9(x1) = [0] x1 + [0]
inc^#(x1) = [0] x1 + [0]
c_10() = [0]
c_11(x1) = [1] x1 + [0]
c_12() = [0]
c_13() = [0]
c_14() = [0]
c_15(x1) = [0] x1 + [0]
ge^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_16() = [0]
c_17() = [0]
c_18(x1) = [0] x1 + [0]
f0^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_19(x1) = [0] x1 + [0]
f1^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_20(x1) = [0] x1 + [0]
f2^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_21(x1) = [0] x1 + [0]
c_22() = [0]
c_23() = [0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 1'
--------------------------------------
Answer: YES(?,O(n^1))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {inc^#(0()) -> c_10()}
Weak Rules: {inc^#(s(x)) -> c_11(inc^#(x))}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(inc^#) = {}, Uargs(c_11) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
0() = [2]
s(x1) = [1] x1 + [0]
inc^#(x1) = [2] x1 + [0]
c_10() = [1]
c_11(x1) = [1] x1 + [0]
* Path {12}->{13}: YES(?,O(n^1))
------------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {1}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0] x1 + [0] x2 + [0]
ifPlus(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
isZero(x1) = [0] x1 + [0]
inc(x1) = [0] x1 + [0]
true() = [0]
p(x1) = [0] x1 + [0]
false() = [0]
times(x1, x2) = [0] x1 + [0] x2 + [0]
timesIter(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
0() = [0]
ifTimes(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
ge(x1, x2) = [0] x1 + [0] x2 + [0]
s(x1) = [0] x1 + [0]
f0(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f1(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f2(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
1() = [0]
d() = [0]
c() = [0]
plus^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_0(x1) = [0] x1 + [0]
ifPlus^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_1(x1) = [0] x1 + [0]
p^#(x1) = [0] x1 + [0]
c_2(x1) = [0] x1 + [0]
times^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_3(x1) = [0] x1 + [0]
timesIter^#(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
c_4(x1) = [0] x1 + [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
c_5() = [0]
c_6(x1) = [0] x1 + [0]
isZero^#(x1) = [0] x1 + [0]
c_7() = [0]
c_8() = [0]
c_9(x1) = [0] x1 + [0]
inc^#(x1) = [0] x1 + [0]
c_10() = [0]
c_11(x1) = [1] x1 + [0]
c_12() = [0]
c_13() = [0]
c_14() = [0]
c_15(x1) = [0] x1 + [0]
ge^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_16() = [0]
c_17() = [0]
c_18(x1) = [0] x1 + [0]
f0^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_19(x1) = [0] x1 + [0]
f1^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_20(x1) = [0] x1 + [0]
f2^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_21(x1) = [0] x1 + [0]
c_22() = [0]
c_23() = [0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 1'
--------------------------------------
Answer: YES(?,O(n^1))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {inc^#(x) -> c_12()}
Weak Rules: {inc^#(s(x)) -> c_11(inc^#(x))}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(inc^#) = {}, Uargs(c_11) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
s(x1) = [1] x1 + [2]
inc^#(x1) = [2] x1 + [4]
c_11(x1) = [1] x1 + [3]
c_12() = [1]
* Path {19}: YES(?,O(n^1))
------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {1}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0] x1 + [0] x2 + [0]
ifPlus(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
isZero(x1) = [0] x1 + [0]
inc(x1) = [0] x1 + [0]
true() = [0]
p(x1) = [0] x1 + [0]
false() = [0]
times(x1, x2) = [0] x1 + [0] x2 + [0]
timesIter(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
0() = [0]
ifTimes(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
ge(x1, x2) = [0] x1 + [0] x2 + [0]
s(x1) = [1] x1 + [0]
f0(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f1(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f2(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
1() = [0]
d() = [0]
c() = [0]
plus^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_0(x1) = [0] x1 + [0]
ifPlus^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_1(x1) = [0] x1 + [0]
p^#(x1) = [0] x1 + [0]
c_2(x1) = [0] x1 + [0]
times^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_3(x1) = [0] x1 + [0]
timesIter^#(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
c_4(x1) = [0] x1 + [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
c_5() = [0]
c_6(x1) = [0] x1 + [0]
isZero^#(x1) = [0] x1 + [0]
c_7() = [0]
c_8() = [0]
c_9(x1) = [0] x1 + [0]
inc^#(x1) = [0] x1 + [0]
c_10() = [0]
c_11(x1) = [0] x1 + [0]
c_12() = [0]
c_13() = [0]
c_14() = [0]
c_15(x1) = [0] x1 + [0]
ge^#(x1, x2) = [3] x1 + [3] x2 + [0]
c_16() = [0]
c_17() = [0]
c_18(x1) = [1] x1 + [0]
f0^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_19(x1) = [0] x1 + [0]
f1^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_20(x1) = [0] x1 + [0]
f2^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_21(x1) = [0] x1 + [0]
c_22() = [0]
c_23() = [0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 1'
--------------------------------------
Answer: YES(?,O(n^1))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {ge^#(s(x), s(y)) -> c_18(ge^#(x, y))}
Weak Rules: {}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(ge^#) = {}, Uargs(c_18) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
s(x1) = [1] x1 + [2]
ge^#(x1, x2) = [2] x1 + [2] x2 + [0]
c_18(x1) = [1] x1 + [7]
* Path {19}->{17}: YES(?,O(n^1))
------------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {1}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0] x1 + [0] x2 + [0]
ifPlus(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
isZero(x1) = [0] x1 + [0]
inc(x1) = [0] x1 + [0]
true() = [0]
p(x1) = [0] x1 + [0]
false() = [0]
times(x1, x2) = [0] x1 + [0] x2 + [0]
timesIter(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
0() = [0]
ifTimes(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
ge(x1, x2) = [0] x1 + [0] x2 + [0]
s(x1) = [0] x1 + [0]
f0(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f1(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f2(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
1() = [0]
d() = [0]
c() = [0]
plus^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_0(x1) = [0] x1 + [0]
ifPlus^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_1(x1) = [0] x1 + [0]
p^#(x1) = [0] x1 + [0]
c_2(x1) = [0] x1 + [0]
times^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_3(x1) = [0] x1 + [0]
timesIter^#(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
c_4(x1) = [0] x1 + [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
c_5() = [0]
c_6(x1) = [0] x1 + [0]
isZero^#(x1) = [0] x1 + [0]
c_7() = [0]
c_8() = [0]
c_9(x1) = [0] x1 + [0]
inc^#(x1) = [0] x1 + [0]
c_10() = [0]
c_11(x1) = [0] x1 + [0]
c_12() = [0]
c_13() = [0]
c_14() = [0]
c_15(x1) = [0] x1 + [0]
ge^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_16() = [0]
c_17() = [0]
c_18(x1) = [1] x1 + [0]
f0^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_19(x1) = [0] x1 + [0]
f1^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_20(x1) = [0] x1 + [0]
f2^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_21(x1) = [0] x1 + [0]
c_22() = [0]
c_23() = [0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 1'
--------------------------------------
Answer: YES(?,O(n^1))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {ge^#(x, 0()) -> c_16()}
Weak Rules: {ge^#(s(x), s(y)) -> c_18(ge^#(x, y))}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(ge^#) = {}, Uargs(c_18) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
0() = [2]
s(x1) = [1] x1 + [2]
ge^#(x1, x2) = [2] x1 + [2] x2 + [4]
c_16() = [1]
c_18(x1) = [1] x1 + [7]
* Path {19}->{18}: YES(?,O(n^1))
------------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {1}, Uargs(f0^#) = {}, Uargs(c_19) = {},
Uargs(f1^#) = {}, Uargs(c_20) = {}, Uargs(f2^#) = {},
Uargs(c_21) = {}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0] x1 + [0] x2 + [0]
ifPlus(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
isZero(x1) = [0] x1 + [0]
inc(x1) = [0] x1 + [0]
true() = [0]
p(x1) = [0] x1 + [0]
false() = [0]
times(x1, x2) = [0] x1 + [0] x2 + [0]
timesIter(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
0() = [0]
ifTimes(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
ge(x1, x2) = [0] x1 + [0] x2 + [0]
s(x1) = [0] x1 + [0]
f0(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f1(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f2(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
1() = [0]
d() = [0]
c() = [0]
plus^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_0(x1) = [0] x1 + [0]
ifPlus^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_1(x1) = [0] x1 + [0]
p^#(x1) = [0] x1 + [0]
c_2(x1) = [0] x1 + [0]
times^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_3(x1) = [0] x1 + [0]
timesIter^#(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
c_4(x1) = [0] x1 + [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
c_5() = [0]
c_6(x1) = [0] x1 + [0]
isZero^#(x1) = [0] x1 + [0]
c_7() = [0]
c_8() = [0]
c_9(x1) = [0] x1 + [0]
inc^#(x1) = [0] x1 + [0]
c_10() = [0]
c_11(x1) = [0] x1 + [0]
c_12() = [0]
c_13() = [0]
c_14() = [0]
c_15(x1) = [0] x1 + [0]
ge^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_16() = [0]
c_17() = [0]
c_18(x1) = [1] x1 + [0]
f0^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_19(x1) = [0] x1 + [0]
f1^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_20(x1) = [0] x1 + [0]
f2^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_21(x1) = [0] x1 + [0]
c_22() = [0]
c_23() = [0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 1'
--------------------------------------
Answer: YES(?,O(n^1))
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules: {ge^#(0(), s(y)) -> c_17()}
Weak Rules: {ge^#(s(x), s(y)) -> c_18(ge^#(x, y))}
Proof Output:
The following argument positions are usable:
Uargs(s) = {}, Uargs(ge^#) = {}, Uargs(c_18) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
0() = [2]
s(x1) = [1] x1 + [2]
ge^#(x1, x2) = [2] x1 + [2] x2 + [0]
c_17() = [1]
c_18(x1) = [1] x1 + [7]
* Path {20,22,21}: MAYBE
----------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {1},
Uargs(f1^#) = {}, Uargs(c_20) = {1}, Uargs(f2^#) = {},
Uargs(c_21) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0] x1 + [0] x2 + [0]
ifPlus(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
isZero(x1) = [0] x1 + [0]
inc(x1) = [0] x1 + [0]
true() = [0]
p(x1) = [0] x1 + [0]
false() = [0]
times(x1, x2) = [0] x1 + [0] x2 + [0]
timesIter(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
0() = [0]
ifTimes(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
ge(x1, x2) = [0] x1 + [0] x2 + [0]
s(x1) = [0] x1 + [0]
f0(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f1(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f2(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
1() = [0]
d() = [0]
c() = [0]
plus^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_0(x1) = [0] x1 + [0]
ifPlus^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_1(x1) = [0] x1 + [0]
p^#(x1) = [0] x1 + [0]
c_2(x1) = [0] x1 + [0]
times^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_3(x1) = [0] x1 + [0]
timesIter^#(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
c_4(x1) = [0] x1 + [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
c_5() = [0]
c_6(x1) = [0] x1 + [0]
isZero^#(x1) = [0] x1 + [0]
c_7() = [0]
c_8() = [0]
c_9(x1) = [0] x1 + [0]
inc^#(x1) = [0] x1 + [0]
c_10() = [0]
c_11(x1) = [0] x1 + [0]
c_12() = [0]
c_13() = [0]
c_14() = [0]
c_15(x1) = [0] x1 + [0]
ge^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_16() = [0]
c_17() = [0]
c_18(x1) = [0] x1 + [0]
f0^#(x1, x2, x3) = [0] x1 + [0] x2 + [2] x3 + [0]
c_19(x1) = [1] x1 + [0]
f1^#(x1, x2, x3) = [0] x1 + [0] x2 + [2] x3 + [0]
c_20(x1) = [1] x1 + [0]
f2^#(x1, x2, x3) = [0] x1 + [0] x2 + [2] x3 + [0]
c_21(x1) = [1] x1 + [0]
c_22() = [0]
c_23() = [0]
We apply the sub-processor on the resulting sub-problem:
'matrix-interpretation of dimension 1'
--------------------------------------
Answer: MAYBE
Input Problem: innermost DP runtime-complexity with respect to
Strict Rules:
{ f0^#(0(), y, x) -> c_19(f1^#(x, y, x))
, f2^#(x, 1(), z) -> c_21(f0^#(x, z, z))
, f1^#(x, y, z) -> c_20(f2^#(x, y, z))}
Weak Rules: {}
Proof Output:
The input cannot be shown compatible
* Path {20,22,21}->{23}: NA
-------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {1},
Uargs(f1^#) = {}, Uargs(c_20) = {1}, Uargs(f2^#) = {},
Uargs(c_21) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0] x1 + [0] x2 + [0]
ifPlus(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
isZero(x1) = [0] x1 + [0]
inc(x1) = [0] x1 + [0]
true() = [0]
p(x1) = [0] x1 + [0]
false() = [0]
times(x1, x2) = [0] x1 + [0] x2 + [0]
timesIter(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
0() = [0]
ifTimes(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
ge(x1, x2) = [0] x1 + [0] x2 + [0]
s(x1) = [0] x1 + [0]
f0(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f1(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f2(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
1() = [0]
d() = [0]
c() = [0]
plus^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_0(x1) = [0] x1 + [0]
ifPlus^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_1(x1) = [0] x1 + [0]
p^#(x1) = [0] x1 + [0]
c_2(x1) = [0] x1 + [0]
times^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_3(x1) = [0] x1 + [0]
timesIter^#(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
c_4(x1) = [0] x1 + [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
c_5() = [0]
c_6(x1) = [0] x1 + [0]
isZero^#(x1) = [0] x1 + [0]
c_7() = [0]
c_8() = [0]
c_9(x1) = [0] x1 + [0]
inc^#(x1) = [0] x1 + [0]
c_10() = [0]
c_11(x1) = [0] x1 + [0]
c_12() = [0]
c_13() = [0]
c_14() = [0]
c_15(x1) = [0] x1 + [0]
ge^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_16() = [0]
c_17() = [0]
c_18(x1) = [0] x1 + [0]
f0^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_19(x1) = [1] x1 + [0]
f1^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_20(x1) = [1] x1 + [0]
f2^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_21(x1) = [1] x1 + [0]
c_22() = [0]
c_23() = [0]
We have not generated a proof for the resulting sub-problem.
* Path {20,22,21}->{24}: NA
-------------------------
The usable rules of this path are empty.
The weightgap principle applies, using the following adequate RMI:
The following argument positions are usable:
Uargs(plus) = {}, Uargs(ifPlus) = {}, Uargs(isZero) = {},
Uargs(inc) = {}, Uargs(p) = {}, Uargs(times) = {},
Uargs(timesIter) = {}, Uargs(ifTimes) = {}, Uargs(ge) = {},
Uargs(s) = {}, Uargs(f0) = {}, Uargs(f1) = {}, Uargs(f2) = {},
Uargs(plus^#) = {}, Uargs(c_0) = {}, Uargs(ifPlus^#) = {},
Uargs(c_1) = {}, Uargs(p^#) = {}, Uargs(c_2) = {},
Uargs(times^#) = {}, Uargs(c_3) = {}, Uargs(timesIter^#) = {},
Uargs(c_4) = {}, Uargs(ifTimes^#) = {}, Uargs(c_6) = {},
Uargs(isZero^#) = {}, Uargs(c_9) = {}, Uargs(inc^#) = {},
Uargs(c_11) = {}, Uargs(c_15) = {}, Uargs(ge^#) = {},
Uargs(c_18) = {}, Uargs(f0^#) = {}, Uargs(c_19) = {1},
Uargs(f1^#) = {}, Uargs(c_20) = {1}, Uargs(f2^#) = {},
Uargs(c_21) = {1}
We have the following constructor-restricted matrix interpretation:
Interpretation Functions:
plus(x1, x2) = [0] x1 + [0] x2 + [0]
ifPlus(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
isZero(x1) = [0] x1 + [0]
inc(x1) = [0] x1 + [0]
true() = [0]
p(x1) = [0] x1 + [0]
false() = [0]
times(x1, x2) = [0] x1 + [0] x2 + [0]
timesIter(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
0() = [0]
ifTimes(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
ge(x1, x2) = [0] x1 + [0] x2 + [0]
s(x1) = [0] x1 + [0]
f0(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f1(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
f2(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
1() = [0]
d() = [0]
c() = [0]
plus^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_0(x1) = [0] x1 + [0]
ifPlus^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_1(x1) = [0] x1 + [0]
p^#(x1) = [0] x1 + [0]
c_2(x1) = [0] x1 + [0]
times^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_3(x1) = [0] x1 + [0]
timesIter^#(x1, x2, x3, x4) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0]
c_4(x1) = [0] x1 + [0]
ifTimes^#(x1, x2, x3, x4, x5) = [0] x1 + [0] x2 + [0] x3 + [0] x4 + [0] x5 + [0]
c_5() = [0]
c_6(x1) = [0] x1 + [0]
isZero^#(x1) = [0] x1 + [0]
c_7() = [0]
c_8() = [0]
c_9(x1) = [0] x1 + [0]
inc^#(x1) = [0] x1 + [0]
c_10() = [0]
c_11(x1) = [0] x1 + [0]
c_12() = [0]
c_13() = [0]
c_14() = [0]
c_15(x1) = [0] x1 + [0]
ge^#(x1, x2) = [0] x1 + [0] x2 + [0]
c_16() = [0]
c_17() = [0]
c_18(x1) = [0] x1 + [0]
f0^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_19(x1) = [1] x1 + [0]
f1^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_20(x1) = [1] x1 + [0]
f2^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
c_21(x1) = [1] x1 + [0]
c_22() = [0]
c_23() = [0]
We have not generated a proof for the resulting sub-problem.
4) 'matrix-interpretation of dimension 1' failed due to the following reason:
The input cannot be shown compatible
5) 'Bounds with perSymbol-enrichment and initial automaton 'match'' failed due to the following reason:
match-boundness of the problem could not be verified.
6) 'Bounds with minimal-enrichment and initial automaton 'match'' failed due to the following reason:
match-boundness of the problem could not be verified.
Tool RC1
stdout:
MAYBE
Tool RC2
stdout:
TIMEOUT
'Fastest (timeout of 60.0 seconds)'
-----------------------------------
Answer: TIMEOUT
Input Problem: runtime-complexity with respect to
Rules:
{ plus(x, y) -> ifPlus(isZero(x), x, inc(y))
, ifPlus(true(), x, y) -> p(y)
, ifPlus(false(), x, y) -> plus(p(x), y)
, times(x, y) -> timesIter(0(), x, y, 0())
, timesIter(i, x, y, z) -> ifTimes(ge(i, x), i, x, y, z)
, ifTimes(true(), i, x, y, z) -> z
, ifTimes(false(), i, x, y, z) ->
timesIter(inc(i), x, y, plus(z, y))
, isZero(0()) -> true()
, isZero(s(0())) -> false()
, isZero(s(s(x))) -> isZero(s(x))
, inc(0()) -> s(0())
, inc(s(x)) -> s(inc(x))
, inc(x) -> s(x)
, p(0()) -> 0()
, p(s(x)) -> x
, p(s(s(x))) -> s(p(s(x)))
, ge(x, 0()) -> true()
, ge(0(), s(y)) -> false()
, ge(s(x), s(y)) -> ge(x, y)
, f0(0(), y, x) -> f1(x, y, x)
, f1(x, y, z) -> f2(x, y, z)
, f2(x, 1(), z) -> f0(x, z, z)
, f0(x, y, z) -> d()
, f1(x, y, z) -> c()}
Proof Output:
Computation stopped due to timeout after 60.0 seconds