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

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



SPARK Simplifier Pro Edition


function Skein.Skein_512_Hash






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


@@@@@@@@@@  VC: function_skein_512_hash_1.  @@@@@@@@@@
%%%  Simplified H3 on reading formula in, to give:
     %%%  H3:  for_all(i___1 : integer, data__index__subtype__1__first <= i___1 
          and i___1 <= data__index__subtype__1__last -> 
          spark__unsigned__byte__first <= element(data, [i___1]) and element(
          data, [i___1]) <= spark__unsigned__byte__last)
-S-  Applied substitution rule skein_512_ha_rules(87).
     This was achieved by replacing all occurrences of 
          initialized_hash_bit_length__first by:
          1.
<S>  New C1:  true
-S-  Applied substitution rule skein_512_ha_rules(88).
     This was achieved by replacing all occurrences of 
          initialized_hash_bit_length__last by:
          2147483640.
<S>  New C2:  true
***  Proved C1:  true
***  Proved C2:  true
***  PROVED VC.


@@@@@@@@@@  VC: function_skein_512_hash_2.  @@@@@@@@@@
%%%  Simplified H3 on reading formula in, to give:
     %%%  H3:  for_all(i___1 : integer, data__index__subtype__1__first <= i___1 
          and i___1 <= data__index__subtype__1__last -> 
          spark__unsigned__byte__first <= element(data, [i___1]) and element(
          data, [i___1]) <= spark__unsigned__byte__last)
%%%  Simplified H12 on reading formula in, to give:
     %%%  H12:  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__1), [i___2]) and 
          element(fld_b(ctx__1), [i___2]) <= spark__unsigned__byte__last)
%%%  Simplified H13 on reading formula in, to give:
     %%%  H13:  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__1), [i___1]) and 
          element(fld_x(ctx__1), [i___1]) <= spark__unsigned__u64__last)
---  Hypothesis H31 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H13).
---  Hypothesis H33 has been replaced by "true".  (It is already present, as 
          H14).
---  Hypothesis H34 has been replaced by "true".  (It is already present, as 
          H15).
---  Hypothesis H35 has been replaced by "true".  (It is already present, as 
          H16).
---  Hypothesis H36 has been replaced by "true".  (It is already present, as 
          H17).
---  Hypothesis H39 has been replaced by "true".  (It is already present, as 
          H20).
---  Hypothesis H40 has been replaced by "true".  (It is already present, as 
          H21).
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H23).
---  Hypothesis H43 has been replaced by "true".  (It is already present, as 
          H24).
---  Hypothesis H44 has been replaced by "true".  (It is already present, as 
          H25).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H26).
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H47 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H48 has been replaced by "true".  (It is already present, as 
          H29).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H30).
***  Proved C1:  fld_hash_bit_len(fld_h(ctx__1)) >= 
          initialized_hash_bit_length__first
     using hypothesis H6.
***  Proved C2:  fld_hash_bit_len(fld_h(ctx__1)) <= 
          initialized_hash_bit_length__last
     using hypothesis H7.
***  Proved C3:  fld_byte_count(fld_h(ctx__1)) >= 
          skein_512_block_bytes_count__first
     using hypothesis H10.
***  Proved C4:  fld_byte_count(fld_h(ctx__1)) <= 
          skein_512_block_bytes_count__last
     using hypothesis H11.
***  Proved C5:  data__index__subtype__1__first = 0
     using hypothesis H1.
-S-  Applied substitution rule skein_512_ha_rules(9).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H2:  data__index__subtype__1__last + skein_512_block_bytes_c < 
          2147483647
<S>  New H15:  fld_byte_count(fld_h(ctx__1)) <= 2147483647
<S>  New C6:  data__index__subtype__1__last < 2147483647
<S>  New C7:  data__index__subtype__1__last + skein_512_block_bytes_c <= 
          2147483646
***  Proved C7:  data__index__subtype__1__last + skein_512_block_bytes_c <= 
          2147483646
     using hypothesis H2.
-S-  Applied substitution rule skein_512_ha_rules(1).
     This was achieved by replacing all occurrences of skein_512_block_bytes_c 
          by:
          64.
<S>  New H2:  data__index__subtype__1__last < 2147483583
-S-  Applied substitution rule skein_512_ha_rules(8).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H14:  fld_byte_count(fld_h(ctx__1)) >= 0
-S-  Applied substitution rule skein_512_ha_rules(41).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__first by:
          0.
