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

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



SPARK Simplifier Pro Edition


procedure Skein.Skein_512_Process_Block






RRS  The following user defined rule files have been read:
&&&  skein.rlu
SEM  No semantic checks are performed on the rules.


@@@@@@@@@@  VC: procedure_skein_512_process_block_1.  @@@@@@@@@@
%%%  Simplified H10 on reading formula in, to give:
     %%%  H10:  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 H11 on reading formula in, to give:
     %%%  H11:  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 H29 on reading formula in, to give:
     %%%  H29:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 
          spark__unsigned__byte__first <= element(block, [i___1]) and element(
          block, [i___1]) <= spark__unsigned__byte__last)
***  Proved C1:  starting_offset >= natural__first
     using hypothesis H30.
***  Proved C2:  starting_offset <= natural__last
     using hypothesis H31.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_skein_512_process_block_2.  @@@@@@@@@@
%%%  Simplified H10 on reading formula in, to give:
     %%%  H10:  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 H11 on reading formula in, to give:
     %%%  H11:  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 H29 on reading formula in, to give:
     %%%  H29:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 
          spark__unsigned__byte__first <= element(block, [i___1]) and element(
          block, [i___1]) <= spark__unsigned__byte__last)
---  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).
-S-  Applied substitution rule skein_512_pr_rules(122).
     This was achieved by replacing all occurrences of 
          positive_block_512_count_t__first by:
          1.
<S>  New H32:  block_count >= 1
<S>  New C1:  true
-S-  Applied substitution rule skein_512_pr_rules(123).
     This was achieved by replacing all occurrences of 
          positive_block_512_count_t__last by:
          33554431.
<S>  New H33:  block_count <= 33554431
<S>  New C2:  true
***  Proved C1:  true
***  Proved C2:  true
***  PROVED VC.


@@@@@@@@@@  VC: procedure_skein_512_process_block_3.  @@@@@@@@@@
%%%  Simplified H10 on reading formula in, to give:
     %%%  H10:  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 H11 on reading formula in, to give:
     %%%  H11:  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 H29 on reading formula in, to give:
     %%%  H29:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 
          spark__unsigned__byte__first <= element(block, [i___1]) and element(
          block, [i___1]) <= spark__unsigned__byte__last)
---  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).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  true
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  true
%%%  Simplified C3 on reading formula in, to give:
     %%%  C3:  true
%%%  Simplified C5 on reading formula in, to give:
     %%%  C5:  true
%%%  Simplified C11 on reading formula in, to give:
     %%%  C11:  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 C12 on reading formula in, to give:
     %%%  C12:  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 C30 on reading formula in, to give:
     %%%  C30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 
          spark__unsigned__byte__first <= element(block, [i___1]) and element(
          block, [i___1]) <= spark__unsigned__byte__last)
***  Proved C1:  true
***  Proved C2:  true
***  Proved C3:  true
***  Proved C5:  true
***  Proved C6:  starting_offset + 63 <= block__index__subtype__1__last
     using hypothesis H7.
***  Proved C8:  starting_offset + (block_count - 1) * skein_512_block_bytes_c 
          + 63 <= block__index__subtype__1__last
     using hypothesis H6.
***  Proved C9:  block__index__subtype__1__last <= natural__last
     using hypothesis H8.
***  Proved C11:  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 H10.
***  Proved C12:  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 H11.
***  Proved C13:  fld_byte_count(fld_h(ctx)) >= natural__first
     using hypothesis H12.
***  Proved C14:  fld_byte_count(fld_h(ctx)) <= natural__last
     using hypothesis H13.
***  Proved C15:  fld_hash_bit_len(fld_h(ctx)) >= hash_bit_length__first
     using hypothesis H14.
***  Proved C16:  fld_hash_bit_len(fld_h(ctx)) <= hash_bit_length__last
     using hypothesis H15.
***  Proved C17:  true
***  Proved C18:  true
***  Proved C19:  fld_field_type(fld_tweak_words(fld_h(ctx))) >= 
          spark__unsigned__u6__first
     using hypothesis H18.
***  Proved C20:  fld_field_type(fld_tweak_words(fld_h(ctx))) <= 
          spark__unsigned__u6__last
     using hypothesis H19.
***  Proved C21:  true
***  Proved C22:  fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 
          spark__unsigned__u7__first
     using hypothesis H21.
***  Proved C23:  fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 
          spark__unsigned__u7__last
     using hypothesis H22.
***  Proved C24:  fld_reserved(fld_tweak_words(fld_h(ctx))) >= 
          spark__unsigned__u16__first
     using hypothesis H23.
***  Proved C25:  fld_reserved(fld_tweak_words(fld_h(ctx))) <= 
          spark__unsigned__u16__last
     using hypothesis H24.
***  Proved C26:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 
          spark__unsigned__u32__first
     using hypothesis H25.
***  Proved C27:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 
          spark__unsigned__u32__last
     using hypothesis H26.
***  Proved C28:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 
          spark__unsigned__u64__first
     using hypothesis H27.
***  Proved C29:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
          spark__unsigned__u64__last
     using hypothesis H28.
***  Proved C30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 
          spark__unsigned__byte__first <= element(block, [i___1]) and element(
          block, [i___1]) <= spark__unsigned__byte__last)
     using hypothesis H29.
***  Proved C31:  starting_offset >= natural__first
     using hypothesis H30.
***  Proved C32:  starting_offset <= natural__last
     using hypothesis H31.
***  Proved C33:  block_count >= positive_block_512_count_t__first
     using hypothesis H32.
***  Proved C34:  block_count <= positive_block_512_count_t__last
     using hypothesis H33.
***  Proved C35:  byte_count_add >= natural__first
     using hypothesis H34.
***  Proved C36:  byte_count_add <= natural__last
     using hypothesis H35.
***  Proved C37:  fld_hash_bit_len(fld_h(ctx)) >= 
          initialized_hash_bit_length__first
     using hypothesis H1.
***  Proved C38:  fld_hash_bit_len(fld_h(ctx)) <= 
          initialized_hash_bit_length__last
     using hypothesis H2.
***  Proved C39:  fld_byte_count(fld_h(ctx)) >= 
          skein_512_block_bytes_count__first
     using hypothesis H3.
***  Proved C40:  fld_byte_count(fld_h(ctx)) <= 
          skein_512_block_bytes_count__last
     using hypothesis H4.
***  Proved C41:  block__index__subtype__1__first = 0
     using hypothesis H5.
***  Proved C42:  starting_offset + (block_count - 1) * skein_512_block_bytes_c 
          + 63 <= block__index__subtype__1__last
     using hypothesis H6.
***  Proved C43:  starting_offset + 63 <= block__index__subtype__1__last
     using hypothesis H7.
***  Proved C44:  block__index__subtype__1__last <= natural__last
     using hypothesis H8.
***  Proved C45:  starting_offset <= natural__last - 63
     using hypothesis H9.
-S-  Applied substitution rule skein_512_pr_rules(9).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H8:  block__index__subtype__1__last <= 2147483647
<S>  New H9:  starting_offset <= 2147483584
<S>  New H13:  fld_byte_count(fld_h(ctx)) <= 2147483647
<S>  New H31:  starting_offset <= 2147483647
<S>  New H35:  byte_count_add <= 2147483647
<S>  New C7:  starting_offset + spark__crypto__i8__last * 8 <= 2147483647
<S>  New C10:  1 < block_count -> starting_offset + skein_512_block_bytes_c <= 
          2147483647
-S-  Applied substitution rule skein_512_pr_rules(1).
     This was achieved by replacing all occurrences of skein_512_block_bytes_c 
          by:
          64.
<S>  New H6:  starting_offset + (block_count - 1) * 64 + 63 <= 
          block__index__subtype__1__last
<S>  New C10:  1 < block_count -> starting_offset <= 2147483583
-S-  Applied substitution rule skein_512_pr_rules(8).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H12:  fld_byte_count(fld_h(ctx)) >= 0
<S>  New H30:  starting_offset >= 0
<S>  New H34:  byte_count_add >= 0
-S-  Applied substitution rule skein_512_pr_rules(41).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__first by:
          0.
<S>  New H18:  fld_field_type(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(42).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__last by:
          63.
<S>  New H19:  fld_field_type(fld_tweak_words(fld_h(ctx))) <= 63
-S-  Applied substitution rule skein_512_pr_rules(47).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__first by:
          0.
<S>  New H21:  fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(48).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__last by:
          127.
<S>  New H22:  fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 127
-S-  Applied substitution rule skein_512_pr_rules(53).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__first by:
          0.
<S>  New H10:  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>  New H29:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 0 <= element(
          block, [i___1]) and element(block, [i___1]) <= 
          spark__unsigned__byte__last)
-S-  Applied substitution rule skein_512_pr_rules(54).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__last by:
          255.
<S>  New H10:  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>  New H29:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 0 <= element(
          block, [i___1]) and element(block, [i___1]) <= 255)
-S-  Applied substitution rule skein_512_pr_rules(59).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__first by:
          0.
<S>  New H23:  fld_reserved(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(60).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__last by:
          65535.
<S>  New H24:  fld_reserved(fld_tweak_words(fld_h(ctx))) <= 65535
-S-  Applied substitution rule skein_512_pr_rules(65).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__first by:
          0.
<S>  New H25:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(66).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__last by:
          4294967295.
<S>  New H26:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 4294967295
-S-  Applied substitution rule skein_512_pr_rules(71).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H11:  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 H27:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(72).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H28:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
          18446744073709551615
<S>  New H11:  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-  Applied substitution rule skein_512_pr_rules(83).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New C7:  starting_offset <= 2147483591
-S-  Applied substitution rule skein_512_pr_rules(97).
     This was achieved by replacing all occurrences of hash_bit_length__first 
          by:
          0.
<S>  New H14:  fld_hash_bit_len(fld_h(ctx)) >= 0
-S-  Applied substitution rule skein_512_pr_rules(98).
     This was achieved by replacing all occurrences of hash_bit_length__last by:
          2147483640.
<S>  New H15:  fld_hash_bit_len(fld_h(ctx)) <= 2147483640
-S-  Applied substitution rule skein_512_pr_rules(102).
     This was achieved by replacing all occurrences of 
          initialized_hash_bit_length__first by:
          1.
<S>  New H1:  fld_hash_bit_len(fld_h(ctx)) >= 1
-S-  Applied substitution rule skein_512_pr_rules(103).
     This was achieved by replacing all occurrences of 
          initialized_hash_bit_length__last by:
          2147483640.
<S>  New H2:  fld_hash_bit_len(fld_h(ctx)) <= 2147483640
-S-  Applied substitution rule skein_512_pr_rules(107).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__first by:
          0.
<S>  New H11:  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 skein_512_pr_rules(108).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__last by:
          7.
<S>  New H11:  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 skein_512_pr_rules(112).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_count__first by:
          0.
<S>  New H3:  fld_byte_count(fld_h(ctx)) >= 0
-S-  Applied substitution rule skein_512_pr_rules(113).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_count__last by:
          64.
<S>  New H4:  fld_byte_count(fld_h(ctx)) <= 64
-S-  Applied substitution rule skein_512_pr_rules(117).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__first by:
          0.
<S>  New H10:  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 skein_512_pr_rules(118).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__last by:
          63.
<S>  New H10:  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)
-S-  Applied substitution rule skein_512_pr_rules(122).
     This was achieved by replacing all occurrences of 
          positive_block_512_count_t__first by:
          1.
<S>  New H32:  block_count >= 1
<S>  New H38:  true
-S-  Applied substitution rule skein_512_pr_rules(123).
     This was achieved by replacing all occurrences of 
          positive_block_512_count_t__last by:
          33554431.
<S>  New H33:  block_count <= 33554431
<S>  New H39:  true
***  Proved C4:  1 <= block_count
     using hypothesis H32.
