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

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



SPARK Simplifier Pro Edition


procedure Skein.Skein_512_Process_Block.Initialize_Key_Schedule






@@@@@@@@@@  VC: procedure_initialize_key_schedule_1.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 
          spark__unsigned__byte__first <= element(fld_b(ctx), [i___2]) and 
          element(fld_b(ctx), [i___2]) <= spark__unsigned__byte__last)
%%%  Simplified H3 on reading formula in, to give:
     %%%  H3:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 
          spark__unsigned__u64__first <= element(fld_x(ctx), [i___1]) and 
          element(fld_x(ctx), [i___1]) <= spark__unsigned__u64__last)
-S-  Applied substitution rule initialize_k_rules(1).
     This was achieved by replacing all occurrences of skein_ks_parity by:
          2004413935125273122.
<S>  New C1:  2004413935125273122 >= spark__unsigned__u64__first
<S>  New C2:  2004413935125273122 <= spark__unsigned__u64__last
-S-  Applied substitution rule initialize_k_rules(72).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H3:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 0 <= element(
          fld_x(ctx), [i___1]) and element(fld_x(ctx), [i___1]) <= 
          spark__unsigned__u64__last)
<S>  New H19:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New C1:  true
-S-  Applied substitution rule initialize_k_rules(73).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H20:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
          18446744073709551615
<S>  New H3:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 0 <= element(
          fld_x(ctx), [i___1]) and element(fld_x(ctx), [i___1]) <= 
          18446744073709551615)
<S>  New C2:  true
-S-  Applied substitution rule initialize_k_rules(2).
     This was achieved by replacing all occurrences of wcnt by:
          8.
<S>  New C3:  8 >= spark__crypto__i9__first
<S>  New C4:  8 <= spark__crypto__i9__last
-S-  Applied substitution rule initialize_k_rules(83).
     This was achieved by replacing all occurrences of spark__crypto__i9__first 
          by:
          0.
<S>  New C3:  true
-S-  Applied substitution rule initialize_k_rules(84).
     This was achieved by replacing all occurrences of spark__crypto__i9__last 
          by:
          8.
<S>  New C4:  true
***  Proved C1:  true
***  Proved C2:  true
***  Proved C3:  true
***  Proved C4:  true
***  PROVED VC.


@@@@@@@@@@  VC: procedure_initialize_key_schedule_2.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 
          spark__unsigned__byte__first <= element(fld_b(ctx), [i___2]) and 
          element(fld_b(ctx), [i___2]) <= spark__unsigned__byte__last)
%%%  Simplified H3 on reading formula in, to give:
     %%%  H3:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 
          spark__unsigned__u64__first <= element(fld_x(ctx), [i___1]) and 
          element(fld_x(ctx), [i___1]) <= spark__unsigned__u64__last)
-S-  Applied substitution rule initialize_k_rules(72).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H3:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 0 <= element(
          fld_x(ctx), [i___1]) and element(fld_x(ctx), [i___1]) <= 
          spark__unsigned__u64__last)
<S>  New H19:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New H21:  skein_ks_parity >= 0
<S>  New C1:  element(fld_x(ctx), [spark__crypto__i8__first]) >= 0
-S-  Applied substitution rule initialize_k_rules(73).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H20:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
          18446744073709551615
<S>  New H22:  skein_ks_parity <= 18446744073709551615
<S>  New H3:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 0 <= element(
          fld_x(ctx), [i___1]) and element(fld_x(ctx), [i___1]) <= 
          18446744073709551615)
<S>  New C2:  element(fld_x(ctx), [spark__crypto__i8__first]) <= 
          18446744073709551615
-S-  Applied substitution rule initialize_k_rules(78).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New C3:  0 >= skein_512_state_words_index__first
<S>  New C4:  0 <= skein_512_state_words_index__last
<S>  New C5:  0 >= spark__crypto__i9__first
<S>  New C6:  0 <= spark__crypto__i9__last
<S>  New C1:  element(fld_x(ctx), [0]) >= 0
<S>  New C2:  element(fld_x(ctx), [0]) <= 18446744073709551615
-S-  Applied substitution rule initialize_k_rules(98).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__first by:
          0.
<S>  New H3:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          skein_512_state_words_index__last -> 0 <= element(fld_x(ctx), [i___1])
           and element(fld_x(ctx), [i___1]) <= 18446744073709551615)
<S>  New C3:  true
-S-  Applied substitution rule initialize_k_rules(99).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__last by:
          7.
<S>  New H3:  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)
<S>  New C4:  true
-S-  Applied substitution rule initialize_k_rules(83).
     This was achieved by replacing all occurrences of spark__crypto__i9__first 
          by:
          0.
<S>  New H23:  wcnt >= 0
<S>  New C5:  true
-S-  Applied substitution rule initialize_k_rules(84).
     This was achieved by replacing all occurrences of spark__crypto__i9__last 
          by:
          8.
<S>  New H24:  wcnt <= 8
<S>  New C6:  true
***  Proved C1:  element(fld_x(ctx), [0]) >= 0
     using hypothesis H3.
***  Proved C2:  element(fld_x(ctx), [0]) <= 18446744073709551615
     using hypothesis H3.
***  Proved C3:  true
***  Proved C4:  true
***  Proved C5:  true
***  Proved C6:  true
***  PROVED VC.


@@@@@@@@@@  VC: procedure_initialize_key_schedule_3.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(j_ : integer, spark__crypto__i8__first <= j_ and j_ <= 
          loop__1__i -> spark__unsigned__u64__first <= element(ks, [j_]) and 
          element(ks, [j_]) <= spark__unsigned__u64__last)
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 
          spark__unsigned__byte__first <= element(fld_b(ctx), [i___2]) and 
          element(fld_b(ctx), [i___2]) <= spark__unsigned__byte__last)
%%%  Simplified H5 on reading formula in, to give:
     %%%  H5:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 
          spark__unsigned__u64__first <= element(fld_x(ctx), [i___1]) and 
          element(fld_x(ctx), [i___1]) <= spark__unsigned__u64__last)
---  Hypothesis H25 has been replaced by "true".  (It is already present, as 
          H23).
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H24).
-S-  Applied substitution rule initialize_k_rules(72).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H1:  for_all(j_ : integer, spark__crypto__i8__first <= j_ and j_ <= 
          loop__1__i -> 0 <= element(ks, [j_]) and element(ks, [j_]) <= 
          spark__unsigned__u64__last)
<S>  New H2:  element(ks, [wcnt]) >= 0
<S>  New H5:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 0 <= element(
          fld_x(ctx), [i___1]) and element(fld_x(ctx), [i___1]) <= 
          spark__unsigned__u64__last)
<S>  New H21:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New C1:  element(fld_x(ctx), [loop__1__i + 1]) >= 0
-S-  Applied substitution rule initialize_k_rules(73).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H3:  element(ks, [wcnt]) <= 18446744073709551615
<S>  New H22:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
          18446744073709551615
<S>  New H1:  for_all(j_ : integer, spark__crypto__i8__first <= j_ and j_ <= 
          loop__1__i -> 0 <= element(ks, [j_]) and element(ks, [j_]) <= 
          18446744073709551615)
<S>  New H5:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 0 <= element(
          fld_x(ctx), [i___1]) and element(fld_x(ctx), [i___1]) <= 
          18446744073709551615)
<S>  New C2:  element(fld_x(ctx), [loop__1__i + 1]) <= 18446744073709551615
-S-  Applied substitution rule initialize_k_rules(98).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__first by:
          0.
<S>  New H5:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          skein_512_state_words_index__last -> 0 <= element(fld_x(ctx), [i___1])
           and element(fld_x(ctx), [i___1]) <= 18446744073709551615)
<S>  New C3:  loop__1__i >= - 1
-S-  Applied substitution rule initialize_k_rules(99).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__last by:
          7.
