| 45044 |      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 22-SEP-2011, 11:10:50  SIMPLIFIED 22-SEP-2011, 11:10:51
 | 
|  |      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 | procedure Loop_Invariant.Proc1
 | 
|  |     14 | 
 | 
|  |     15 | 
 | 
|  |     16 | 
 | 
|  |     17 | 
 | 
|  |     18 | For path(s) from start to run-time check associated with statement of line 7:
 | 
|  |     19 | 
 | 
|  |     20 | procedure_proc1_1.
 | 
|  |     21 | *** true .          /* all conclusions proved */
 | 
|  |     22 | 
 | 
|  |     23 | 
 | 
|  |     24 | For path(s) from start to run-time check associated with statement of line 8:
 | 
|  |     25 | 
 | 
|  |     26 | procedure_proc1_2.
 | 
|  |     27 | *** true .          /* all conclusions proved */
 | 
|  |     28 | 
 | 
|  |     29 | 
 | 
|  |     30 | For path(s) from start to run-time check associated with statement of line 8:
 | 
|  |     31 | 
 | 
|  |     32 | procedure_proc1_3.
 | 
|  |     33 | *** true .          /* all conclusions proved */
 | 
|  |     34 | 
 | 
|  |     35 | 
 | 
|  |     36 | For path(s) from start to assertion of line 8:
 | 
|  |     37 | 
 | 
|  |     38 | procedure_proc1_4.
 | 
|  |     39 | *** true .          /* all conclusions proved */
 | 
|  |     40 | 
 | 
|  |     41 | 
 | 
|  |     42 | For path(s) from assertion of line 8 to assertion of line 8:
 | 
|  |     43 | 
 | 
|  |     44 | procedure_proc1_5.
 | 
|  |     45 | H1:    a <= 2147483647 .
 | 
|  |     46 | H2:    b >= 0 .
 | 
|  |     47 | H3:    b <= 4294967295 .
 | 
|  |     48 | H4:    loop__1__i >= 1 .
 | 
|  |     49 | H5:    (loop__1__i - 1) * b mod 4294967296 >= 0 .
 | 
|  |     50 | H6:    (loop__1__i - 1) * b mod 4294967296 <= 4294967295 .
 | 
|  |     51 | H7:    ((loop__1__i - 1) * b mod 4294967296 + b) mod 4294967296 >= 0 .
 | 
|  |     52 | H8:    ((loop__1__i - 1) * b mod 4294967296 + b) mod 4294967296 <= 4294967295 .
 | 
|  |     53 | H9:    loop__1__i < a .
 | 
|  |     54 | H10:   integer__size >= 0 .
 | 
|  |     55 | H11:   natural__size >= 0 .
 | 
|  |     56 | H12:   word32__size >= 0 .
 | 
|  |     57 |        ->
 | 
|  |     58 | C1:    loop__1__i * b mod 4294967296 = ((loop__1__i - 1) * b mod 4294967296 + b)
 | 
|  |     59 |            mod 4294967296 .
 | 
|  |     60 | 
 | 
|  |     61 | 
 | 
|  |     62 | For path(s) from assertion of line 8 to run-time check associated with 
 | 
|  |     63 |           statement of line 11:
 | 
|  |     64 | 
 | 
|  |     65 | procedure_proc1_6.
 | 
|  |     66 | *** true .          /* all conclusions proved */
 | 
|  |     67 | 
 | 
|  |     68 | 
 | 
|  |     69 | For path(s) from start to finish:
 | 
|  |     70 | 
 | 
|  |     71 | procedure_proc1_7.
 | 
|  |     72 | *** true .          /* all conclusions proved */
 | 
|  |     73 | 
 | 
|  |     74 | 
 | 
|  |     75 | For path(s) from assertion of line 8 to finish:
 | 
|  |     76 | 
 | 
|  |     77 | procedure_proc1_8.
 | 
|  |     78 | H1:    a <= 2147483647 .
 | 
|  |     79 | H2:    b >= 0 .
 | 
|  |     80 | H3:    b <= 4294967295 .
 | 
|  |     81 | H4:    a <= 2147483647 .
 | 
|  |     82 | H5:    a >= 1 .
 | 
|  |     83 | H6:    (a - 1) * b mod 4294967296 >= 0 .
 | 
|  |     84 | H7:    (a - 1) * b mod 4294967296 <= 4294967295 .
 | 
|  |     85 | H8:    ((a - 1) * b mod 4294967296 + b) mod 4294967296 >= 0 .
 | 
|  |     86 | H9:    ((a - 1) * b mod 4294967296 + b) mod 4294967296 <= 4294967295 .
 | 
|  |     87 | H10:   integer__size >= 0 .
 | 
|  |     88 | H11:   natural__size >= 0 .
 | 
|  |     89 | H12:   word32__size >= 0 .
 | 
|  |     90 |        ->
 | 
|  |     91 | C1:    a * b mod 4294967296 = ((a - 1) * b mod 4294967296 + b) mod 4294967296 .
 | 
|  |     92 | 
 | 
|  |     93 | 
 |