***  Proved C7:  starting_offset <= 2147483591
     using hypothesis H9.
---  Eliminated hypothesis H16 (true-hypothesis).
---  Eliminated hypothesis H17 (true-hypothesis).
---  Eliminated hypothesis H20 (true-hypothesis).
---  Eliminated hypothesis H36 (true-hypothesis).
---  Eliminated hypothesis H37 (true-hypothesis).
---  Eliminated hypothesis H38 (true-hypothesis).
---  Eliminated hypothesis H39 (true-hypothesis).
---  Eliminated hypothesis H15 (duplicate of H2).
---  Eliminated hypothesis H12 (duplicate of H3).
---  Eliminated hypothesis H13 (redundant, given H4).
---  Eliminated hypothesis H14 (redundant, given H1).
---  Eliminated hypothesis H31 (redundant, given H9).
     +++  New H40:  integer__size >= 0
     +++  New H41:  natural__size >= 0
     +++  New H42:  spark__unsigned__u6__size >= 0
     +++  New H43:  spark__unsigned__u7__size >= 0
     +++  New H44:  spark__unsigned__byte__size >= 0
     +++  New H45:  spark__unsigned__u16__size >= 0
     +++  New H46:  spark__unsigned__u32__size >= 0
     +++  New H47:  spark__unsigned__u64__size >= 0
     +++  New H48:  spark__crypto__i3__size >= 0
     +++  New H49:  spark__crypto__i8__size >= 0
     +++  New H50:  spark__crypto__i9__size >= 0
     +++  New H51:  spark__crypto__word_count_t__size >= 0
     +++  New H52:  hash_bit_length__size >= 0
     +++  New H53:  initialized_hash_bit_length__size >= 0
     +++  New H54:  skein_512_state_words_index__size >= 0
     +++  New H55:  skein_512_block_bytes_count__size >= 0
     +++  New H56:  skein_512_block_bytes_index__size >= 0
     +++  New H57:  positive_block_512_count_t__size >= 0
     +++  New H58:  skein_512_context__size >= 0
     +++  New H59:  context_header__size >= 0
     +++  New H60:  block__index__subtype__1__first <= 
          block__index__subtype__1__last
     +++  New H61:  block__index__subtype__1__first >= 0
     +++  New H62:  block__index__subtype__1__last >= 0
---  Attempted addition of new hypothesis:
          block__index__subtype__1__last <= 2147483647
     eliminated: this already exists (as H8).
     +++  New H8:  block__index__subtype__1__last <= 2147483647
     +++  New H63:  block__index__subtype__1__first <= 2147483647


@@@@@@@@@@  VC: procedure_skein_512_process_block_4.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  fld_hash_bit_len(fld_h(ctx)) = fld_hash_bit_len(fld_h(ctx~))
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  fld_byte_count(fld_h(ctx)) = fld_byte_count(fld_h(ctx~))
%%%  Simplified H11 on reading formula in, to give:
     %%%  H11:  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 H12 on reading formula in, to give:
     %%%  H12:  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 H30 on reading formula in, to give:
     %%%  H30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 
          spark__unsigned__byte__first <= element(block, [i___1]) and element(
          block, [i___1]) <= spark__unsigned__byte__last)
%%%  Simplified H37 on reading formula in, to give:
     %%%  H37:  fld_hash_bit_len(fld_h(ctx~)) >= 
          initialized_hash_bit_length__first
%%%  Simplified H38 on reading formula in, to give:
     %%%  H38:  fld_hash_bit_len(fld_h(ctx~)) <= 
          initialized_hash_bit_length__last
%%%  Simplified H39 on reading formula in, to give:
     %%%  H39:  fld_byte_count(fld_h(ctx~)) >= 
          skein_512_block_bytes_count__first
%%%  Simplified H40 on reading formula in, to give:
     %%%  H40:  fld_byte_count(fld_h(ctx~)) <= skein_512_block_bytes_count__last
---  Hypothesis H42 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H44 has been replaced by "true".  (It is already present, as H9)
          .
%%%  Simplified H50 on reading formula in, to give:
     %%%  H50:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> spark__unsigned__u64__first <= 
          element(ks__1, [i___1]) and element(ks__1, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H51 on reading formula in, to give:
     %%%  H51:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> spark__unsigned__u64__first <= 
          element(ts__2, [i___1]) and element(ts__2, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H52).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H53).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H41).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as H7)
          .
%%%  Simplified H63 on reading formula in, to give:
     %%%  H63:  for_all(i_ : integer, spark__crypto__i8__first <= i_ and i_ <= 
          spark__crypto__i8__last -> spark__unsigned__u64__first <= element(
          w__3, [i_]) and element(w__3, [i_]) <= spark__unsigned__u64__last)
%%%  Simplified H64 on reading formula in, to give:
     %%%  H64:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(w__3, [i___1]) and element(w__3, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H65 has been replaced by "true".  (It is already present, as 
          H63).
%%%  Simplified H66 on reading formula in, to give:
     %%%  H66:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x__4, [i___1]) and element(x__4, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H67 on reading formula in, to give:
     %%%  H67:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x__5, [i___1]) and element(x__5, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H68 on reading formula in, to give:
     %%%  H68:  fld_hash_bit_len(fld_h(ctx__6)) = fld_hash_bit_len(fld_h(ctx))
%%%  Simplified H69 on reading formula in, to give:
     %%%  H69:  fld_byte_count(fld_h(ctx__6)) = fld_byte_count(fld_h(ctx))
%%%  Simplified H70 on reading formula in, to give:
     %%%  H70:  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__6), [i___2]) and 
          element(fld_b(ctx__6), [i___2]) <= spark__unsigned__byte__last)
%%%  Simplified H71 on reading formula in, to give:
     %%%  H71:  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__6), [i___1]) and 
          element(fld_x(ctx__6), [i___1]) <= spark__unsigned__u64__last)
---  Hypothesis H92 has been replaced by "true".  (It is already present, as 
          H89).
---  Hypothesis H93 has been replaced by "true".  (It is already present, as 
          H90).
---  Hypothesis H96 has been replaced by "true".  (It is already present, as 
          H52).
---  Hypothesis H97 has been replaced by "true".  (It is already present, as 
          H53).
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  fld_hash_bit_len(fld_h(ctx__6)) = fld_hash_bit_len(fld_h(ctx~))
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  fld_byte_count(fld_h(ctx__6)) = fld_byte_count(fld_h(ctx~))
%%%  Simplified C3 on reading formula in, to give:
     %%%  C3:  j >= 0
%%%  Simplified C5 on reading formula in, to give:
     %%%  C5:  src_offset + skein_512_block_bytes_c = starting_offset + j * 
          skein_512_block_bytes_c
%%%  Simplified C11 on reading formula in, to give:
     %%%  C11:  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__6), [i___2]) and 
          element(fld_b(ctx__6), [i___2]) <= spark__unsigned__byte__last)
%%%  Simplified C12 on reading formula in, to give:
     %%%  C12:  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__6), [i___1]) and 
          element(fld_x(ctx__6), [i___1]) <= spark__unsigned__u64__last)
%%%  Simplified C13 on reading formula in, to give:
     %%%  C13:  fld_byte_count(fld_h(ctx__6)) >= natural__first
%%%  Simplified C14 on reading formula in, to give:
     %%%  C14:  fld_byte_count(fld_h(ctx__6)) <= natural__last
%%%  Simplified C15 on reading formula in, to give:
     %%%  C15:  fld_hash_bit_len(fld_h(ctx__6)) >= hash_bit_length__first
%%%  Simplified C16 on reading formula in, to give:
     %%%  C16:  fld_hash_bit_len(fld_h(ctx__6)) <= hash_bit_length__last
%%%  Simplified C19 on reading formula in, to give:
     %%%  C19:  fld_field_type(fld_tweak_words(fld_h(ctx__6))) >= 
          spark__unsigned__u6__first
%%%  Simplified C20 on reading formula in, to give:
     %%%  C20:  fld_field_type(fld_tweak_words(fld_h(ctx__6))) <= 
          spark__unsigned__u6__last
%%%  Simplified C22 on reading formula in, to give:
     %%%  C22:  fld_tree_level(fld_tweak_words(fld_h(ctx__6))) >= 
          spark__unsigned__u7__first
%%%  Simplified C23 on reading formula in, to give:
     %%%  C23:  fld_tree_level(fld_tweak_words(fld_h(ctx__6))) <= 
          spark__unsigned__u7__last
%%%  Simplified C24 on reading formula in, to give:
     %%%  C24:  fld_reserved(fld_tweak_words(fld_h(ctx__6))) >= 
          spark__unsigned__u16__first
%%%  Simplified C25 on reading formula in, to give:
     %%%  C25:  fld_reserved(fld_tweak_words(fld_h(ctx__6))) <= 
          spark__unsigned__u16__last
%%%  Simplified C26 on reading formula in, to give:
     %%%  C26:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx__6))) >= 
          spark__unsigned__u32__first
%%%  Simplified C27 on reading formula in, to give:
     %%%  C27:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx__6))) <= 
          spark__unsigned__u32__last
%%%  Simplified C28 on reading formula in, to give:
     %%%  C28:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__6))) >= 
          spark__unsigned__u64__first
%%%  Simplified C29 on reading formula in, to give:
     %%%  C29:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__6))) <= 
          spark__unsigned__u64__last
%%%  Simplified C30 on reading formula in, to give:
     %%%  C30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 
          spark__unsigned__byte__first <= element(block, [i___1]) and element(
          block, [i___1]) <= spark__unsigned__byte__last)
%%%  Simplified C37 on reading formula in, to give:
     %%%  C37:  fld_hash_bit_len(fld_h(ctx~)) >= 
          initialized_hash_bit_length__first
%%%  Simplified C38 on reading formula in, to give:
     %%%  C38:  fld_hash_bit_len(fld_h(ctx~)) <= 
          initialized_hash_bit_length__last
%%%  Simplified C39 on reading formula in, to give:
     %%%  C39:  fld_byte_count(fld_h(ctx~)) >= 
          skein_512_block_bytes_count__first
%%%  Simplified C40 on reading formula in, to give:
     %%%  C40:  fld_byte_count(fld_h(ctx~)) <= skein_512_block_bytes_count__last
***  Proved C1:  fld_hash_bit_len(fld_h(ctx__6)) = fld_hash_bit_len(fld_h(ctx~))
     using hypotheses H1 & H68.
***  Proved C2:  fld_byte_count(fld_h(ctx__6)) = fld_byte_count(fld_h(ctx~))
     using hypotheses H2 & H69.
***  Proved C3:  j >= 0
     using hypothesis H3.
***  Proved C8:  starting_offset + (block_count - 1) * skein_512_block_bytes_c 
          + 63 <= block__index__subtype__1__last
     using hypothesis H8.
***  Proved C9:  block__index__subtype__1__last <= natural__last
     using hypothesis H9.
***  Proved C11:  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__6), [i___2]) and 
          element(fld_b(ctx__6), [i___2]) <= spark__unsigned__byte__last)
     using hypothesis H70.
***  Proved C12:  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__6), [i___1]) and 
          element(fld_x(ctx__6), [i___1]) <= spark__unsigned__u64__last)
     using hypothesis H71.
***  Proved C13:  fld_byte_count(fld_h(ctx__6)) >= natural__first
     using hypothesis H72.
***  Proved C14:  fld_byte_count(fld_h(ctx__6)) <= natural__last
     using hypothesis H73.
***  Proved C15:  fld_hash_bit_len(fld_h(ctx__6)) >= hash_bit_length__first
     using hypothesis H74.
***  Proved C16:  fld_hash_bit_len(fld_h(ctx__6)) <= hash_bit_length__last
     using hypothesis H75.