<S>  New H20:  fld_field_type(fld_tweak_words(fld_h(ctx__1))) >= 0
-S-  Applied substitution rule skein_512_ha_rules(42).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__last by:
          63.
<S>  New H21:  fld_field_type(fld_tweak_words(fld_h(ctx__1))) <= 63
-S-  Applied substitution rule skein_512_ha_rules(47).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__first by:
          0.
<S>  New H23:  fld_tree_level(fld_tweak_words(fld_h(ctx__1))) >= 0
-S-  Applied substitution rule skein_512_ha_rules(48).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__last by:
          127.
<S>  New H24:  fld_tree_level(fld_tweak_words(fld_h(ctx__1))) <= 127
-S-  Applied substitution rule skein_512_ha_rules(53).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__first by:
          0.
<S>  New H3:  for_all(i___1 : integer, data__index__subtype__1__first <= i___1 
          and i___1 <= data__index__subtype__1__last -> 0 <= element(data, [
          i___1]) and element(data, [i___1]) <= spark__unsigned__byte__last)
<S>  New H12:  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__1), [i___2]) and element(fld_b(ctx__1), [i___2]) <= 
          spark__unsigned__byte__last)
-S-  Applied substitution rule skein_512_ha_rules(54).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__last by:
          255.
<S>  New H3:  for_all(i___1 : integer, data__index__subtype__1__first <= i___1 
          and i___1 <= data__index__subtype__1__last -> 0 <= element(data, [
          i___1]) and element(data, [i___1]) <= 255)
<S>  New H12:  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__1), [i___2]) and element(fld_b(ctx__1), [i___2]) <= 255)
-S-  Applied substitution rule skein_512_ha_rules(59).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__first by:
          0.
<S>  New H25:  fld_reserved(fld_tweak_words(fld_h(ctx__1))) >= 0
-S-  Applied substitution rule skein_512_ha_rules(60).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__last by:
          65535.
<S>  New H26:  fld_reserved(fld_tweak_words(fld_h(ctx__1))) <= 65535
-S-  Applied substitution rule skein_512_ha_rules(65).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__first by:
          0.
<S>  New H27:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx__1))) >= 0
-S-  Applied substitution rule skein_512_ha_rules(66).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__last by:
          4294967295.
<S>  New H28:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx__1))) <= 4294967295
-S-  Applied substitution rule skein_512_ha_rules(71).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H13:  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__1), [i___1]) and element(fld_x(ctx__1), [i___1]) <= 
          spark__unsigned__u64__last)
<S>  New H29:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__1))) >= 0
-S-  Applied substitution rule skein_512_ha_rules(72).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H30:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__1))) <= 
          18446744073709551615
<S>  New H13:  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__1), [i___1]) and element(fld_x(ctx__1), [i___1]) <= 
          18446744073709551615)
-S-  Applied substitution rule skein_512_ha_rules(82).
     This was achieved by replacing all occurrences of hash_bit_length__first 
          by:
          0.
<S>  New H16:  fld_hash_bit_len(fld_h(ctx__1)) >= 0
-S-  Applied substitution rule skein_512_ha_rules(83).
     This was achieved by replacing all occurrences of hash_bit_length__last by:
          2147483640.
<S>  New H17:  fld_hash_bit_len(fld_h(ctx__1)) <= 2147483640
-S-  Applied substitution rule skein_512_ha_rules(87).
     This was achieved by replacing all occurrences of 
          initialized_hash_bit_length__first by:
          1.
<S>  New H4:  true
<S>  New H6:  fld_hash_bit_len(fld_h(ctx__1)) >= 1
-S-  Applied substitution rule skein_512_ha_rules(88).
     This was achieved by replacing all occurrences of 
          initialized_hash_bit_length__last by:
          2147483640.
<S>  New H5:  true
<S>  New H7:  fld_hash_bit_len(fld_h(ctx__1)) <= 2147483640
-S-  Applied substitution rule skein_512_ha_rules(92).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__first by:
          0.