<S>  New 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)
<S>  New C4:  loop__1__i <= 6
-S-  Applied substitution rule initialize_k_rules(83).
     This was achieved by replacing all occurrences of spark__crypto__i9__first 
          by:
          0.
<S>  New C5:  loop__1__i >= - 1
-S-  Applied substitution rule initialize_k_rules(84).
     This was achieved by replacing all occurrences of spark__crypto__i9__last 
          by:
          8.
<S>  New C6:  loop__1__i <= 7
>>>  Restructured hypothesis H27 into:
     >>>  H27:  loop__1__i <> spark__crypto__i8__last
-S-  Applied substitution rule initialize_k_rules(2).
     This was achieved by replacing all occurrences of wcnt by:
          8.
<S>  New H2:  element(ks, [8]) >= 0
<S>  New H3:  element(ks, [8]) <= 18446744073709551615
-S-  Applied substitution rule initialize_k_rules(9).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H6:  fld_byte_count(fld_h(ctx)) >= 0
-S-  Applied substitution rule initialize_k_rules(10).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H7:  fld_byte_count(fld_h(ctx)) <= 2147483647
-S-  Applied substitution rule initialize_k_rules(42).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__first by:
          0.
<S>  New H12:  fld_field_type(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(43).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__last by:
          63.
<S>  New H13:  fld_field_type(fld_tweak_words(fld_h(ctx))) <= 63
-S-  Applied substitution rule initialize_k_rules(48).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__first by:
          0.
<S>  New H15:  fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(49).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__last by:
          127.
<S>  New H16:  fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 127
-S-  Applied substitution rule initialize_k_rules(54).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__first by:
          0.
<S>  New H4:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 0 <= element(
          fld_b(ctx), [i___2]) and element(fld_b(ctx), [i___2]) <= 
          spark__unsigned__byte__last)
-S-  Applied substitution rule initialize_k_rules(55).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__last by:
          255.
<S>  New H4:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 0 <= element(
          fld_b(ctx), [i___2]) and element(fld_b(ctx), [i___2]) <= 255)
-S-  Applied substitution rule initialize_k_rules(60).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__first by:
          0.
<S>  New H17:  fld_reserved(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(61).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__last by:
          65535.
<S>  New H18:  fld_reserved(fld_tweak_words(fld_h(ctx))) <= 65535
-S-  Applied substitution rule initialize_k_rules(66).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__first by:
          0.
<S>  New H19:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(67).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__last by:
          4294967295.
<S>  New H20:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 4294967295
-S-  Applied substitution rule initialize_k_rules(78).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H1:  for_all(j_ : integer, 0 <= j_ and j_ <= loop__1__i -> 0 <= 
          element(ks, [j_]) and element(ks, [j_]) <= 18446744073709551615)
<S>  New H23:  loop__1__i >= 0
-S-  Applied substitution rule initialize_k_rules(79).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H24:  loop__1__i <= 7
<S>  New H27:  loop__1__i <> 7
-S-  Applied substitution rule initialize_k_rules(93).
     This was achieved by replacing all occurrences of hash_bit_length__first 
          by:
          0.
<S>  New H8:  fld_hash_bit_len(fld_h(ctx)) >= 0
-S-  Applied substitution rule initialize_k_rules(94).
     This was achieved by replacing all occurrences of hash_bit_length__last by:
          2147483640.
<S>  New H9:  fld_hash_bit_len(fld_h(ctx)) <= 2147483640
-S-  Applied substitution rule initialize_k_rules(103).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__first by:
          0.
<S>  New H4:  for_all(i___2 : integer, 0 <= i___2 and i___2 <= 
          skein_512_block_bytes_index__last -> 0 <= element(fld_b(ctx), [i___2])
           and element(fld_b(ctx), [i___2]) <= 255)
-S-  Applied substitution rule initialize_k_rules(104).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__last by:
          63.
<S>  New 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)
%%%  Hypotheses H24 & H27 together imply that
          loop__1__i < 7.
     H24 & H27 have therefore been deleted and a new H28 added to this effect.
***  Proved C1:  element(fld_x(ctx), [loop__1__i + 1]) >= 0
     using hypotheses H5, H23 & H28.
***  Proved C2:  element(fld_x(ctx), [loop__1__i + 1]) <= 18446744073709551615
     using hypotheses H5, H23 & H28.
***  Proved C3:  loop__1__i >= - 1
     using hypothesis H23.
***  Proved C4:  loop__1__i <= 6
     using hypothesis H28.
***  Proved C5:  loop__1__i >= - 1
     using hypothesis H23.
***  Proved C6:  loop__1__i <= 7
     using hypothesis H28.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_initialize_key_schedule_4.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 
          spark__unsigned__byte__first <= element(fld_b(ctx), [i___2]) and 
          element(fld_b(ctx), [i___2]) <= spark__unsigned__byte__last)
%%%  Simplified H3 on reading formula in, to give:
     %%%  H3:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 
          spark__unsigned__u64__first <= element(fld_x(ctx), [i___1]) and 
          element(fld_x(ctx), [i___1]) <= spark__unsigned__u64__last)
***  Proved C3:  spark__crypto__i8__first >= skein_512_state_words_index__first
     using hypothesis H27.
***  Proved C4:  spark__crypto__i8__first <= skein_512_state_words_index__last
     using hypothesis H28.
***  Proved C5:  wcnt >= spark__crypto__i9__first
     using hypothesis H23.
***  Proved C6:  wcnt <= spark__crypto__i9__last
     using hypothesis H24.
***  Proved C7:  wcnt >= spark__crypto__i9__first
     using hypothesis H23.
***  Proved C8:  wcnt <= spark__crypto__i9__last
     using hypothesis H24.
-S-  Applied substitution rule initialize_k_rules(72).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H3:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 0 <= element(
          fld_x(ctx), [i___1]) and element(fld_x(ctx), [i___1]) <= 
          spark__unsigned__u64__last)
<S>  New H19:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New H21:  skein_ks_parity >= 0
<S>  New H25:  element(fld_x(ctx), [spark__crypto__i8__first]) >= 0
<S>  New C1:  bit__xor(element(update(update(ks, [wcnt], skein_ks_parity), [
          spark__crypto__i8__first], element(fld_x(ctx), [
          spark__crypto__i8__first])), [wcnt]), element(fld_x(ctx), [
          spark__crypto__i8__first])) >= 0
-S-  Applied substitution rule initialize_k_rules(73).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H20:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
          18446744073709551615
<S>  New H22:  skein_ks_parity <= 18446744073709551615
<S>  New H26:  element(fld_x(ctx), [spark__crypto__i8__first]) <= 
          18446744073709551615
<S>  New H3:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 0 <= element(
          fld_x(ctx), [i___1]) and element(fld_x(ctx), [i___1]) <= 
          18446744073709551615)
<S>  New C2:  bit__xor(element(update(update(ks, [wcnt], skein_ks_parity), [
          spark__crypto__i8__first], element(fld_x(ctx), [
          spark__crypto__i8__first])), [wcnt]), element(fld_x(ctx), [
          spark__crypto__i8__first])) <= 18446744073709551615
-S-  Applied substitution rule initialize_k_rules(1).
     This was achieved by replacing all occurrences of skein_ks_parity by:
          2004413935125273122.
<S>  New H21:  true
<S>  New H22:  true
<S>  New C1:  bit__xor(element(update(update(ks, [wcnt], 2004413935125273122), [
          spark__crypto__i8__first], element(fld_x(ctx), [
          spark__crypto__i8__first])), [wcnt]), element(fld_x(ctx), [
          spark__crypto__i8__first])) >= 0
<S>  New C2:  bit__xor(element(update(update(ks, [wcnt], 2004413935125273122), [
          spark__crypto__i8__first], element(fld_x(ctx), [
          spark__crypto__i8__first])), [wcnt]), element(fld_x(ctx), [
          spark__crypto__i8__first])) <= 18446744073709551615
