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

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



SPARK Simplifier Pro Edition


procedure Skein.Skein_512_Update.Copy_Msg_To_B




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

procedure_copy_msg_to_b_1.
*** true .          /* all conclusions proved */


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

procedure_copy_msg_to_b_2.
*** true .          /* all conclusions proved */


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

procedure_copy_msg_to_b_3.
*** true .          /* all conclusions proved */


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

procedure_copy_msg_to_b_4.
*** true .          /* all conclusions proved */


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

procedure_copy_msg_to_b_5.
*** true .          /* all conclusions proved */


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

procedure_copy_msg_to_b_6.
H1:    fld_hash_bit_len(fld_h(ctx)) > 0 .
H2:    fld_hash_bit_len(fld_h(ctx)) = fld_hash_bit_len(fld_h(ctx~)) .
H3:    fld_byte_count(fld_h(ctx)) = fld_byte_count(fld_h(ctx~)) .
H4:    fld_byte_count(fld_h(ctx)) >= 0 .
H5:    fld_byte_count(fld_h(ctx)) <= 64 .
H6:    fld_byte_count(fld_h(ctx)) + num_bytes <= 64 .
H7:    final_src <= msg__index__subtype__1__last .
H8:    msg_offset >= 0 .
H9:    msg_offset <= 2147483647 .
H10:   num_bytes >= 0 .
H11:   for_all(i___2 : integer, 0 <= i___2 and i___2 <= 63 -> 0 <= element(
          fld_b(ctx), [i___2]) and element(fld_b(ctx), [i___2]) <= 255) .
H12:   for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= element(fld_x(
          ctx), [i___1]) and element(fld_x(ctx), [i___1]) <= 
          18446744073709551615) .
H13:   fld_hash_bit_len(fld_h(ctx)) <= 2147483640 .
H14:   fld_field_type(fld_tweak_words(fld_h(ctx))) >= 0 .
H15:   fld_field_type(fld_tweak_words(fld_h(ctx))) <= 63 .
H16:   fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 0 .
H17:   fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 127 .
H18:   fld_reserved(fld_tweak_words(fld_h(ctx))) >= 0 .
H19:   fld_reserved(fld_tweak_words(fld_h(ctx))) <= 65535 .
H20:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 0 .
H21:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 4294967295 .
H22:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 0 .
H23:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 18446744073709551615 .
H24:   for_all(i___1 : integer, msg__index__subtype__1__first <= i___1 and 
          i___1 <= msg__index__subtype__1__last -> 0 <= element(msg, [i___1]) 
          and element(msg, [i___1]) <= 255) .
H25:   fld_hash_bit_len(fld_h(ctx~)) > 0 .
H26:   msg__index__subtype__1__first = 0 .
H27:   msg_offset >= msg__index__subtype__1__first .
H28:   msg_offset <= msg__index__subtype__1__last .
H29:   msg_offset + (num_bytes - 1) <= msg__index__subtype__1__last .
H30:   fld_byte_count(fld_h(ctx~)) + (num_bytes - 1) <= 63 .
H31:   src >= 0 .
H32:   dst >= 0 .
H33:   final_dst >= 0 .
H34:   final_dst <= 63 .
H35:   final_src <= 2147483647 .
H36:   dst <= 62 .
H37:   src <= 2147483646 .
H38:   dst < final_dst .
H39:   src < final_src .
H40:   integer__size >= 0 .
H41:   natural__size >= 0 .
H42:   spark__unsigned__u6__size >= 0 .
H43:   spark__unsigned__u7__size >= 0 .
H44:   spark__unsigned__byte__size >= 0 .
H45:   spark__unsigned__u16__size >= 0 .
H46:   spark__unsigned__u32__size >= 0 .
H47:   spark__unsigned__u64__size >= 0 .
H48:   spark__crypto__word_count_t__size >= 0 .
H49:   hash_bit_length__size >= 0 .
H50:   skein_512_state_words_index__size >= 0 .
H51:   skein_512_block_bytes_count__size >= 0 .
H52:   skein_512_block_bytes_index__size >= 0 .
H53:   skein_512_context__size >= 0 .
H54:   msg__index__subtype__1__first <= msg__index__subtype__1__last .
H55:   context_header__size >= 0 .
H56:   msg__index__subtype__1__first >= 0 .
H57:   msg__index__subtype__1__last >= 0 .
H58:   msg__index__subtype__1__last <= 2147483647 .
H59:   msg__index__subtype__1__first <= 2147483647 .
       ->
C1:    element(msg, [src + 1]) >= 0 .
C2:    element(msg, [src + 1]) <= 255 .


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

procedure_copy_msg_to_b_7.
*** true .          /* all conclusions proved */


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

procedure_copy_msg_to_b_8.
*** true .          /* all conclusions proved */


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

procedure_copy_msg_to_b_9.
*** true .          /* all conclusions proved */


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

procedure_copy_msg_to_b_10.
*** true .          /* all conclusions proved */


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

procedure_copy_msg_to_b_11.
*** true .          /* all conclusions proved */


For path(s) from start to finish:

procedure_copy_msg_to_b_12.
*** true .          /* all conclusions proved */


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

procedure_copy_msg_to_b_13.
*** true .          /* all conclusions proved */


