1 <check_ce:categorization>Categorizations of models:
2 - Checked model 0: BAD_CE
5 - Checked model 1: BAD_CE
9 - Concrete RAC: FAILURE (precondition at "bench/check-ce/threshold.mlw", line 11, characters 11-20)
10 - Abstract RAC: FAILURE (precondition at "bench/check-ce/threshold.mlw", line 11, characters 11-20)
11 File "bench/check-ce/threshold.mlw", line 11, characters 11-20:
12 Sub-goal Integer overflow of goal f'vc.
13 Prover result is: Unknown (unknown) (5 steps).
14 The program does not comply to the verification goal, for example during the
18 Constant zero initialization
21 Constant one initialization
25 Constant min_int32 initialization
26 min_int32 = (-2147483648)
28 Constant max_int32 initialization
29 max_int32 = 2147483647
33 min = epsilon x:int32. int32'int x = 2147483647
34 max = epsilon x:int32. int32'int x = 2147483647
36 min = epsilon x:int32. int32'int x = 2147483647
37 max = epsilon x:int32. int32'int x = 2147483647
38 Execution of main function `f` with env:
40 min = epsilon x:int32. int32'int x = 2147483647
41 max = epsilon x:int32. int32'int x = 2147483647
44 min_int32 = (-2147483648)
45 max_int32 = 2147483647
47 (giant-step) execution of unimplemented function `(+)`
48 a = epsilon x:int32. int32'int x = 2147483647
49 b = epsilon x:int32. int32'int x = 2147483647
50 Property failure at precondition of `(+)` with:
51 a = epsilon x:int32. int32'int x = 2147483647
52 b = epsilon x:int32. int32'int x = 2147483647
54 <check_ce:categorization>Categorizations of models:
55 - Checked model 0: BAD_CE
56 - Concrete RAC: NORMAL
57 - Abstract RAC: NORMAL
58 - Checked model 1: BAD_CE
59 - Concrete RAC: NORMAL
60 - Abstract RAC: NORMAL
61 - Selected model 2: BAD_CE
62 - Concrete RAC: FAILURE (precondition at "bench/check-ce/threshold.mlw", line 11, characters 11-20)
63 - Abstract RAC: FAILURE (precondition at "bench/check-ce/threshold.mlw", line 11, characters 11-20)
64 File "bench/check-ce/threshold.mlw", line 9, characters 13-33:
65 Sub-goal Postcondition of goal f'vc.
66 Prover result is: Unknown (unknown) (19 steps).
67 Sorry, we don't have a good counterexample for you :(
70 <check_ce:categorization>Categorizations of models:
71 - Checked model 0: BAD_CE
72 - Concrete RAC: NORMAL
73 - Abstract RAC: NORMAL
74 - Selected model 1: INCOMPLETE
75 - Concrete RAC: INCOMPLETE (fatal rac error: missing value for return value of call to u_add at "bench/check-ce/threshold.mlw", line 30, characters 11-24)
76 - Abstract RAC: INCOMPLETE (fatal rac error: missing value for return value of call to u_add at "bench/check-ce/threshold.mlw", line 30, characters 11-24)
77 File "bench/check-ce/threshold.mlw", line 30, characters 11-24:
78 Sub-goal Arithmetic overflow of goal f'vc.
79 Prover result is: Step limit exceeded (17 steps).
80 The following counterexample model could not be verified
81 (both RAC fatal rac error: missing value for return value of call to u_add at "bench/check-ce/threshold.mlw", line 30, characters 11-24):
84 size_bv : t1 = {bv.BV32.t'int => 32}
85 size_bv : t1 = {bv.BV32.t'int => 32}
86 size_bv : t = {bv.BV128.t'int => 1}
87 size_bv : t = {bv.BV128.t'int => 1}
92 int = [|{bv.BV128.t'int => 2} => 2;
93 {bv.BV128.t'int => 4294967295} => 4294967295;
94 {bv.BV128.t'int => 128} => 128;
96 if arg_04 = {bv.BV128.t'int => 0} \/
97 arg_04 = {bv.BV128.t'int => 0}
102 int = [|{bv.BV128.t'int => 2} => 2;
103 {bv.BV128.t'int => 4294967295} => 4294967295;
104 {bv.BV128.t'int => 128} => 128;
106 if arg_04 = {bv.BV128.t'int => 0} \/
107 arg_04 = {bv.BV128.t'int => 0}
110 add : t -> t -> t = fun arg_07 arg_1 -> {bv.BV128.t'int => 2}
111 add : t -> t -> t = fun arg_07 arg_1 -> {bv.BV128.t'int => 2}
116 int = [|{bv.BV32.t'int => 4294967297} => 4294967297;
117 {bv.BV32.t'int => 4294967295} => 4294967295;
119 if arg_05 = {bv.BV32.t'int => 0} \/ arg_05 = {bv.BV32.t'int => 0}
120 then 0 else if arg_05 = {bv.BV32.t'int => 1} then 1 else 32|]
124 int = [|{bv.BV32.t'int => 4294967297} => 4294967297;
125 {bv.BV32.t'int => 4294967295} => 4294967295;
127 if arg_05 = {bv.BV32.t'int => 0} \/ arg_05 = {bv.BV32.t'int => 0}
128 then 0 else if arg_05 = {bv.BV32.t'int => 1} then 1 else 32|]
133 t = [|{bv.BV32.t'int => 32} => {bv.BV128.t'int => 0};
134 {bv.BV32.t'int => 32} => {bv.BV128.t'int => 1};
135 _ => {bv.BV128.t'int => 1}|]
139 t = [|{bv.BV32.t'int => 32} => {bv.BV128.t'int => 0};
140 {bv.BV32.t'int => 32} => {bv.BV128.t'int => 1};
141 _ => {bv.BV128.t'int => 1}|]
144 max : t1 = {bv.BV32.t'int => 32}
145 max : t1 = {bv.BV32.t'int => 32}
146 min : t1 = {bv.BV32.t'int => 32}
147 min : t1 = {bv.BV32.t'int => 32}
149 <check_ce:categorization>Categorizations of models:
150 - Checked model 0: BAD_CE
151 - Concrete RAC: NORMAL
152 - Abstract RAC: NORMAL
153 - Selected model 1: INCOMPLETE
154 - Concrete RAC: INCOMPLETE (fatal rac error: missing value for return value of call to u_add at "bench/check-ce/threshold.mlw", line 30, characters 11-24)
155 - Abstract RAC: INCOMPLETE (fatal rac error: missing value for return value of call to u_add at "bench/check-ce/threshold.mlw", line 30, characters 11-24)
156 File "bench/check-ce/threshold.mlw", line 27, characters 13-45:
157 Sub-goal Postcondition of goal f'vc.
158 Prover result is: Step limit exceeded (34 steps).
159 The following counterexample model could not be verified
160 (both RAC fatal rac error: missing value for return value of call to u_add at "bench/check-ce/threshold.mlw", line 30, characters 11-24):
163 size_bv : t1 = {bv.BV32.t'int => 32}
164 size_bv : t1 = {bv.BV32.t'int => 32}
165 size_bv : t = {bv.BV128.t'int => 1}
166 size_bv : t = {bv.BV128.t'int => 1}
171 int = [|{bv.BV128.t'int => 4294967295} => 4294967295;
172 {bv.BV128.t'int => 128} => 128; {bv.BV128.t'int => 0} => 0;
177 int = [|{bv.BV128.t'int => 4294967295} => 4294967295;
178 {bv.BV128.t'int => 128} => 128; {bv.BV128.t'int => 0} => 0;
184 int = [|{bv.BV32.t'int => 4} => 4; {bv.BV32.t'int => 3} => 3;
186 if arg_09 = {bv.BV32.t'int => 0} \/ arg_09 = {bv.BV32.t'int => 0}
188 else if arg_09 = {bv.BV32.t'int => 1} \/
189 arg_09 = {bv.BV32.t'int => 1}
194 int = [|{bv.BV32.t'int => 4} => 4; {bv.BV32.t'int => 3} => 3;
196 if arg_09 = {bv.BV32.t'int => 0} \/ arg_09 = {bv.BV32.t'int => 0}
198 else if arg_09 = {bv.BV32.t'int => 1} \/
199 arg_09 = {bv.BV32.t'int => 1}
202 add : t1 -> t1 -> t1 = fun arg_010 arg_11 -> {bv.BV32.t'int => 4}
203 add : t1 -> t1 -> t1 = fun arg_010 arg_11 -> {bv.BV32.t'int => 4}
206 max : t1 = {bv.BV32.t'int => 32}
207 max : t1 = {bv.BV32.t'int => 32}
208 min : t1 = {bv.BV32.t'int => 32}
209 min : t1 = {bv.BV32.t'int => 32}
210 n : t1 = {bv.BV32.t'int => 32}
211 n : t1 = {bv.BV32.t'int => 32}
213 result : t1 = {bv.BV32.t'int => 32}
215 _x : t1 = {bv.BV32.t'int => 4}
216 _x : t1 = {bv.BV32.t'int => 4}
217 result : t1 = {bv.BV32.t'int => 32}