<S>  New H13:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          skein_512_state_words_index__last -> 0 <= element(fld_x(ctx__1), [
          i___1]) and element(fld_x(ctx__1), [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule skein_512_ha_rules(93).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__last by:
          7.
<S>  New H13:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(fld_x(ctx__1), [i___1]) and element(fld_x(ctx__1), [i___1]) 
          <= 18446744073709551615)
-S-  Applied substitution rule skein_512_ha_rules(97).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_count__first by:
          0.
<S>  New H10:  fld_byte_count(fld_h(ctx__1)) >= 0
-S-  Applied substitution rule skein_512_ha_rules(98).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_count__last by:
          64.
<S>  New H11:  fld_byte_count(fld_h(ctx__1)) <= 64
-S-  Applied substitution rule skein_512_ha_rules(102).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__first by:
          0.
<S>  New H12:  for_all(i___2 : integer, 0 <= i___2 and i___2 <= 
          skein_512_block_bytes_index__last -> 0 <= element(fld_b(ctx__1), [
          i___2]) and element(fld_b(ctx__1), [i___2]) <= 255)
-S-  Applied substitution rule skein_512_ha_rules(103).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__last by:
          63.
<S>  New H12:  for_all(i___2 : integer, 0 <= i___2 and i___2 <= 63 -> 0 <= 
          element(fld_b(ctx__1), [i___2]) and element(fld_b(ctx__1), [i___2]) 
          <= 255)
***  Proved C6:  data__index__subtype__1__last < 2147483647
     using hypothesis H2.
***  PROVED VC.


@@@@@@@@@@  VC: function_skein_512_hash_3.  @@@@@@@@@@
%%%  Simplified H3 on reading formula in, to give:
     %%%  H3:  for_all(i___1 : integer, data__index__subtype__1__first <= i___1 
          and i___1 <= data__index__subtype__1__last -> 
          spark__unsigned__byte__first <= element(data, [i___1]) and element(
          data, [i___1]) <= spark__unsigned__byte__last)
%%%  Simplified H12 on reading formula in, to give:
     %%%  H12:  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__1), [i___2]) and 
          element(fld_b(ctx__1), [i___2]) <= spark__unsigned__byte__last)
%%%  Simplified H13 on reading formula in, to give:
     %%%  H13:  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__1), [i___1]) and 
          element(fld_x(ctx__1), [i___1]) <= spark__unsigned__u64__last)
---  Hypothesis H31 has been replaced by "true".  (It is already present, as 
          H12).
---  Hypothesis H32 has been replaced by "true".  (It is already present, as 
          H13).
---  Hypothesis H33 has been replaced by "true".  (It is already present, as 
          H14).
---  Hypothesis H34 has been replaced by "true".  (It is already present, as 
          H15).
---  Hypothesis H35 has been replaced by "true".  (It is already present, as 
          H16).
---  Hypothesis H36 has been replaced by "true".  (It is already present, as 
          H17).
---  Hypothesis H39 has been replaced by "true".  (It is already present, as 
          H20).
---  Hypothesis H40 has been replaced by "true".  (It is already present, as 
          H21).
---  Hypothesis H42 has been replaced by "true".  (It is already present, as 
          H23).
---  Hypothesis H43 has been replaced by "true".  (It is already present, as 
          H24).
---  Hypothesis H44 has been replaced by "true".  (It is already present, as 
          H25).
---  Hypothesis H45 has been replaced by "true".  (It is already present, as 
          H26).
---  Hypothesis H46 has been replaced by "true".  (It is already present, as 
          H27).
---  Hypothesis H47 has been replaced by "true".  (It is already present, as 
          H28).
---  Hypothesis H48 has been replaced by "true".  (It is already present, as 
          H29).
---  Hypothesis H49 has been replaced by "true".  (It is already present, as 
          H30).
---  Hypothesis H50 has been replaced by "true".  (It is already present, as H6)
          .
---  Hypothesis H51 has been replaced by "true".  (It is already present, as H7)
          .
---  Hypothesis H52 has been replaced by "true".  (It is already present, as 
          H10).
---  Hypothesis H53 has been replaced by "true".  (It is already present, as 
          H11).
---  Hypothesis H54 has been replaced by "true".  (It is already present, as H1)
          .
%%%  Simplified H62 on reading formula in, to give:
     %%%  H62:  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__2), [i___2]) and 
          element(fld_b(ctx__2), [i___2]) <= spark__unsigned__byte__last)
%%%  Simplified H63 on reading formula in, to give:
     %%%  H63:  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__2), [i___1]) and 
          element(fld_x(ctx__2), [i___1]) <= spark__unsigned__u64__last)