-S-  Applied substitution rule initialize_k_rules(2).
     This was achieved by replacing all occurrences of wcnt by:
          8.
<S>  New H23:  8 >= spark__crypto__i9__first
<S>  New H24:  8 <= spark__crypto__i9__last
<S>  New C1:  bit__xor(element(update(update(ks, [8], 2004413935125273122), [
          spark__crypto__i8__first], element(fld_x(ctx), [
          spark__crypto__i8__first])), [8]), element(fld_x(ctx), [
          spark__crypto__i8__first])) >= 0
<S>  New C2:  bit__xor(element(update(update(ks, [8], 2004413935125273122), [
          spark__crypto__i8__first], element(fld_x(ctx), [
          spark__crypto__i8__first])), [8]), element(fld_x(ctx), [
          spark__crypto__i8__first])) <= 18446744073709551615
-S-  Applied substitution rule initialize_k_rules(9).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H4:  fld_byte_count(fld_h(ctx)) >= 0
-S-  Applied substitution rule initialize_k_rules(10).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H5:  fld_byte_count(fld_h(ctx)) <= 2147483647
-S-  Applied substitution rule initialize_k_rules(42).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__first by:
          0.
<S>  New H10:  fld_field_type(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(43).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__last by:
          63.
<S>  New H11:  fld_field_type(fld_tweak_words(fld_h(ctx))) <= 63
-S-  Applied substitution rule initialize_k_rules(48).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__first by:
          0.
<S>  New H13:  fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(49).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__last by:
          127.
<S>  New H14:  fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 127
-S-  Applied substitution rule initialize_k_rules(54).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__first by:
          0.
<S>  New H2:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 0 <= element(
          fld_b(ctx), [i___2]) and element(fld_b(ctx), [i___2]) <= 
          spark__unsigned__byte__last)
-S-  Applied substitution rule initialize_k_rules(55).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__last by:
          255.
<S>  New H2:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 0 <= element(
          fld_b(ctx), [i___2]) and element(fld_b(ctx), [i___2]) <= 255)
-S-  Applied substitution rule initialize_k_rules(60).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__first by:
          0.
<S>  New H15:  fld_reserved(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(61).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__last by:
          65535.
<S>  New H16:  fld_reserved(fld_tweak_words(fld_h(ctx))) <= 65535
-S-  Applied substitution rule initialize_k_rules(66).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__first by:
          0.
<S>  New H17:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(67).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__last by:
          4294967295.
<S>  New H18:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 4294967295
-S-  Applied substitution rule initialize_k_rules(78).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H25:  element(fld_x(ctx), [0]) >= 0
<S>  New H26:  element(fld_x(ctx), [0]) <= 18446744073709551615
<S>  New H27:  0 >= skein_512_state_words_index__first
<S>  New H28:  0 <= skein_512_state_words_index__last
<S>  New H29:  0 >= spark__crypto__i9__first
<S>  New H30:  0 <= spark__crypto__i9__last
<S>  New C1:  bit__xor(2004413935125273122, element(fld_x(ctx), [0])) >= 0
<S>  New C2:  bit__xor(2004413935125273122, element(fld_x(ctx), [0])) <= 
          18446744073709551615
-S-  Applied substitution rule initialize_k_rules(83).
     This was achieved by replacing all occurrences of spark__crypto__i9__first 
          by:
          0.
<S>  New H23:  true
<S>  New H29:  true
-S-  Applied substitution rule initialize_k_rules(84).
     This was achieved by replacing all occurrences of spark__crypto__i9__last 
          by:
          8.
<S>  New H24:  true
<S>  New H30:  true
-S-  Applied substitution rule initialize_k_rules(93).
     This was achieved by replacing all occurrences of hash_bit_length__first 
          by:
          0.
<S>  New H6:  fld_hash_bit_len(fld_h(ctx)) >= 0
-S-  Applied substitution rule initialize_k_rules(94).
     This was achieved by replacing all occurrences of hash_bit_length__last by:
          2147483640.
<S>  New H7:  fld_hash_bit_len(fld_h(ctx)) <= 2147483640
-S-  Applied substitution rule initialize_k_rules(98).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__first by:
          0.
<S>  New H3:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          skein_512_state_words_index__last -> 0 <= element(fld_x(ctx), [i___1])
           and element(fld_x(ctx), [i___1]) <= 18446744073709551615)
<S>  New H27:  true
-S-  Applied substitution rule initialize_k_rules(99).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__last by:
          7.
<S>  New H28:  true
<S>  New H3:  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)
-S-  Applied substitution rule initialize_k_rules(103).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__first by:
          0.
<S>  New H2:  for_all(i___2 : integer, 0 <= i___2 and i___2 <= 
          skein_512_block_bytes_index__last -> 0 <= element(fld_b(ctx), [i___2])
           and element(fld_b(ctx), [i___2]) <= 255)
-S-  Applied substitution rule initialize_k_rules(104).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__last by:
          63.
<S>  New H2:  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)
***  Proved C1:  bit__xor(2004413935125273122, element(fld_x(ctx), [0])) >= 0
     using hypothesis H25.
***  Proved C2:  bit__xor(2004413935125273122, element(fld_x(ctx), [0])) <= 
          18446744073709551615
     using hypotheses H25 & H26.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_initialize_key_schedule_5.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(j_ : integer, spark__crypto__i8__first <= j_ and j_ <= 
          loop__1__i -> spark__unsigned__u64__first <= element(ks, [j_]) and 
          element(ks, [j_]) <= spark__unsigned__u64__last)
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 
          spark__unsigned__byte__first <= element(fld_b(ctx), [i___2]) and 
          element(fld_b(ctx), [i___2]) <= spark__unsigned__byte__last)
%%%  Simplified H5 on reading formula in, to give:
     %%%  H5:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 
          spark__unsigned__u64__first <= element(fld_x(ctx), [i___1]) and 
          element(fld_x(ctx), [i___1]) <= spark__unsigned__u64__last)
---  Hypothesis H25 has been replaced by "true".  (It is already present, as 
          H23).
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H24).
***  Proved C3:  loop__1__i + 1 >= skein_512_state_words_index__first
     using hypothesis H30.
***  Proved C4:  loop__1__i + 1 <= skein_512_state_words_index__last
     using hypothesis H31.
-S-  Applied substitution rule initialize_k_rules(72).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H1:  for_all(j_ : integer, spark__crypto__i8__first <= j_ and j_ <= 
          loop__1__i -> 0 <= element(ks, [j_]) and element(ks, [j_]) <= 
          spark__unsigned__u64__last)
<S>  New H2:  element(ks, [wcnt]) >= 0
<S>  New H5:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 0 <= element(
          fld_x(ctx), [i___1]) and element(fld_x(ctx), [i___1]) <= 
          spark__unsigned__u64__last)
<S>  New H21:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New H28:  element(fld_x(ctx), [loop__1__i + 1]) >= 0
<S>  New C1:  bit__xor(element(update(ks, [loop__1__i + 1], element(fld_x(ctx), 
          [loop__1__i + 1])), [wcnt]), element(fld_x(ctx), [loop__1__i + 1])) 
          >= 0
-S-  Applied substitution rule initialize_k_rules(73).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H3:  element(ks, [wcnt]) <= 18446744073709551615
<S>  New H22:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
          18446744073709551615
<S>  New H29:  element(fld_x(ctx), [loop__1__i + 1]) <= 18446744073709551615
<S>  New H1:  for_all(j_ : integer, spark__crypto__i8__first <= j_ and j_ <= 
          loop__1__i -> 0 <= element(ks, [j_]) and element(ks, [j_]) <= 
          18446744073709551615)
<S>  New H5:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 0 <= element(
          fld_x(ctx), [i___1]) and element(fld_x(ctx), [i___1]) <= 
          18446744073709551615)
