Initial Problem
Start: f0
Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3
Temp_Vars: E
Locations: f0, f10, f14, f25, f6
Transitions:
0:f0(Arg_0,Arg_1,Arg_2,Arg_3) -> f6(E,0,Arg_2,Arg_3)
2:f10(Arg_0,Arg_1,Arg_2,Arg_3) -> f14(Arg_0,Arg_1-1,Arg_0-1,Arg_3):|:1<=Arg_1
7:f10(Arg_0,Arg_1,Arg_2,Arg_3) -> f6(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_1<=0
6:f14(Arg_0,Arg_1,Arg_2,Arg_3) -> f10(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_2<=0
3:f14(Arg_0,Arg_1,Arg_2,Arg_3) -> f14(Arg_0,Arg_1,Arg_2-1,0):|:1<=Arg_2
4:f14(Arg_0,Arg_1,Arg_2,Arg_3) -> f14(Arg_0-1,Arg_1+1,Arg_2-1,E):|:1<=Arg_2 && E+1<=0
5:f14(Arg_0,Arg_1,Arg_2,Arg_3) -> f14(Arg_0-1,Arg_1+1,Arg_2-1,E):|:1<=Arg_2 && 1<=E
1:f6(Arg_0,Arg_1,Arg_2,Arg_3) -> f10(Arg_0-1,Arg_1+1,Arg_2,Arg_3):|:1<=Arg_0
8:f6(Arg_0,Arg_1,Arg_2,Arg_3) -> f25(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_0<=0
Preprocessing
Eliminate variables {Arg_3} that do not contribute to the problem
Found invariant Arg_1<=0 && 0<=Arg_1 for location f6
Found invariant 1+Arg_2<=Arg_0 && 0<=1+Arg_2 && 0<=1+Arg_1+Arg_2 && 0<=1+Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 for location f14
Found invariant 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 for location f10
Found invariant Arg_1<=0 && Arg_0+Arg_1<=0 && 0<=Arg_1 && Arg_0<=Arg_1 && Arg_0<=0 for location f25
Problem after Preprocessing
Start: f0
Program_Vars: Arg_0, Arg_1, Arg_2
Temp_Vars: E
Locations: f0, f10, f14, f25, f6
Transitions:
19:f0(Arg_0,Arg_1,Arg_2) -> f6(E,0,Arg_2)
20:f10(Arg_0,Arg_1,Arg_2) -> f14(Arg_0,Arg_1-1,Arg_0-1):|:0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && 1<=Arg_1
21:f10(Arg_0,Arg_1,Arg_2) -> f6(Arg_0,Arg_1,Arg_2):|:0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_1<=0
25:f14(Arg_0,Arg_1,Arg_2) -> f10(Arg_0,Arg_1,Arg_2):|:1+Arg_2<=Arg_0 && 0<=1+Arg_2 && 0<=1+Arg_1+Arg_2 && 0<=1+Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_2<=0
22:f14(Arg_0,Arg_1,Arg_2) -> f14(Arg_0,Arg_1,Arg_2-1):|:1+Arg_2<=Arg_0 && 0<=1+Arg_2 && 0<=1+Arg_1+Arg_2 && 0<=1+Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && 1<=Arg_2
23:f14(Arg_0,Arg_1,Arg_2) -> f14(Arg_0-1,Arg_1+1,Arg_2-1):|:1+Arg_2<=Arg_0 && 0<=1+Arg_2 && 0<=1+Arg_1+Arg_2 && 0<=1+Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && 1<=Arg_2 && E+1<=0
24:f14(Arg_0,Arg_1,Arg_2) -> f14(Arg_0-1,Arg_1+1,Arg_2-1):|:1+Arg_2<=Arg_0 && 0<=1+Arg_2 && 0<=1+Arg_1+Arg_2 && 0<=1+Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && 1<=Arg_2 && 1<=E
26:f6(Arg_0,Arg_1,Arg_2) -> f10(Arg_0-1,Arg_1+1,Arg_2):|:Arg_1<=0 && 0<=Arg_1 && 1<=Arg_0
27:f6(Arg_0,Arg_1,Arg_2) -> f25(Arg_0,Arg_1,Arg_2):|:Arg_1<=0 && 0<=Arg_1 && Arg_0<=0
Analysing control-flow refined program
Cut unsatisfiable transition 161: n_f6___3->f25
Found invariant Arg_2<=0 && Arg_2<=Arg_1 && Arg_1+Arg_2<=0 && 2+Arg_2<=Arg_0 && 0<=Arg_2 && 0<=Arg_1+Arg_2 && Arg_1<=Arg_2 && 2<=Arg_0+Arg_2 && Arg_1<=0 && 2+Arg_1<=Arg_0 && 0<=Arg_1 && 2<=Arg_0+Arg_1 && 2<=Arg_0 for location n_f6___3
Found invariant Arg_1<=0 && 0<=Arg_1 for location f6
Found invariant 1+Arg_2<=Arg_0 && 0<=Arg_2 && 1<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && Arg_0<=1+Arg_2 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 for location n_f14___10
Found invariant 2+Arg_2<=Arg_0 && 0<=Arg_2 && 0<=Arg_1+Arg_2 && 2<=Arg_0+Arg_2 && 0<=Arg_1 && 2<=Arg_0+Arg_1 && 2<=Arg_0 for location n_f14___11
Found invariant 1+Arg_2<=Arg_0 && 1<=Arg_2 && 1<=Arg_1+Arg_2 && 3<=Arg_0+Arg_2 && Arg_0<=1+Arg_2 && 0<=Arg_1 && 2<=Arg_0+Arg_1 && 2<=Arg_0 for location n_f14___4
Found invariant 1+Arg_2<=Arg_0 && 0<=1+Arg_2 && 0<=1+Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 0<=1+Arg_0+Arg_2 && Arg_0<=1+Arg_2 && Arg_1<=0 && Arg_1<=Arg_0 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 for location n_f14___13
Found invariant Arg_2<=0 && 1+Arg_2<=Arg_1 && 1+Arg_2<=Arg_0 && Arg_0+Arg_2<=1 && 0<=Arg_2 && 1<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && Arg_0<=1+Arg_2 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && Arg_0<=Arg_1 && Arg_0<=1 && 1<=Arg_0 for location n_f10___1
Found invariant Arg_2<=0 && 1+Arg_2<=Arg_1 && 2+Arg_2<=Arg_0 && 0<=Arg_2 && 1<=Arg_1+Arg_2 && 2<=Arg_0+Arg_2 && 1<=Arg_1 && 3<=Arg_0+Arg_1 && 2<=Arg_0 for location n_f10___2
Found invariant Arg_2<=0 && 1+Arg_2<=Arg_1 && Arg_1+Arg_2<=1 && Arg_2<=Arg_0 && Arg_0+Arg_2<=0 && 0<=Arg_2 && 1<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 0<=Arg_0+Arg_2 && Arg_0<=Arg_2 && Arg_1<=1 && Arg_1<=1+Arg_0 && Arg_0+Arg_1<=1 && 1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && Arg_0<=0 && 0<=Arg_0 for location n_f10___7
Found invariant Arg_2<=0 && Arg_2<=Arg_1 && 1+Arg_2<=Arg_0 && Arg_0+Arg_2<=1 && 0<=1+Arg_2 && 0<=1+Arg_1+Arg_2 && 0<=1+Arg_0+Arg_2 && Arg_0<=1+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && Arg_0<=1+Arg_1 && Arg_0<=1 && 0<=Arg_0 for location n_f14___9
Found invariant Arg_2<=0 && Arg_2<=Arg_1 && 1+Arg_2<=Arg_0 && Arg_0+Arg_2<=1 && 0<=1+Arg_2 && 0<=1+Arg_1+Arg_2 && 0<=1+Arg_0+Arg_2 && Arg_0<=1+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && Arg_0<=1+Arg_1 && Arg_0<=1 && 0<=Arg_0 for location n_f10___12
Found invariant Arg_1<=1 && Arg_1<=1+Arg_0 && 1<=Arg_1 && 1<=Arg_0+Arg_1 && 0<=Arg_0 for location n_f10___14
Found invariant Arg_2<=0 && Arg_2<=Arg_1 && 2+Arg_2<=Arg_0 && 0<=Arg_2 && 0<=Arg_1+Arg_2 && 2<=Arg_0+Arg_2 && 0<=Arg_1 && 2<=Arg_0+Arg_1 && 2<=Arg_0 for location n_f10___6
Found invariant 2+Arg_2<=Arg_0 && 0<=Arg_2 && 1<=Arg_1+Arg_2 && 2<=Arg_0+Arg_2 && 1<=Arg_1 && 3<=Arg_0+Arg_1 && 2<=Arg_0 for location n_f14___5
Found invariant Arg_1<=0 && Arg_0+Arg_1<=0 && 0<=Arg_1 && Arg_0<=Arg_1 && Arg_0<=0 for location f25
Found invariant Arg_2<=0 && Arg_2<=Arg_1 && Arg_1+Arg_2<=0 && 1+Arg_2<=Arg_0 && Arg_0+Arg_2<=1 && 0<=1+Arg_2 && 0<=1+Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 0<=1+Arg_0+Arg_2 && Arg_0<=1+Arg_2 && Arg_1<=0 && Arg_1<=Arg_0 && Arg_0+Arg_1<=1 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && Arg_0<=1+Arg_1 && Arg_0<=1 && 0<=Arg_0 for location n_f6___8
MPRF for transition 110:n_f10___12(Arg_0,Arg_1,Arg_2) -> n_f6___8(Arg_0,0,Arg_2):|:Arg_2<=0 && Arg_2<=Arg_1 && 1+Arg_2<=Arg_0 && Arg_0+Arg_2<=1 && 0<=1+Arg_2 && 0<=1+Arg_1+Arg_2 && 0<=1+Arg_0+Arg_2 && Arg_0<=1+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && Arg_0<=1+Arg_1 && Arg_0<=1 && 0<=Arg_0 && Arg_0<=1 && 0<=Arg_0 && 0<=1+Arg_2 && 1+Arg_2<=Arg_0 && 0<=Arg_1 && Arg_2<=0 && 0<=Arg_0 && Arg_1<=0 && 0<=Arg_1 of depth 1:
new bound:
5 {O(1)}
MPRF:
n_f14___9 [Arg_0+1 ]
n_f10___12 [Arg_2+2 ]
n_f6___8 [Arg_2+1 ]
n_f10___7 [Arg_1+Arg_2 ]
MPRF for transition 115:n_f10___7(Arg_0,Arg_1,Arg_2) -> n_f14___9(Arg_0,Arg_1-1,Arg_0-1):|:Arg_2<=0 && 1+Arg_2<=Arg_1 && Arg_1+Arg_2<=1 && Arg_2<=Arg_0 && Arg_0+Arg_2<=0 && 0<=Arg_2 && 1<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 0<=Arg_0+Arg_2 && Arg_0<=Arg_2 && Arg_1<=1 && Arg_1<=1+Arg_0 && Arg_0+Arg_1<=1 && 1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && Arg_0<=0 && 0<=Arg_0 && Arg_0<=1 && 0<=Arg_0 && 1<=Arg_1 && 0<=Arg_0 && 1<=Arg_1 && Arg_1<=1 && 1<=Arg_1 && 0<=Arg_0 && 0<=Arg_0 && 1<=Arg_1 of depth 1:
new bound:
3 {O(1)}
MPRF:
n_f14___9 [Arg_0 ]
n_f10___12 [Arg_2+1 ]
n_f6___8 [Arg_0+Arg_2 ]
n_f10___7 [1 ]
MPRF for transition 138:n_f6___8(Arg_0,Arg_1,Arg_2) -> n_f10___7(Arg_0-1,1,Arg_2):|:Arg_2<=0 && Arg_2<=Arg_1 && Arg_1+Arg_2<=0 && 1+Arg_2<=Arg_0 && Arg_0+Arg_2<=1 && 0<=1+Arg_2 && 0<=1+Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 0<=1+Arg_0+Arg_2 && Arg_0<=1+Arg_2 && Arg_1<=0 && Arg_1<=Arg_0 && Arg_0+Arg_1<=1 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && Arg_0<=1+Arg_1 && Arg_0<=1 && 0<=Arg_0 && Arg_0<=2 && Arg_1<=0 && 0<=Arg_1 && Arg_1<=0 && 0<=Arg_1 && Arg_1<=0 && 0<=Arg_1 && 0<=Arg_0 && 1<=Arg_0 && Arg_1<=0 && 0<=Arg_1 of depth 1:
new bound:
3 {O(1)}
MPRF:
n_f14___9 [Arg_0 ]
n_f10___12 [Arg_2+1 ]
n_f6___8 [Arg_0 ]
n_f10___7 [0 ]
CFR did not improve the program. Rolling back
All Bounds
Timebounds
Overall timebound:inf {Infinity}
19: f0->f6: 1 {O(1)}
20: f10->f14: inf {Infinity}
21: f10->f6: inf {Infinity}
22: f14->f14: inf {Infinity}
23: f14->f14: inf {Infinity}
24: f14->f14: inf {Infinity}
25: f14->f10: inf {Infinity}
26: f6->f10: inf {Infinity}
27: f6->f25: 1 {O(1)}
Costbounds
Overall costbound: inf {Infinity}
19: f0->f6: 1 {O(1)}
20: f10->f14: inf {Infinity}
21: f10->f6: inf {Infinity}
22: f14->f14: inf {Infinity}
23: f14->f14: inf {Infinity}
24: f14->f14: inf {Infinity}
25: f14->f10: inf {Infinity}
26: f6->f10: inf {Infinity}
27: f6->f25: 1 {O(1)}
Sizebounds
19: f0->f6, Arg_1: 0 {O(1)}
19: f0->f6, Arg_2: Arg_2 {O(n)}
21: f10->f6, Arg_1: 0 {O(1)}
21: f10->f6, Arg_2: 1 {O(1)}
25: f14->f10, Arg_2: 1 {O(1)}
26: f6->f10, Arg_1: 1 {O(1)}
26: f6->f10, Arg_2: Arg_2+1 {O(n)}
27: f6->f25, Arg_1: 0 {O(1)}
27: f6->f25, Arg_2: Arg_2+1 {O(n)}