1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
3 "https://www.why3.org/why3session.dtd">
4 <why3session shape_version="6">
5 <prover id="0" name="Alt-Ergo" version="2.3.0" timelimit="1" steplimit="0" memlimit="1000"/>
6 <prover id="2" name="Alt-Ergo" version="2.1.0" timelimit="1" steplimit="0" memlimit="1000"/>
7 <file format="whyml" proved="true">
8 <path name=".."/><path name="register_allocation.mlw"/>
9 <theory name="Spec" proved="true">
10 <goal name="exec_append'vc" expl="VC for exec_append" proved="true">
11 <proof prover="2"><result status="valid" time="0.010000" steps="77"/></proof>
14 <theory name="DWP" proved="true">
15 <goal name="prefix $'vc" expl="VC for prefix $" proved="true">
16 <proof prover="2"><result status="valid" time="0.010000" steps="17"/></proof>
18 <goal name="wrap'vc" expl="VC for wrap" proved="true">
19 <proof prover="2"><result status="valid" time="0.010000" steps="12"/></proof>
21 <goal name="infix --'vc" expl="VC for infix --" proved="true">
22 <proof prover="2"><result status="valid" time="0.010000" steps="34"/></proof>
24 <goal name="cons'vc" expl="VC for cons" proved="true">
25 <proof prover="2"><result status="valid" time="0.110000" steps="150"/></proof>
27 <goal name="nil'vc" expl="VC for nil" proved="true">
28 <proof prover="2"><result status="valid" time="0.010000" steps="24"/></proof>
31 <theory name="InfinityOfRegisters" proved="true">
32 <goal name="compile'vc" expl="VC for compile" proved="true">
33 <transf name="split_goal_right" proved="true" >
34 <goal name="compile'vc.0" expl="precondition" proved="true">
35 <proof prover="2"><result status="valid" time="0.010000" steps="6"/></proof>
37 <goal name="compile'vc.1" expl="precondition" proved="true">
38 <proof prover="2"><result status="valid" time="0.010000" steps="6"/></proof>
40 <goal name="compile'vc.2" expl="variant decrease" proved="true">
41 <proof prover="2"><result status="valid" time="0.010000" steps="74"/></proof>
43 <goal name="compile'vc.3" expl="precondition" proved="true">
44 <proof prover="2"><result status="valid" time="0.010000" steps="14"/></proof>
46 <goal name="compile'vc.4" expl="precondition" proved="true">
47 <proof prover="2"><result status="valid" time="0.010000" steps="18"/></proof>
49 <goal name="compile'vc.5" expl="precondition" proved="true">
50 <proof prover="2"><result status="valid" time="0.010000" steps="6"/></proof>
52 <goal name="compile'vc.6" expl="variant decrease" proved="true">
53 <proof prover="2"><result status="valid" time="0.020000" steps="83"/></proof>
55 <goal name="compile'vc.7" expl="precondition" proved="true">
56 <proof prover="2"><result status="valid" time="0.020000" steps="14"/></proof>
58 <goal name="compile'vc.8" expl="variant decrease" proved="true">
59 <proof prover="2"><result status="valid" time="0.020000" steps="99"/></proof>
61 <goal name="compile'vc.9" expl="precondition" proved="true">
62 <proof prover="2"><result status="valid" time="0.010000" steps="22"/></proof>
64 <goal name="compile'vc.10" expl="precondition" proved="true">
65 <proof prover="2"><result status="valid" time="0.020000" steps="26"/></proof>
67 <goal name="compile'vc.11" expl="precondition" proved="true">
68 <proof prover="2"><result status="valid" time="0.010000" steps="30"/></proof>
70 <goal name="compile'vc.12" expl="precondition" proved="true">
71 <proof prover="2"><result status="valid" time="0.000000" steps="71"/></proof>
73 <goal name="compile'vc.13" expl="precondition" proved="true">
74 <transf name="split_goal_right" proved="true" >
75 <goal name="compile'vc.13.0" expl="precondition" proved="true">
76 <transf name="compute_specified" proved="true" >
77 <goal name="compile'vc.13.0.0" expl="precondition" proved="true">
78 <transf name="simplify_trivial_quantification_in_goal" proved="true" >
79 <goal name="compile'vc.13.0.0.0" expl="precondition" proved="true">
80 <transf name="introduce_premises" proved="true" >
81 <goal name="compile'vc.13.0.0.0.0" expl="precondition" proved="true">
82 <transf name="compute_specified" proved="true" >
83 <goal name="compile'vc.13.0.0.0.0.0" expl="precondition" proved="true">
84 <proof prover="2"><result status="valid" time="0.010000" steps="33"/></proof>
94 <goal name="compile'vc.13.1" expl="precondition" proved="true">
95 <transf name="compute_specified" proved="true" >
96 <goal name="compile'vc.13.1.0" expl="precondition" proved="true">
97 <transf name="simplify_trivial_quantification_in_goal" proved="true" >
98 <goal name="compile'vc.13.1.0.0" expl="precondition" proved="true">
99 <transf name="introduce_premises" proved="true" >
100 <goal name="compile'vc.13.1.0.0.0" expl="precondition" proved="true">
101 <transf name="compute_specified" proved="true" >
102 <goal name="compile'vc.13.1.0.0.0.0" expl="precondition" proved="true">
103 <proof prover="2"><result status="valid" time="0.020000" steps="59"/></proof>
113 <goal name="compile'vc.13.2" expl="precondition" proved="true">
114 <transf name="compute_specified" proved="true" >
115 <goal name="compile'vc.13.2.0" expl="precondition" proved="true">
116 <transf name="simplify_trivial_quantification_in_goal" proved="true" >
117 <goal name="compile'vc.13.2.0.0" expl="precondition" proved="true">
118 <transf name="introduce_premises" proved="true" >
119 <goal name="compile'vc.13.2.0.0.0" expl="precondition" proved="true">
120 <transf name="compute_specified" proved="true" >
121 <goal name="compile'vc.13.2.0.0.0.0" expl="precondition" proved="true">
122 <proof prover="2"><result status="valid" time="0.010000" steps="95"/></proof>
134 <goal name="compile'vc.14" expl="postcondition" proved="true">
135 <proof prover="2"><result status="valid" time="0.020000" steps="4"/></proof>
137 <goal name="compile'vc.15" expl="postcondition" proved="true">
138 <proof prover="2"><result status="valid" time="0.010000" steps="4"/></proof>
142 <goal name="recover'vc" expl="VC for recover" proved="true">
143 <proof prover="2"><result status="valid" time="0.020000" steps="38"/></proof>
146 <theory name="FiniteNumberOfRegisters" proved="true">
147 <goal name="k'vc" expl="VC for k" proved="true">
148 <proof prover="0"><result status="valid" time="0.010000" steps="0"/></proof>
150 <goal name="compile'vc" expl="VC for compile" proved="true">
151 <transf name="split_goal_right" proved="true" >
152 <goal name="compile'vc.0" expl="precondition" proved="true">
153 <proof prover="2"><result status="valid" time="0.010000" steps="12"/></proof>
155 <goal name="compile'vc.1" expl="precondition" proved="true">
156 <proof prover="2"><result status="valid" time="0.010000" steps="12"/></proof>
158 <goal name="compile'vc.2" expl="variant decrease" proved="true">
159 <proof prover="2"><result status="valid" time="0.030000" steps="80"/></proof>
161 <goal name="compile'vc.3" expl="precondition" proved="true">
162 <proof prover="2"><result status="valid" time="0.010000" steps="16"/></proof>
164 <goal name="compile'vc.4" expl="precondition" proved="true">
165 <proof prover="2"><result status="valid" time="0.010000" steps="20"/></proof>
167 <goal name="compile'vc.5" expl="precondition" proved="true">
168 <proof prover="2"><result status="valid" time="0.020000" steps="24"/></proof>
170 <goal name="compile'vc.6" expl="precondition" proved="true">
171 <proof prover="2"><result status="valid" time="0.010000" steps="14"/></proof>
173 <goal name="compile'vc.7" expl="variant decrease" proved="true">
174 <proof prover="2"><result status="valid" time="0.020000" steps="91"/></proof>
176 <goal name="compile'vc.8" expl="precondition" proved="true">
177 <proof prover="2"><result status="valid" time="0.010000" steps="18"/></proof>
179 <goal name="compile'vc.9" expl="precondition" proved="true">
180 <proof prover="2"><result status="valid" time="0.010000" steps="22"/></proof>
182 <goal name="compile'vc.10" expl="variant decrease" proved="true">
183 <proof prover="2"><result status="valid" time="0.020000" steps="107"/></proof>
185 <goal name="compile'vc.11" expl="precondition" proved="true">
186 <proof prover="2"><result status="valid" time="0.010000" steps="26"/></proof>
188 <goal name="compile'vc.12" expl="precondition" proved="true">
189 <proof prover="2"><result status="valid" time="0.010000" steps="30"/></proof>
191 <goal name="compile'vc.13" expl="precondition" proved="true">
192 <proof prover="2"><result status="valid" time="0.010000" steps="34"/></proof>
194 <goal name="compile'vc.14" expl="precondition" proved="true">
195 <proof prover="2"><result status="valid" time="0.020000" steps="38"/></proof>
197 <goal name="compile'vc.15" expl="precondition" proved="true">
198 <proof prover="2"><result status="valid" time="0.010000" steps="14"/></proof>
200 <goal name="compile'vc.16" expl="precondition" proved="true">
201 <proof prover="2"><result status="valid" time="0.010000" steps="18"/></proof>
203 <goal name="compile'vc.17" expl="variant decrease" proved="true">
204 <proof prover="2"><result status="valid" time="0.030000" steps="144"/></proof>
206 <goal name="compile'vc.18" expl="precondition" proved="true">
207 <proof prover="2"><result status="valid" time="0.010000" steps="22"/></proof>
209 <goal name="compile'vc.19" expl="precondition" proved="true">
210 <proof prover="2"><result status="valid" time="0.010000" steps="26"/></proof>
212 <goal name="compile'vc.20" expl="variant decrease" proved="true">
213 <proof prover="2"><result status="valid" time="0.020000" steps="160"/></proof>
215 <goal name="compile'vc.21" expl="precondition" proved="true">
216 <proof prover="2"><result status="valid" time="0.020000" steps="30"/></proof>
218 <goal name="compile'vc.22" expl="precondition" proved="true">
219 <proof prover="2"><result status="valid" time="0.010000" steps="34"/></proof>
221 <goal name="compile'vc.23" expl="precondition" proved="true">
222 <proof prover="2"><result status="valid" time="0.020000" steps="38"/></proof>
224 <goal name="compile'vc.24" expl="precondition" proved="true">
225 <proof prover="2"><result status="valid" time="0.020000" steps="42"/></proof>
227 <goal name="compile'vc.25" expl="precondition" proved="true">
228 <proof prover="2"><result status="valid" time="0.030000" steps="46"/></proof>
230 <goal name="compile'vc.26" expl="precondition" proved="true">
231 <proof prover="2"><result status="valid" time="0.010000" steps="120"/></proof>
233 <goal name="compile'vc.27" expl="precondition" proved="true">
234 <transf name="split_goal_right" proved="true" >
235 <goal name="compile'vc.27.0" expl="precondition" proved="true">
236 <transf name="compute_specified" proved="true" >
237 <goal name="compile'vc.27.0.0" expl="precondition" proved="true">
238 <transf name="simplify_trivial_quantification_in_goal" proved="true" >
239 <goal name="compile'vc.27.0.0.0" expl="precondition" proved="true">
240 <transf name="introduce_premises" proved="true" >
241 <goal name="compile'vc.27.0.0.0.0" expl="precondition" proved="true">
242 <transf name="compute_specified" proved="true" >
243 <goal name="compile'vc.27.0.0.0.0.0" expl="precondition" proved="true">
244 <proof prover="2"><result status="valid" time="0.010000" steps="39"/></proof>
254 <goal name="compile'vc.27.1" expl="precondition" proved="true">
255 <transf name="compute_specified" proved="true" >
256 <goal name="compile'vc.27.1.0" expl="precondition" proved="true">
257 <transf name="simplify_trivial_quantification_in_goal" proved="true" >
258 <goal name="compile'vc.27.1.0.0" expl="precondition" proved="true">
259 <transf name="introduce_premises" proved="true" >
260 <goal name="compile'vc.27.1.0.0.0" expl="precondition" proved="true">
261 <transf name="compute_specified" proved="true" >
262 <goal name="compile'vc.27.1.0.0.0.0" expl="precondition" proved="true">
263 <proof prover="2"><result status="valid" time="0.020000" steps="65"/></proof>
273 <goal name="compile'vc.27.2" expl="precondition" proved="true">
274 <transf name="compute_specified" proved="true" >
275 <goal name="compile'vc.27.2.0" expl="precondition" proved="true">
276 <transf name="simplify_trivial_quantification_in_goal" proved="true" >
277 <goal name="compile'vc.27.2.0.0" expl="precondition" proved="true">
278 <transf name="introduce_premises" proved="true" >
279 <goal name="compile'vc.27.2.0.0.0" expl="precondition" proved="true">
280 <transf name="compute_specified" proved="true" >
281 <goal name="compile'vc.27.2.0.0.0.0" expl="precondition" proved="true">
282 <proof prover="2"><result status="valid" time="0.050000" steps="103"/></proof>
292 <goal name="compile'vc.27.3" expl="precondition" proved="true">
293 <transf name="compute_specified" proved="true" >
294 <goal name="compile'vc.27.3.0" expl="precondition" proved="true">
295 <transf name="simplify_trivial_quantification_in_goal" proved="true" >
296 <goal name="compile'vc.27.3.0.0" expl="precondition" proved="true">
297 <transf name="introduce_premises" proved="true" >
298 <goal name="compile'vc.27.3.0.0.0" expl="precondition" proved="true">
299 <transf name="compute_specified" proved="true" >
300 <goal name="compile'vc.27.3.0.0.0.0" expl="precondition" proved="true">
301 <proof prover="2"><result status="valid" time="0.010000" steps="202"/></proof>
313 <goal name="compile'vc.28" expl="postcondition" proved="true">
314 <proof prover="2"><result status="valid" time="0.030000" steps="10"/></proof>
316 <goal name="compile'vc.29" expl="postcondition" proved="true">
317 <proof prover="2"><result status="valid" time="0.030000" steps="10"/></proof>
322 <theory name="OptimalNumberOfRegisters" proved="true">
323 <goal name="k'vc" expl="VC for k" proved="true">
324 <proof prover="0"><result status="valid" time="0.000000" steps="0"/></proof>
326 <goal name="n'vc" expl="VC for n" proved="true">
327 <proof prover="2"><result status="valid" time="0.030000" steps="99"/></proof>
329 <goal name="measure_nonneg" proved="true">
330 <transf name="induction_ty_lex" proved="true" >
331 <goal name="measure_nonneg.0" proved="true">
332 <proof prover="2"><result status="valid" time="0.020000" steps="37"/></proof>
336 <goal name="compile'vc" expl="VC for compile" proved="true">
337 <transf name="split_goal_right" proved="true" >
338 <goal name="compile'vc.0" expl="precondition" proved="true">
339 <proof prover="2"><result status="valid" time="0.010000" steps="12"/></proof>
341 <goal name="compile'vc.1" expl="precondition" proved="true">
342 <proof prover="2"><result status="valid" time="0.010000" steps="12"/></proof>
344 <goal name="compile'vc.2" expl="variant decrease" proved="true">
345 <proof prover="2"><result status="valid" time="0.030000" steps="19"/></proof>
347 <goal name="compile'vc.3" expl="precondition" proved="true">
348 <proof prover="2"><result status="valid" time="0.010000" steps="16"/></proof>
350 <goal name="compile'vc.4" expl="precondition" proved="true">
351 <proof prover="2"><result status="valid" time="0.010000" steps="20"/></proof>
353 <goal name="compile'vc.5" expl="precondition" proved="true">
354 <proof prover="2"><result status="valid" time="0.020000" steps="24"/></proof>
356 <goal name="compile'vc.6" expl="precondition" proved="true">
357 <proof prover="2"><result status="valid" time="0.020000" steps="16"/></proof>
359 <goal name="compile'vc.7" expl="variant decrease" proved="true">
360 <proof prover="2"><result status="valid" time="0.030000" steps="75"/></proof>
362 <goal name="compile'vc.8" expl="precondition" proved="true">
363 <proof prover="2"><result status="valid" time="0.010000" steps="20"/></proof>
365 <goal name="compile'vc.9" expl="precondition" proved="true">
366 <proof prover="2"><result status="valid" time="0.010000" steps="24"/></proof>
368 <goal name="compile'vc.10" expl="variant decrease" proved="true">
369 <proof prover="2"><result status="valid" time="0.030000" steps="89"/></proof>
371 <goal name="compile'vc.11" expl="precondition" proved="true">
372 <proof prover="2"><result status="valid" time="0.020000" steps="28"/></proof>
374 <goal name="compile'vc.12" expl="precondition" proved="true">
375 <proof prover="2"><result status="valid" time="0.020000" steps="32"/></proof>
377 <goal name="compile'vc.13" expl="precondition" proved="true">
378 <proof prover="2"><result status="valid" time="0.010000" steps="36"/></proof>
380 <goal name="compile'vc.14" expl="precondition" proved="true">
381 <proof prover="2"><result status="valid" time="0.020000" steps="40"/></proof>
383 <goal name="compile'vc.15" expl="precondition" proved="true">
384 <proof prover="2"><result status="valid" time="0.010000" steps="16"/></proof>
386 <goal name="compile'vc.16" expl="precondition" proved="true">
387 <proof prover="2"><result status="valid" time="0.010000" steps="20"/></proof>
389 <goal name="compile'vc.17" expl="variant decrease" proved="true">
390 <proof prover="2"><result status="valid" time="0.020000" steps="97"/></proof>
392 <goal name="compile'vc.18" expl="precondition" proved="true">
393 <proof prover="2"><result status="valid" time="0.010000" steps="24"/></proof>
395 <goal name="compile'vc.19" expl="precondition" proved="true">
396 <proof prover="2"><result status="valid" time="0.010000" steps="28"/></proof>
398 <goal name="compile'vc.20" expl="variant decrease" proved="true">
399 <proof prover="2"><result status="valid" time="0.020000" steps="111"/></proof>
401 <goal name="compile'vc.21" expl="precondition" proved="true">
402 <proof prover="2"><result status="valid" time="0.010000" steps="32"/></proof>
404 <goal name="compile'vc.22" expl="precondition" proved="true">
405 <proof prover="2"><result status="valid" time="0.010000" steps="36"/></proof>
407 <goal name="compile'vc.23" expl="precondition" proved="true">
408 <proof prover="2"><result status="valid" time="0.010000" steps="40"/></proof>
410 <goal name="compile'vc.24" expl="precondition" proved="true">
411 <proof prover="2"><result status="valid" time="0.010000" steps="44"/></proof>
413 <goal name="compile'vc.25" expl="precondition" proved="true">
414 <proof prover="2"><result status="valid" time="0.020000" steps="48"/></proof>
416 <goal name="compile'vc.26" expl="variant decrease" proved="true">
417 <proof prover="2"><result status="valid" time="0.020000" steps="13"/></proof>
419 <goal name="compile'vc.27" expl="precondition" proved="true">
420 <proof prover="2"><result status="valid" time="0.010000" steps="10"/></proof>
422 <goal name="compile'vc.28" expl="precondition" proved="true">
423 <proof prover="2"><result status="valid" time="0.010000" steps="14"/></proof>
425 <goal name="compile'vc.29" expl="precondition" proved="true">
426 <proof prover="2"><result status="valid" time="0.020000" steps="145"/></proof>
428 <goal name="compile'vc.30" expl="precondition" proved="true">
429 <transf name="split_goal_right" proved="true" >
430 <goal name="compile'vc.30.0" expl="precondition" proved="true">
431 <transf name="compute_specified" proved="true" >
432 <goal name="compile'vc.30.0.0" expl="precondition" proved="true">
433 <transf name="simplify_trivial_quantification_in_goal" proved="true" >
434 <goal name="compile'vc.30.0.0.0" expl="precondition" proved="true">
435 <transf name="introduce_premises" proved="true" >
436 <goal name="compile'vc.30.0.0.0.0" expl="precondition" proved="true">
437 <transf name="compute_specified" proved="true" >
438 <goal name="compile'vc.30.0.0.0.0.0" expl="precondition" proved="true">
439 <proof prover="2"><result status="valid" time="0.010000" steps="45"/></proof>
449 <goal name="compile'vc.30.1" expl="precondition" proved="true">
450 <transf name="compute_specified" proved="true" >
451 <goal name="compile'vc.30.1.0" expl="precondition" proved="true">
452 <transf name="simplify_trivial_quantification_in_goal" proved="true" >
453 <goal name="compile'vc.30.1.0.0" expl="precondition" proved="true">
454 <transf name="introduce_premises" proved="true" >
455 <goal name="compile'vc.30.1.0.0.0" expl="precondition" proved="true">
456 <transf name="compute_specified" proved="true" >
457 <goal name="compile'vc.30.1.0.0.0.0" expl="precondition" proved="true">
458 <proof prover="2"><result status="valid" time="0.060000" steps="65"/></proof>
468 <goal name="compile'vc.30.2" expl="precondition" proved="true">
469 <transf name="compute_specified" proved="true" >
470 <goal name="compile'vc.30.2.0" expl="precondition" proved="true">
471 <transf name="simplify_trivial_quantification_in_goal" proved="true" >
472 <goal name="compile'vc.30.2.0.0" expl="precondition" proved="true">
473 <transf name="introduce_premises" proved="true" >
474 <goal name="compile'vc.30.2.0.0.0" expl="precondition" proved="true">
475 <transf name="compute_specified" proved="true" >
476 <goal name="compile'vc.30.2.0.0.0.0" expl="precondition" proved="true">
477 <proof prover="2"><result status="valid" time="0.010000" steps="156"/></proof>
487 <goal name="compile'vc.30.3" expl="precondition" proved="true">
488 <transf name="compute_specified" proved="true" >
489 <goal name="compile'vc.30.3.0" expl="precondition" proved="true">
490 <transf name="simplify_trivial_quantification_in_goal" proved="true" >
491 <goal name="compile'vc.30.3.0.0" expl="precondition" proved="true">
492 <transf name="introduce_premises" proved="true" >
493 <goal name="compile'vc.30.3.0.0.0" expl="precondition" proved="true">
494 <transf name="compute_specified" proved="true" >
495 <goal name="compile'vc.30.3.0.0.0.0" expl="precondition" proved="true">
496 <proof prover="2"><result status="valid" time="0.030000" steps="235"/></proof>
506 <goal name="compile'vc.30.4" expl="precondition" proved="true">
507 <transf name="compute_specified" proved="true" >
508 <goal name="compile'vc.30.4.0" expl="precondition" proved="true">
509 <transf name="simplify_trivial_quantification_in_goal" proved="true" >
510 <goal name="compile'vc.30.4.0.0" expl="precondition" proved="true">
511 <transf name="introduce_premises" proved="true" >
512 <goal name="compile'vc.30.4.0.0.0" expl="precondition" proved="true">
513 <transf name="compute_specified" proved="true" >
514 <goal name="compile'vc.30.4.0.0.0.0" expl="precondition" proved="true">
515 <proof prover="2"><result status="valid" time="0.020000" steps="72"/></proof>
527 <goal name="compile'vc.31" expl="postcondition" proved="true">
528 <proof prover="2"><result status="valid" time="0.020000" steps="10"/></proof>
530 <goal name="compile'vc.32" expl="postcondition" proved="true">
531 <proof prover="2"><result status="valid" time="0.020000" steps="10"/></proof>