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

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


           procedure Skein.Skein_512_Process_Block.Initialize_TS




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

procedure_initialize_ts_1.
H1:    true .
H2:    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), [i___2]) >= spark__unsigned__byte__first) and (element(
           fld_b(ctx), [i___2]) <= spark__unsigned__byte__last))) .
H3:    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), [i___1]) >= spark__unsigned__u64__first) and (element(
           fld_x(ctx), [i___1]) <= spark__unsigned__u64__last))) .
H4:    fld_byte_count(fld_h(ctx)) >= natural__first .
H5:    fld_byte_count(fld_h(ctx)) <= natural__last .
H6:    fld_hash_bit_len(fld_h(ctx)) >= hash_bit_length__first .
H7:    fld_hash_bit_len(fld_h(ctx)) <= hash_bit_length__last .
H8:    true .
H9:    true .
H10:   fld_field_type(fld_tweak_words(fld_h(ctx))) >= 
           spark__unsigned__u6__first .
H11:   fld_field_type(fld_tweak_words(fld_h(ctx))) <= 
           spark__unsigned__u6__last .
H12:   true .
H13:   fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 
           spark__unsigned__u7__first .
H14:   fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 
           spark__unsigned__u7__last .
H15:   fld_reserved(fld_tweak_words(fld_h(ctx))) >= 
           spark__unsigned__u16__first .
H16:   fld_reserved(fld_tweak_words(fld_h(ctx))) <= 
           spark__unsigned__u16__last .
H17:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 
           spark__unsigned__u32__first .
H18:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 
           spark__unsigned__u32__last .
H19:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 
           spark__unsigned__u64__first .
H20:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
           spark__unsigned__u64__last .
H21:   for_all(i_: integer, ((i_ >= modifier_words_index__first) and (
           i_ <= modifier_words_index__last)) -> ((element(
           tweak_to_words(fld_tweak_words(fld_h(ctx))), [i_]) >= 
           spark__unsigned__u64__first) and (element(
           tweak_to_words(fld_tweak_words(fld_h(ctx))), [i_]) <= 
           spark__unsigned__u64__last))) .
        ->
C1:    element(tweak_to_words(fld_tweak_words(fld_h(ctx))), [0]) >= 
           spark__unsigned__u64__first .
C2:    element(tweak_to_words(fld_tweak_words(fld_h(ctx))), [0]) <= 
           spark__unsigned__u64__last .
C3:    0 >= modifier_words_index__first .
C4:    0 <= modifier_words_index__last .
 

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

procedure_initialize_ts_2.
H1:    true .
H2:    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), [i___2]) >= spark__unsigned__byte__first) and (element(
           fld_b(ctx), [i___2]) <= spark__unsigned__byte__last))) .
H3:    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), [i___1]) >= spark__unsigned__u64__first) and (element(
           fld_x(ctx), [i___1]) <= spark__unsigned__u64__last))) .
H4:    fld_byte_count(fld_h(ctx)) >= natural__first .
H5:    fld_byte_count(fld_h(ctx)) <= natural__last .
H6:    fld_hash_bit_len(fld_h(ctx)) >= hash_bit_length__first .
H7:    fld_hash_bit_len(fld_h(ctx)) <= hash_bit_length__last .
H8:    true .
H9:    true .
H10:   fld_field_type(fld_tweak_words(fld_h(ctx))) >= 
           spark__unsigned__u6__first .
H11:   fld_field_type(fld_tweak_words(fld_h(ctx))) <= 
           spark__unsigned__u6__last .
H12:   true .
H13:   fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 
           spark__unsigned__u7__first .
H14:   fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 
           spark__unsigned__u7__last .
H15:   fld_reserved(fld_tweak_words(fld_h(ctx))) >= 
           spark__unsigned__u16__first .
H16:   fld_reserved(fld_tweak_words(fld_h(ctx))) <= 
           spark__unsigned__u16__last .
H17:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 
           spark__unsigned__u32__first .
H18:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 
           spark__unsigned__u32__last .
H19:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 
           spark__unsigned__u64__first .
H20:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
           spark__unsigned__u64__last .
H21:   for_all(i_: integer, ((i_ >= modifier_words_index__first) and (
           i_ <= modifier_words_index__last)) -> ((element(
           tweak_to_words(fld_tweak_words(fld_h(ctx))), [i_]) >= 
           spark__unsigned__u64__first) and (element(
           tweak_to_words(fld_tweak_words(fld_h(ctx))), [i_]) <= 
           spark__unsigned__u64__last))) .
H22:   element(tweak_to_words(fld_tweak_words(fld_h(ctx))), [0]) >= 
           spark__unsigned__u64__first .
H23:   element(tweak_to_words(fld_tweak_words(fld_h(ctx))), [0]) <= 
           spark__unsigned__u64__last .