---  Hypothesis H81 has been replaced by "true".  (It is already present, as 
          H62).
---  Hypothesis H82 has been replaced by "true".  (It is already present, as 
          H63).
---  Hypothesis H83 has been replaced by "true".  (It is already present, as 
          H64).
---  Hypothesis H84 has been replaced by "true".  (It is already present, as 
          H65).
---  Hypothesis H85 has been replaced by "true".  (It is already present, as 
          H66).
---  Hypothesis H86 has been replaced by "true".  (It is already present, as 
          H67).
---  Hypothesis H89 has been replaced by "true".  (It is already present, as 
          H70).
---  Hypothesis H90 has been replaced by "true".  (It is already present, as 
          H71).
---  Hypothesis H92 has been replaced by "true".  (It is already present, as 
          H73).
---  Hypothesis H93 has been replaced by "true".  (It is already present, as 
          H74).
---  Hypothesis H94 has been replaced by "true".  (It is already present, as 
          H75).
---  Hypothesis H95 has been replaced by "true".  (It is already present, as 
          H76).
---  Hypothesis H96 has been replaced by "true".  (It is already present, as 
          H77).
---  Hypothesis H97 has been replaced by "true".  (It is already present, as 
          H78).
---  Hypothesis H98 has been replaced by "true".  (It is already present, as 
          H79).
---  Hypothesis H99 has been replaced by "true".  (It is already present, as 
          H80).
***  Proved C1:  fld_hash_bit_len(fld_h(ctx__2)) >= 
          initialized_hash_bit_length__first
     using hypothesis H57.
***  Proved C2:  fld_hash_bit_len(fld_h(ctx__2)) <= 
          initialized_hash_bit_length__last
     using hypothesis H58.
***  Proved C3:  fld_byte_count(fld_h(ctx__2)) >= 
          skein_512_block_bytes_count__first
     using hypothesis H60.
***  Proved C4:  fld_byte_count(fld_h(ctx__2)) <= 
          skein_512_block_bytes_count__last
     using hypothesis H61.
-S-  Applied substitution rule skein_512_ha_rules(1).
     This was achieved by replacing all occurrences of skein_512_block_bytes_c 
          by:
          64.
<S>  New H2:  data__index__subtype__1__last + 64 < natural__last
<S>  New H56:  data__index__subtype__1__last + 65 <= natural__last
-S-  Applied substitution rule skein_512_ha_rules(8).
     This was achieved by replacing all occurrences of natural__first by:
          0.
<S>  New H14:  fld_byte_count(fld_h(ctx__1)) >= 0
<S>  New H64:  fld_byte_count(fld_h(ctx__2)) >= 0
-S-  Applied substitution rule skein_512_ha_rules(9).
     This was achieved by replacing all occurrences of natural__last by:
          2147483647.
<S>  New H15:  fld_byte_count(fld_h(ctx__1)) <= 2147483647
<S>  New H55:  data__index__subtype__1__last < 2147483647
<S>  New H65:  fld_byte_count(fld_h(ctx__2)) <= 2147483647
<S>  New H2:  data__index__subtype__1__last < 2147483583
<S>  New H56:  data__index__subtype__1__last <= 2147483582
-S-  Applied substitution rule skein_512_ha_rules(41).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__first by:
          0.
<S>  New H20:  fld_field_type(fld_tweak_words(fld_h(ctx__1))) >= 0
<S>  New H70:  fld_field_type(fld_tweak_words(fld_h(ctx__2))) >= 0
-S-  Applied substitution rule skein_512_ha_rules(42).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u6__last by:
          63.
<S>  New H21:  fld_field_type(fld_tweak_words(fld_h(ctx__1))) <= 63
<S>  New H71:  fld_field_type(fld_tweak_words(fld_h(ctx__2))) <= 63
-S-  Applied substitution rule skein_512_ha_rules(47).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__first by:
          0.
<S>  New H23:  fld_tree_level(fld_tweak_words(fld_h(ctx__1))) >= 0
<S>  New H73:  fld_tree_level(fld_tweak_words(fld_h(ctx__2))) >= 0
-S-  Applied substitution rule skein_512_ha_rules(48).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u7__last by:
          127.
