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)}