Initial Problem

Start: l0
Program_Vars: Arg_0, Arg_1, Arg_2
Temp_Vars:
Locations: l0, l1
Transitions:
0:l0(Arg_0,Arg_1,Arg_2) -> l1(Arg_0,Arg_1,Arg_2)
1:l1(Arg_0,Arg_1,Arg_2) -> l1(2*Arg_0+Arg_1,Arg_1+1,Arg_2):|:1<=Arg_0 && Arg_0<=Arg_2

Preprocessing

Problem after Preprocessing

Start: l0
Program_Vars: Arg_0, Arg_1, Arg_2
Temp_Vars:
Locations: l0, l1
Transitions:
0:l0(Arg_0,Arg_1,Arg_2) -> l1(Arg_0,Arg_1,Arg_2)
1:l1(Arg_0,Arg_1,Arg_2) -> l1(2*Arg_0+Arg_1,Arg_1+1,Arg_2):|:1<=Arg_0 && Arg_0<=Arg_2

Analysing control-flow refined program

Found invariant 1<=Arg_2 && 1+Arg_1<=Arg_0 for location n_l1___1

MPRF for transition 15:n_l1___1(Arg_0,Arg_1,Arg_2) -> n_l1___1(2*Arg_0+Arg_1,Arg_1+1,Arg_2):|:1<=Arg_2 && 1+Arg_1<=Arg_0 && 1+Arg_1<=Arg_0 && 1+Arg_0<=Arg_1+2*Arg_2 && 1<=Arg_0 && Arg_0<=Arg_2 of depth 1:

new bound:

Arg_1+Arg_2+1 {O(n)}

MPRF:

n_l1___1 [Arg_2-Arg_1 ]

CFR: Improvement to new bound with the following program:

new bound:

Arg_1+Arg_2+1 {O(n)}

cfr-program:

Start: l0
Program_Vars: Arg_0, Arg_1, Arg_2
Temp_Vars:
Locations: l0, l1, n_l1___1
Transitions:
0:l0(Arg_0,Arg_1,Arg_2) -> l1(Arg_0,Arg_1,Arg_2)
16:l1(Arg_0,Arg_1,Arg_2) -> n_l1___1(2*Arg_0+Arg_1,Arg_1+1,Arg_2):|:1<=Arg_0 && Arg_0<=Arg_2
15:n_l1___1(Arg_0,Arg_1,Arg_2) -> n_l1___1(2*Arg_0+Arg_1,Arg_1+1,Arg_2):|:1<=Arg_2 && 1+Arg_1<=Arg_0 && 1+Arg_1<=Arg_0 && 1+Arg_0<=Arg_1+2*Arg_2 && 1<=Arg_0 && Arg_0<=Arg_2

All Bounds

Timebounds

Overall timebound:Arg_1+Arg_2+3 {O(n)}
0: l0->l1: 1 {O(1)}
16: l1->n_l1___1: 1 {O(1)}
15: n_l1___1->n_l1___1: Arg_1+Arg_2+1 {O(n)}

Costbounds

Overall costbound: Arg_1+Arg_2+3 {O(n)}
0: l0->l1: 1 {O(1)}
16: l1->n_l1___1: 1 {O(1)}
15: n_l1___1->n_l1___1: Arg_1+Arg_2+1 {O(n)}

Sizebounds

0: l0->l1, Arg_0: Arg_0 {O(n)}
0: l0->l1, Arg_1: Arg_1 {O(n)}
0: l0->l1, Arg_2: Arg_2 {O(n)}
16: l1->n_l1___1, Arg_0: 2*Arg_0+2*Arg_1 {O(n)}
16: l1->n_l1___1, Arg_1: Arg_1+1 {O(n)}
16: l1->n_l1___1, Arg_2: Arg_2 {O(n)}
15: n_l1___1->n_l1___1, Arg_0: 11*2^(Arg_1+Arg_2+1)*Arg_1+2*2^(Arg_1+Arg_2+1)*Arg_0+2^(Arg_1+Arg_2+1)*3*Arg_1*Arg_1+2^(Arg_1+Arg_2+1)*4*Arg_1*Arg_2+2^(Arg_1+Arg_2+1)*5*Arg_2+2^(Arg_1+Arg_2+1)*6+2^(Arg_1+Arg_2+1)*Arg_2*Arg_2 {O(EXP)}
15: n_l1___1->n_l1___1, Arg_1: 2*Arg_1+Arg_2+2 {O(n)}
15: n_l1___1->n_l1___1, Arg_2: Arg_2 {O(n)}