*****************************************************************************
                       Semantic Analysis of SPARK Text
                             Examiner Pro Edition

*****************************************************************************



SPARK Simplifier Pro Edition


procedure Skein.Get_64_LSB_First




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

procedure_get_64_lsb_first_1.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_2.
*** true .          /* all conclusions proved */


For path(s) from start to check associated with statement of line 151:

procedure_get_64_lsb_first_3.
*** true .          /* all conclusions proved */


For path(s) from assertion of line 172 to check associated with statement of 
          line 151:

procedure_get_64_lsb_first_4.
H1:    for_all(i_ : integer, dst__index__subtype__1__first <= i_ and i_ <= 
          dst_index -> 0 <= element(dst, [i_]) and element(dst, [i_]) <= 
          18446744073709551615) .
H2:    dst_index >= dst__index__subtype__1__first .
H3:    dst__index__subtype__1__last <= 268435455 .
H4:    src_offset + dst_index * 8 >= src_offset .
H5:    dst_index <= 2147483646 .
H6:    src_offset + dst_index * 8 <= 2147483639 .
H7:    for_all(i___1 : integer, src__index__subtype__1__first <= i___1 and 
          i___1 <= src__index__subtype__1__last -> 0 <= element(src, [i___1]) 
          and element(src, [i___1]) <= 255) .
H8:    src_offset >= 0 .
H9:    src__index__subtype__1__first = 0 .
H10:   dst__index__subtype__1__first = 0 .
H11:   src_offset + dst__index__subtype__1__last * 8 + 7 >= 
          src__index__subtype__1__first .
H12:   src_offset + dst__index__subtype__1__last * 8 + 7 <= 
          src__index__subtype__1__last .
H13:   src_offset + 7 <= src__index__subtype__1__last .
H14:   src_offset + dst__index__subtype__1__last * 8 <= 2147483647 .
H15:   dst_index <= 268435454 .
H16:   src_offset + dst_index * 8 <= 2147483639 .
H17:   dst_index < dst__index__subtype__1__last .
H18:   integer__size >= 0 .
H19:   natural__size >= 0 .
H20:   spark__unsigned__byte__size >= 0 .
H21:   spark__unsigned__u64__size >= 0 .
H22:   spark__unsigned__shift_count__size >= 0 .
H23:   spark__crypto__word_count_t__size >= 0 .
H24:   dst__index__subtype__1__first <= dst__index__subtype__1__last .
H25:   src__index__subtype__1__first <= src__index__subtype__1__last .
H26:   src__index__subtype__1__first >= 0 .
H27:   src__index__subtype__1__last >= 0 .
H28:   src__index__subtype__1__last <= 2147483647 .
H29:   src__index__subtype__1__first <= 2147483647 .
H30:   dst__index__subtype__1__first >= 0 .
H31:   dst__index__subtype__1__last >= 0 .
H32:   dst__index__subtype__1__first <= 268435455 .
       ->
C1:    src_offset + dst_index * 8 + 8 <= src__index__subtype__1__last .
C2:    src_offset + dst_index * 8 + 9 <= src__index__subtype__1__last .
C3:    src_offset + dst_index * 8 + 10 <= src__index__subtype__1__last .
C4:    src_offset + dst_index * 8 + 11 <= src__index__subtype__1__last .
C5:    src_offset + dst_index * 8 + 12 <= src__index__subtype__1__last .
C6:    src_offset + dst_index * 8 + 13 <= src__index__subtype__1__last .
C7:    src_offset + dst_index * 8 + 14 <= src__index__subtype__1__last .
C8:    src_offset + dst_index * 8 + 15 <= src__index__subtype__1__last .


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

procedure_get_64_lsb_first_5.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_6.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_7.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_8.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_9.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_10.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_11.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_12.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_13.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_14.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_15.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_16.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_17.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_18.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_19.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_20.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_21.
H1:    src__index__subtype__1__first = 0 .
H2:    dst__index__subtype__1__first = 0 .
H3:    src_offset + dst__index__subtype__1__last * 8 + 7 >= 
          src__index__subtype__1__first .
H4:    src_offset + dst__index__subtype__1__last * 8 + 7 <= 
          src__index__subtype__1__last .