***  Proved C17:  true
***  Proved C18:  true
***  Proved C19:  fld_field_type(fld_tweak_words(fld_h(ctx__6))) >= 
          spark__unsigned__u6__first
     using hypothesis H78.
***  Proved C20:  fld_field_type(fld_tweak_words(fld_h(ctx__6))) <= 
          spark__unsigned__u6__last
     using hypothesis H79.
***  Proved C21:  true
***  Proved C22:  fld_tree_level(fld_tweak_words(fld_h(ctx__6))) >= 
          spark__unsigned__u7__first
     using hypothesis H81.
***  Proved C23:  fld_tree_level(fld_tweak_words(fld_h(ctx__6))) <= 
          spark__unsigned__u7__last
     using hypothesis H82.
***  Proved C24:  fld_reserved(fld_tweak_words(fld_h(ctx__6))) >= 
          spark__unsigned__u16__first
     using hypothesis H83.
***  Proved C25:  fld_reserved(fld_tweak_words(fld_h(ctx__6))) <= 
          spark__unsigned__u16__last
     using hypothesis H84.
***  Proved C26:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx__6))) >= 
          spark__unsigned__u32__first
     using hypothesis H85.
***  Proved C27:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx__6))) <= 
          spark__unsigned__u32__last
     using hypothesis H86.
***  Proved C28:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__6))) >= 
          spark__unsigned__u64__first
     using hypothesis H87.
***  Proved C29:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__6))) <= 
          spark__unsigned__u64__last
     using hypothesis H88.
***  Proved C30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 
          spark__unsigned__byte__first <= element(block, [i___1]) and element(
          block, [i___1]) <= spark__unsigned__byte__last)
     using hypothesis H30.
***  Proved C31:  starting_offset >= natural__first
     using hypothesis H31.
***  Proved C32:  starting_offset <= natural__last
     using hypothesis H32.
***  Proved C33:  block_count >= positive_block_512_count_t__first
     using hypothesis H33.
***  Proved C34:  block_count <= positive_block_512_count_t__last
     using hypothesis H34.
***  Proved C35:  byte_count_add >= natural__first
     using hypothesis H35.
***  Proved C36:  byte_count_add <= natural__last
     using hypothesis H36.
***  Proved C37:  fld_hash_bit_len(fld_h(ctx~)) >= 
          initialized_hash_bit_length__first
     using hypothesis H37.
***  Proved C38:  fld_hash_bit_len(fld_h(ctx~)) <= 
          initialized_hash_bit_length__last
     using hypothesis H38.
***  Proved C39:  fld_byte_count(fld_h(ctx~)) >= 
          skein_512_block_bytes_count__first
     using hypothesis H39.
***  Proved C40:  fld_byte_count(fld_h(ctx~)) <= 
          skein_512_block_bytes_count__last
     using hypothesis H40.
***  Proved C41:  block__index__subtype__1__first = 0
     using hypothesis H41.
***  Proved C42:  starting_offset + (block_count - 1) * skein_512_block_bytes_c 
          + 63 <= block__index__subtype__1__last
     using hypothesis H8.
***  Proved C43:  starting_offset + 63 <= block__index__subtype__1__last
     using hypothesis H43.
***  Proved C44:  block__index__subtype__1__last <= natural__last
     using hypothesis H9.
***  Proved C45:  starting_offset <= natural__last - 63
     using hypothesis H45.
-S-  Applied substitution rule skein_512_pr_rules(9).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H7:  src_offset + spark__crypto__i8__last * 8 <= 2147483647
<S>  New H9:  block__index__subtype__1__last <= 2147483647
<S>  New H10:  j < block_count -> src_offset + skein_512_block_bytes_c <= 
          2147483647
<S>  New H14:  fld_byte_count(fld_h(ctx)) <= 2147483647
<S>  New H32:  starting_offset <= 2147483647
<S>  New H36:  byte_count_add <= 2147483647
<S>  New H45:  starting_offset <= 2147483584
<S>  New H53:  src_offset <= 2147483647
<S>  New H73:  fld_byte_count(fld_h(ctx__6)) <= 2147483647
<S>  New H99:  src_offset + skein_512_block_bytes_c <= 2147483647
<S>  New C7:  src_offset + skein_512_block_bytes_c + spark__crypto__i8__last * 
          8 <= 2147483647
<S>  New C10:  j + 1 < block_count -> src_offset + skein_512_block_bytes_c + 
          skein_512_block_bytes_c <= 2147483647
>>>  Restructured hypothesis H91 into:
     >>>  H91:  j < block_count
---  Attempted addition of new hypothesis:
          src_offset + skein_512_block_bytes_c <= 2147483647
     eliminated: this already exists (as H99).
+++  Using "A->B, A |- B" on hypotheses H10 & H91 yields a new hypothesis:
     +++  H99:  src_offset + skein_512_block_bytes_c <= 2147483647
-S-  Applied substitution rule skein_512_pr_rules(1).
     This was achieved by replacing all occurrences of skein_512_block_bytes_c 
          by:
          64.
<S>  New H5:  src_offset = starting_offset + (j - 1) * 64
<S>  New H8:  starting_offset + (block_count - 1) * 64 + 63 <= 
          block__index__subtype__1__last
<S>  New H10:  j < block_count -> src_offset <= 2147483583
<S>  New H98:  src_offset + 64 >= natural__first
<S>  New H99:  src_offset <= 2147483583
<S>  New C5:  src_offset + 64 = starting_offset + j * 64
<S>  New C6:  src_offset + 127 <= block__index__subtype__1__last
<S>  New C7:  src_offset + 64 + spark__crypto__i8__last * 8 <= 2147483647
<S>  New C10:  j + 1 < block_count -> src_offset <= 2147483519
-S-  Applied substitution rule skein_512_pr_rules(8).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H13:  fld_byte_count(fld_h(ctx)) >= 0
<S>  New H31:  starting_offset >= 0
<S>  New H35:  byte_count_add >= 0
<S>  New H52:  src_offset >= 0
<S>  New H72:  fld_byte_count(fld_h(ctx__6)) >= 0
<S>  New H98:  src_offset >= - 64
-S-  Applied substitution rule skein_512_pr_rules(39).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New H46:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + 
          byte_count_add) mod 18446744073709551616 >= 
          spark__unsigned__u64__first
<S>  New H47:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + 
          byte_count_add) mod 18446744073709551616 <= spark__unsigned__u64__last
-S-  Applied substitution rule skein_512_pr_rules(41).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__first by:
          0.
<S>  New H19:  fld_field_type(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New H78:  fld_field_type(fld_tweak_words(fld_h(ctx__6))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(42).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__last by:
          63.
<S>  New H20:  fld_field_type(fld_tweak_words(fld_h(ctx))) <= 63
<S>  New H79:  fld_field_type(fld_tweak_words(fld_h(ctx__6))) <= 63
-S-  Applied substitution rule skein_512_pr_rules(47).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__first by:
          0.
<S>  New H22:  fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New H81:  fld_tree_level(fld_tweak_words(fld_h(ctx__6))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(48).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__last by:
          127.
<S>  New H23:  fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 127
<S>  New H82:  fld_tree_level(fld_tweak_words(fld_h(ctx__6))) <= 127
-S-  Applied substitution rule skein_512_pr_rules(53).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__first by:
          0.
<S>  New H11:  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>  New H30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 0 <= element(
          block, [i___1]) and element(block, [i___1]) <= 
          spark__unsigned__byte__last)
<S>  New H70:  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__6), [i___2]) and element(fld_b(ctx__6), [i___2]) <= 
          spark__unsigned__byte__last)
-S-  Applied substitution rule skein_512_pr_rules(54).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__last by:
          255.
<S>  New H11:  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>  New H30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 0 <= element(
          block, [i___1]) and element(block, [i___1]) <= 255)
<S>  New H70:  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__6), [i___2]) and element(fld_b(ctx__6), [i___2]) <= 255)
-S-  Applied substitution rule skein_512_pr_rules(59).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__first by:
          0.
<S>  New H24:  fld_reserved(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New H83:  fld_reserved(fld_tweak_words(fld_h(ctx__6))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(60).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__last by:
          65535.
<S>  New H25:  fld_reserved(fld_tweak_words(fld_h(ctx))) <= 65535
<S>  New H84:  fld_reserved(fld_tweak_words(fld_h(ctx__6))) <= 65535
-S-  Applied substitution rule skein_512_pr_rules(65).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__first by:
          0.
<S>  New H26:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New H85:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx__6))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(66).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__last by:
          4294967295.
<S>  New H27:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 4294967295
<S>  New H86:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx__6))) <= 4294967295
-S-  Applied substitution rule skein_512_pr_rules(71).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H12:  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 H28:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New H48:  byte_count_add >= 0
<S>  New H50:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> 0 <= element(ks__1, [i___1]) and 
          element(ks__1, [i___1]) <= spark__unsigned__u64__last)
<S>  New H51:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> 0 <= element(ts__2, [i___1]) and 
          element(ts__2, [i___1]) <= spark__unsigned__u64__last)
<S>  New H63:  for_all(i_ : integer, spark__crypto__i8__first <= i_ and i_ <= 
          spark__crypto__i8__last -> 0 <= element(w__3, [i_]) and element(w__3, 
          [i_]) <= spark__unsigned__u64__last)
<S>  New H64:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(w__3, [i___1]) and 
          element(w__3, [i___1]) <= spark__unsigned__u64__last)
<S>  New H66:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x__4, [i___1]) and 
          element(x__4, [i___1]) <= spark__unsigned__u64__last)
<S>  New H67:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x__5, [i___1]) and 
          element(x__5, [i___1]) <= spark__unsigned__u64__last)
<S>  New H71:  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__6), [i___1]) and element(fld_x(ctx__6), [i___1]) <= 
          spark__unsigned__u64__last)
<S>  New H87:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__6))) >= 0
<S>  New H46:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + 
          byte_count_add) mod 18446744073709551616 >= 0
-S-  Applied substitution rule skein_512_pr_rules(72).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H29:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
          18446744073709551615
<S>  New H49:  byte_count_add <= 18446744073709551615
<S>  New H88:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__6))) <= 
          18446744073709551615
<S>  New H47:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + 
          byte_count_add) mod 18446744073709551616 <= 18446744073709551615
<S>  New H12:  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 H50:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> 0 <= element(ks__1, [i___1]) and 
          element(ks__1, [i___1]) <= 18446744073709551615)
<S>  New H51:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> 0 <= element(ts__2, [i___1]) and 
          element(ts__2, [i___1]) <= 18446744073709551615)
<S>  New H63:  for_all(i_ : integer, spark__crypto__i8__first <= i_ and i_ <= 
          spark__crypto__i8__last -> 0 <= element(w__3, [i_]) and element(w__3, 
          [i_]) <= 18446744073709551615)
<S>  New H64:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(w__3, [i___1]) and 
          element(w__3, [i___1]) <= 18446744073709551615)
<S>  New H66:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x__4, [i___1]) and 
          element(x__4, [i___1]) <= 18446744073709551615)
<S>  New H67:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x__5, [i___1]) and 
          element(x__5, [i___1]) <= 18446744073709551615)
<S>  New H71:  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__6), [i___1]) and element(fld_x(ctx__6), [i___1]) <= 
          18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(77).
     This was achieved by replacing all occurrences of spark__crypto__i3__first 
          by:
          0.
<S>  New H51:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i3__last -> 0 <= element(ts__2, [i___1]) and element(
          ts__2, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(78).
     This was achieved by replacing all occurrences of spark__crypto__i3__last 
          by:
          2.
<S>  New H51:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 2 -> 0 <= 
          element(ts__2, [i___1]) and element(ts__2, [i___1]) <= 
          18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(82).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H57:  true
<S>  New H63:  for_all(i_ : integer, 0 <= i_ and i_ <= spark__crypto__i8__last 
          -> 0 <= element(w__3, [i_]) and element(w__3, [i_]) <= 
          18446744073709551615)
<S>  New H64:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(w__3, [i___1]) and element(
          w__3, [i___1]) <= 18446744073709551615)