H24:   0 >= modifier_words_index__first .
H25:   0 <= modifier_words_index__last .
H26:   for_all(i_: integer, ((i_ >= modifier_words_index__first) and (
           i_ <= modifier_words_index__last)) -> ((element(
           tweak_to_words(fld_tweak_words(fld_h(ctx))), [i_]) >= 
           spark__unsigned__u64__first) and (element(
           tweak_to_words(fld_tweak_words(fld_h(ctx))), [i_]) <= 
           spark__unsigned__u64__last))) .
        ->
C1:    element(tweak_to_words(fld_tweak_words(fld_h(ctx))), [1]) >= 
           spark__unsigned__u64__first .
C2:    element(tweak_to_words(fld_tweak_words(fld_h(ctx))), [1]) <= 
           spark__unsigned__u64__last .
C3:    1 >= modifier_words_index__first .
C4:    1 <= modifier_words_index__last .
 

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

procedure_initialize_ts_3.
H1:    true .
H2:    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), [i___2]) >= spark__unsigned__byte__first) and (element(
           fld_b(ctx), [i___2]) <= spark__unsigned__byte__last))) .
H3:    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), [i___1]) >= spark__unsigned__u64__first) and (element(
           fld_x(ctx), [i___1]) <= spark__unsigned__u64__last))) .
H4:    fld_byte_count(fld_h(ctx)) >= natural__first .
H5:    fld_byte_count(fld_h(ctx)) <= natural__last .
H6:    fld_hash_bit_len(fld_h(ctx)) >= hash_bit_length__first .
H7:    fld_hash_bit_len(fld_h(ctx)) <= hash_bit_length__last .
H8:    true .
H9:    true .
H10:   fld_field_type(fld_tweak_words(fld_h(ctx))) >= 
           spark__unsigned__u6__first .
H11:   fld_field_type(fld_tweak_words(fld_h(ctx))) <= 
           spark__unsigned__u6__last .
H12:   true .
H13:   fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 
           spark__unsigned__u7__first .
H14:   fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 
           spark__unsigned__u7__last .
H15:   fld_reserved(fld_tweak_words(fld_h(ctx))) >= 
           spark__unsigned__u16__first .
H16:   fld_reserved(fld_tweak_words(fld_h(ctx))) <= 
           spark__unsigned__u16__last .
H17:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 
           spark__unsigned__u32__first .
H18:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 
           spark__unsigned__u32__last .
H19:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 
           spark__unsigned__u64__first .
H20:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
           spark__unsigned__u64__last .
H21:   for_all(i_: integer, ((i_ >= modifier_words_index__first) and (
           i_ <= modifier_words_index__last)) -> ((element(
           tweak_to_words(fld_tweak_words(fld_h(ctx))), [i_]) >= 
           spark__unsigned__u64__first) and (element(
           tweak_to_words(fld_tweak_words(fld_h(ctx))), [i_]) <= 
           spark__unsigned__u64__last))) .
H22:   element(tweak_to_words(fld_tweak_words(fld_h(ctx))), [0]) >= 
           spark__unsigned__u64__first .
H23:   element(tweak_to_words(fld_tweak_words(fld_h(ctx))), [0]) <= 
           spark__unsigned__u64__last .
H24:   0 >= modifier_words_index__first .
H25:   0 <= modifier_words_index__last .
H26:   for_all(i_: integer, ((i_ >= modifier_words_index__first) and (
           i_ <= modifier_words_index__last)) -> ((element(
           tweak_to_words(fld_tweak_words(fld_h(ctx))), [i_]) >= 
           spark__unsigned__u64__first) and (element(
           tweak_to_words(fld_tweak_words(fld_h(ctx))), [i_]) <= 
           spark__unsigned__u64__last))) .
H27:   element(tweak_to_words(fld_tweak_words(fld_h(ctx))), [1]) >= 
           spark__unsigned__u64__first .
H28:   element(tweak_to_words(fld_tweak_words(fld_h(ctx))), [1]) <= 
           spark__unsigned__u64__last .
H29:   1 >= modifier_words_index__first .
H30:   1 <= modifier_words_index__last .
        ->
C1:    bit__xor(element(tweak_to_words(fld_tweak_words(fld_h(
           ctx))), [0]), element(tweak_to_words(fld_tweak_words(fld_h(
           ctx))), [1])) >= spark__unsigned__u64__first .
C2:    bit__xor(element(tweak_to_words(fld_tweak_words(fld_h(
           ctx))), [0]), element(tweak_to_words(fld_tweak_words(fld_h(
           ctx))), [1])) <= spark__unsigned__u64__last .
C3:    element(tweak_to_words(fld_tweak_words(fld_h(ctx))), [1]) >= 
           spark__unsigned__u64__first .
C4:    element(tweak_to_words(fld_tweak_words(fld_h(ctx))), [1]) <= 
           spark__unsigned__u64__last .
C5:    element(tweak_to_words(fld_tweak_words(fld_h(ctx))), [0]) >= 
           spark__unsigned__u64__first .
C6:    element(tweak_to_words(fld_tweak_words(fld_h(ctx))), [0]) <= 
           spark__unsigned__u64__last .
 

For path(s) from start to finish:

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