H5:    src_offset + 7 <= src__index__subtype__1__last .
H6:    src_offset + dst__index__subtype__1__last * 8 <= 2147483647 .
H7:    for_all(i___1 : integer, src__index__subtype__1__first <= i___1 and 
          i___1 <= src__index__subtype__1__last -> 0 <= element(src, [i___1]) 
          and element(src, [i___1]) <= 255) .
H8:    src_offset >= 0 .
H9:    src_offset >= src__index__subtype__1__first .
H10:   element(src, [src_offset + 1]) >= 0 .
H11:   element(src, [src_offset + 1]) <= 18446744073709551615 .
H12:   element(src, [src_offset]) >= 0 .
H13:   element(src, [src_offset]) <= 18446744073709551615 .
H14:   0 <= dst__index__subtype__1__last .
H15:   spark__unsigned__shift_left_64(element(src, [src_offset + 1]), 8) >= 0 .
H16:   spark__unsigned__shift_left_64(element(src, [src_offset + 1]), 8) <= 
          18446744073709551615 .
H17:   element(src, [src_offset + 2]) >= 0 .
H18:   element(src, [src_offset + 2]) <= 18446744073709551615 .
H19:   spark__unsigned__shift_left_64(element(src, [src_offset + 2]), 16) >= 0 .
H20:   spark__unsigned__shift_left_64(element(src, [src_offset + 2]), 16) <= 
          18446744073709551615 .
H21:   element(src, [src_offset + 3]) >= 0 .
H22:   element(src, [src_offset + 3]) <= 18446744073709551615 .
H23:   spark__unsigned__shift_left_64(element(src, [src_offset + 3]), 24) >= 0 .
H24:   spark__unsigned__shift_left_64(element(src, [src_offset + 3]), 24) <= 
          18446744073709551615 .
H25:   element(src, [src_offset + 4]) >= 0 .
H26:   element(src, [src_offset + 4]) <= 18446744073709551615 .
H27:   spark__unsigned__shift_left_64(element(src, [src_offset + 4]), 32) >= 0 .
H28:   spark__unsigned__shift_left_64(element(src, [src_offset + 4]), 32) <= 
          18446744073709551615 .
H29:   element(src, [src_offset + 5]) >= 0 .
H30:   element(src, [src_offset + 5]) <= 18446744073709551615 .
H31:   spark__unsigned__shift_left_64(element(src, [src_offset + 5]), 40) >= 0 .
H32:   spark__unsigned__shift_left_64(element(src, [src_offset + 5]), 40) <= 
          18446744073709551615 .
H33:   element(src, [src_offset + 6]) >= 0 .
H34:   element(src, [src_offset + 6]) <= 18446744073709551615 .
H35:   spark__unsigned__shift_left_64(element(src, [src_offset + 6]), 48) >= 0 .
H36:   spark__unsigned__shift_left_64(element(src, [src_offset + 6]), 48) <= 
          18446744073709551615 .
H37:   element(src, [src_offset + 7]) >= 0 .
H38:   element(src, [src_offset + 7]) <= 18446744073709551615 .
H39:   src_offset <= 2147483640 .
H40:   spark__unsigned__shift_left_64(element(src, [src_offset + 7]), 56) >= 0 .
H41:   spark__unsigned__shift_left_64(element(src, [src_offset + 7]), 56) <= 
          18446744073709551615 .
H42:   (((((((element(src, [src_offset]) + spark__unsigned__shift_left_64(
          element(src, [src_offset + 1]), 8)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + 2]), 16)) 
          mod 18446744073709551616 + spark__unsigned__shift_left_64(element(
          src, [src_offset + 3]), 24)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + 4]), 32)) 
          mod 18446744073709551616 + spark__unsigned__shift_left_64(element(
          src, [src_offset + 5]), 40)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + 6]), 48)) 
          mod 18446744073709551616 + spark__unsigned__shift_left_64(element(
          src, [src_offset + 7]), 56)) mod 18446744073709551616 >= 0 .
