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

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


                       function Skein.Skein_512_Hash




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

function_skein_512_hash_1.
H1:    data__index__subtype__1__first = 0 .
H2:    data__index__subtype__1__last + 
           skein_512_block_bytes_c < natural__last .
H3:    for_all(i___1: integer, ((i___1 >= 
           data__index__subtype__1__first) and (i___1 <= 
           data__index__subtype__1__last)) -> ((element(
           data, [i___1]) >= spark__unsigned__byte__first) and (element(
           data, [i___1]) <= spark__unsigned__byte__last))) .
        ->
C1:    512 >= initialized_hash_bit_length__first .
C2:    512 <= initialized_hash_bit_length__last .
 

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

function_skein_512_hash_2.
H1:    data__index__subtype__1__first = 0 .
H2:    data__index__subtype__1__last + 
           skein_512_block_bytes_c < natural__last .
H3:    for_all(i___1: integer, ((i___1 >= 
           data__index__subtype__1__first) and (i___1 <= 
           data__index__subtype__1__last)) -> ((element(
           data, [i___1]) >= spark__unsigned__byte__first) and (element(
           data, [i___1]) <= spark__unsigned__byte__last))) .
H4:    512 >= initialized_hash_bit_length__first .
H5:    512 <= initialized_hash_bit_length__last .
H6:    fld_hash_bit_len(fld_h(ctx__1)) >= 
           initialized_hash_bit_length__first .
H7:    fld_hash_bit_len(fld_h(ctx__1)) <= 
           initialized_hash_bit_length__last .
H8:    fld_hash_bit_len(fld_h(ctx__1)) = 512 .
H9:    fld_byte_count(fld_h(ctx__1)) = 0 .
H10:   fld_byte_count(fld_h(ctx__1)) >= 
           skein_512_block_bytes_count__first .
H11:   fld_byte_count(fld_h(ctx__1)) <= 
           skein_512_block_bytes_count__last .
H12:   for_all(i___2: integer, ((i___2 >= 
           skein_512_block_bytes_index__first) and (i___2 <= 
           skein_512_block_bytes_index__last)) -> ((element(fld_b(
           ctx__1), [i___2]) >= spark__unsigned__byte__first) and (element(
           fld_b(ctx__1), [i___2]) <= spark__unsigned__byte__last))) .
H13:   for_all(i___1: integer, ((i___1 >= 
           skein_512_state_words_index__first) and (i___1 <= 
           skein_512_state_words_index__last)) -> ((element(fld_x(
           ctx__1), [i___1]) >= spark__unsigned__u64__first) and (element(
           fld_x(ctx__1), [i___1]) <= spark__unsigned__u64__last))) .
