Initial Problem

Start: f0
Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3, Arg_4, Arg_5, Arg_6, Arg_7, Arg_8, Arg_9, Arg_10, Arg_11, Arg_12, Arg_13, Arg_14, Arg_15, Arg_16, Arg_17, Arg_18, Arg_19, Arg_20, Arg_21, Arg_22
Temp_Vars: A1, B1, X, Y, Z
Locations: f0, f11, f37, f45, f53, f55, f58
Transitions:
12:f0(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22) -> f11(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,0,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,0)
11:f11(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22) -> f11(Arg_0+1,Arg_1,1,Arg_3,Arg_4,Arg_5,Arg_6,Y,X,Z,A1,Arg_3,Y,Y,Y,Y,Arg_17,Arg_17,1,1,1,0,Arg_22):|:Y<=0 && Arg_0+1<=Arg_1
9:f11(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22) -> f37(Arg_0,Arg_1,B1,Arg_3,Arg_4,Arg_5,Arg_6,Y,X,Z,A1,Arg_3,Y,Y,Y,Y,Arg_17,0,B1,B1,B1,0,Arg_22):|:Arg_0+1<=Arg_1 && Y<=0 && 2<=B1
10:f11(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22) -> f37(Arg_0,Arg_1,B1,Arg_3,Arg_4,Arg_5,Arg_6,Y,X,Z,A1,Arg_3,Y,Y,Y,Y,Arg_17,0,B1,B1,B1,0,Arg_22):|:Arg_0+1<=Arg_1 && Y<=0 && B1<=0
0:f11(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22) -> f45(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22):|:Arg_1<=Arg_0
8:f11(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22) -> f45(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Y,X,Z,A1,Arg_3,Y,Y,Y,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22):|:1<=Y && Arg_0+1<=Arg_1
1:f37(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22) -> f45(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22):|:3<=Arg_2
2:f37(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22) -> f45(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22):|:Arg_2<=1
7:f37(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22) -> f45(Arg_0,Arg_1,2,Arg_3+1,Arg_4,Arg_5,Arg_7,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22):|:Arg_2<=2 && 2<=Arg_2
5:f45(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22) -> f53(Arg_0,Arg_1,Arg_2,0,X,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22):|:X<=0
6:f45(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22) -> f53(Arg_0,Arg_1,Arg_2,0,X,0,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22):|:1<=X
3:f53(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22) -> f53(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22)
4:f55(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22) -> f58(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22)

Preprocessing

Cut unreachable locations [f55; f58] from the program graph

Eliminate variables {A1,Z,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12,Arg_13,Arg_14,Arg_15,Arg_16,Arg_17,Arg_18,Arg_19,Arg_20,Arg_21,Arg_22} that do not contribute to the problem

Found invariant 1+Arg_0<=Arg_1 for location f37

Problem after Preprocessing

Start: f0
Program_Vars: Arg_0, Arg_1, Arg_2
Temp_Vars: B1, X, Y
Locations: f0, f11, f37, f45, f53
Transitions:
29:f0(Arg_0,Arg_1,Arg_2) -> f11(Arg_0,Arg_1,Arg_2)
34:f11(Arg_0,Arg_1,Arg_2) -> f11(Arg_0+1,Arg_1,1):|:Y<=0 && Arg_0+1<=Arg_1
32:f11(Arg_0,Arg_1,Arg_2) -> f37(Arg_0,Arg_1,B1):|:Arg_0+1<=Arg_1 && Y<=0 && 2<=B1
33:f11(Arg_0,Arg_1,Arg_2) -> f37(Arg_0,Arg_1,B1):|:Arg_0+1<=Arg_1 && Y<=0 && B1<=0
30:f11(Arg_0,Arg_1,Arg_2) -> f45(Arg_0,Arg_1,Arg_2):|:Arg_1<=Arg_0
31:f11(Arg_0,Arg_1,Arg_2) -> f45(Arg_0,Arg_1,Arg_2):|:1<=Y && Arg_0+1<=Arg_1
35:f37(Arg_0,Arg_1,Arg_2) -> f45(Arg_0,Arg_1,Arg_2):|:1+Arg_0<=Arg_1 && 3<=Arg_2
36:f37(Arg_0,Arg_1,Arg_2) -> f45(Arg_0,Arg_1,Arg_2):|:1+Arg_0<=Arg_1 && Arg_2<=1
37:f37(Arg_0,Arg_1,Arg_2) -> f45(Arg_0,Arg_1,2):|:1+Arg_0<=Arg_1 && Arg_2<=2 && 2<=Arg_2
38:f45(Arg_0,Arg_1,Arg_2) -> f53(Arg_0,Arg_1,Arg_2):|:X<=0
39:f45(Arg_0,Arg_1,Arg_2) -> f53(Arg_0,Arg_1,Arg_2):|:1<=X
40:f53(Arg_0,Arg_1,Arg_2) -> f53(Arg_0,Arg_1,Arg_2)