<S>  New C2:  bit__xor(element(update(ks, [loop__1__i + 1], element(fld_x(ctx), 
          [loop__1__i + 1])), [wcnt]), element(fld_x(ctx), [loop__1__i + 1])) 
          <= 18446744073709551615
-S-  Applied substitution rule initialize_k_rules(2).
     This was achieved by replacing all occurrences of wcnt by:
          8.
<S>  New H2:  element(ks, [8]) >= 0
<S>  New H3:  element(ks, [8]) <= 18446744073709551615
<S>  New C5:  8 >= spark__crypto__i9__first
<S>  New C6:  8 <= spark__crypto__i9__last
<S>  New C7:  8 >= spark__crypto__i9__first
<S>  New C8:  8 <= spark__crypto__i9__last
<S>  New C1:  bit__xor(element(update(ks, [loop__1__i + 1], element(fld_x(ctx), 
          [loop__1__i + 1])), [8]), element(fld_x(ctx), [loop__1__i + 1])) >= 0
<S>  New C2:  bit__xor(element(update(ks, [loop__1__i + 1], element(fld_x(ctx), 
          [loop__1__i + 1])), [8]), element(fld_x(ctx), [loop__1__i + 1])) <= 
          18446744073709551615
-S-  Applied substitution rule initialize_k_rules(83).
     This was achieved by replacing all occurrences of spark__crypto__i9__first 
          by:
          0.
<S>  New H32:  loop__1__i >= - 1
<S>  New C5:  true
<S>  New C7:  true
-S-  Applied substitution rule initialize_k_rules(84).
     This was achieved by replacing all occurrences of spark__crypto__i9__last 
          by:
          8.
<S>  New H33:  loop__1__i <= 7
<S>  New C6:  true
<S>  New C8:  true
***  Proved C5:  true
***  Proved C7:  true
***  Proved C6:  true
***  Proved C8:  true
>>>  Restructured hypothesis H27 into:
     >>>  H27:  loop__1__i <> spark__crypto__i8__last
-S-  Applied substitution rule initialize_k_rules(9).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H6:  fld_byte_count(fld_h(ctx)) >= 0
-S-  Applied substitution rule initialize_k_rules(10).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H7:  fld_byte_count(fld_h(ctx)) <= 2147483647
-S-  Applied substitution rule initialize_k_rules(42).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__first by:
          0.
<S>  New H12:  fld_field_type(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(43).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__last by:
          63.
<S>  New H13:  fld_field_type(fld_tweak_words(fld_h(ctx))) <= 63
-S-  Applied substitution rule initialize_k_rules(48).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__first by:
          0.
<S>  New H15:  fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(49).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__last by:
          127.
<S>  New H16:  fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 127
-S-  Applied substitution rule initialize_k_rules(54).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__first by:
          0.
<S>  New H4:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 0 <= element(
          fld_b(ctx), [i___2]) and element(fld_b(ctx), [i___2]) <= 
          spark__unsigned__byte__last)
-S-  Applied substitution rule initialize_k_rules(55).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__last by:
          255.
<S>  New H4:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 0 <= element(
          fld_b(ctx), [i___2]) and element(fld_b(ctx), [i___2]) <= 255)
-S-  Applied substitution rule initialize_k_rules(60).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__first by:
          0.
<S>  New H17:  fld_reserved(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(61).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__last by:
          65535.
<S>  New H18:  fld_reserved(fld_tweak_words(fld_h(ctx))) <= 65535
-S-  Applied substitution rule initialize_k_rules(66).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__first by:
          0.
<S>  New H19:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(67).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__last by:
          4294967295.
<S>  New H20:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 4294967295
-S-  Applied substitution rule initialize_k_rules(78).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H1:  for_all(j_ : integer, 0 <= j_ and j_ <= loop__1__i -> 0 <= 
          element(ks, [j_]) and element(ks, [j_]) <= 18446744073709551615)
<S>  New H23:  loop__1__i >= 0
-S-  Applied substitution rule initialize_k_rules(79).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H24:  loop__1__i <= 7
<S>  New H27:  loop__1__i <> 7
-S-  Applied substitution rule initialize_k_rules(93).
     This was achieved by replacing all occurrences of hash_bit_length__first 
          by:
          0.
<S>  New H8:  fld_hash_bit_len(fld_h(ctx)) >= 0
-S-  Applied substitution rule initialize_k_rules(94).
     This was achieved by replacing all occurrences of hash_bit_length__last by:
          2147483640.
<S>  New H9:  fld_hash_bit_len(fld_h(ctx)) <= 2147483640
-S-  Applied substitution rule initialize_k_rules(98).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__first by:
          0.
<S>  New H5:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          skein_512_state_words_index__last -> 0 <= element(fld_x(ctx), [i___1])
           and element(fld_x(ctx), [i___1]) <= 18446744073709551615)
<S>  New H30:  loop__1__i >= - 1
-S-  Applied substitution rule initialize_k_rules(99).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__last by:
          7.
<S>  New H31:  loop__1__i <= 6
<S>  New 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)
-S-  Applied substitution rule initialize_k_rules(103).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__first by:
          0.
<S>  New H4:  for_all(i___2 : integer, 0 <= i___2 and i___2 <= 
          skein_512_block_bytes_index__last -> 0 <= element(fld_b(ctx), [i___2])
           and element(fld_b(ctx), [i___2]) <= 255)
-S-  Applied substitution rule initialize_k_rules(104).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__last by:
          63.
<S>  New 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)
%%%  Hypotheses H33 & H27 together imply that
          loop__1__i < 7.
     H33 & H27 have therefore been deleted and a new H34 added to this effect.
%%%  Simplified C1 further, to give:
     %%%  C1:  bit__xor(element(ks, [8]), element(fld_x(ctx), [loop__1__i + 1]))
           >= 0
%%%  Simplified C2 further, to give:
     %%%  C2:  bit__xor(element(ks, [8]), element(fld_x(ctx), [loop__1__i + 1]))
           <= 18446744073709551615
***  Proved C1:  bit__xor(element(ks, [8]), element(fld_x(ctx), [loop__1__i + 1]
          )) >= 0
     using hypotheses H2 & H28.
***  Proved C2:  bit__xor(element(ks, [8]), element(fld_x(ctx), [loop__1__i + 1]
          )) <= 18446744073709551615
     using hypotheses H2, H3, H28 & H29.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_initialize_key_schedule_6.  @@@@@@@@@@
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 
          spark__unsigned__byte__first <= element(fld_b(ctx), [i___2]) and 
          element(fld_b(ctx), [i___2]) <= spark__unsigned__byte__last)
%%%  Simplified H3 on reading formula in, to give:
     %%%  H3:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 
          spark__unsigned__u64__first <= element(fld_x(ctx), [i___1]) and 
          element(fld_x(ctx), [i___1]) <= spark__unsigned__u64__last)
---  Hypothesis H33 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H34 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H35 has been replaced by "true".  (It is already present, as 
          H23).
---  Hypothesis H36 has been replaced by "true".  (It is already present, as 
          H24).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H23).