H14:   fld_byte_count(fld_h(ctx__1)) >= natural__first .
H15:   fld_byte_count(fld_h(ctx__1)) <= natural__last .
H16:   fld_hash_bit_len(fld_h(ctx__1)) >= hash_bit_length__first .
H17:   fld_hash_bit_len(fld_h(ctx__1)) <= hash_bit_length__last .
H18:   true .
H19:   true .
H20:   fld_field_type(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u6__first .
H21:   fld_field_type(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u6__last .
H22:   true .
H23:   fld_tree_level(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u7__first .
H24:   fld_tree_level(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u7__last .
H25:   fld_reserved(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u16__first .
H26:   fld_reserved(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u16__last .
H27:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u32__first .
H28:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u32__last .
H29:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u64__first .
H30:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u64__last .
H31:   for_all(i___2: integer, ((i___2 >= 
           skein_512_block_bytes_index__first) and (i___2 <= 
           skein_512_block_bytes_index__last)) -> ((element(fld_b(
           ctx__1), [i___2]) >= spark__unsigned__byte__first) and (element(
           fld_b(ctx__1), [i___2]) <= spark__unsigned__byte__last))) .
H32:   for_all(i___1: integer, ((i___1 >= 
           skein_512_state_words_index__first) and (i___1 <= 
           skein_512_state_words_index__last)) -> ((element(fld_x(
           ctx__1), [i___1]) >= spark__unsigned__u64__first) and (element(
           fld_x(ctx__1), [i___1]) <= spark__unsigned__u64__last))) .
H33:   fld_byte_count(fld_h(ctx__1)) >= natural__first .
H34:   fld_byte_count(fld_h(ctx__1)) <= natural__last .
H35:   fld_hash_bit_len(fld_h(ctx__1)) >= hash_bit_length__first .
H36:   fld_hash_bit_len(fld_h(ctx__1)) <= hash_bit_length__last .
H37:   true .
H38:   true .
H39:   fld_field_type(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u6__first .
H40:   fld_field_type(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u6__last .
H41:   true .
H42:   fld_tree_level(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u7__first .
H43:   fld_tree_level(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u7__last .
H44:   fld_reserved(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u16__first .
H45:   fld_reserved(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u16__last .
H46:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u32__first .
H47:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u32__last .
H48:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u64__first .
H49:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u64__last .
        ->
C1:    fld_hash_bit_len(fld_h(ctx__1)) >= 
           initialized_hash_bit_length__first .
C2:    fld_hash_bit_len(fld_h(ctx__1)) <= 
           initialized_hash_bit_length__last .
C3:    fld_byte_count(fld_h(ctx__1)) >= 
           skein_512_block_bytes_count__first .
C4:    fld_byte_count(fld_h(ctx__1)) <= 
           skein_512_block_bytes_count__last .
C5:    data__index__subtype__1__first = 0 .
C6:    data__index__subtype__1__last < natural__last .
C7:    data__index__subtype__1__last + 
           skein_512_block_bytes_c + 1 <= natural__last .
 

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

function_skein_512_hash_3.
H1:    data__index__subtype__1__first = 0 .
H2:    data__index__subtype__1__last + 
           skein_512_block_bytes_c < natural__last .
H3:    for_all(i___1: integer, ((i___1 >= 
           data__index__subtype__1__first) and (i___1 <= 
           data__index__subtype__1__last)) -> ((element(
           data, [i___1]) >= spark__unsigned__byte__first) and (element(
           data, [i___1]) <= spark__unsigned__byte__last))) .
H4:    512 >= initialized_hash_bit_length__first .
H5:    512 <= initialized_hash_bit_length__last .
H6:    fld_hash_bit_len(fld_h(ctx__1)) >= 
           initialized_hash_bit_length__first .
H7:    fld_hash_bit_len(fld_h(ctx__1)) <= 
           initialized_hash_bit_length__last .
H8:    fld_hash_bit_len(fld_h(ctx__1)) = 512 .
H9:    fld_byte_count(fld_h(ctx__1)) = 0 .
H10:   fld_byte_count(fld_h(ctx__1)) >= 
           skein_512_block_bytes_count__first .
H11:   fld_byte_count(fld_h(ctx__1)) <= 
           skein_512_block_bytes_count__last .
H12:   for_all(i___2: integer, ((i___2 >= 
           skein_512_block_bytes_index__first) and (i___2 <= 
           skein_512_block_bytes_index__last)) -> ((element(fld_b(
           ctx__1), [i___2]) >= spark__unsigned__byte__first) and (element(
           fld_b(ctx__1), [i___2]) <= spark__unsigned__byte__last))) .
H13:   for_all(i___1: integer, ((i___1 >= 
           skein_512_state_words_index__first) and (i___1 <= 
           skein_512_state_words_index__last)) -> ((element(fld_x(
           ctx__1), [i___1]) >= spark__unsigned__u64__first) and (element(
           fld_x(ctx__1), [i___1]) <= spark__unsigned__u64__last))) .
H14:   fld_byte_count(fld_h(ctx__1)) >= natural__first .
H15:   fld_byte_count(fld_h(ctx__1)) <= natural__last .
H16:   fld_hash_bit_len(fld_h(ctx__1)) >= hash_bit_length__first .
H17:   fld_hash_bit_len(fld_h(ctx__1)) <= hash_bit_length__last .
H18:   true .
H19:   true .
H20:   fld_field_type(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u6__first .
H21:   fld_field_type(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u6__last .
H22:   true .
H23:   fld_tree_level(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u7__first .
H24:   fld_tree_level(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u7__last .
H25:   fld_reserved(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u16__first .
H26:   fld_reserved(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u16__last .
H27:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u32__first .
H28:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u32__last .
H29:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u64__first .
H30:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u64__last .
H31:   for_all(i___2: integer, ((i___2 >= 
           skein_512_block_bytes_index__first) and (i___2 <= 
           skein_512_block_bytes_index__last)) -> ((element(fld_b(
           ctx__1), [i___2]) >= spark__unsigned__byte__first) and (element(
           fld_b(ctx__1), [i___2]) <= spark__unsigned__byte__last))) .
H32:   for_all(i___1: integer, ((i___1 >= 
           skein_512_state_words_index__first) and (i___1 <= 
           skein_512_state_words_index__last)) -> ((element(fld_x(
           ctx__1), [i___1]) >= spark__unsigned__u64__first) and (element(
           fld_x(ctx__1), [i___1]) <= spark__unsigned__u64__last))) .
H33:   fld_byte_count(fld_h(ctx__1)) >= natural__first .
H34:   fld_byte_count(fld_h(ctx__1)) <= natural__last .
H35:   fld_hash_bit_len(fld_h(ctx__1)) >= hash_bit_length__first .
H36:   fld_hash_bit_len(fld_h(ctx__1)) <= hash_bit_length__last .
H37:   true .
H38:   true .
H39:   fld_field_type(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u6__first .
H40:   fld_field_type(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u6__last .
H41:   true .
H42:   fld_tree_level(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u7__first .
H43:   fld_tree_level(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u7__last .
H44:   fld_reserved(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u16__first .
H45:   fld_reserved(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u16__last .
H46:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u32__first .
H47:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u32__last .
H48:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__1))) >= 
           spark__unsigned__u64__first .
H49:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__1))) <= 
           spark__unsigned__u64__last .
H50:   fld_hash_bit_len(fld_h(ctx__1)) >= 
           initialized_hash_bit_length__first .
H51:   fld_hash_bit_len(fld_h(ctx__1)) <= 
           initialized_hash_bit_length__last .
H52:   fld_byte_count(fld_h(ctx__1)) >= 
           skein_512_block_bytes_count__first .
H53:   fld_byte_count(fld_h(ctx__1)) <= 
           skein_512_block_bytes_count__last .
H54:   data__index__subtype__1__first = 0 .
H55:   data__index__subtype__1__last < natural__last .
H56:   data__index__subtype__1__last + 
           skein_512_block_bytes_c + 1 <= natural__last .
H57:   fld_hash_bit_len(fld_h(ctx__2)) >= 
           initialized_hash_bit_length__first .
H58:   fld_hash_bit_len(fld_h(ctx__2)) <= 
           initialized_hash_bit_length__last .
H59:   fld_hash_bit_len(fld_h(ctx__2)) = fld_hash_bit_len(fld_h(ctx__1)) .
H60:   fld_byte_count(fld_h(ctx__2)) >= 
           skein_512_block_bytes_count__first .
H61:   fld_byte_count(fld_h(ctx__2)) <= 
           skein_512_block_bytes_count__last .
H62:   for_all(i___2: integer, ((i___2 >= 
           skein_512_block_bytes_index__first) and (i___2 <= 
           skein_512_block_bytes_index__last)) -> ((element(fld_b(
           ctx__2), [i___2]) >= spark__unsigned__byte__first) and (element(
           fld_b(ctx__2), [i___2]) <= spark__unsigned__byte__last))) .
H63:   for_all(i___1: integer, ((i___1 >= 
           skein_512_state_words_index__first) and (i___1 <= 
           skein_512_state_words_index__last)) -> ((element(fld_x(
           ctx__2), [i___1]) >= spark__unsigned__u64__first) and (element(
           fld_x(ctx__2), [i___1]) <= spark__unsigned__u64__last))) .
H64:   fld_byte_count(fld_h(ctx__2)) >= natural__first .
H65:   fld_byte_count(fld_h(ctx__2)) <= natural__last .
H66:   fld_hash_bit_len(fld_h(ctx__2)) >= hash_bit_length__first .
H67:   fld_hash_bit_len(fld_h(ctx__2)) <= hash_bit_length__last .
H68:   true .
H69:   true .
H70:   fld_field_type(fld_tweak_words(fld_h(ctx__2))) >= 
           spark__unsigned__u6__first .
H71:   fld_field_type(fld_tweak_words(fld_h(ctx__2))) <= 
           spark__unsigned__u6__last .
H72:   true .
H73:   fld_tree_level(fld_tweak_words(fld_h(ctx__2))) >= 
           spark__unsigned__u7__first .
H74:   fld_tree_level(fld_tweak_words(fld_h(ctx__2))) <= 
           spark__unsigned__u7__last .
H75:   fld_reserved(fld_tweak_words(fld_h(ctx__2))) >= 
           spark__unsigned__u16__first .
H76:   fld_reserved(fld_tweak_words(fld_h(ctx__2))) <= 
           spark__unsigned__u16__last .
H77:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx__2))) >= 
           spark__unsigned__u32__first .
H78:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx__2))) <= 
           spark__unsigned__u32__last .
H79:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__2))) >= 
           spark__unsigned__u64__first .
H80:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__2))) <= 
           spark__unsigned__u64__last .
H81:   for_all(i___2: integer, ((i___2 >= 
           skein_512_block_bytes_index__first) and (i___2 <= 
           skein_512_block_bytes_index__last)) -> ((element(fld_b(
           ctx__2), [i___2]) >= spark__unsigned__byte__first) and (element(
           fld_b(ctx__2), [i___2]) <= spark__unsigned__byte__last))) .
H82:   for_all(i___1: integer, ((i___1 >= 
           skein_512_state_words_index__first) and (i___1 <= 
           skein_512_state_words_index__last)) -> ((element(fld_x(
           ctx__2), [i___1]) >= spark__unsigned__u64__first) and (element(
           fld_x(ctx__2), [i___1]) <= spark__unsigned__u64__last))) .
H83:   fld_byte_count(fld_h(ctx__2)) >= natural__first .
H84:   fld_byte_count(fld_h(ctx__2)) <= natural__last .
H85:   fld_hash_bit_len(fld_h(ctx__2)) >= hash_bit_length__first .
H86:   fld_hash_bit_len(fld_h(ctx__2)) <= hash_bit_length__last .
H87:   true .
H88:   true .
H89:   fld_field_type(fld_tweak_words(fld_h(ctx__2))) >= 
           spark__unsigned__u6__first .
H90:   fld_field_type(fld_tweak_words(fld_h(ctx__2))) <= 
           spark__unsigned__u6__last .
H91:   true .
H92:   fld_tree_level(fld_tweak_words(fld_h(ctx__2))) >= 
           spark__unsigned__u7__first .
H93:   fld_tree_level(fld_tweak_words(fld_h(ctx__2))) <= 
           spark__unsigned__u7__last .
H94:   fld_reserved(fld_tweak_words(fld_h(ctx__2))) >= 
           spark__unsigned__u16__first .
H95:   fld_reserved(fld_tweak_words(fld_h(ctx__2))) <= 
           spark__unsigned__u16__last .
H96:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx__2))) >= 
           spark__unsigned__u32__first .
H97:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx__2))) <= 
           spark__unsigned__u32__last .
H98:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__2))) >= 
           spark__unsigned__u64__first .
H99:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__2))) <= 
           spark__unsigned__u64__last .
        ->
C1:    fld_hash_bit_len(fld_h(ctx__2)) >= 
           initialized_hash_bit_length__first .
C2:    fld_hash_bit_len(fld_h(ctx__2)) <= 
           initialized_hash_bit_length__last .
C3:    fld_byte_count(fld_h(ctx__2)) >= 
           skein_512_block_bytes_count__first .
C4:    fld_byte_count(fld_h(ctx__2)) <= 
           skein_512_block_bytes_count__last .
C5:    skein_512_state_bytes_index__first = 0 .
C6:    (fld_hash_bit_len(fld_h(ctx__2)) + 7) div 8 <= 
           skein_512_state_bytes_index__last + 1 .
 

For path(s) from start to finish:

function_skein_512_hash_4.
*** true .          /* trivially true VC removed by Examiner */