H43:   (((((((element(src, [src_offset]) + spark__unsigned__shift_left_64(
          element(src, [src_offset + 1]), 8)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + 2]), 16)) 
          mod 18446744073709551616 + spark__unsigned__shift_left_64(element(
          src, [src_offset + 3]), 24)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + 4]), 32)) 
          mod 18446744073709551616 + spark__unsigned__shift_left_64(element(
          src, [src_offset + 5]), 40)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + 6]), 48)) 
          mod 18446744073709551616 + spark__unsigned__shift_left_64(element(
          src, [src_offset + 7]), 56)) mod 18446744073709551616 <= 
          18446744073709551615 .
H44:   integer__size >= 0 .
H45:   natural__size >= 0 .
H46:   spark__unsigned__byte__size >= 0 .
H47:   spark__unsigned__u64__size >= 0 .
H48:   spark__unsigned__shift_count__size >= 0 .
H49:   spark__crypto__word_count_t__size >= 0 .
H50:   dst__index__subtype__1__first <= dst__index__subtype__1__last .
H51:   src__index__subtype__1__first <= src__index__subtype__1__last .
H52:   src__index__subtype__1__first >= 0 .
H53:   src__index__subtype__1__last >= 0 .
H54:   src__index__subtype__1__last <= 2147483647 .
H55:   src__index__subtype__1__first <= 2147483647 .
H56:   dst__index__subtype__1__first >= 0 .
H57:   dst__index__subtype__1__last >= 0 .
H58:   dst__index__subtype__1__last <= 268435455 .
H59:   dst__index__subtype__1__first <= 268435455 .
       ->
C1:    0 <> dst__index__subtype__1__last -> src_offset <= 2147483639 .


For path(s) from assertion of line 172 to assertion of line 172:

procedure_get_64_lsb_first_22.
H1:    for_all(i_ : integer, dst__index__subtype__1__first <= i_ and i_ <= 
          dst_index -> 0 <= element(dst, [i_]) and element(dst, [i_]) <= 
          18446744073709551615) .
H2:    dst_index >= dst__index__subtype__1__first .
H3:    dst__index__subtype__1__last <= 268435455 .
H4:    src_offset + dst_index * 8 >= src_offset .
H5:    src_offset + dst_index * 8 <= src_offset + dst__index__subtype__1__last 
          * 8 .
H6:    dst_index <= 2147483646 .
H7:    src_offset + dst_index * 8 <= 2147483639 .
H8:    for_all(i___1 : integer, src__index__subtype__1__first <= i___1 and 
          i___1 <= src__index__subtype__1__last -> 0 <= element(src, [i___1]) 
          and element(src, [i___1]) <= 255) .
H9:    src_offset >= 0 .
H10:   src_offset <= 2147483647 .
H11:   src__index__subtype__1__first = 0 .
H12:   dst__index__subtype__1__first = 0 .
H13:   src_offset + dst__index__subtype__1__last * 8 + 7 >= 
          src__index__subtype__1__first .
H14:   src_offset + dst__index__subtype__1__last * 8 + 7 <= 
          src__index__subtype__1__last .
H15:   src_offset + 7 <= src__index__subtype__1__last .
H16:   src_offset + dst__index__subtype__1__last * 8 <= 2147483647 .
H17:   dst_index <= 268435454 .
H18:   src_offset + dst_index * 8 >= - 8 .
H19:   src_offset + dst_index * 8 + 8 >= src__index__subtype__1__first .
H20:   src_offset + dst_index * 8 + 15 <= src__index__subtype__1__last .
H21:   element(src, [src_offset + dst_index * 8 + 9]) >= 0 .
H22:   element(src, [src_offset + dst_index * 8 + 9]) <= 18446744073709551615 .
H23:   element(src, [src_offset + dst_index * 8 + 8]) >= 0 .
H24:   element(src, [src_offset + dst_index * 8 + 8]) <= 18446744073709551615 .
H25:   dst_index + 1 <= dst__index__subtype__1__last .
H26:   spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 8 
          + 9]), 8) >= 0 .
H27:   spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 8 
          + 9]), 8) <= 18446744073709551615 .
H28:   element(src, [src_offset + dst_index * 8 + 10]) >= 0 .
H29:   element(src, [src_offset + dst_index * 8 + 10]) <= 18446744073709551615 .
H30:   spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 8 
          + 10]), 16) >= 0 .
H31:   spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 8 
          + 10]), 16) <= 18446744073709551615 .
