Start: f15
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
Temp_Vars: N, O, P
Locations: f1, f10, f12, f13, f15, f300, f32, f8
Transitions:
8:f1(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) -> f1(Arg_0,Arg_1,N,Arg_3,Arg_4,O,P,0,Arg_8,0,0,Arg_11,Arg_12):|:1+Arg_1<=Arg_4 && Arg_12<=4
11:f1(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) -> f300(Arg_0,1+Arg_1,N,Arg_3,Arg_4,O,Arg_6,1,Arg_8,1,1,Arg_11,Arg_12):|:1+Arg_1<=Arg_4 && 5<=Arg_12
6:f10(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) -> f1(Arg_0,Arg_1,N,Arg_3,Arg_4,O,P,0,Arg_8,0,0,Arg_11,2)
5:f12(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) -> f1(Arg_0,Arg_1,N,Arg_3,Arg_4,O,P,0,Arg_8,0,0,1+Arg_8,Arg_12):|:Arg_8<=4
10:f12(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) -> f300(Arg_0,1+Arg_1,N,Arg_3,Arg_4,O,Arg_6,1,Arg_8,1,1,Arg_11,Arg_12):|:5<=Arg_8
4:f13(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) -> f1(Arg_0,Arg_1,N,Arg_3,Arg_4,O,P,0,2,0,0,Arg_11,Arg_12)
1:f15(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) -> f8(Arg_0,Arg_1,Arg_2,N,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12)
9:f300(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) -> f1(Arg_0,Arg_1,N,Arg_3,Arg_4,O,P,0,Arg_8,0,0,Arg_11,Arg_12):|:1+Arg_1<=Arg_4
2:f300(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) -> f8(1+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_4<=Arg_1
7:f8(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) -> f1(Arg_0,Arg_1,N,Arg_3,Arg_4,O,P,0,Arg_8,0,0,Arg_11,Arg_12):|:1+Arg_0<=Arg_1 && 1+Arg_1<=Arg_4
0:f8(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) -> f32(Arg_0,Arg_1,N,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11,Arg_12):|:Arg_1<=Arg_0
3:f8(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) -> f8(1+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):|:1+Arg_0<=Arg_1 && Arg_4<=Arg_1
Cut unreachable locations [f10; f12; f13] from the program graph
Eliminate variables {N,O,P,Arg_2,Arg_3,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9,Arg_10,Arg_11} that do not contribute to the problem
Found invariant Arg_1<=Arg_0 for location f32
Found invariant Arg_1<=Arg_4 && 2+Arg_0<=Arg_4 && 5<=Arg_12 && 2+Arg_0<=Arg_1 for location f300
Found invariant 1+Arg_1<=Arg_4 && 2+Arg_0<=Arg_4 && 1+Arg_0<=Arg_1 for location f1
Start: f15
Program_Vars: Arg_0, Arg_1, Arg_4, Arg_12
Temp_Vars:
Locations: f1, f15, f300, f32, f8
Transitions:
23:f1(Arg_0,Arg_1,Arg_4,Arg_12) -> f1(Arg_0,Arg_1,Arg_4,Arg_12):|:1+Arg_1<=Arg_4 && 2+Arg_0<=Arg_4 && 1+Arg_0<=Arg_1 && 1+Arg_1<=Arg_4 && Arg_12<=4
24:f1(Arg_0,Arg_1,Arg_4,Arg_12) -> f300(Arg_0,1+Arg_1,Arg_4,Arg_12):|:1+Arg_1<=Arg_4 && 2+Arg_0<=Arg_4 && 1+Arg_0<=Arg_1 && 1+Arg_1<=Arg_4 && 5<=Arg_12
25:f15(Arg_0,Arg_1,Arg_4,Arg_12) -> f8(Arg_0,Arg_1,Arg_4,Arg_12)
27:f300(Arg_0,Arg_1,Arg_4,Arg_12) -> f1(Arg_0,Arg_1,Arg_4,Arg_12):|:Arg_1<=Arg_4 && 2+Arg_0<=Arg_4 && 5<=Arg_12 && 2+Arg_0<=Arg_1 && 1+Arg_1<=Arg_4
26:f300(Arg_0,Arg_1,Arg_4,Arg_12) -> f8(1+Arg_0,Arg_1,Arg_4,Arg_12):|:Arg_1<=Arg_4 && 2+Arg_0<=Arg_4 && 5<=Arg_12 && 2+Arg_0<=Arg_1 && Arg_4<=Arg_1
30:f8(Arg_0,Arg_1,Arg_4,Arg_12) -> f1(Arg_0,Arg_1,Arg_4,Arg_12):|:1+Arg_0<=Arg_1 && 1+Arg_1<=Arg_4
28:f8(Arg_0,Arg_1,Arg_4,Arg_12) -> f32(Arg_0,Arg_1,Arg_4,Arg_12):|:Arg_1<=Arg_0
29:f8(Arg_0,Arg_1,Arg_4,Arg_12) -> f8(1+Arg_0,Arg_1,Arg_4,Arg_12):|:1+Arg_0<=Arg_1 && Arg_4<=Arg_1
knowledge_propagation leads to new time bound 1 {O(1)} for transition 30:f8(Arg_0,Arg_1,Arg_4,Arg_12) -> f1(Arg_0,Arg_1,Arg_4,Arg_12):|:1+Arg_0<=Arg_1 && 1+Arg_1<=Arg_4
new bound:
Arg_1+Arg_4 {O(n)}
MPRF:
f300 [Arg_4-Arg_1 ]
f8 [Arg_4-Arg_1 ]
f1 [Arg_4-Arg_1 ]
new bound:
Arg_1+Arg_4 {O(n)}
MPRF:
f300 [1 ]
f8 [Arg_4-Arg_1 ]
f1 [1 ]
new bound:
Arg_1+Arg_4 {O(n)}
MPRF:
f300 [Arg_4-Arg_1 ]
f8 [Arg_4-Arg_1 ]
f1 [Arg_4-Arg_1-1 ]
new bound:
2*Arg_0+Arg_1+Arg_4 {O(n)}
MPRF:
f300 [Arg_4-Arg_0 ]
f1 [Arg_4-Arg_0 ]
f8 [Arg_1-Arg_0 ]
Overall timebound:inf {Infinity}
23: f1->f1: inf {Infinity}
24: f1->f300: Arg_1+Arg_4 {O(n)}
25: f15->f8: 1 {O(1)}
26: f300->f8: Arg_1+Arg_4 {O(n)}
27: f300->f1: Arg_1+Arg_4 {O(n)}
28: f8->f32: 1 {O(1)}
29: f8->f8: 2*Arg_0+Arg_1+Arg_4 {O(n)}
30: f8->f1: 1 {O(1)}
Overall costbound: inf {Infinity}
23: f1->f1: inf {Infinity}
24: f1->f300: Arg_1+Arg_4 {O(n)}
25: f15->f8: 1 {O(1)}
26: f300->f8: Arg_1+Arg_4 {O(n)}
27: f300->f1: Arg_1+Arg_4 {O(n)}
28: f8->f32: 1 {O(1)}
29: f8->f8: 2*Arg_0+Arg_1+Arg_4 {O(n)}
30: f8->f1: 1 {O(1)}
23: f1->f1, Arg_0: Arg_0 {O(n)}
23: f1->f1, Arg_1: Arg_1 {O(n)}
23: f1->f1, Arg_4: Arg_4 {O(n)}
23: f1->f1, Arg_12: Arg_12 {O(n)}
24: f1->f300, Arg_0: Arg_0 {O(n)}
24: f1->f300, Arg_1: 2*Arg_1+Arg_4 {O(n)}
24: f1->f300, Arg_4: Arg_4 {O(n)}
24: f1->f300, Arg_12: Arg_12 {O(n)}
25: f15->f8, Arg_0: Arg_0 {O(n)}
25: f15->f8, Arg_1: Arg_1 {O(n)}
25: f15->f8, Arg_4: Arg_4 {O(n)}
25: f15->f8, Arg_12: Arg_12 {O(n)}
26: f300->f8, Arg_0: Arg_0+1 {O(n)}
26: f300->f8, Arg_1: 2*Arg_1+Arg_4 {O(n)}
26: f300->f8, Arg_4: Arg_4 {O(n)}
26: f300->f8, Arg_12: Arg_12 {O(n)}
27: f300->f1, Arg_0: Arg_0 {O(n)}
27: f300->f1, Arg_1: 2*Arg_1+Arg_4 {O(n)}
27: f300->f1, Arg_4: Arg_4 {O(n)}
27: f300->f1, Arg_12: Arg_12 {O(n)}
28: f8->f32, Arg_0: 5*Arg_0+Arg_1+Arg_4+1 {O(n)}
28: f8->f32, Arg_1: 4*Arg_1+Arg_4 {O(n)}
28: f8->f32, Arg_4: 3*Arg_4 {O(n)}
28: f8->f32, Arg_12: 3*Arg_12 {O(n)}
29: f8->f8, Arg_0: 4*Arg_0+Arg_1+Arg_4+1 {O(n)}
29: f8->f8, Arg_1: 3*Arg_1+Arg_4 {O(n)}
29: f8->f8, Arg_4: 2*Arg_4 {O(n)}
29: f8->f8, Arg_12: 2*Arg_12 {O(n)}
30: f8->f1, Arg_0: Arg_0 {O(n)}
30: f8->f1, Arg_1: Arg_1 {O(n)}
30: f8->f1, Arg_4: Arg_4 {O(n)}
30: f8->f1, Arg_12: Arg_12 {O(n)}