MPRF for transition 34:f11(Arg_0,Arg_1,Arg_2) -> f11(Arg_0+1,Arg_1,1):|:Y<=0 && Arg_0+1<=Arg_1 of depth 1:

new bound:

Arg_0+Arg_1 {O(n)}

MPRF:

f11 [Arg_1-Arg_0 ]

All Bounds

Timebounds

Overall timebound:inf {Infinity}
29: f0->f11: 1 {O(1)}
30: f11->f45: 1 {O(1)}
31: f11->f45: 1 {O(1)}
32: f11->f37: 1 {O(1)}
33: f11->f37: 1 {O(1)}
34: f11->f11: Arg_0+Arg_1 {O(n)}
35: f37->f45: 1 {O(1)}
36: f37->f45: 1 {O(1)}
37: f37->f45: 1 {O(1)}
38: f45->f53: 1 {O(1)}
39: f45->f53: 1 {O(1)}
40: f53->f53: inf {Infinity}

Costbounds

Overall costbound: inf {Infinity}
29: f0->f11: 1 {O(1)}
30: f11->f45: 1 {O(1)}
31: f11->f45: 1 {O(1)}
32: f11->f37: 1 {O(1)}
33: f11->f37: 1 {O(1)}
34: f11->f11: Arg_0+Arg_1 {O(n)}
35: f37->f45: 1 {O(1)}
36: f37->f45: 1 {O(1)}
37: f37->f45: 1 {O(1)}
38: f45->f53: 1 {O(1)}
39: f45->f53: 1 {O(1)}
40: f53->f53: inf {Infinity}

Sizebounds

29: f0->f11, Arg_0: Arg_0 {O(n)}
29: f0->f11, Arg_1: Arg_1 {O(n)}
29: f0->f11, Arg_2: Arg_2 {O(n)}
30: f11->f45, Arg_0: 3*Arg_0+Arg_1 {O(n)}
30: f11->f45, Arg_1: 2*Arg_1 {O(n)}
30: f11->f45, Arg_2: Arg_2+1 {O(n)}
31: f11->f45, Arg_0: 3*Arg_0+Arg_1 {O(n)}
31: f11->f45, Arg_1: 2*Arg_1 {O(n)}
31: f11->f45, Arg_2: Arg_2+1 {O(n)}
32: f11->f37, Arg_0: 3*Arg_0+Arg_1 {O(n)}
32: f11->f37, Arg_1: 2*Arg_1 {O(n)}
33: f11->f37, Arg_0: 3*Arg_0+Arg_1 {O(n)}
33: f11->f37, Arg_1: 2*Arg_1 {O(n)}
34: f11->f11, Arg_0: 2*Arg_0+Arg_1 {O(n)}
34: f11->f11, Arg_1: Arg_1 {O(n)}
34: f11->f11, Arg_2: 1 {O(1)}
35: f37->f45, Arg_0: 3*Arg_0+Arg_1 {O(n)}
35: f37->f45, Arg_1: 2*Arg_1 {O(n)}
36: f37->f45, Arg_0: 3*Arg_0+Arg_1 {O(n)}
36: f37->f45, Arg_1: 2*Arg_1 {O(n)}
37: f37->f45, Arg_0: 3*Arg_0+Arg_1 {O(n)}
37: f37->f45, Arg_1: 2*Arg_1 {O(n)}
37: f37->f45, Arg_2: 2 {O(1)}
38: f45->f53, Arg_0: 15*Arg_0+5*Arg_1 {O(n)}
38: f45->f53, Arg_1: 10*Arg_1 {O(n)}
39: f45->f53, Arg_0: 15*Arg_0+5*Arg_1 {O(n)}
39: f45->f53, Arg_1: 10*Arg_1 {O(n)}
40: f53->f53, Arg_0: 10*Arg_1+30*Arg_0 {O(n)}
40: f53->f53, Arg_1: 20*Arg_1 {O(n)}