<S>  New H24:  fld_tree_level(fld_tweak_words(fld_h(ctx__1))) <= 127
<S>  New H74:  fld_tree_level(fld_tweak_words(fld_h(ctx__2))) <= 127
-S-  Applied substitution rule skein_512_ha_rules(53).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__first by:
          0.
<S>  New H3:  for_all(i___1 : integer, data__index__subtype__1__first <= i___1 
          and i___1 <= data__index__subtype__1__last -> 0 <= element(data, [
          i___1]) and element(data, [i___1]) <= spark__unsigned__byte__last)
<S>  New H12:  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__1), [i___2]) and element(fld_b(ctx__1), [i___2]) <= 
          spark__unsigned__byte__last)
<S>  New H62:  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__2), [i___2]) and element(fld_b(ctx__2), [i___2]) <= 
          spark__unsigned__byte__last)
-S-  Applied substitution rule skein_512_ha_rules(54).
     This was achieved by replacing all occurrences of 
          spark__unsigned__byte__last by:
          255.
<S>  New H3:  for_all(i___1 : integer, data__index__subtype__1__first <= i___1 
          and i___1 <= data__index__subtype__1__last -> 0 <= element(data, [
          i___1]) and element(data, [i___1]) <= 255)
<S>  New H12:  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__1), [i___2]) and element(fld_b(ctx__1), [i___2]) <= 255)
<S>  New H62:  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__2), [i___2]) and element(fld_b(ctx__2), [i___2]) <= 255)
-S-  Applied substitution rule skein_512_ha_rules(59).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__first by:
          0.
<S>  New H25:  fld_reserved(fld_tweak_words(fld_h(ctx__1))) >= 0
<S>  New H75:  fld_reserved(fld_tweak_words(fld_h(ctx__2))) >= 0
-S-  Applied substitution rule skein_512_ha_rules(60).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u16__last by:
          65535.
<S>  New H26:  fld_reserved(fld_tweak_words(fld_h(ctx__1))) <= 65535
<S>  New H76:  fld_reserved(fld_tweak_words(fld_h(ctx__2))) <= 65535
-S-  Applied substitution rule skein_512_ha_rules(65).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__first by:
          0.
<S>  New H27:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx__1))) >= 0
<S>  New H77:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx__2))) >= 0
-S-  Applied substitution rule skein_512_ha_rules(66).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u32__last by:
          4294967295.
<S>  New H28:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx__1))) <= 4294967295
<S>  New H78:  fld_byte_count_msb(fld_tweak_words(fld_h(ctx__2))) <= 4294967295
-S-  Applied substitution rule skein_512_ha_rules(71).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__first by:
          0.
<S>  New H13:  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__1), [i___1]) and element(fld_x(ctx__1), [i___1]) <= 
          spark__unsigned__u64__last)
<S>  New H29:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__1))) >= 0
<S>  New H63:  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__2), [i___1]) and element(fld_x(ctx__2), [i___1]) <= 
          spark__unsigned__u64__last)
<S>  New H79:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__2))) >= 0
-S-  Applied substitution rule skein_512_ha_rules(72).
     This was achieved by replacing all occurrences of 
          spark__unsigned__u64__last by:
          18446744073709551615.
<S>  New H30:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__1))) <= 
          18446744073709551615
<S>  New H80:  fld_byte_count_lsb(fld_tweak_words(fld_h(ctx__2))) <= 
          18446744073709551615
<S>  New H13:  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__1), [i___1]) and element(fld_x(ctx__1), [i___1]) <= 
          18446744073709551615)
<S>  New H63:  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__2), [i___1]) and element(fld_x(ctx__2), [i___1]) <= 
          18446744073709551615)
-S-  Applied substitution rule skein_512_ha_rules(82).
     This was achieved by replacing all occurrences of hash_bit_length__first 
          by:
          0.
<S>  New H16:  fld_hash_bit_len(fld_h(ctx__1)) >= 0
<S>  New H66:  fld_hash_bit_len(fld_h(ctx__2)) >= 0
-S-  Applied substitution rule skein_512_ha_rules(83).
     This was achieved by replacing all occurrences of hash_bit_length__last by:
          2147483640.
<S>  New H17:  fld_hash_bit_len(fld_h(ctx__1)) <= 2147483640
<S>  New H67:  fld_hash_bit_len(fld_h(ctx__2)) <= 2147483640
-S-  Applied substitution rule skein_512_ha_rules(87).
     This was achieved by replacing all occurrences of 
          initialized_hash_bit_length__first by:
          1.
