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

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



SPARK Simplifier Pro Edition


procedure Skein.Skein_512_Process_Block.Initialize_Key_Schedule




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

procedure_initialize_key_schedule_1.
*** true .          /* all conclusions proved */


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

procedure_initialize_key_schedule_2.
*** true .          /* all conclusions proved */


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

procedure_initialize_key_schedule_3.
*** true .          /* all conclusions proved */


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

procedure_initialize_key_schedule_4.
*** true .          /* all conclusions proved */


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

procedure_initialize_key_schedule_5.
*** true .          /* all conclusions proved */


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

procedure_initialize_key_schedule_6.
*** true .          /* all conclusions proved */


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

procedure_initialize_key_schedule_7.
H1:    for_all(j_ : integer, 0 <= j_ and j_ <= loop__1__i -> 0 <= element(ks, [
          j_]) and element(ks, [j_]) <= 18446744073709551615) .
H2:    element(ks, [8]) >= 0 .
H3:    element(ks, [8]) <= 18446744073709551615 .
H4:    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) .
H5:    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) .
H6:    fld_byte_count(fld_h(ctx)) >= 0 .
H7:    fld_byte_count(fld_h(ctx)) <= 2147483647 .
H8:    fld_hash_bit_len(fld_h(ctx)) >= 0 .
H9:    fld_hash_bit_len(fld_h(ctx)) <= 2147483640 .
H10:   fld_field_type(fld_tweak_words(fld_h(ctx))) >= 0 .
H11:   fld_field_type(fld_tweak_words(fld_h(ctx))) <= 63 .
H12:   fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 0 .
H13:   fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 127 .
H14:   fld_reserved(fld_tweak_words(fld_h(ctx))) >= 0 .
H15:   fld_reserved(fld_tweak_words(fld_h(ctx))) <= 65535 .
H16:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 0 .
H17:   fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 4294967295 .
H18:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 0 .
H19:   fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 18446744073709551615 .
H20:   loop__1__i >= 0 .
H21:   element(fld_x(ctx), [loop__1__i + 1]) >= 0 .
H22:   element(fld_x(ctx), [loop__1__i + 1]) <= 18446744073709551615 .
H23:   loop__1__i <= 6 .
H24:   bit__xor(element(ks, [8]), element(fld_x(ctx), [loop__1__i + 1])) >= 0 .
H25:   bit__xor(element(ks, [8]), element(fld_x(ctx), [loop__1__i + 1])) <= 
          18446744073709551615 .
H26:   integer__size >= 0 .
H27:   natural__size >= 0 .
H28:   spark__unsigned__u6__size >= 0 .
H29:   spark__unsigned__u7__size >= 0 .
H30:   spark__unsigned__byte__size >= 0 .
H31:   spark__unsigned__u16__size >= 0 .
H32:   spark__unsigned__u32__size >= 0 .
H33:   spark__unsigned__u64__size >= 0 .
H34:   spark__crypto__i8__size >= 0 .
H35:   spark__crypto__i9__size >= 0 .
H36:   spark__crypto__word_count_t__size >= 0 .
H37:   hash_bit_length__size >= 0 .
H38:   skein_512_state_words_index__size >= 0 .
H39:   skein_512_block_bytes_index__size >= 0 .
H40:   skein_512_context__size >= 0 .
H41:   context_header__size >= 0 .
       ->
C1:    for_all(j_ : integer, 0 <= j_ and j_ <= loop__1__i + 1 -> 0 <= element(
          update(update(ks, [loop__1__i + 1], element(fld_x(ctx), [loop__1__i + 
          1])), [8], bit__xor(element(ks, [8]), element(fld_x(ctx), [loop__1__i 
          + 1]))), [j_]) and element(update(update(ks, [loop__1__i + 1], 
          element(fld_x(ctx), [loop__1__i + 1])), [8], bit__xor(element(ks, [8])
          , element(fld_x(ctx), [loop__1__i + 1]))), [j_]) <= 
          18446744073709551615) .


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

procedure_initialize_key_schedule_8.
*** true .          /* all conclusions proved */