---  Hypothesis H38 has been replaced by "true".  (It is already present, as 
          H24).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  for_all(j_ : integer, spark__crypto__i8__first <= j_ and j_ <= 
          spark__crypto__i8__first -> spark__unsigned__u64__first <= element(
          update(update(update(ks, [wcnt], skein_ks_parity), [
          spark__crypto__i8__first], element(fld_x(ctx), [
          spark__crypto__i8__first])), [wcnt], bit__xor(element(update(update(
          ks, [wcnt], skein_ks_parity), [spark__crypto__i8__first], element(
          fld_x(ctx), [spark__crypto__i8__first])), [wcnt]), element(fld_x(ctx)
          , [spark__crypto__i8__first]))), [j_]) and element(update(update(
          update(ks, [wcnt], skein_ks_parity), [spark__crypto__i8__first], 
          element(fld_x(ctx), [spark__crypto__i8__first])), [wcnt], bit__xor(
          element(update(update(ks, [wcnt], skein_ks_parity), [
          spark__crypto__i8__first], element(fld_x(ctx), [
          spark__crypto__i8__first])), [wcnt]), element(fld_x(ctx), [
          spark__crypto__i8__first]))), [j_]) <= spark__unsigned__u64__last)
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  bit__xor(element(update(update(ks, [wcnt], skein_ks_parity), [
          spark__crypto__i8__first], element(fld_x(ctx), [
          spark__crypto__i8__first])), [wcnt]), element(fld_x(ctx), [
          spark__crypto__i8__first])) >= spark__unsigned__u64__first
%%%  Simplified C3 on reading formula in, to give:
     %%%  C3:  bit__xor(element(update(update(ks, [wcnt], skein_ks_parity), [
          spark__crypto__i8__first], element(fld_x(ctx), [
          spark__crypto__i8__first])), [wcnt]), element(fld_x(ctx), [
          spark__crypto__i8__first])) <= spark__unsigned__u64__last
%%%  Simplified C4 on reading formula in, to give:
     %%%  C4:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 
          spark__unsigned__byte__first <= element(fld_b(ctx), [i___2]) and 
          element(fld_b(ctx), [i___2]) <= spark__unsigned__byte__last)
%%%  Simplified C5 on reading formula in, to give:
     %%%  C5:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 
          spark__unsigned__u64__first <= element(fld_x(ctx), [i___1]) and 
          element(fld_x(ctx), [i___1]) <= spark__unsigned__u64__last)
%%%  Simplified C23 on reading formula in, to give:
     %%%  C23:  true
%%%  Simplified C25 on reading formula in, to give:
     %%%  C25:  true
***  Proved C2:  bit__xor(element(update(update(ks, [wcnt], skein_ks_parity), [
          spark__crypto__i8__first], element(fld_x(ctx), [
          spark__crypto__i8__first])), [wcnt]), element(fld_x(ctx), [
          spark__crypto__i8__first])) >= spark__unsigned__u64__first
     using hypothesis H31.
***  Proved C3:  bit__xor(element(update(update(ks, [wcnt], skein_ks_parity), [
          spark__crypto__i8__first], element(fld_x(ctx), [
          spark__crypto__i8__first])), [wcnt]), element(fld_x(ctx), [
          spark__crypto__i8__first])) <= spark__unsigned__u64__last
     using hypothesis H32.
***  Proved C4:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 
          spark__unsigned__byte__first <= element(fld_b(ctx), [i___2]) and 
          element(fld_b(ctx), [i___2]) <= spark__unsigned__byte__last)
     using hypothesis H2.
***  Proved C5:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 
          spark__unsigned__u64__first <= element(fld_x(ctx), [i___1]) and 
          element(fld_x(ctx), [i___1]) <= spark__unsigned__u64__last)
     using hypothesis H3.
***  Proved C6:  fld_byte_count(fld_h(ctx)) >= natural__first
     using hypothesis H4.
***  Proved C7:  fld_byte_count(fld_h(ctx)) <= natural__last
     using hypothesis H5.
***  Proved C8:  fld_hash_bit_len(fld_h(ctx)) >= hash_bit_length__first
     using hypothesis H6.
***  Proved C9:  fld_hash_bit_len(fld_h(ctx)) <= hash_bit_length__last
     using hypothesis H7.
***  Proved C10:  true
***  Proved C11:  true
***  Proved C12:  fld_field_type(fld_tweak_words(fld_h(ctx))) >= 
          spark__unsigned__u6__first
     using hypothesis H10.
***  Proved C13:  fld_field_type(fld_tweak_words(fld_h(ctx))) <= 
          spark__unsigned__u6__last
     using hypothesis H11.
***  Proved C14:  true
***  Proved C15:  fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 
          spark__unsigned__u7__first
     using hypothesis H13.
***  Proved C16:  fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 
          spark__unsigned__u7__last
     using hypothesis H14.
***  Proved C17:  fld_reserved(fld_tweak_words(fld_h(ctx))) >= 
          spark__unsigned__u16__first
     using hypothesis H15.
***  Proved C18:  fld_reserved(fld_tweak_words(fld_h(ctx))) <= 
          spark__unsigned__u16__last
     using hypothesis H16.
***  Proved C19:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 
          spark__unsigned__u32__first
     using hypothesis H17.
***  Proved C20:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 
          spark__unsigned__u32__last
     using hypothesis H18.
***  Proved C21:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 
          spark__unsigned__u64__first
     using hypothesis H19.
***  Proved C22:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
          spark__unsigned__u64__last
     using hypothesis H20.
***  Proved C23:  true
***  Proved C25:  true
-S-  Applied substitution rule initialize_k_rules(78).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H25:  element(fld_x(ctx), [0]) >= spark__unsigned__u64__first
<S>  New H26:  element(fld_x(ctx), [0]) <= spark__unsigned__u64__last
<S>  New H27:  0 >= skein_512_state_words_index__first
<S>  New H28:  0 <= skein_512_state_words_index__last
<S>  New H29:  0 >= spark__crypto__i9__first
<S>  New H30:  0 <= spark__crypto__i9__last
<S>  New H31:  bit__xor(element(update(update(ks, [wcnt], skein_ks_parity), [0]
          , element(fld_x(ctx), [0])), [wcnt]), element(fld_x(ctx), [0])) >= 
          spark__unsigned__u64__first
<S>  New H32:  bit__xor(element(update(update(ks, [wcnt], skein_ks_parity), [0]
          , element(fld_x(ctx), [0])), [wcnt]), element(fld_x(ctx), [0])) <= 
          spark__unsigned__u64__last
<S>  New C1:  for_all(j_ : integer, 0 <= j_ and j_ <= 0 -> 
          spark__unsigned__u64__first <= element(update(update(update(ks, [wcnt]
          , skein_ks_parity), [0], element(fld_x(ctx), [0])), [wcnt], bit__xor(
          element(update(update(ks, [wcnt], skein_ks_parity), [0], element(
          fld_x(ctx), [0])), [wcnt]), element(fld_x(ctx), [0]))), [j_]) and 
          element(update(update(update(ks, [wcnt], skein_ks_parity), [0], 
          element(fld_x(ctx), [0])), [wcnt], bit__xor(element(update(update(ks, 
          [wcnt], skein_ks_parity), [0], element(fld_x(ctx), [0])), [wcnt]), 
          element(fld_x(ctx), [0]))), [j_]) <= spark__unsigned__u64__last)
<S>  New C24:  0 <= spark__crypto__i8__last
<S>  New C26:  0 <= spark__crypto__i8__last
-S-  Applied substitution rule initialize_k_rules(79).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New C24:  true
<S>  New C26:  true
***  Proved C24:  true
***  Proved C26:  true
-S-  Applied substitution rule initialize_k_rules(1).
     This was achieved by replacing all occurrences of skein_ks_parity by:
          2004413935125273122.
<S>  New H21:  2004413935125273122 >= spark__unsigned__u64__first
<S>  New H22:  2004413935125273122 <= spark__unsigned__u64__last
<S>  New H31:  bit__xor(element(update(update(ks, [wcnt], 2004413935125273122), 
          [0], element(fld_x(ctx), [0])), [wcnt]), element(fld_x(ctx), [0])) >= 
          spark__unsigned__u64__first
<S>  New H32:  bit__xor(element(update(update(ks, [wcnt], 2004413935125273122), 
          [0], element(fld_x(ctx), [0])), [wcnt]), element(fld_x(ctx), [0])) <= 
          spark__unsigned__u64__last