<S>  New H66:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(x__4, [i___1]) and element(
          x__4, [i___1]) <= 18446744073709551615)
<S>  New H67:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(x__5, [i___1]) and element(
          x__5, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(83).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H7:  src_offset <= 2147483591
<S>  New H59:  src_offset + 56 + 7 >= block__index__subtype__1__first
<S>  New H60:  src_offset + 56 + 7 <= block__index__subtype__1__last
<S>  New H63:  for_all(i_ : integer, 0 <= i_ and i_ <= 7 -> 0 <= element(w__3, [
          i_]) and element(w__3, [i_]) <= 18446744073709551615)
<S>  New H64:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(w__3, [i___1]) and element(w__3, [i___1]) <= 
          18446744073709551615)
<S>  New H66:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(x__4, [i___1]) and element(x__4, [i___1]) <= 
          18446744073709551615)
<S>  New H67:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(x__5, [i___1]) and element(x__5, [i___1]) <= 
          18446744073709551615)
<S>  New C7:  src_offset + 64 <= 2147483591
-S-  Applied substitution rule skein_512_pr_rules(87).
     This was achieved by replacing all occurrences of spark__crypto__i9__first 
          by:
          0.
<S>  New H50:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i9__last -> 0 <= element(ks__1, [i___1]) and element(
          ks__1, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(88).
     This was achieved by replacing all occurrences of spark__crypto__i9__last 
          by:
          8.
<S>  New H50:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 8 -> 0 <= 
          element(ks__1, [i___1]) and element(ks__1, [i___1]) <= 
          18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(97).
     This was achieved by replacing all occurrences of hash_bit_length__first 
          by:
          0.
<S>  New H15:  fld_hash_bit_len(fld_h(ctx)) >= 0
<S>  New H74:  fld_hash_bit_len(fld_h(ctx__6)) >= 0
-S-  Applied substitution rule skein_512_pr_rules(98).
     This was achieved by replacing all occurrences of hash_bit_length__last by:
          2147483640.
<S>  New H16:  fld_hash_bit_len(fld_h(ctx)) <= 2147483640
<S>  New H75:  fld_hash_bit_len(fld_h(ctx__6)) <= 2147483640
-S-  Applied substitution rule skein_512_pr_rules(102).
     This was achieved by replacing all occurrences of 
          initialized_hash_bit_length__first by:
          1.
<S>  New H37:  fld_hash_bit_len(fld_h(ctx~)) >= 1
-S-  Applied substitution rule skein_512_pr_rules(103).
     This was achieved by replacing all occurrences of 
          initialized_hash_bit_length__last by:
          2147483640.
<S>  New H38:  fld_hash_bit_len(fld_h(ctx~)) <= 2147483640
-S-  Applied substitution rule skein_512_pr_rules(107).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__first by:
          0.
<S>  New H12:  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 H71:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          skein_512_state_words_index__last -> 0 <= element(fld_x(ctx__6), [
          i___1]) and element(fld_x(ctx__6), [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(108).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__last by:
          7.
<S>  New 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)
<S>  New H71:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(fld_x(ctx__6), [i___1]) and element(fld_x(ctx__6), [i___1]) 
          <= 18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(112).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_count__first by:
          0.
<S>  New H39:  fld_byte_count(fld_h(ctx~)) >= 0
-S-  Applied substitution rule skein_512_pr_rules(113).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_count__last by:
          64.
<S>  New H40:  fld_byte_count(fld_h(ctx~)) <= 64
-S-  Applied substitution rule skein_512_pr_rules(117).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__first by:
          0.
<S>  New H11:  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>  New H70:  for_all(i___2 : integer, 0 <= i___2 and i___2 <= 
          skein_512_block_bytes_index__last -> 0 <= element(fld_b(ctx__6), [
          i___2]) and element(fld_b(ctx__6), [i___2]) <= 255)
-S-  Applied substitution rule skein_512_pr_rules(118).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__last by:
          63.
<S>  New 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)
<S>  New H70:  for_all(i___2 : integer, 0 <= i___2 and i___2 <= 63 -> 0 <= 
          element(fld_b(ctx__6), [i___2]) and element(fld_b(ctx__6), [i___2]) 
          <= 255)
-S-  Applied substitution rule skein_512_pr_rules(122).
     This was achieved by replacing all occurrences of 
          positive_block_512_count_t__first by:
          1.
<S>  New H33:  block_count >= 1
<S>  New H89:  j >= 1
<S>  New H94:  j >= 0
-S-  Applied substitution rule skein_512_pr_rules(123).
     This was achieved by replacing all occurrences of 
          positive_block_512_count_t__last by:
          33554431.
<S>  New H34:  block_count <= 33554431
<S>  New H90:  j <= 33554431
<S>  New H95:  j <= 33554430
%%%  Simplified H59 further, to give:
     %%%  H59:  src_offset + 63 >= block__index__subtype__1__first
%%%  Simplified H60 further, to give:
     %%%  H60:  src_offset + 63 <= block__index__subtype__1__last
%%%  Simplified C7 further, to give:
     %%%  C7:  src_offset <= 2147483527
***  Proved C4:  j + 1 <= block_count
     via its standard form, which is:
     Std.Fm C4:  block_count - j > 0
     using hypothesis H91.
***  Proved C5:  src_offset + 64 = starting_offset + j * 64
     via its standard form, which is:
     Std.Fm C5:  - (64 * j) + src_offset - starting_offset = - 64
     using hypothesis H5.
---  Eliminated hypothesis H17 (true-hypothesis).
---  Eliminated hypothesis H18 (true-hypothesis).
---  Eliminated hypothesis H21 (true-hypothesis).
---  Eliminated hypothesis H42 (true-hypothesis).
---  Eliminated hypothesis H44 (true-hypothesis).
---  Eliminated hypothesis H54 (true-hypothesis).
---  Eliminated hypothesis H55 (true-hypothesis).
---  Eliminated hypothesis H56 (true-hypothesis).
---  Eliminated hypothesis H62 (true-hypothesis).
---  Eliminated hypothesis H65 (true-hypothesis).
---  Eliminated hypothesis H76 (true-hypothesis).
---  Eliminated hypothesis H77 (true-hypothesis).
---  Eliminated hypothesis H80 (true-hypothesis).
---  Eliminated hypothesis H92 (true-hypothesis).
---  Eliminated hypothesis H93 (true-hypothesis).
---  Eliminated hypothesis H96 (true-hypothesis).
---  Eliminated hypothesis H97 (true-hypothesis).
---  Eliminated hypothesis H57 (true-hypothesis).
---  Eliminated hypothesis H89 (duplicate of H3).
---  Eliminated hypothesis H60 (duplicate of H6).
---  Eliminated hypothesis H48 (duplicate of H35).
>>>  Using "A->B, A |- B" on H10, given H91, we simplify the former to:
     >>>  H10:  src_offset <= 2147483583
---  Eliminated hypothesis H4 (redundant, given H91).
---  Eliminated hypothesis H7 (redundant, given H99).
---  Eliminated hypothesis H14 (redundant, given H2 & H40).
---  Eliminated hypothesis H15 (redundant, given H1 & H37).
---  Eliminated hypothesis H32 (redundant, given H45).
---  Eliminated hypothesis H33 (redundant, given H3 & H91).
---  Eliminated hypothesis H49 (redundant, given H36).
---  Eliminated hypothesis H53 (redundant, given H99).
---  Eliminated hypothesis H58 (redundant, given H6).
---  Eliminated hypothesis H61 (redundant, given H6).
---  Eliminated hypothesis H90 (redundant, given H95).
---  Eliminated hypothesis H94 (redundant, given H3).
---  Eliminated hypothesis H98 (redundant, given H52).
-S-  Eliminated hypothesis H5.
     This was achieved by replacing all occurrences of src_offset by:
          starting_offset + (j - 1) * 64.
<S>  New H6:  starting_offset + (j - 1) * 64 + 63 <= 
          block__index__subtype__1__last
<S>  New H99:  starting_offset + (j - 1) * 64 <= 2147483583
<S>  New H52:  starting_offset + (j - 1) * 64 >= 0
<S>  New H59:  starting_offset + (j - 1) * 64 + 63 >= 
          block__index__subtype__1__first
<S>  New H10:  starting_offset + (j - 1) * 64 <= 2147483583
<S>  New C6:  starting_offset + (j - 1) * 64 + 127 <= 
          block__index__subtype__1__last
<S>  New C10:  j + 1 < block_count -> starting_offset + (j - 1) * 64 <= 
          2147483519
<S>  New C7:  starting_offset + (j - 1) * 64 <= 2147483527
-S-  Substituted hypothesis H68.
     This was achieved by replacing all occurrences of fld_hash_bit_len(fld_h(
          ctx__6)) by:
          fld_hash_bit_len(fld_h(ctx)).
-S-  Substituted hypothesis H69.
     This was achieved by replacing all occurrences of fld_byte_count(fld_h(
          ctx__6)) by:
          fld_byte_count(fld_h(ctx)).
     +++  New H100:  integer__size >= 0
     +++  New H101:  natural__size >= 0
     +++  New H102:  spark__unsigned__u6__size >= 0
     +++  New H103:  spark__unsigned__u7__size >= 0
     +++  New H104:  spark__unsigned__byte__size >= 0
     +++  New H105:  spark__unsigned__u16__size >= 0
     +++  New H106:  spark__unsigned__u32__size >= 0
     +++  New H107:  spark__unsigned__u64__size >= 0
     +++  New H108:  spark__crypto__i3__size >= 0
     +++  New H109:  spark__crypto__i8__size >= 0
     +++  New H110:  spark__crypto__i9__size >= 0
     +++  New H111:  spark__crypto__word_count_t__size >= 0
     +++  New H112:  hash_bit_length__size >= 0
     +++  New H113:  initialized_hash_bit_length__size >= 0
     +++  New H114:  skein_512_state_words_index__size >= 0
     +++  New H115:  skein_512_block_bytes_count__size >= 0
     +++  New H116:  skein_512_block_bytes_index__size >= 0
     +++  New H117:  positive_block_512_count_t__size >= 0
     +++  New H118:  skein_512_context__size >= 0
     +++  New H119:  context_header__size >= 0
     +++  New H120:  block__index__subtype__1__first <= 
          block__index__subtype__1__last
     +++  New H121:  block__index__subtype__1__first >= 0
     +++  New H122:  block__index__subtype__1__last >= 0
---  Attempted addition of new hypothesis:
          block__index__subtype__1__last <= 2147483647
     eliminated: this already exists (as H9).
     +++  New H9:  block__index__subtype__1__last <= 2147483647
     +++  New H123:  block__index__subtype__1__first <= 2147483647


@@@@@@@@@@  VC: procedure_skein_512_process_block_5.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  fld_hash_bit_len(fld_h(ctx)) = fld_hash_bit_len(fld_h(ctx~))
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  fld_byte_count(fld_h(ctx)) = fld_byte_count(fld_h(ctx~))
%%%  Simplified H11 on reading formula in, to give:
     %%%  H11:  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 H12 on reading formula in, to give:
     %%%  H12:  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 H30 on reading formula in, to give:
     %%%  H30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 
          spark__unsigned__byte__first <= element(block, [i___1]) and element(
          block, [i___1]) <= spark__unsigned__byte__last)
%%%  Simplified H37 on reading formula in, to give:
     %%%  H37:  fld_hash_bit_len(fld_h(ctx~)) >= 
          initialized_hash_bit_length__first
%%%  Simplified H38 on reading formula in, to give:
     %%%  H38:  fld_hash_bit_len(fld_h(ctx~)) <= 
          initialized_hash_bit_length__last