<S>  New H4:  true
<S>  New H6:  fld_hash_bit_len(fld_h(ctx__1)) >= 1
<S>  New H57:  fld_hash_bit_len(fld_h(ctx__2)) >= 1
-S-  Applied substitution rule skein_512_ha_rules(88).
     This was achieved by replacing all occurrences of 
          initialized_hash_bit_length__last by:
          2147483640.
<S>  New H5:  true
<S>  New H7:  fld_hash_bit_len(fld_h(ctx__1)) <= 2147483640
<S>  New H58:  fld_hash_bit_len(fld_h(ctx__2)) <= 2147483640
-S-  Applied substitution rule skein_512_ha_rules(92).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__first by:
          0.
<S>  New H13:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          skein_512_state_words_index__last -> 0 <= element(fld_x(ctx__1), [
          i___1]) and element(fld_x(ctx__1), [i___1]) <= 18446744073709551615)
<S>  New H63:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 
          skein_512_state_words_index__last -> 0 <= element(fld_x(ctx__2), [
          i___1]) and element(fld_x(ctx__2), [i___1]) <= 18446744073709551615)
-S-  Applied substitution rule skein_512_ha_rules(93).
     This was achieved by replacing all occurrences of 
          skein_512_state_words_index__last by:
          7.
<S>  New H13:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(fld_x(ctx__1), [i___1]) and element(fld_x(ctx__1), [i___1]) 
          <= 18446744073709551615)
<S>  New H63:  for_all(i___1 : integer, 0 <= i___1 and i___1 <= 7 -> 0 <= 
          element(fld_x(ctx__2), [i___1]) and element(fld_x(ctx__2), [i___1]) 
          <= 18446744073709551615)
-S-  Applied substitution rule skein_512_ha_rules(97).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_count__first by:
          0.
<S>  New H10:  fld_byte_count(fld_h(ctx__1)) >= 0
<S>  New H60:  fld_byte_count(fld_h(ctx__2)) >= 0
-S-  Applied substitution rule skein_512_ha_rules(98).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_count__last by:
          64.
<S>  New H11:  fld_byte_count(fld_h(ctx__1)) <= 64
<S>  New H61:  fld_byte_count(fld_h(ctx__2)) <= 64
-S-  Applied substitution rule skein_512_ha_rules(102).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__first by:
          0.
<S>  New H12:  for_all(i___2 : integer, 0 <= i___2 and i___2 <= 
          skein_512_block_bytes_index__last -> 0 <= element(fld_b(ctx__1), [
          i___2]) and element(fld_b(ctx__1), [i___2]) <= 255)
<S>  New H62:  for_all(i___2 : integer, 0 <= i___2 and i___2 <= 
          skein_512_block_bytes_index__last -> 0 <= element(fld_b(ctx__2), [
          i___2]) and element(fld_b(ctx__2), [i___2]) <= 255)
-S-  Applied substitution rule skein_512_ha_rules(103).
     This was achieved by replacing all occurrences of 
          skein_512_block_bytes_index__last by:
          63.
<S>  New H12:  for_all(i___2 : integer, 0 <= i___2 and i___2 <= 63 -> 0 <= 
          element(fld_b(ctx__1), [i___2]) and element(fld_b(ctx__1), [i___2]) 
          <= 255)
<S>  New H62:  for_all(i___2 : integer, 0 <= i___2 and i___2 <= 63 -> 0 <= 
          element(fld_b(ctx__2), [i___2]) and element(fld_b(ctx__2), [i___2]) 
          <= 255)
-S-  Applied substitution rule skein_512_ha_rules(107).
     This was achieved by replacing all occurrences of 
          skein_512_state_bytes_index__first by:
          0.
<S>  New C5:  true
-S-  Applied substitution rule skein_512_ha_rules(108).
     This was achieved by replacing all occurrences of 
          skein_512_state_bytes_index__last by:
          63.
