41561
|
1 |
*****************************************************************************
|
|
2 |
Semantic Analysis of SPARK Text
|
|
3 |
Examiner Pro Edition, Version 9.1.0, Build Date 20101119, Build 19039
|
|
4 |
Copyright (C) 2010 Altran Praxis Limited, Bath, U.K.
|
|
5 |
*****************************************************************************
|
|
6 |
|
|
7 |
|
|
8 |
CREATED 29-NOV-2010, 14:30:20 SIMPLIFIED 29-NOV-2010, 14:30:20
|
|
9 |
|
|
10 |
SPARK Simplifier Pro Edition, Version 9.1.0, Build Date 20101119, Build 19039
|
|
11 |
Copyright (C) 2010 Altran Praxis Limited, Bath, U.K.
|
|
12 |
|
|
13 |
function RMD.Hash
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
For path(s) from start to run-time check associated with statement of line 170:
|
|
19 |
|
|
20 |
function_hash_1.
|
|
21 |
*** true . /* all conclusions proved */
|
|
22 |
|
|
23 |
|
|
24 |
For path(s) from start to run-time check associated with statement of line 171:
|
|
25 |
|
|
26 |
function_hash_2.
|
|
27 |
*** true . /* all conclusions proved */
|
|
28 |
|
|
29 |
|
|
30 |
For path(s) from start to run-time check associated with statement of line 172:
|
|
31 |
|
|
32 |
function_hash_3.
|
|
33 |
*** true . /* all conclusions proved */
|
|
34 |
|
|
35 |
|
|
36 |
For path(s) from start to run-time check associated with statement of line 173:
|
|
37 |
|
|
38 |
function_hash_4.
|
|
39 |
*** true . /* all conclusions proved */
|
|
40 |
|
|
41 |
|
|
42 |
For path(s) from start to run-time check associated with statement of line 174:
|
|
43 |
|
|
44 |
function_hash_5.
|
|
45 |
*** true . /* all conclusions proved */
|
|
46 |
|
|
47 |
|
|
48 |
For path(s) from start to run-time check associated with statement of line 175:
|
|
49 |
|
|
50 |
function_hash_6.
|
|
51 |
*** true . /* all conclusions proved */
|
|
52 |
|
|
53 |
|
|
54 |
For path(s) from start to run-time check associated with statement of line 175:
|
|
55 |
|
|
56 |
function_hash_7.
|
|
57 |
*** true . /* all conclusions proved */
|
|
58 |
|
|
59 |
|
|
60 |
For path(s) from start to run-time check associated with statement of line 177:
|
|
61 |
|
|
62 |
function_hash_8.
|
|
63 |
*** true . /* all conclusions proved */
|
|
64 |
|
|
65 |
|
|
66 |
For path(s) from assertion of line 178 to run-time check associated with
|
|
67 |
statement of line 177:
|
|
68 |
|
|
69 |
function_hash_9.
|
|
70 |
*** true . /* all conclusions proved */
|
|
71 |
|
|
72 |
|
|
73 |
For path(s) from start to run-time check associated with statement of line 177:
|
|
74 |
|
|
75 |
function_hash_10.
|
|
76 |
*** true . /* all conclusions proved */
|
|
77 |
|
|
78 |
|
|
79 |
For path(s) from assertion of line 178 to run-time check associated with
|
|
80 |
statement of line 177:
|
|
81 |
|
|
82 |
function_hash_11.
|
|
83 |
*** true . /* all conclusions proved */
|
|
84 |
|
|
85 |
|
|
86 |
For path(s) from start to assertion of line 178:
|
|
87 |
|
|
88 |
function_hash_12.
|
|
89 |
H1: x__index__subtype__1__first = 0 .
|
|
90 |
H2: for_all(i___2 : integer, 0 <= i___2 and i___2 <= 15 -> for_all(i___1 :
|
|
91 |
integer, x__index__subtype__1__first <= i___1 and i___1 <=
|
|
92 |
x__index__subtype__1__last -> 0 <= element(element(x, [i___1]), [
|
|
93 |
i___2]) and element(element(x, [i___1]), [i___2]) <= 4294967295)) .
|
|
94 |
H3: x__index__subtype__1__last >= 0 .
|
|
95 |
H4: x__index__subtype__1__last <= 4294967296 .
|
|
96 |
H5: x__index__subtype__1__first <= x__index__subtype__1__last .
|
|
97 |
H6: mk__chain(h0 := ca__1, h1 := cb__1, h2 := cc__1, h3 := cd__1, h4 :=
|
|
98 |
ce__1) = round_spec(mk__chain(h0 := 1732584193, h1 := 4023233417, h2
|
|
99 |
:= 2562383102, h3 := 271733878, h4 := 3285377520), element(x, [
|
|
100 |
x__index__subtype__1__first])) .
|
|
101 |
H7: ca__1 >= 0 .
|
|
102 |
H8: ca__1 <= 4294967295 .
|
|
103 |
H9: cb__1 >= 0 .
|
|
104 |
H10: cb__1 <= 4294967295 .
|
|
105 |
H11: cc__1 >= 0 .
|
|
106 |
H12: cc__1 <= 4294967295 .
|
|
107 |
H13: cd__1 >= 0 .
|
|
108 |
H14: cd__1 <= 4294967295 .
|
|
109 |
H15: ce__1 >= 0 .
|
|
110 |
H16: ce__1 <= 4294967295 .
|
|
111 |
->
|
|
112 |
C1: mk__chain(h0 := ca__1, h1 := cb__1, h2 := cc__1, h3 := cd__1, h4 :=
|
|
113 |
ce__1) = rounds(mk__chain(h0 := 1732584193, h1 := 4023233417, h2 :=
|
|
114 |
2562383102, h3 := 271733878, h4 := 3285377520),
|
|
115 |
x__index__subtype__1__first + 1, x) .
|
|
116 |
|
|
117 |
|
|
118 |
For path(s) from assertion of line 178 to assertion of line 178:
|
|
119 |
|
|
120 |
function_hash_13.
|
|
121 |
H1: mk__chain(h0 := ca, h1 := cb, h2 := cc, h3 := cd, h4 := ce) = rounds(
|
|
122 |
mk__chain(h0 := 1732584193, h1 := 4023233417, h2 := 2562383102, h3 :=
|
|
123 |
271733878, h4 := 3285377520), loop__1__i + 1, x) .
|
|
124 |
H2: for_all(i___2 : integer, 0 <= i___2 and i___2 <= 15 -> for_all(i___1 :
|
|
125 |
integer, x__index__subtype__1__first <= i___1 and i___1 <=
|
|
126 |
x__index__subtype__1__last -> 0 <= element(element(x, [i___1]), [
|
|
127 |
i___2]) and element(element(x, [i___1]), [i___2]) <= 4294967295)) .
|
|
128 |
H3: x__index__subtype__1__first = 0 .
|
|
129 |
H4: loop__1__i >= 0 .
|
|
130 |
H5: loop__1__i <= 4294967296 .
|
|
131 |
H6: loop__1__i >= x__index__subtype__1__first .
|
|
132 |
H7: ca >= 0 .
|
|
133 |
H8: ca <= 4294967295 .
|
|
134 |
H9: cb >= 0 .
|
|
135 |
H10: cb <= 4294967295 .
|
|
136 |
H11: cc >= 0 .
|
|
137 |
H12: cc <= 4294967295 .
|
|
138 |
H13: cd >= 0 .
|
|
139 |
H14: cd <= 4294967295 .
|
|
140 |
H15: ce >= 0 .
|
|
141 |
H16: ce <= 4294967295 .
|
|
142 |
H17: loop__1__i + 1 <= x__index__subtype__1__last .
|
|
143 |
H18: mk__chain(h0 := ca__1, h1 := cb__1, h2 := cc__1, h3 := cd__1, h4 :=
|
|
144 |
ce__1) = round_spec(mk__chain(h0 := ca, h1 := cb, h2 := cc, h3 := cd,
|
|
145 |
h4 := ce), element(x, [loop__1__i + 1])) .
|
|
146 |
H19: ca__1 >= 0 .
|
|
147 |
H20: ca__1 <= 4294967295 .
|
|
148 |
H21: cb__1 >= 0 .
|
|
149 |
H22: cb__1 <= 4294967295 .
|
|
150 |
H23: cc__1 >= 0 .
|
|
151 |
H24: cc__1 <= 4294967295 .
|
|
152 |
H25: cd__1 >= 0 .
|
|
153 |
H26: cd__1 <= 4294967295 .
|
|
154 |
H27: ce__1 >= 0 .
|
|
155 |
H28: ce__1 <= 4294967295 .
|
|
156 |
H29: interfaces__unsigned_32__size >= 0 .
|
|
157 |
H30: word__size >= 0 .
|
|
158 |
H31: chain__size >= 0 .
|
|
159 |
H32: block_index__size >= 0 .
|
|
160 |
H33: block_index__base__first <= block_index__base__last .
|
|
161 |
H34: message_index__size >= 0 .
|
|
162 |
H35: message_index__base__first <= message_index__base__last .
|
|
163 |
H36: x__index__subtype__1__first <= x__index__subtype__1__last .
|
|
164 |
H37: block_index__base__first <= 0 .
|
|
165 |
H38: block_index__base__last >= 15 .
|
|
166 |
H39: message_index__base__first <= 0 .
|
|
167 |
H40: x__index__subtype__1__first >= 0 .
|
|
168 |
H41: x__index__subtype__1__last >= 0 .
|
|
169 |
H42: message_index__base__last >= 4294967296 .
|
|
170 |
H43: x__index__subtype__1__last <= 4294967296 .
|
|
171 |
H44: x__index__subtype__1__first <= 4294967296 .
|
|
172 |
->
|
|
173 |
C1: mk__chain(h0 := ca__1, h1 := cb__1, h2 := cc__1, h3 := cd__1, h4 :=
|
|
174 |
ce__1) = rounds(mk__chain(h0 := 1732584193, h1 := 4023233417, h2 :=
|
|
175 |
2562383102, h3 := 271733878, h4 := 3285377520), loop__1__i + 2, x) .
|
|
176 |
|
|
177 |
|
|
178 |
For path(s) from start to run-time check associated with statement of line 183:
|
|
179 |
|
|
180 |
function_hash_14.
|
|
181 |
*** true . /* all conclusions proved */
|
|
182 |
|
|
183 |
|
|
184 |
For path(s) from assertion of line 178 to run-time check associated with
|
|
185 |
statement of line 183:
|
|
186 |
|
|
187 |
function_hash_15.
|
|
188 |
*** true . /* all conclusions proved */
|
|
189 |
|
|
190 |
|
|
191 |
For path(s) from start to finish:
|
|
192 |
|
|
193 |
function_hash_16.
|
|
194 |
*** true . /* contradiction within hypotheses. */
|
|
195 |
|
|
196 |
|
|
197 |
|
|
198 |
For path(s) from assertion of line 178 to finish:
|
|
199 |
|
|
200 |
function_hash_17.
|
|
201 |
H1: mk__chain(h0 := ca, h1 := cb, h2 := cc, h3 := cd, h4 := ce) = rounds(
|
|
202 |
mk__chain(h0 := 1732584193, h1 := 4023233417, h2 := 2562383102, h3 :=
|
|
203 |
271733878, h4 := 3285377520), x__index__subtype__1__last + 1, x) .
|
|
204 |
H2: for_all(i___2 : integer, 0 <= i___2 and i___2 <= 15 -> for_all(i___1 :
|
|
205 |
integer, x__index__subtype__1__first <= i___1 and i___1 <=
|
|
206 |
x__index__subtype__1__last -> 0 <= element(element(x, [i___1]), [
|
|
207 |
i___2]) and element(element(x, [i___1]), [i___2]) <= 4294967295)) .
|
|
208 |
H3: x__index__subtype__1__first = 0 .
|
|
209 |
H4: x__index__subtype__1__last >= 0 .
|
|
210 |
H5: x__index__subtype__1__last <= 4294967296 .
|
|
211 |
H6: x__index__subtype__1__last >= x__index__subtype__1__first .
|
|
212 |
H7: ca >= 0 .
|
|
213 |
H8: ca <= 4294967295 .
|
|
214 |
H9: cb >= 0 .
|
|
215 |
H10: cb <= 4294967295 .
|
|
216 |
H11: cc >= 0 .
|
|
217 |
H12: cc <= 4294967295 .
|
|
218 |
H13: cd >= 0 .
|
|
219 |
H14: cd <= 4294967295 .
|
|
220 |
H15: ce >= 0 .
|
|
221 |
H16: ce <= 4294967295 .
|
|
222 |
H17: interfaces__unsigned_32__size >= 0 .
|
|
223 |
H18: word__size >= 0 .
|
|
224 |
H19: chain__size >= 0 .
|
|
225 |
H20: block_index__size >= 0 .
|
|
226 |
H21: block_index__base__first <= block_index__base__last .
|
|
227 |
H22: message_index__size >= 0 .
|
|
228 |
H23: message_index__base__first <= message_index__base__last .
|
|
229 |
H24: x__index__subtype__1__first <= x__index__subtype__1__last .
|
|
230 |
H25: block_index__base__first <= 0 .
|
|
231 |
H26: block_index__base__last >= 15 .
|
|
232 |
H27: message_index__base__first <= 0 .
|
|
233 |
H28: x__index__subtype__1__first >= 0 .
|
|
234 |
H29: message_index__base__last >= 4294967296 .
|
|
235 |
H30: x__index__subtype__1__first <= 4294967296 .
|
|
236 |
->
|
|
237 |
C1: mk__chain(h0 := ca, h1 := cb, h2 := cc, h3 := cd, h4 := ce) = rmd_hash(
|
|
238 |
x, x__index__subtype__1__last + 1) .
|
|
239 |
|
|
240 |
|