%%%  Simplified H39 on reading formula in, to give:
     %%%  H39:  fld_byte_count(fld_h(ctx~)) >= 
          skein_512_block_bytes_count__first
%%%  Simplified H40 on reading formula in, to give:
     %%%  H40:  fld_byte_count(fld_h(ctx~)) <= skein_512_block_bytes_count__last
---  Hypothesis H42 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H44 has been replaced by "true".  (It is already present, as H9)
          .
-S-  Applied substitution rule skein_512_pr_rules(71).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H12:  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 H28:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New C1:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + byte_count_add)
           mod interfaces__unsigned_64__modulus >= 0
<S>  New C3:  byte_count_add >= 0
-S-  Applied substitution rule skein_512_pr_rules(72).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H29:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
          18446744073709551615
<S>  New H12:  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:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + byte_count_add)
           mod interfaces__unsigned_64__modulus <= 18446744073709551615
<S>  New C4:  byte_count_add <= 18446744073709551615
-S-  Applied substitution rule skein_512_pr_rules(1).
     This was achieved by replacing all occurrences of skein_512_block_bytes_c 
          by:
          64.
<S>  New H5:  src_offset = starting_offset + (j - 1) * 64
<S>  New H8:  starting_offset + (block_count - 1) * 64 + 63 <= 
          block__index__subtype__1__last
<S>  New H10:  j < block_count -> src_offset + 64 <= natural__last
-S-  Applied substitution rule skein_512_pr_rules(8).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H13:  fld_byte_count(fld_h(ctx)) >= 0
<S>  New H31:  starting_offset >= 0
<S>  New H35:  byte_count_add >= 0
-S-  Applied substitution rule skein_512_pr_rules(9).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H7:  src_offset + spark__crypto__i8__last * 8 <= 2147483647
<S>  New H9:  block__index__subtype__1__last <= 2147483647
<S>  New H14:  fld_byte_count(fld_h(ctx)) <= 2147483647
<S>  New H32:  starting_offset <= 2147483647
<S>  New H36:  byte_count_add <= 2147483647
<S>  New H45:  starting_offset <= 2147483584
<S>  New H10:  j < block_count -> src_offset <= 2147483583
-S-  Applied substitution rule skein_512_pr_rules(39).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New C1:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + byte_count_add)
           mod 18446744073709551616 >= 0
<S>  New C2:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + byte_count_add)
           mod 18446744073709551616 <= 18446744073709551615
-S-  Applied substitution rule skein_512_pr_rules(41).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__first by:
          0.
<S>  New H19:  fld_field_type(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(42).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__last by:
          63.
<S>  New H20:  fld_field_type(fld_tweak_words(fld_h(ctx))) <= 63
-S-  Applied substitution rule skein_512_pr_rules(47).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__first by:
          0.
<S>  New H22:  fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(48).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__last by:
          127.
<S>  New H23:  fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 127
-S-  Applied substitution rule skein_512_pr_rules(53).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__first by:
          0.
<S>  New H11:  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>  New H30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 0 <= element(
          block, [i___1]) and element(block, [i___1]) <= 
          spark__unsigned__byte__last)
-S-  Applied substitution rule skein_512_pr_rules(54).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__last by:
          255.
<S>  New H11:  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>  New H30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 0 <= element(
          block, [i___1]) and element(block, [i___1]) <= 255)
-S-  Applied substitution rule skein_512_pr_rules(59).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__first by:
          0.
<S>  New H24:  fld_reserved(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(60).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__last by:
          65535.
<S>  New H25:  fld_reserved(fld_tweak_words(fld_h(ctx))) <= 65535
-S-  Applied substitution rule skein_512_pr_rules(65).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__first by:
          0.
<S>  New H26:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(66).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__last by:
          4294967295.
<S>  New H27:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 4294967295
-S-  Applied substitution rule skein_512_pr_rules(83).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H7:  src_offset <= 2147483591
-S-  Applied substitution rule skein_512_pr_rules(97).
     This was achieved by replacing all occurrences of hash_bit_length__first 
          by:
          0.
<S>  New H15:  fld_hash_bit_len(fld_h(ctx)) >= 0
-S-  Applied substitution rule skein_512_pr_rules(98).
     This was achieved by replacing all occurrences of hash_bit_length__last by:
          2147483640.
<S>  New H16:  fld_hash_bit_len(fld_h(ctx)) <= 2147483640
-S-  Applied substitution rule skein_512_pr_rules(102).
     This was achieved by replacing all occurrences of 
          initialized_hash_bit_length__first by:
          1.
<S>  New H37:  fld_hash_bit_len(fld_h(ctx~)) >= 1
-S-  Applied substitution rule skein_512_pr_rules(103).
     This was achieved by replacing all occurrences of 
          initialized_hash_bit_length__last by:
          2147483640.
<S>  New H38:  fld_hash_bit_len(fld_h(ctx~)) <= 2147483640
-S-  Applied substitution rule skein_512_pr_rules(107).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__first by:
          0.
<S>  New H12:  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 skein_512_pr_rules(108).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__last by:
          7.
<S>  New 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)
-S-  Applied substitution rule skein_512_pr_rules(112).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_count__first by:
          0.
<S>  New H39:  fld_byte_count(fld_h(ctx~)) >= 0
-S-  Applied substitution rule skein_512_pr_rules(113).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_count__last by:
          64.
<S>  New H40:  fld_byte_count(fld_h(ctx~)) <= 64
-S-  Applied substitution rule skein_512_pr_rules(117).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__first by:
          0.
<S>  New H11:  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 skein_512_pr_rules(118).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__last by:
          63.
<S>  New 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)
-S-  Applied substitution rule skein_512_pr_rules(122).
     This was achieved by replacing all occurrences of 
          positive_block_512_count_t__first by:
          1.
<S>  New H33:  block_count >= 1
-S-  Applied substitution rule skein_512_pr_rules(123).
     This was achieved by replacing all occurrences of 
          positive_block_512_count_t__last by:
          33554431.
<S>  New H34:  block_count <= 33554431
***  Proved C3:  byte_count_add >= 0
     using hypothesis H35.
***  Proved C4:  byte_count_add <= 18446744073709551615
     using hypothesis H36.
***  Proved C1:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + 
          byte_count_add) mod 18446744073709551616 >= 0
***  Proved C2:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + 
          byte_count_add) mod 18446744073709551616 <= 18446744073709551615
***  PROVED VC.


@@@@@@@@@@  VC: procedure_skein_512_process_block_6.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  fld_hash_bit_len(fld_h(ctx)) = fld_hash_bit_len(fld_h(ctx~))
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  fld_byte_count(fld_h(ctx)) = fld_byte_count(fld_h(ctx~))
%%%  Simplified H11 on reading formula in, to give:
     %%%  H11:  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 H12 on reading formula in, to give:
     %%%  H12:  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 H30 on reading formula in, to give:
     %%%  H30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 
          spark__unsigned__byte__first <= element(block, [i___1]) and element(
          block, [i___1]) <= spark__unsigned__byte__last)
%%%  Simplified H37 on reading formula in, to give:
     %%%  H37:  fld_hash_bit_len(fld_h(ctx~)) >= 
          initialized_hash_bit_length__first
%%%  Simplified H38 on reading formula in, to give:
     %%%  H38:  fld_hash_bit_len(fld_h(ctx~)) <= 
          initialized_hash_bit_length__last
%%%  Simplified H39 on reading formula in, to give:
     %%%  H39:  fld_byte_count(fld_h(ctx~)) >= 
          skein_512_block_bytes_count__first
%%%  Simplified H40 on reading formula in, to give:
     %%%  H40:  fld_byte_count(fld_h(ctx~)) <= skein_512_block_bytes_count__last
---  Hypothesis H42 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H44 has been replaced by "true".  (It is already present, as H9)
          .
%%%  Simplified H50 on reading formula in, to give:
     %%%  H50:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> spark__unsigned__u64__first <= 
          element(ks__1, [i___1]) and element(ks__1, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H51 on reading formula in, to give:
     %%%  H51:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> spark__unsigned__u64__first <= 
          element(ts__2, [i___1]) and element(ts__2, [i___1]) <= 
          spark__unsigned__u64__last)
***  Proved C1:  src_offset >= natural__first
     using hypothesis H52.
***  Proved C2:  src_offset <= natural__last
     using hypothesis H53.
***  Proved C3:  block__index__subtype__1__first = 0
     using hypothesis H41.
***  Proved C5:  src_offset <= block__index__subtype__1__last
     using hypothesis H6.
***  Proved C8:  src_offset + 7 <= block__index__subtype__1__last
     using hypothesis H6.
***  Proved C9:  src_offset + spark__crypto__i8__last * 8 <= natural__last
     using hypothesis H7.
-S-  Applied substitution rule skein_512_pr_rules(1).
     This was achieved by replacing all occurrences of skein_512_block_bytes_c 
          by:
          64.
<S>  New H5:  src_offset = starting_offset + (j - 1) * 64
<S>  New H8:  starting_offset + (block_count - 1) * 64 + 63 <= 
          block__index__subtype__1__last
<S>  New H10:  j < block_count -> src_offset + 64 <= natural__last
-S-  Applied substitution rule skein_512_pr_rules(8).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H13:  fld_byte_count(fld_h(ctx)) >= 0
<S>  New H31:  starting_offset >= 0
<S>  New H35:  byte_count_add >= 0
<S>  New H52:  src_offset >= 0
-S-  Applied substitution rule skein_512_pr_rules(9).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H7:  src_offset + spark__crypto__i8__last * 8 <= 2147483647
<S>  New H9:  block__index__subtype__1__last <= 2147483647
<S>  New H14:  fld_byte_count(fld_h(ctx)) <= 2147483647
<S>  New H32:  starting_offset <= 2147483647
<S>  New H36:  byte_count_add <= 2147483647
<S>  New H45:  starting_offset <= 2147483584
<S>  New H53:  src_offset <= 2147483647
<S>  New H10:  j < block_count -> src_offset <= 2147483583
-S-  Applied substitution rule skein_512_pr_rules(39).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New H46:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + 
          byte_count_add) mod 18446744073709551616 >= 
          spark__unsigned__u64__first
<S>  New H47:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + 
          byte_count_add) mod 18446744073709551616 <= spark__unsigned__u64__last
-S-  Applied substitution rule skein_512_pr_rules(41).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__first by:
          0.
<S>  New H19:  fld_field_type(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(42).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__last by:
          63.
<S>  New H20:  fld_field_type(fld_tweak_words(fld_h(ctx))) <= 63
-S-  Applied substitution rule skein_512_pr_rules(47).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__first by:
          0.
<S>  New H22:  fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(48).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__last by:
          127.
<S>  New H23:  fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 127
-S-  Applied substitution rule skein_512_pr_rules(53).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__first by:
          0.
<S>  New H11:  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>  New H30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 0 <= element(
          block, [i___1]) and element(block, [i___1]) <= 
          spark__unsigned__byte__last)
-S-  Applied substitution rule skein_512_pr_rules(54).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__last by:
          255.
<S>  New H11:  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>  New H30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 0 <= element(
          block, [i___1]) and element(block, [i___1]) <= 255)
-S-  Applied substitution rule skein_512_pr_rules(59).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__first by:
          0.
<S>  New H24:  fld_reserved(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(60).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__last by:
          65535.
<S>  New H25:  fld_reserved(fld_tweak_words(fld_h(ctx))) <= 65535
-S-  Applied substitution rule skein_512_pr_rules(65).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__first by:
          0.
<S>  New H26:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(66).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__last by:
          4294967295.
<S>  New H27:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 4294967295
-S-  Applied substitution rule skein_512_pr_rules(71).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H12:  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 H28:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New H48:  byte_count_add >= 0
<S>  New H50:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> 0 <= element(ks__1, [i___1]) and 
          element(ks__1, [i___1]) <= spark__unsigned__u64__last)