<S>  New C6:  (fld_hash_bit_len(fld_h(ctx__2)) + 7) div 8 <= 64
***  Proved C5:  true
---  Eliminated hypothesis H18 (true-hypothesis).
---  Eliminated hypothesis H19 (true-hypothesis).
---  Eliminated hypothesis H22 (true-hypothesis).
---  Eliminated hypothesis H31 (true-hypothesis).
---  Eliminated hypothesis H32 (true-hypothesis).
---  Eliminated hypothesis H33 (true-hypothesis).
---  Eliminated hypothesis H34 (true-hypothesis).
---  Eliminated hypothesis H35 (true-hypothesis).
---  Eliminated hypothesis H36 (true-hypothesis).
---  Eliminated hypothesis H37 (true-hypothesis).
---  Eliminated hypothesis H38 (true-hypothesis).
---  Eliminated hypothesis H39 (true-hypothesis).
---  Eliminated hypothesis H40 (true-hypothesis).
---  Eliminated hypothesis H41 (true-hypothesis).
---  Eliminated hypothesis H42 (true-hypothesis).
---  Eliminated hypothesis H43 (true-hypothesis).
---  Eliminated hypothesis H44 (true-hypothesis).
---  Eliminated hypothesis H45 (true-hypothesis).
---  Eliminated hypothesis H46 (true-hypothesis).
---  Eliminated hypothesis H47 (true-hypothesis).
---  Eliminated hypothesis H48 (true-hypothesis).
---  Eliminated hypothesis H49 (true-hypothesis).
---  Eliminated hypothesis H50 (true-hypothesis).
---  Eliminated hypothesis H51 (true-hypothesis).
---  Eliminated hypothesis H52 (true-hypothesis).
---  Eliminated hypothesis H53 (true-hypothesis).
---  Eliminated hypothesis H54 (true-hypothesis).
---  Eliminated hypothesis H68 (true-hypothesis).
---  Eliminated hypothesis H69 (true-hypothesis).
---  Eliminated hypothesis H72 (true-hypothesis).
---  Eliminated hypothesis H81 (true-hypothesis).
---  Eliminated hypothesis H82 (true-hypothesis).
---  Eliminated hypothesis H83 (true-hypothesis).
---  Eliminated hypothesis H84 (true-hypothesis).
---  Eliminated hypothesis H85 (true-hypothesis).
---  Eliminated hypothesis H86 (true-hypothesis).
---  Eliminated hypothesis H87 (true-hypothesis).
---  Eliminated hypothesis H88 (true-hypothesis).
---  Eliminated hypothesis H89 (true-hypothesis).
---  Eliminated hypothesis H90 (true-hypothesis).
---  Eliminated hypothesis H91 (true-hypothesis).
---  Eliminated hypothesis H92 (true-hypothesis).
---  Eliminated hypothesis H93 (true-hypothesis).
---  Eliminated hypothesis H94 (true-hypothesis).
---  Eliminated hypothesis H95 (true-hypothesis).
---  Eliminated hypothesis H96 (true-hypothesis).
---  Eliminated hypothesis H97 (true-hypothesis).
---  Eliminated hypothesis H98 (true-hypothesis).
---  Eliminated hypothesis H99 (true-hypothesis).
---  Eliminated hypothesis H4 (true-hypothesis).
---  Eliminated hypothesis H5 (true-hypothesis).
---  Eliminated hypothesis H17 (duplicate of H7).
---  Eliminated hypothesis H67 (duplicate of H58).
---  Eliminated hypothesis H14 (duplicate of H10).
---  Eliminated hypothesis H64 (duplicate of H60).
---  Eliminated hypothesis H56 (duplicate of H2).
---  Eliminated hypothesis H6 (redundant, given H8).
---  Eliminated hypothesis H7 (redundant, given H8).
---  Eliminated hypothesis H10 (redundant, given H9).
---  Eliminated hypothesis H11 (redundant, given H9).
---  Eliminated hypothesis H15 (redundant, given H9).
---  Eliminated hypothesis H16 (redundant, given H8).
---  Eliminated hypothesis H55 (redundant, given H2).
---  Eliminated hypothesis H57 (redundant, given H8 & H59).
---  Eliminated hypothesis H58 (redundant, given H8 & H59).
---  Eliminated hypothesis H65 (redundant, given H61).
---  Eliminated hypothesis H66 (redundant, given H8 & H59).
-S-  Substituted hypothesis H59.
     This was achieved by replacing all occurrences of fld_hash_bit_len(fld_h(
          ctx__2)) by:
          fld_hash_bit_len(fld_h(ctx__1)).
***  Proved C6:  (fld_hash_bit_len(fld_h(ctx__1)) + 7) div 8 <= 64
     using hypothesis H8.
***  PROVED VC.


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