H32:   element(src, [src_offset + dst_index * 8 + 11]) >= 0 .
H33:   element(src, [src_offset + dst_index * 8 + 11]) <= 18446744073709551615 .
H34:   spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 8 
          + 11]), 24) >= 0 .
H35:   spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 8 
          + 11]), 24) <= 18446744073709551615 .
H36:   element(src, [src_offset + dst_index * 8 + 12]) >= 0 .
H37:   element(src, [src_offset + dst_index * 8 + 12]) <= 18446744073709551615 .
H38:   spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 8 
          + 12]), 32) >= 0 .
H39:   spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 8 
          + 12]), 32) <= 18446744073709551615 .
H40:   element(src, [src_offset + dst_index * 8 + 13]) >= 0 .
H41:   element(src, [src_offset + dst_index * 8 + 13]) <= 18446744073709551615 .
H42:   spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 8 
          + 13]), 40) >= 0 .
H43:   spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 8 
          + 13]), 40) <= 18446744073709551615 .
H44:   element(src, [src_offset + dst_index * 8 + 14]) >= 0 .
H45:   element(src, [src_offset + dst_index * 8 + 14]) <= 18446744073709551615 .
H46:   spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 8 
          + 14]), 48) >= 0 .
H47:   spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 8 
          + 14]), 48) <= 18446744073709551615 .
H48:   element(src, [src_offset + dst_index * 8 + 15]) >= 0 .
H49:   element(src, [src_offset + dst_index * 8 + 15]) <= 18446744073709551615 .
H50:   src_offset + dst_index * 8 <= 2147483632 .
H51:   spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 8 
          + 15]), 56) >= 0 .
H52:   spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 8 
          + 15]), 56) <= 18446744073709551615 .
H53:   (((((((element(src, [src_offset + dst_index * 8 + 8]) + 
          spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 
          8 + 9]), 8)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 
          8 + 10]), 16)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 
          8 + 11]), 24)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 
          8 + 12]), 32)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 
          8 + 13]), 40)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 
          8 + 14]), 48)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 
          8 + 15]), 56)) mod 18446744073709551616 >= 0 .
H54:   (((((((element(src, [src_offset + dst_index * 8 + 8]) + 
          spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 
          8 + 9]), 8)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 
          8 + 10]), 16)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 
          8 + 11]), 24)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 
          8 + 12]), 32)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 
          8 + 13]), 40)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 
          8 + 14]), 48)) mod 18446744073709551616 + 
          spark__unsigned__shift_left_64(element(src, [src_offset + dst_index * 
          8 + 15]), 56)) mod 18446744073709551616 <= 18446744073709551615 .
H55:   integer__size >= 0 .
H56:   natural__size >= 0 .
H57:   spark__unsigned__byte__size >= 0 .
H58:   spark__unsigned__u64__size >= 0 .
H59:   spark__unsigned__shift_count__size >= 0 .
H60:   spark__crypto__word_count_t__size >= 0 .
H61:   dst__index__subtype__1__first <= dst__index__subtype__1__last .
H62:   src__index__subtype__1__first <= src__index__subtype__1__last .
H63:   src__index__subtype__1__first >= 0 .
H64:   src__index__subtype__1__last >= 0 .
H65:   src__index__subtype__1__last <= 2147483647 .
H66:   src__index__subtype__1__first <= 2147483647 .
H67:   dst__index__subtype__1__first >= 0 .
H68:   dst__index__subtype__1__last >= 0 .
H69:   dst__index__subtype__1__first <= 268435455 .
       ->
C1:    8 * dst__index__subtype__1__last - 8 * dst_index > 7 .
C2:    dst_index + 1 <> dst__index__subtype__1__last -> src_offset + dst_index 
          * 8 <= 2147483631 .


For path(s) from assertion of line 172 to check associated with statement of 
          line 183:

procedure_get_64_lsb_first_23.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_24.
*** true .          /* all conclusions proved */


For path(s) from assertion of line 172 to check associated with statement of 
          line 186:

procedure_get_64_lsb_first_25.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_26.
*** true .          /* all conclusions proved */


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

procedure_get_64_lsb_first_27.
*** true .          /* all conclusions proved */