<S>  New H51:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> 0 <= element(ts__2, [i___1]) and 
          element(ts__2, [i___1]) <= spark__unsigned__u64__last)
<S>  New H46:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + 
          byte_count_add) mod 18446744073709551616 >= 0
-S-  Applied substitution rule skein_512_pr_rules(72).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H29:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
          18446744073709551615
<S>  New H49:  byte_count_add <= 18446744073709551615
<S>  New H47:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + 
          byte_count_add) mod 18446744073709551616 <= 18446744073709551615
<S>  New H12:  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 H50:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> 0 <= element(ks__1, [i___1]) and 
          element(ks__1, [i___1]) <= 18446744073709551615)
<S>  New H51:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> 0 <= element(ts__2, [i___1]) and 
          element(ts__2, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(77).
     This was achieved by replacing all occurrences of spark__crypto__i3__first 
          by:
          0.
<S>  New H51:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i3__last -> 0 <= element(ts__2, [i___1]) and element(
          ts__2, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(78).
     This was achieved by replacing all occurrences of spark__crypto__i3__last 
          by:
          2.
<S>  New H51:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 2 -> 0 <= 
          element(ts__2, [i___1]) and element(ts__2, [i___1]) <= 
          18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(82).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New C4:  true
-S-  Applied substitution rule skein_512_pr_rules(83).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H7:  src_offset <= 2147483591
<S>  New C6:  src_offset + 56 + 7 >= block__index__subtype__1__first
<S>  New C7:  src_offset + 56 + 7 <= block__index__subtype__1__last
-S-  Applied substitution rule skein_512_pr_rules(87).
     This was achieved by replacing all occurrences of spark__crypto__i9__first 
          by:
          0.
<S>  New H50:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i9__last -> 0 <= element(ks__1, [i___1]) and element(
          ks__1, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(88).
     This was achieved by replacing all occurrences of spark__crypto__i9__last 
          by:
          8.
<S>  New H50:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 8 -> 0 <= 
          element(ks__1, [i___1]) and element(ks__1, [i___1]) <= 
          18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(97).
     This was achieved by replacing all occurrences of hash_bit_length__first 
          by:
          0.
<S>  New H15:  fld_hash_bit_len(fld_h(ctx)) >= 0
-S-  Applied substitution rule skein_512_pr_rules(98).
     This was achieved by replacing all occurrences of hash_bit_length__last by:
          2147483640.
<S>  New H16:  fld_hash_bit_len(fld_h(ctx)) <= 2147483640
-S-  Applied substitution rule skein_512_pr_rules(102).
     This was achieved by replacing all occurrences of 
          initialized_hash_bit_length__first by:
          1.
<S>  New H37:  fld_hash_bit_len(fld_h(ctx~)) >= 1
-S-  Applied substitution rule skein_512_pr_rules(103).
     This was achieved by replacing all occurrences of 
          initialized_hash_bit_length__last by:
          2147483640.
<S>  New H38:  fld_hash_bit_len(fld_h(ctx~)) <= 2147483640
-S-  Applied substitution rule skein_512_pr_rules(107).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__first by:
          0.
<S>  New H12:  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 skein_512_pr_rules(108).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__last by:
          7.
<S>  New 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)
-S-  Applied substitution rule skein_512_pr_rules(112).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_count__first by:
          0.
<S>  New H39:  fld_byte_count(fld_h(ctx~)) >= 0
-S-  Applied substitution rule skein_512_pr_rules(113).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_count__last by:
          64.
<S>  New H40:  fld_byte_count(fld_h(ctx~)) <= 64
-S-  Applied substitution rule skein_512_pr_rules(117).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__first by:
          0.
<S>  New H11:  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 skein_512_pr_rules(118).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__last by:
          63.
<S>  New 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)
-S-  Applied substitution rule skein_512_pr_rules(122).
     This was achieved by replacing all occurrences of 
          positive_block_512_count_t__first by:
          1.
<S>  New H33:  block_count >= 1
-S-  Applied substitution rule skein_512_pr_rules(123).
     This was achieved by replacing all occurrences of 
          positive_block_512_count_t__last by:
          33554431.
<S>  New H34:  block_count <= 33554431
%%%  Simplified C6 further, to give:
     %%%  C6:  src_offset + 63 >= block__index__subtype__1__first
%%%  Simplified C7 further, to give:
     %%%  C7:  src_offset + 63 <= block__index__subtype__1__last
***  Proved C4:  true
***  Proved C6:  src_offset + 63 >= block__index__subtype__1__first
     using hypotheses H41 & H52.
***  Proved C7:  src_offset + 63 <= block__index__subtype__1__last
     using hypothesis H6.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_skein_512_process_block_7.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  fld_hash_bit_len(fld_h(ctx)) = fld_hash_bit_len(fld_h(ctx~))
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  fld_byte_count(fld_h(ctx)) = fld_byte_count(fld_h(ctx~))
%%%  Simplified H11 on reading formula in, to give:
     %%%  H11:  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 H12 on reading formula in, to give:
     %%%  H12:  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 H30 on reading formula in, to give:
     %%%  H30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 
          spark__unsigned__byte__first <= element(block, [i___1]) and element(
          block, [i___1]) <= spark__unsigned__byte__last)
%%%  Simplified H37 on reading formula in, to give:
     %%%  H37:  fld_hash_bit_len(fld_h(ctx~)) >= 
          initialized_hash_bit_length__first
%%%  Simplified H38 on reading formula in, to give:
     %%%  H38:  fld_hash_bit_len(fld_h(ctx~)) <= 
          initialized_hash_bit_length__last
%%%  Simplified H39 on reading formula in, to give:
     %%%  H39:  fld_byte_count(fld_h(ctx~)) >= 
          skein_512_block_bytes_count__first
%%%  Simplified H40 on reading formula in, to give:
     %%%  H40:  fld_byte_count(fld_h(ctx~)) <= skein_512_block_bytes_count__last
---  Hypothesis H42 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H44 has been replaced by "true".  (It is already present, as H9)
          .
%%%  Simplified H50 on reading formula in, to give:
     %%%  H50:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> spark__unsigned__u64__first <= 
          element(ks__1, [i___1]) and element(ks__1, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H51 on reading formula in, to give:
     %%%  H51:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> spark__unsigned__u64__first <= 
          element(ts__2, [i___1]) and element(ts__2, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H52).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H53).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H41).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as H7)
          .
%%%  Simplified H63 on reading formula in, to give:
     %%%  H63:  for_all(i_ : integer, spark__crypto__i8__first <= i_ and i_ <= 
          spark__crypto__i8__last -> spark__unsigned__u64__first <= element(
          w__3, [i_]) and element(w__3, [i_]) <= spark__unsigned__u64__last)
%%%  Simplified H64 on reading formula in, to give:
     %%%  H64:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(w__3, [i___1]) and element(w__3, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  for_all(i_ : integer, spark__crypto__i8__first <= i_ and i_ <= 
          spark__crypto__i8__last -> spark__unsigned__u64__first <= element(
          w__3, [i_]) and element(w__3, [i_]) <= spark__unsigned__u64__last)
***  Proved C1:  for_all(i_ : integer, spark__crypto__i8__first <= i_ and i_ <= 
          spark__crypto__i8__last -> spark__unsigned__u64__first <= element(
          w__3, [i_]) and element(w__3, [i_]) <= spark__unsigned__u64__last)
     using hypothesis H63.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_skein_512_process_block_8.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  fld_hash_bit_len(fld_h(ctx)) = fld_hash_bit_len(fld_h(ctx~))
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  fld_byte_count(fld_h(ctx)) = fld_byte_count(fld_h(ctx~))
%%%  Simplified H11 on reading formula in, to give:
     %%%  H11:  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 H12 on reading formula in, to give:
     %%%  H12:  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 H30 on reading formula in, to give:
     %%%  H30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 
          spark__unsigned__byte__first <= element(block, [i___1]) and element(
          block, [i___1]) <= spark__unsigned__byte__last)
%%%  Simplified H37 on reading formula in, to give:
     %%%  H37:  fld_hash_bit_len(fld_h(ctx~)) >= 
          initialized_hash_bit_length__first
%%%  Simplified H38 on reading formula in, to give:
     %%%  H38:  fld_hash_bit_len(fld_h(ctx~)) <= 
          initialized_hash_bit_length__last
%%%  Simplified H39 on reading formula in, to give:
     %%%  H39:  fld_byte_count(fld_h(ctx~)) >= 
          skein_512_block_bytes_count__first
%%%  Simplified H40 on reading formula in, to give:
     %%%  H40:  fld_byte_count(fld_h(ctx~)) <= skein_512_block_bytes_count__last
---  Hypothesis H42 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H44 has been replaced by "true".  (It is already present, as H9)
          .
%%%  Simplified H50 on reading formula in, to give:
     %%%  H50:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> spark__unsigned__u64__first <= 
          element(ks__1, [i___1]) and element(ks__1, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H51 on reading formula in, to give:
     %%%  H51:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> spark__unsigned__u64__first <= 
          element(ts__2, [i___1]) and element(ts__2, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H52).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H53).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H41).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as H7)
          .
%%%  Simplified H63 on reading formula in, to give:
     %%%  H63:  for_all(i_ : integer, spark__crypto__i8__first <= i_ and i_ <= 
          spark__crypto__i8__last -> spark__unsigned__u64__first <= element(
          w__3, [i_]) and element(w__3, [i_]) <= spark__unsigned__u64__last)
%%%  Simplified H64 on reading formula in, to give:
     %%%  H64:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(w__3, [i___1]) and element(w__3, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H65 has been replaced by "true".  (It is already present, as 
          H63).
%%%  Simplified H66 on reading formula in, to give:
     %%%  H66:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x__4, [i___1]) and element(x__4, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H67 on reading formula in, to give:
     %%%  H67:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x__5, [i___1]) and element(x__5, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H68 on reading formula in, to give:
     %%%  H68:  fld_hash_bit_len(fld_h(ctx__6)) = fld_hash_bit_len(fld_h(ctx))
%%%  Simplified H69 on reading formula in, to give:
     %%%  H69:  fld_byte_count(fld_h(ctx__6)) = fld_byte_count(fld_h(ctx))
%%%  Simplified H70 on reading formula in, to give:
     %%%  H70:  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__6), [i___2]) and 
          element(fld_b(ctx__6), [i___2]) <= spark__unsigned__byte__last)
%%%  Simplified H71 on reading formula in, to give:
     %%%  H71:  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__6), [i___1]) and 
          element(fld_x(ctx__6), [i___1]) <= spark__unsigned__u64__last)
---  Hypothesis H92 has been replaced by "true".  (It is already present, as 
          H89).
---  Hypothesis H93 has been replaced by "true".  (It is already present, as 
          H90).
***  Proved C1:  j + 1 >= positive_block_512_count_t__first
     using hypothesis H89.
-S-  Applied substitution rule skein_512_pr_rules(123).
     This was achieved by replacing all occurrences of 
          positive_block_512_count_t__last by:
          33554431.
<S>  New H34:  block_count <= 33554431
<S>  New H90:  j <= 33554431
<S>  New C2:  j <= 33554430
***  Proved C2:  j <= 33554430
     using hypotheses H34 & H91.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_skein_512_process_block_9.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  fld_hash_bit_len(fld_h(ctx)) = fld_hash_bit_len(fld_h(ctx~))
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  fld_byte_count(fld_h(ctx)) = fld_byte_count(fld_h(ctx~))
%%%  Simplified H11 on reading formula in, to give:
     %%%  H11:  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 H12 on reading formula in, to give:
     %%%  H12:  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 H30 on reading formula in, to give:
     %%%  H30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 
          spark__unsigned__byte__first <= element(block, [i___1]) and element(
          block, [i___1]) <= spark__unsigned__byte__last)