<S>  New C1:  for_all(j_ : integer, 0 <= j_ and j_ <= 0 -> 
          spark__unsigned__u64__first <= element(update(update(update(ks, [wcnt]
          , 2004413935125273122), [0], element(fld_x(ctx), [0])), [wcnt], 
          bit__xor(element(update(update(ks, [wcnt], 2004413935125273122), [0], 
          element(fld_x(ctx), [0])), [wcnt]), element(fld_x(ctx), [0]))), [j_]) 
          and element(update(update(update(ks, [wcnt], 2004413935125273122), [0]
          , element(fld_x(ctx), [0])), [wcnt], bit__xor(element(update(update(
          ks, [wcnt], 2004413935125273122), [0], element(fld_x(ctx), [0])), [
          wcnt]), element(fld_x(ctx), [0]))), [j_]) <= 
          spark__unsigned__u64__last)
-S-  Applied substitution rule initialize_k_rules(2).
     This was achieved by replacing all occurrences of wcnt by:
          8.
<S>  New H23:  8 >= spark__crypto__i9__first
<S>  New H24:  8 <= spark__crypto__i9__last
<S>  New H31:  bit__xor(2004413935125273122, element(fld_x(ctx), [0])) >= 
          spark__unsigned__u64__first
<S>  New H32:  bit__xor(2004413935125273122, element(fld_x(ctx), [0])) <= 
          spark__unsigned__u64__last
<S>  New C1:  for_all(j_ : integer, 0 <= j_ and j_ <= 0 -> 
          spark__unsigned__u64__first <= element(update(update(update(ks, [8], 
          2004413935125273122), [0], element(fld_x(ctx), [0])), [8], bit__xor(
          2004413935125273122, element(fld_x(ctx), [0]))), [j_]) and element(
          update(update(update(ks, [8], 2004413935125273122), [0], element(
          fld_x(ctx), [0])), [8], bit__xor(2004413935125273122, element(fld_x(
          ctx), [0]))), [j_]) <= spark__unsigned__u64__last)
-S-  Applied substitution rule initialize_k_rules(9).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H4:  fld_byte_count(fld_h(ctx)) >= 0
-S-  Applied substitution rule initialize_k_rules(10).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H5:  fld_byte_count(fld_h(ctx)) <= 2147483647
-S-  Applied substitution rule initialize_k_rules(42).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__first by:
          0.
<S>  New H10:  fld_field_type(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(43).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__last by:
          63.
<S>  New H11:  fld_field_type(fld_tweak_words(fld_h(ctx))) <= 63
-S-  Applied substitution rule initialize_k_rules(48).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__first by:
          0.
<S>  New H13:  fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(49).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__last by:
          127.
<S>  New H14:  fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 127
-S-  Applied substitution rule initialize_k_rules(54).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__first by:
          0.
<S>  New H2:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 0 <= element(
          fld_b(ctx), [i___2]) and element(fld_b(ctx), [i___2]) <= 
          spark__unsigned__byte__last)
-S-  Applied substitution rule initialize_k_rules(55).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__last by:
          255.
<S>  New H2:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 0 <= element(
          fld_b(ctx), [i___2]) and element(fld_b(ctx), [i___2]) <= 255)
-S-  Applied substitution rule initialize_k_rules(60).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__first by:
          0.
<S>  New H15:  fld_reserved(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(61).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__last by:
          65535.
<S>  New H16:  fld_reserved(fld_tweak_words(fld_h(ctx))) <= 65535
-S-  Applied substitution rule initialize_k_rules(66).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__first by:
          0.
<S>  New H17:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(67).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__last by:
          4294967295.
<S>  New H18:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 4294967295
-S-  Applied substitution rule initialize_k_rules(72).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H3:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 0 <= element(
          fld_x(ctx), [i___1]) and element(fld_x(ctx), [i___1]) <= 
          spark__unsigned__u64__last)
<S>  New H19:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New H25:  element(fld_x(ctx), [0]) >= 0
<S>  New H21:  true
<S>  New H31:  bit__xor(2004413935125273122, element(fld_x(ctx), [0])) >= 0
<S>  New C1:  for_all(j_ : integer, 0 <= j_ and j_ <= 0 -> 0 <= element(update(
          update(update(ks, [8], 2004413935125273122), [0], element(fld_x(ctx), 
          [0])), [8], bit__xor(2004413935125273122, element(fld_x(ctx), [0]))), 
          [j_]) and element(update(update(update(ks, [8], 2004413935125273122), 
          [0], element(fld_x(ctx), [0])), [8], bit__xor(2004413935125273122, 
          element(fld_x(ctx), [0]))), [j_]) <= spark__unsigned__u64__last)
-S-  Applied substitution rule initialize_k_rules(73).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H20:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
          18446744073709551615
<S>  New H26:  element(fld_x(ctx), [0]) <= 18446744073709551615
<S>  New H22:  true
<S>  New H32:  bit__xor(2004413935125273122, element(fld_x(ctx), [0])) <= 
          18446744073709551615
<S>  New H3:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 0 <= element(
          fld_x(ctx), [i___1]) and element(fld_x(ctx), [i___1]) <= 
          18446744073709551615)
<S>  New C1:  for_all(j_ : integer, 0 <= j_ and j_ <= 0 -> 0 <= element(update(
          update(update(ks, [8], 2004413935125273122), [0], element(fld_x(ctx), 
          [0])), [8], bit__xor(2004413935125273122, element(fld_x(ctx), [0]))), 
          [j_]) and element(update(update(update(ks, [8], 2004413935125273122), 
          [0], element(fld_x(ctx), [0])), [8], bit__xor(2004413935125273122, 
          element(fld_x(ctx), [0]))), [j_]) <= 18446744073709551615)
-S-  Applied substitution rule initialize_k_rules(83).
     This was achieved by replacing all occurrences of spark__crypto__i9__first 
          by:
          0.
<S>  New H29:  true
<S>  New H23:  true
-S-  Applied substitution rule initialize_k_rules(84).
     This was achieved by replacing all occurrences of spark__crypto__i9__last 
          by:
          8.
<S>  New H30:  true
<S>  New H24:  true
-S-  Applied substitution rule initialize_k_rules(93).
     This was achieved by replacing all occurrences of hash_bit_length__first 
          by:
          0.
<S>  New H6:  fld_hash_bit_len(fld_h(ctx)) >= 0
-S-  Applied substitution rule initialize_k_rules(94).
     This was achieved by replacing all occurrences of hash_bit_length__last by:
          2147483640.
<S>  New H7:  fld_hash_bit_len(fld_h(ctx)) <= 2147483640
-S-  Applied substitution rule initialize_k_rules(98).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__first by:
          0.
<S>  New H27:  true
<S>  New H3:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          skein_512_state_words_index__last -> 0 <= element(fld_x(ctx), [i___1])
           and element(fld_x(ctx), [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule initialize_k_rules(99).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__last by:
          7.
<S>  New H28:  true
<S>  New H3:  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)
-S-  Applied substitution rule initialize_k_rules(103).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__first by:
          0.
<S>  New H2:  for_all(i___2 : integer, 0 <= i___2 and i___2 <= 
          skein_512_block_bytes_index__last -> 0 <= element(fld_b(ctx), [i___2])
           and element(fld_b(ctx), [i___2]) <= 255)
-S-  Applied substitution rule initialize_k_rules(104).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__last by:
          63.
<S>  New H2:  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)
***  Proved C1:  for_all(j_ : integer, 0 <= j_ and j_ <= 0 -> 0 <= element(
          update(update(update(ks, [8], 2004413935125273122), [0], element(
          fld_x(ctx), [0])), [8], bit__xor(2004413935125273122, element(fld_x(
          ctx), [0]))), [j_]) and element(update(update(update(ks, [8], 
          2004413935125273122), [0], element(fld_x(ctx), [0])), [8], bit__xor(
          2004413935125273122, element(fld_x(ctx), [0]))), [j_]) <= 
          18446744073709551615)
     using hypotheses H25 & H26.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_initialize_key_schedule_7.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  for_all(j_ : integer, spark__crypto__i8__first <= j_ and j_ <= 
          loop__1__i -> spark__unsigned__u64__first <= element(ks, [j_]) and 
          element(ks, [j_]) <= spark__unsigned__u64__last)
