*****************************************************************************
                       Semantic Analysis of SPARK Text
   Examiner Pro Edition, Version 11.0.0, Build Date 20120914, Build 25178
             Copyright (C) 2012 Altran Praxis Limited, Bath, U.K.
*****************************************************************************


CREATED 27-MAR-2013, 10:45:47  SIMPLIFIED 27-MAR-2013, 10:45:53

SPARK Simplifier Pro Edition, Version 11.0.0, Build Date 20120914, Build 25178
Copyright (C) 2012 Altran Praxis Limited, Bath, U.K.

procedure T2Q6.Sumarray_Shift




For path(s) from start to run-time check associated with statement of line 19:

procedure_sumarray_shift_1.
*** true .          /* all conclusions proved */


For path(s) from start to assertion of line 21:

procedure_sumarray_shift_2.
*** true .          /* all conclusions proved */


For path(s) from assertion of line 31 to assertion of line 21:

procedure_sumarray_shift_3.
*** true .          /* all conclusions proved */


For path(s) from assertion of line 21 to run-time check associated with
          statement of line 27:

procedure_sumarray_shift_4.
*** true .          /* all conclusions proved */


For path(s) from assertion of line 21 to run-time check associated with
          statement of line 29:

procedure_sumarray_shift_5.
H1:    loop__1__i = 1 -> sum_between(a, 1, loop__1__i - 1) = shift .
H2:    0 <= sum_between(a, 1, loop__1__i - 1) .
H3:    sum_between(a, 1, loop__1__i - 1) <= 1000 * (loop__1__i - 1) .
H4:    for_all(i___1 : integer, 1 <= i___1 and i___1 <= 100 -> 0 <= element(a, [
          i___1]) and element(a, [i___1]) <= 1000) .
H5:    shift >= 0 .
H6:    shift <= 1000 .
H7:    sum_between(a, 1, loop__1__i - 1) >= 0 .
H8:    loop__1__i <= 100 .
H9:    sum_between(a, 1, loop__1__i - 1) <= 1000 * (loop__1__i - 1) .
H10:   1 < loop__1__i .
H11:   loop__1__i = 2 -> sum_between(a, 1, loop__1__i - 1) = element(a, [
          loop__1__i - 1]) .
H12:   loop__1__i > 2 -> sum_between(a, 1, loop__1__i - 1) = sum_between(a, 1,
          loop__1__i - 1 - 1) + element(a, [loop__1__i - 1]) .
H13:   loop__1__i < 2 -> sum_between(a, 1, loop__1__i - 1) >= 1000 * (1 - (
          loop__1__i - 1)) .
H14:   integer__size >= 0 .
H15:   elementtype__size >= 0 .
H16:   counttype__size >= 0 .
H17:   indextype__size >= 0 .
H18:   sumtype__size >= 0 .
       ->
C1:    sum_between(a, 1, loop__1__i - 1) + element(a, [loop__1__i]) <= 100000 .


For path(s) from assertion of line 21 to assertion of line 31:

procedure_sumarray_shift_6.
*** true .          /* all conclusions proved */


procedure_sumarray_shift_7.
H1:    loop__1__i = 1 -> sum_between(a, 1, loop__1__i - 1) = shift .
H2:    0 <= sum_between(a, 1, loop__1__i - 1) .
H3:    sum_between(a, 1, loop__1__i - 1) <= 1000 * (loop__1__i - 1) .
H4:    for_all(i___1 : integer, 1 <= i___1 and i___1 <= 100 -> 0 <= element(a, [
          i___1]) and element(a, [i___1]) <= 1000) .
H5:    shift >= 0 .
H6:    shift <= 1000 .
H7:    sum_between(a, 1, loop__1__i - 1) >= 0 .
H8:    loop__1__i <= 100 .
H9:    sum_between(a, 1, loop__1__i - 1) + element(a, [loop__1__i]) >= 0 .
H10:   sum_between(a, 1, loop__1__i - 1) + element(a, [loop__1__i]) <= 100000 .
H11:   sum_between(a, 1, loop__1__i) >= 0 .
H12:   sum_between(a, 1, loop__1__i) <= 100000 .
H13:   sum_between(a, 1, loop__1__i - 1) <= 1000 * (loop__1__i - 1) .
H14:   1 < loop__1__i .
H15:   loop__1__i = 2 -> sum_between(a, 1, loop__1__i - 1) = element(a, [
          loop__1__i - 1]) .
H16:   1 = loop__1__i -> sum_between(a, 1, loop__1__i) = element(a, [loop__1__i]
          ) .
H17:   loop__1__i > 2 -> sum_between(a, 1, loop__1__i - 1) = sum_between(a, 1,
          loop__1__i - 1 - 1) + element(a, [loop__1__i - 1]) .
H18:   loop__1__i < 2 -> sum_between(a, 1, loop__1__i - 1) >= 1000 * (1 - (
          loop__1__i - 1)) .
H19:   1 < loop__1__i -> sum_between(a, 1, loop__1__i) = sum_between(a, 1,
          loop__1__i - 1) + element(a, [loop__1__i]) .
H20:   1 > loop__1__i -> sum_between(a, 1, loop__1__i) >= 1000 * (1 -
          loop__1__i) .
H21:   sum_between(a, 1, loop__1__i) = sum_between(a, 1, loop__1__i - 1) +
          element(a, [loop__1__i]) .
H22:   integer__size >= 0 .
H23:   elementtype__size >= 0 .
H24:   counttype__size >= 0 .
H25:   indextype__size >= 0 .
H26:   sumtype__size >= 0 .
       ->
C1:    sum_between(a, 1, loop__1__i - 1) + element(a, [loop__1__i]) <= 1000 *
          loop__1__i .


For path(s) from assertion of line 31 to finish:

procedure_sumarray_shift_8.
*** true .          /* all conclusions proved */