%%%  Simplified H37 on reading formula in, to give:
     %%%  H37:  fld_hash_bit_len(fld_h(ctx~)) >= 
          initialized_hash_bit_length__first
%%%  Simplified H38 on reading formula in, to give:
     %%%  H38:  fld_hash_bit_len(fld_h(ctx~)) <= 
          initialized_hash_bit_length__last
%%%  Simplified H39 on reading formula in, to give:
     %%%  H39:  fld_byte_count(fld_h(ctx~)) >= 
          skein_512_block_bytes_count__first
%%%  Simplified H40 on reading formula in, to give:
     %%%  H40:  fld_byte_count(fld_h(ctx~)) <= skein_512_block_bytes_count__last
---  Hypothesis H42 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H44 has been replaced by "true".  (It is already present, as H9)
          .
%%%  Simplified H50 on reading formula in, to give:
     %%%  H50:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> spark__unsigned__u64__first <= 
          element(ks__1, [i___1]) and element(ks__1, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H51 on reading formula in, to give:
     %%%  H51:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> spark__unsigned__u64__first <= 
          element(ts__2, [i___1]) and element(ts__2, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H52).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H53).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H41).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as H7)
          .
%%%  Simplified H63 on reading formula in, to give:
     %%%  H63:  for_all(i_ : integer, spark__crypto__i8__first <= i_ and i_ <= 
          spark__crypto__i8__last -> spark__unsigned__u64__first <= element(
          w__3, [i_]) and element(w__3, [i_]) <= spark__unsigned__u64__last)
%%%  Simplified H64 on reading formula in, to give:
     %%%  H64:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(w__3, [i___1]) and element(w__3, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H65 has been replaced by "true".  (It is already present, as 
          H63).
%%%  Simplified H66 on reading formula in, to give:
     %%%  H66:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x__4, [i___1]) and element(x__4, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H67 on reading formula in, to give:
     %%%  H67:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x__5, [i___1]) and element(x__5, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H68 on reading formula in, to give:
     %%%  H68:  fld_hash_bit_len(fld_h(ctx__6)) = fld_hash_bit_len(fld_h(ctx))
%%%  Simplified H69 on reading formula in, to give:
     %%%  H69:  fld_byte_count(fld_h(ctx__6)) = fld_byte_count(fld_h(ctx))
%%%  Simplified H70 on reading formula in, to give:
     %%%  H70:  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__6), [i___2]) and 
          element(fld_b(ctx__6), [i___2]) <= spark__unsigned__byte__last)
%%%  Simplified H71 on reading formula in, to give:
     %%%  H71:  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__6), [i___1]) and 
          element(fld_x(ctx__6), [i___1]) <= spark__unsigned__u64__last)
---  Hypothesis H92 has been replaced by "true".  (It is already present, as 
          H89).
---  Hypothesis H93 has been replaced by "true".  (It is already present, as 
          H90).
---  Hypothesis H96 has been replaced by "true".  (It is already present, as 
          H52).
---  Hypothesis H97 has been replaced by "true".  (It is already present, as 
          H53).
-S-  Applied substitution rule skein_512_pr_rules(8).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H13:  fld_byte_count(fld_h(ctx)) >= 0
<S>  New H31:  starting_offset >= 0
<S>  New H35:  byte_count_add >= 0
<S>  New H52:  src_offset >= 0
<S>  New H72:  fld_byte_count(fld_h(ctx__6)) >= 0
<S>  New C1:  src_offset + skein_512_block_bytes_c >= 0
-S-  Applied substitution rule skein_512_pr_rules(9).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H7:  src_offset + spark__crypto__i8__last * 8 <= 2147483647
<S>  New H9:  block__index__subtype__1__last <= 2147483647
<S>  New H10:  j < block_count -> src_offset + skein_512_block_bytes_c <= 
          2147483647
<S>  New H14:  fld_byte_count(fld_h(ctx)) <= 2147483647
<S>  New H32:  starting_offset <= 2147483647
<S>  New H36:  byte_count_add <= 2147483647
<S>  New H45:  starting_offset <= 2147483584
<S>  New H53:  src_offset <= 2147483647
<S>  New H73:  fld_byte_count(fld_h(ctx__6)) <= 2147483647
<S>  New C2:  src_offset + skein_512_block_bytes_c <= 2147483647
>>>  Restructured hypothesis H91 into:
     >>>  H91:  j < block_count
+++  Using "A->B, A |- B" on hypotheses H10 & H91 yields a new hypothesis:
     +++  H98:  src_offset + skein_512_block_bytes_c <= 2147483647
-S-  Applied substitution rule skein_512_pr_rules(1).
     This was achieved by replacing all occurrences of skein_512_block_bytes_c 
          by:
          64.
<S>  New H5:  src_offset = starting_offset + (j - 1) * 64
<S>  New H8:  starting_offset + (block_count - 1) * 64 + 63 <= 
          block__index__subtype__1__last
<S>  New H10:  j < block_count -> src_offset <= 2147483583
<S>  New H98:  src_offset <= 2147483583
<S>  New C1:  src_offset >= - 64
<S>  New C2:  src_offset <= 2147483583
-S-  Applied substitution rule skein_512_pr_rules(39).
     This was achieved by replacing all occurrences of 
          interfaces__unsigned_64__modulus by:
          18446744073709551616.
<S>  New H46:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + 
          byte_count_add) mod 18446744073709551616 >= 
          spark__unsigned__u64__first
<S>  New H47:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + 
          byte_count_add) mod 18446744073709551616 <= spark__unsigned__u64__last
-S-  Applied substitution rule skein_512_pr_rules(41).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__first by:
          0.
<S>  New H19:  fld_field_type(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New H78:  fld_field_type(fld_tweak_words(fld_h(ctx__6))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(42).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__last by:
          63.
<S>  New H20:  fld_field_type(fld_tweak_words(fld_h(ctx))) <= 63
<S>  New H79:  fld_field_type(fld_tweak_words(fld_h(ctx__6))) <= 63
-S-  Applied substitution rule skein_512_pr_rules(47).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__first by:
          0.
<S>  New H22:  fld_tree_level(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New H81:  fld_tree_level(fld_tweak_words(fld_h(ctx__6))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(48).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__last by:
          127.
<S>  New H23:  fld_tree_level(fld_tweak_words(fld_h(ctx))) <= 127
<S>  New H82:  fld_tree_level(fld_tweak_words(fld_h(ctx__6))) <= 127
-S-  Applied substitution rule skein_512_pr_rules(53).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__first by:
          0.
<S>  New H11:  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>  New H30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 0 <= element(
          block, [i___1]) and element(block, [i___1]) <= 
          spark__unsigned__byte__last)
<S>  New H70:  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__6), [i___2]) and element(fld_b(ctx__6), [i___2]) <= 
          spark__unsigned__byte__last)
-S-  Applied substitution rule skein_512_pr_rules(54).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__last by:
          255.
<S>  New H11:  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>  New H30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 0 <= element(
          block, [i___1]) and element(block, [i___1]) <= 255)
<S>  New H70:  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__6), [i___2]) and element(fld_b(ctx__6), [i___2]) <= 255)
-S-  Applied substitution rule skein_512_pr_rules(59).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__first by:
          0.
<S>  New H24:  fld_reserved(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New H83:  fld_reserved(fld_tweak_words(fld_h(ctx__6))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(60).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__last by:
          65535.
<S>  New H25:  fld_reserved(fld_tweak_words(fld_h(ctx))) <= 65535
<S>  New H84:  fld_reserved(fld_tweak_words(fld_h(ctx__6))) <= 65535
-S-  Applied substitution rule skein_512_pr_rules(65).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__first by:
          0.
<S>  New H26:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New H85:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx__6))) >= 0
-S-  Applied substitution rule skein_512_pr_rules(66).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__last by:
          4294967295.
<S>  New H27:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx))) <= 4294967295
<S>  New H86:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx__6))) <= 4294967295
-S-  Applied substitution rule skein_512_pr_rules(71).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H12:  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 H28:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) >= 0
<S>  New H48:  byte_count_add >= 0
<S>  New H50:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> 0 <= element(ks__1, [i___1]) and 
          element(ks__1, [i___1]) <= spark__unsigned__u64__last)
<S>  New H51:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> 0 <= element(ts__2, [i___1]) and 
          element(ts__2, [i___1]) <= spark__unsigned__u64__last)
<S>  New H63:  for_all(i_ : integer, spark__crypto__i8__first <= i_ and i_ <= 
          spark__crypto__i8__last -> 0 <= element(w__3, [i_]) and element(w__3, 
          [i_]) <= spark__unsigned__u64__last)
<S>  New H64:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(w__3, [i___1]) and 
          element(w__3, [i___1]) <= spark__unsigned__u64__last)
<S>  New H66:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x__4, [i___1]) and 
          element(x__4, [i___1]) <= spark__unsigned__u64__last)
<S>  New H67:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x__5, [i___1]) and 
          element(x__5, [i___1]) <= spark__unsigned__u64__last)
<S>  New H71:  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__6), [i___1]) and element(fld_x(ctx__6), [i___1]) <= 
          spark__unsigned__u64__last)
<S>  New H87:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__6))) >= 0
<S>  New H46:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + 
          byte_count_add) mod 18446744073709551616 >= 0
-S-  Applied substitution rule skein_512_pr_rules(72).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H29:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) <= 
          18446744073709551615
<S>  New H49:  byte_count_add <= 18446744073709551615
<S>  New H88:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__6))) <= 
          18446744073709551615
<S>  New H47:  (fld_byte_count_lsb(fld_tweak_words(fld_h(ctx))) + 
          byte_count_add) mod 18446744073709551616 <= 18446744073709551615
<S>  New H12:  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 H50:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> 0 <= element(ks__1, [i___1]) and 
          element(ks__1, [i___1]) <= 18446744073709551615)
<S>  New H51:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> 0 <= element(ts__2, [i___1]) and 
          element(ts__2, [i___1]) <= 18446744073709551615)
<S>  New H63:  for_all(i_ : integer, spark__crypto__i8__first <= i_ and i_ <= 
          spark__crypto__i8__last -> 0 <= element(w__3, [i_]) and element(w__3, 
          [i_]) <= 18446744073709551615)
<S>  New H64:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(w__3, [i___1]) and 
          element(w__3, [i___1]) <= 18446744073709551615)
<S>  New H66:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x__4, [i___1]) and 
          element(x__4, [i___1]) <= 18446744073709551615)
<S>  New H67:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> 0 <= element(x__5, [i___1]) and 
          element(x__5, [i___1]) <= 18446744073709551615)
<S>  New H71:  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__6), [i___1]) and element(fld_x(ctx__6), [i___1]) <= 
          18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(77).
     This was achieved by replacing all occurrences of spark__crypto__i3__first 
          by:
          0.
<S>  New H51:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i3__last -> 0 <= element(ts__2, [i___1]) and element(
          ts__2, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(78).
     This was achieved by replacing all occurrences of spark__crypto__i3__last 
          by:
          2.
<S>  New H51:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 2 -> 0 <= 
          element(ts__2, [i___1]) and element(ts__2, [i___1]) <= 
          18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(82).
     This was achieved by replacing all occurrences of spark__crypto__i8__first 
          by:
          0.
<S>  New H57:  true
<S>  New H63:  for_all(i_ : integer, 0 <= i_ and i_ <= spark__crypto__i8__last 
          -> 0 <= element(w__3, [i_]) and element(w__3, [i_]) <= 
          18446744073709551615)
<S>  New H64:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(w__3, [i___1]) and element(
          w__3, [i___1]) <= 18446744073709551615)