%%%  Simplified H4 on reading formula in, to give:
     %%%  H4:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 
          spark__unsigned__byte__first <= element(fld_b(ctx), [i___2]) and 
          element(fld_b(ctx), [i___2]) <= spark__unsigned__byte__last)
%%%  Simplified H5 on reading formula in, to give:
     %%%  H5:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 
          spark__unsigned__u64__first <= element(fld_x(ctx), [i___1]) and 
          element(fld_x(ctx), [i___1]) <= spark__unsigned__u64__last)
---  Hypothesis H25 has been replaced by "true".  (It is already present, as 
          H23).
---  Hypothesis H26 has been replaced by "true".  (It is already present, as 
          H24).
---  Hypothesis H36 has been replaced by "true".  (It is already present, as 
          H30).
---  Hypothesis H37 has been replaced by "true".  (It is already present, as 
          H31).
---  Hypothesis H40 has been replaced by "true".  (It is already present, as 
          H38).
---  Hypothesis H41 has been replaced by "true".  (It is already present, as 
          H39).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  for_all(j_ : integer, spark__crypto__i8__first <= j_ and j_ <= 
          loop__1__i + 1 -> spark__unsigned__u64__first <= element(update(
          update(ks, [loop__1__i + 1], element(fld_x(ctx), [loop__1__i + 1])), [
          wcnt], bit__xor(element(update(ks, [loop__1__i + 1], element(fld_x(
          ctx), [loop__1__i + 1])), [wcnt]), 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])), [wcnt], bit__xor(element(update(ks, [
          loop__1__i + 1], element(fld_x(ctx), [loop__1__i + 1])), [wcnt]), 
          element(fld_x(ctx), [loop__1__i + 1]))), [j_]) <= 
          spark__unsigned__u64__last)
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  bit__xor(element(update(ks, [loop__1__i + 1], element(fld_x(ctx)
          , [loop__1__i + 1])), [wcnt]), element(fld_x(ctx), [loop__1__i + 1])) 
          >= spark__unsigned__u64__first
%%%  Simplified C3 on reading formula in, to give:
     %%%  C3:  bit__xor(element(update(ks, [loop__1__i + 1], element(fld_x(ctx)
          , [loop__1__i + 1])), [wcnt]), element(fld_x(ctx), [loop__1__i + 1])) 
          <= spark__unsigned__u64__last
%%%  Simplified C4 on reading formula in, to give:
     %%%  C4:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 
          spark__unsigned__byte__first <= element(fld_b(ctx), [i___2]) and 
          element(fld_b(ctx), [i___2]) <= spark__unsigned__byte__last)
%%%  Simplified C5 on reading formula in, to give:
     %%%  C5:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 
          spark__unsigned__u64__first <= element(fld_x(ctx), [i___1]) and 
          element(fld_x(ctx), [i___1]) <= spark__unsigned__u64__last)
***  Proved C2:  bit__xor(element(update(ks, [loop__1__i + 1], element(fld_x(
          ctx), [loop__1__i + 1])), [wcnt]), element(fld_x(ctx), [loop__1__i + 
          1])) >= spark__unsigned__u64__first
     using hypothesis H34.
***  Proved C3:  bit__xor(element(update(ks, [loop__1__i + 1], element(fld_x(
          ctx), [loop__1__i + 1])), [wcnt]), element(fld_x(ctx), [loop__1__i + 
          1])) <= spark__unsigned__u64__last
     using hypothesis H35.
***  Proved C4:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 
          spark__unsigned__byte__first <= element(fld_b(ctx), [i___2]) and 
          element(fld_b(ctx), [i___2]) <= spark__unsigned__byte__last)
     using hypothesis H4.
***  Proved C5:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 
          spark__unsigned__u64__first <= element(fld_x(ctx), [i___1]) and 
          element(fld_x(ctx), [i___1]) <= spark__unsigned__u64__last)
     using hypothesis H5.
***  Proved C6:  fld_byte_count(fld_h(ctx)) >= natural__first
     using hypothesis H6.
***  Proved C7:  fld_byte_count(fld_h(ctx)) <= natural__last
     using hypothesis H7.
***  Proved C8:  fld_hash_bit_len(fld_h(ctx)) >= hash_bit_length__first
     using hypothesis H8.
***  Proved C9:  fld_hash_bit_len(fld_h(ctx)) <= hash_bit_length__last
     using hypothesis H9.
***  Proved C10:  true
***  Proved C11:  true
***  Proved C12:  fld_field_type(fld_tweak_words(fld_h(ctx))) >= 
          spark__unsigned__u6__first
     using hypothesis H12.
***  Proved C13:  fld_field_type(fld_tweak_words(fld_h(ctx))) <= 
          spark__unsigned__u6__last
     using hypothesis H13.
***  Proved C14:  true
***  Proved C15:  fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 
          spark__unsigned__u7__first
     using hypothesis H15.
***  Proved C16:  fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 
          spark__unsigned__u7__last
     using hypothesis H16.
***  Proved C17:  fld_reserved(fld_tweak_words(fld_h(ctx))) >= 
          spark__unsigned__u16__first
     using hypothesis H17.
***  Proved C18:  fld_reserved(fld_tweak_words(fld_h(ctx))) <= 
          spark__unsigned__u16__last
     using hypothesis H18.
***  Proved C19:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 
          spark__unsigned__u32__first
     using hypothesis H19.
***  Proved C20:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 
          spark__unsigned__u32__last
     using hypothesis H20.
***  Proved C21:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 
          spark__unsigned__u64__first
     using hypothesis H21.
***  Proved C22:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
          spark__unsigned__u64__last
     using hypothesis H22.
***  Proved C23:  loop__1__i + 1 >= spark__crypto__i8__first
     using hypothesis H23.
***  Proved C25:  loop__1__i + 1 >= spark__crypto__i8__first
     using hypothesis H23.
-S-  Applied substitution rule initialize_k_rules(79).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H24:  loop__1__i <= 7
<S>  New H27:  not loop__1__i = 7
<S>  New C24:  loop__1__i <= 6
<S>  New C26:  loop__1__i <= 6
***  Proved C24:  loop__1__i <= 6
     using hypotheses H24 & H27.
***  Proved C26:  loop__1__i <= 6
     using hypotheses H24 & H27.
>>>  Restructured hypothesis H27 into:
     >>>  H27:  loop__1__i <> 7
-S-  Applied substitution rule initialize_k_rules(2).
     This was achieved by replacing all occurrences of wcnt by:
          8.
<S>  New H2:  element(ks, [8]) >= spark__unsigned__u64__first
<S>  New H3:  element(ks, [8]) <= spark__unsigned__u64__last
<S>  New H34:  bit__xor(element(ks, [8]), element(fld_x(ctx), [loop__1__i + 1]))
           >= spark__unsigned__u64__first
<S>  New H35:  bit__xor(element(ks, [8]), element(fld_x(ctx), [loop__1__i + 1]))
           <= spark__unsigned__u64__last
<S>  New H38:  8 >= spark__crypto__i9__first
<S>  New H39:  8 <= spark__crypto__i9__last
<S>  New C1:  for_all(j_ : integer, spark__crypto__i8__first <= j_ and j_ <= 
          loop__1__i + 1 -> spark__unsigned__u64__first <= 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_]) <= spark__unsigned__u64__last)
-S-  Applied substitution rule initialize_k_rules(9).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H6:  fld_byte_count(fld_h(ctx)) >= 0
-S-  Applied substitution rule initialize_k_rules(10).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H7:  fld_byte_count(fld_h(ctx)) <= 2147483647
-S-  Applied substitution rule initialize_k_rules(42).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__first by:
          0.
<S>  New H12:  fld_field_type(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(43).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__last by:
          63.
<S>  New H13:  fld_field_type(fld_tweak_words(fld_h(ctx))) <= 63
-S-  Applied substitution rule initialize_k_rules(48).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__first by:
          0.
<S>  New H15:  fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(49).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__last by:
          127.
<S>  New H16:  fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 127
-S-  Applied substitution rule initialize_k_rules(54).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__first by:
          0.
<S>  New H4:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 0 <= element(
          fld_b(ctx), [i___2]) and element(fld_b(ctx), [i___2]) <= 
          spark__unsigned__byte__last)
-S-  Applied substitution rule initialize_k_rules(55).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__last by:
          255.
<S>  New H4:  for_all(i___2 : integer, skein_512_block_bytes_index__first <= 
          i___2 and i___2 <= skein_512_block_bytes_index__last -> 0 <= element(
          fld_b(ctx), [i___2]) and element(fld_b(ctx), [i___2]) <= 255)
-S-  Applied substitution rule initialize_k_rules(60).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__first by:
          0.
<S>  New H17:  fld_reserved(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(61).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__last by:
          65535.
<S>  New H18:  fld_reserved(fld_tweak_words(fld_h(ctx))) <= 65535
-S-  Applied substitution rule initialize_k_rules(66).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__first by:
          0.
<S>  New H19:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule initialize_k_rules(67).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__last by:
          4294967295.
<S>  New H20:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 4294967295
-S-  Applied substitution rule initialize_k_rules(72).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H1:  for_all(j_ : integer, spark__crypto__i8__first <= j_ and j_ <= 
          loop__1__i -> 0 <= element(ks, [j_]) and element(ks, [j_]) <= 
          spark__unsigned__u64__last)
<S>  New H5:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 0 <= element(
          fld_x(ctx), [i___1]) and element(fld_x(ctx), [i___1]) <= 
          spark__unsigned__u64__last)
<S>  New H21:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New H28:  element(fld_x(ctx), [loop__1__i + 1]) >= 0
<S>  New H2:  element(ks, [8]) >= 0
<S>  New H34:  bit__xor(element(ks, [8]), element(fld_x(ctx), [loop__1__i + 1]))
           >= 0
<S>  New C1:  for_all(j_ : integer, spark__crypto__i8__first <= 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_]) <= spark__unsigned__u64__last)
-S-  Applied substitution rule initialize_k_rules(73).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H22:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
          18446744073709551615
<S>  New H29:  element(fld_x(ctx), [loop__1__i + 1]) <= 18446744073709551615
<S>  New H3:  element(ks, [8]) <= 18446744073709551615
<S>  New H35:  bit__xor(element(ks, [8]), element(fld_x(ctx), [loop__1__i + 1]))
           <= 18446744073709551615
<S>  New H1:  for_all(j_ : integer, spark__crypto__i8__first <= j_ and j_ <= 
          loop__1__i -> 0 <= element(ks, [j_]) and element(ks, [j_]) <= 
          18446744073709551615)
<S>  New H5:  for_all(i___1 : integer, skein_512_state_words_index__first <= 
          i___1 and i___1 <= skein_512_state_words_index__last -> 0 <= element(
          fld_x(ctx), [i___1]) and element(fld_x(ctx), [i___1]) <= 
          18446744073709551615)
<S>  New C1:  for_all(j_ : integer, spark__crypto__i8__first <= 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)
-S-  Applied substitution rule initialize_k_rules(78).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H23:  loop__1__i >= 0
<S>  New H1:  for_all(j_ : integer, 0 <= j_ and j_ <= loop__1__i -> 0 <= 
          element(ks, [j_]) and element(ks, [j_]) <= 18446744073709551615)
<S>  New 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)
-S-  Applied substitution rule initialize_k_rules(83).
     This was achieved by replacing all occurrences of spark__crypto__i9__first 
          by:
          0.
<S>  New H32:  loop__1__i >= - 1
<S>  New H38:  true
-S-  Applied substitution rule initialize_k_rules(84).
     This was achieved by replacing all occurrences of spark__crypto__i9__last 
          by:
          8.
<S>  New H33:  loop__1__i <= 7
<S>  New H39:  true
-S-  Applied substitution rule initialize_k_rules(93).
     This was achieved by replacing all occurrences of hash_bit_length__first 
          by:
          0.
<S>  New H8:  fld_hash_bit_len(fld_h(ctx)) >= 0
-S-  Applied substitution rule initialize_k_rules(94).
     This was achieved by replacing all occurrences of hash_bit_length__last by:
          2147483640.
<S>  New H9:  fld_hash_bit_len(fld_h(ctx)) <= 2147483640
-S-  Applied substitution rule initialize_k_rules(98).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__first by:
          0.
<S>  New H30:  loop__1__i >= - 1
<S>  New H5:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          skein_512_state_words_index__last -> 0 <= element(fld_x(ctx), [i___1])
           and element(fld_x(ctx), [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule initialize_k_rules(99).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__last by:
          7.
<S>  New H31:  loop__1__i <= 6
<S>  New 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)
-S-  Applied substitution rule initialize_k_rules(103).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__first by:
          0.
<S>  New H4:  for_all(i___2 : integer, 0 <= i___2 and i___2 <= 
          skein_512_block_bytes_index__last -> 0 <= element(fld_b(ctx), [i___2])
           and element(fld_b(ctx), [i___2]) <= 255)
-S-  Applied substitution rule initialize_k_rules(104).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__last by:
          63.
<S>  New 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)
%%%  Hypotheses H24 & H27 together imply that
          loop__1__i < 7.
     H24 & H27 have therefore been deleted and a new H42 added to this effect.
---  Eliminated hypothesis H10 (true-hypothesis).
---  Eliminated hypothesis H11 (true-hypothesis).
---  Eliminated hypothesis H14 (true-hypothesis).
---  Eliminated hypothesis H25 (true-hypothesis).
---  Eliminated hypothesis H26 (true-hypothesis).
---  Eliminated hypothesis H36 (true-hypothesis).
---  Eliminated hypothesis H37 (true-hypothesis).
---  Eliminated hypothesis H40 (true-hypothesis).
---  Eliminated hypothesis H41 (true-hypothesis).
---  Eliminated hypothesis H38 (true-hypothesis).
---  Eliminated hypothesis H39 (true-hypothesis).
---  Eliminated hypothesis H32 (duplicate of H30).
---  Eliminated hypothesis H42 (duplicate of H31).
---  Eliminated hypothesis H30 (redundant, given H23).
---  Eliminated hypothesis H33 (redundant, given H31).
     +++  New H43:  integer__size >= 0
     +++  New H44:  natural__size >= 0
     +++  New H45:  spark__unsigned__u6__size >= 0
     +++  New H46:  spark__unsigned__u7__size >= 0
     +++  New H47:  spark__unsigned__byte__size >= 0
     +++  New H48:  spark__unsigned__u16__size >= 0
     +++  New H49:  spark__unsigned__u32__size >= 0
     +++  New H50:  spark__unsigned__u64__size >= 0
     +++  New H51:  spark__crypto__i8__size >= 0
     +++  New H52:  spark__crypto__i9__size >= 0
     +++  New H53:  spark__crypto__word_count_t__size >= 0
     +++  New H54:  hash_bit_length__size >= 0
     +++  New H55:  skein_512_state_words_index__size >= 0
     +++  New H56:  skein_512_block_bytes_index__size >= 0
     +++  New H57:  skein_512_context__size >= 0
     +++  New H58:  context_header__size >= 0


@@@@@@@@@@  VC: procedure_initialize_key_schedule_8.  @@@@@@@@@@
***  Proved C1:  true
***  PROVED VC.