<S>  New H66:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(x__4, [i___1]) and element(
          x__4, [i___1]) <= 18446744073709551615)
<S>  New H67:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i8__last -> 0 <= element(x__5, [i___1]) and element(
          x__5, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(83).
     This was achieved by replacing all occurrences of spark__crypto__i8__last 
          by:
          7.
<S>  New H7:  src_offset <= 2147483591
<S>  New H59:  src_offset + 56 + 7 >= block__index__subtype__1__first
<S>  New H60:  src_offset + 56 + 7 <= block__index__subtype__1__last
<S>  New H63:  for_all(i_ : integer, 0 <= i_ and i_ <= 7 -> 0 <= element(w__3, [
          i_]) and element(w__3, [i_]) <= 18446744073709551615)
<S>  New H64:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(w__3, [i___1]) and element(w__3, [i___1]) <= 
          18446744073709551615)
<S>  New H66:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(x__4, [i___1]) and element(x__4, [i___1]) <= 
          18446744073709551615)
<S>  New H67:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(x__5, [i___1]) and element(x__5, [i___1]) <= 
          18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(87).
     This was achieved by replacing all occurrences of spark__crypto__i9__first 
          by:
          0.
<S>  New H50:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          spark__crypto__i9__last -> 0 <= element(ks__1, [i___1]) and element(
          ks__1, [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(88).
     This was achieved by replacing all occurrences of spark__crypto__i9__last 
          by:
          8.
<S>  New H50:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 8 -> 0 <= 
          element(ks__1, [i___1]) and element(ks__1, [i___1]) <= 
          18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(97).
     This was achieved by replacing all occurrences of hash_bit_length__first 
          by:
          0.
<S>  New H15:  fld_hash_bit_len(fld_h(ctx)) >= 0
<S>  New H74:  fld_hash_bit_len(fld_h(ctx__6)) >= 0
-S-  Applied substitution rule skein_512_pr_rules(98).
     This was achieved by replacing all occurrences of hash_bit_length__last by:
          2147483640.
<S>  New H16:  fld_hash_bit_len(fld_h(ctx)) <= 2147483640
<S>  New H75:  fld_hash_bit_len(fld_h(ctx__6)) <= 2147483640
-S-  Applied substitution rule skein_512_pr_rules(102).
     This was achieved by replacing all occurrences of 
          initialized_hash_bit_length__first by:
          1.
<S>  New H37:  fld_hash_bit_len(fld_h(ctx~)) >= 1
-S-  Applied substitution rule skein_512_pr_rules(103).
     This was achieved by replacing all occurrences of 
          initialized_hash_bit_length__last by:
          2147483640.
<S>  New H38:  fld_hash_bit_len(fld_h(ctx~)) <= 2147483640
-S-  Applied substitution rule skein_512_pr_rules(107).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__first by:
          0.
<S>  New H12:  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 H71:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          skein_512_state_words_index__last -> 0 <= element(fld_x(ctx__6), [
          i___1]) and element(fld_x(ctx__6), [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(108).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__last by:
          7.
<S>  New 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)
<S>  New H71:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(fld_x(ctx__6), [i___1]) and element(fld_x(ctx__6), [i___1]) 
          <= 18446744073709551615)
-S-  Applied substitution rule skein_512_pr_rules(112).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_count__first by:
          0.
<S>  New H39:  fld_byte_count(fld_h(ctx~)) >= 0
-S-  Applied substitution rule skein_512_pr_rules(113).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_count__last by:
          64.
<S>  New H40:  fld_byte_count(fld_h(ctx~)) <= 64
-S-  Applied substitution rule skein_512_pr_rules(117).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__first by:
          0.
<S>  New H11:  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>  New H70:  for_all(i___2 : integer, 0 <= i___2 and i___2 <= 
          skein_512_block_bytes_index__last -> 0 <= element(fld_b(ctx__6), [
          i___2]) and element(fld_b(ctx__6), [i___2]) <= 255)
-S-  Applied substitution rule skein_512_pr_rules(118).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__last by:
          63.
<S>  New 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)
<S>  New H70:  for_all(i___2 : integer, 0 <= i___2 and i___2 <= 63 -> 0 <= 
          element(fld_b(ctx__6), [i___2]) and element(fld_b(ctx__6), [i___2]) 
          <= 255)
-S-  Applied substitution rule skein_512_pr_rules(122).
     This was achieved by replacing all occurrences of 
          positive_block_512_count_t__first by:
          1.
<S>  New H33:  block_count >= 1
<S>  New H89:  j >= 1
<S>  New H94:  j >= 0
-S-  Applied substitution rule skein_512_pr_rules(123).
     This was achieved by replacing all occurrences of 
          positive_block_512_count_t__last by:
          33554431.
<S>  New H34:  block_count <= 33554431
<S>  New H90:  j <= 33554431
<S>  New H95:  j <= 33554430
%%%  Simplified H59 further, to give:
     %%%  H59:  src_offset + 63 >= block__index__subtype__1__first
%%%  Simplified H60 further, to give:
     %%%  H60:  src_offset + 63 <= block__index__subtype__1__last
***  Proved C1:  src_offset >= - 64
     using hypothesis H52.
***  Proved C2:  src_offset <= 2147483583
     using hypothesis H98.
***  PROVED VC.


@@@@@@@@@@  VC: procedure_skein_512_process_block_10.  @@@@@@@@@@
%%%  Simplified H1 on reading formula in, to give:
     %%%  H1:  fld_hash_bit_len(fld_h(ctx)) = fld_hash_bit_len(fld_h(ctx~))
%%%  Simplified H2 on reading formula in, to give:
     %%%  H2:  fld_byte_count(fld_h(ctx)) = fld_byte_count(fld_h(ctx~))
%%%  Simplified H11 on reading formula in, to give:
     %%%  H11:  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 H12 on reading formula in, to give:
     %%%  H12:  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 H30 on reading formula in, to give:
     %%%  H30:  for_all(i___1 : integer, block__index__subtype__1__first <= 
          i___1 and i___1 <= block__index__subtype__1__last -> 
          spark__unsigned__byte__first <= element(block, [i___1]) and element(
          block, [i___1]) <= spark__unsigned__byte__last)
%%%  Simplified H37 on reading formula in, to give:
     %%%  H37:  fld_hash_bit_len(fld_h(ctx~)) >= 
          initialized_hash_bit_length__first
%%%  Simplified H38 on reading formula in, to give:
     %%%  H38:  fld_hash_bit_len(fld_h(ctx~)) <= 
          initialized_hash_bit_length__last
%%%  Simplified H39 on reading formula in, to give:
     %%%  H39:  fld_byte_count(fld_h(ctx~)) >= 
          skein_512_block_bytes_count__first
%%%  Simplified H40 on reading formula in, to give:
     %%%  H40:  fld_byte_count(fld_h(ctx~)) <= skein_512_block_bytes_count__last
---  Hypothesis H42 has been replaced by "true".  (It is already present, as H8)
          .
---  Hypothesis H44 has been replaced by "true".  (It is already present, as H9)
          .
%%%  Simplified H50 on reading formula in, to give:
     %%%  H50:  for_all(i___1 : integer, spark__crypto__i9__first <= i___1 and 
          i___1 <= spark__crypto__i9__last -> spark__unsigned__u64__first <= 
          element(ks__1, [i___1]) and element(ks__1, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H51 on reading formula in, to give:
     %%%  H51:  for_all(i___1 : integer, spark__crypto__i3__first <= i___1 and 
          i___1 <= spark__crypto__i3__last -> spark__unsigned__u64__first <= 
          element(ts__2, [i___1]) and element(ts__2, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H54 has been replaced by "true".  (It is already present, as 
          H52).
---  Hypothesis H55 has been replaced by "true".  (It is already present, as 
          H53).
---  Hypothesis H56 has been replaced by "true".  (It is already present, as 
          H41).
---  Hypothesis H62 has been replaced by "true".  (It is already present, as H7)
          .
%%%  Simplified H63 on reading formula in, to give:
     %%%  H63:  for_all(i_ : integer, spark__crypto__i8__first <= i_ and i_ <= 
          spark__crypto__i8__last -> spark__unsigned__u64__first <= element(
          w__3, [i_]) and element(w__3, [i_]) <= spark__unsigned__u64__last)
%%%  Simplified H64 on reading formula in, to give:
     %%%  H64:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(w__3, [i___1]) and element(w__3, [i___1]) <= 
          spark__unsigned__u64__last)
---  Hypothesis H65 has been replaced by "true".  (It is already present, as 
          H63).
%%%  Simplified H66 on reading formula in, to give:
     %%%  H66:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x__4, [i___1]) and element(x__4, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H67 on reading formula in, to give:
     %%%  H67:  for_all(i___1 : integer, spark__crypto__i8__first <= i___1 and 
          i___1 <= spark__crypto__i8__last -> spark__unsigned__u64__first <= 
          element(x__5, [i___1]) and element(x__5, [i___1]) <= 
          spark__unsigned__u64__last)
%%%  Simplified H68 on reading formula in, to give:
     %%%  H68:  fld_hash_bit_len(fld_h(ctx__6)) = fld_hash_bit_len(fld_h(ctx))
%%%  Simplified H69 on reading formula in, to give:
     %%%  H69:  fld_byte_count(fld_h(ctx__6)) = fld_byte_count(fld_h(ctx))
%%%  Simplified H70 on reading formula in, to give:
     %%%  H70:  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__6), [i___2]) and 
          element(fld_b(ctx__6), [i___2]) <= spark__unsigned__byte__last)
%%%  Simplified H71 on reading formula in, to give:
     %%%  H71:  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__6), [i___1]) and 
          element(fld_x(ctx__6), [i___1]) <= spark__unsigned__u64__last)
%%%  Simplified C1 on reading formula in, to give:
     %%%  C1:  fld_hash_bit_len(fld_h(ctx__6)) >= 
          initialized_hash_bit_length__first
%%%  Simplified C2 on reading formula in, to give:
     %%%  C2:  fld_hash_bit_len(fld_h(ctx__6)) <= 
          initialized_hash_bit_length__last
%%%  Simplified C3 on reading formula in, to give:
     %%%  C3:  fld_hash_bit_len(fld_h(ctx__6)) = fld_hash_bit_len(fld_h(ctx~))
%%%  Simplified C4 on reading formula in, to give:
     %%%  C4:  fld_byte_count(fld_h(ctx__6)) >= 
          skein_512_block_bytes_count__first
%%%  Simplified C5 on reading formula in, to give:
     %%%  C5:  fld_byte_count(fld_h(ctx__6)) <= 
          skein_512_block_bytes_count__last
%%%  Simplified C6 on reading formula in, to give:
     %%%  C6:  fld_byte_count(fld_h(ctx__6)) = fld_byte_count(fld_h(ctx~))
***  Proved C1:  fld_hash_bit_len(fld_h(ctx__6)) >= 
          initialized_hash_bit_length__first
     using hypotheses H1, H37 & H68.
***  Proved C2:  fld_hash_bit_len(fld_h(ctx__6)) <= 
          initialized_hash_bit_length__last
     using hypotheses H1, H38 & H68.
***  Proved C3:  fld_hash_bit_len(fld_h(ctx__6)) = fld_hash_bit_len(fld_h(ctx~))
     using hypotheses H1 & H68.
***  Proved C4:  fld_byte_count(fld_h(ctx__6)) >= 
          skein_512_block_bytes_count__first
     using hypotheses H2, H39 & H69.
***  Proved C5:  fld_byte_count(fld_h(ctx__6)) <= 
          skein_512_block_bytes_count__last
     using hypotheses H2, H40 & H69.
***  Proved C6:  fld_byte_count(fld_h(ctx__6)) = fld_byte_count(fld_h(ctx~))
     using hypotheses H2 & H69.
***  PROVED VC.

