           /*********************************************************/
                           /*Proof Rule Declarations*/
                             /*Examiner Pro Edition*/

           /*********************************************************/


                       /*procedure Skein.Skein_512_Init*/


rule_family skein_512_in_rules:
     X      requires [X:any] &
     X <= Y requires [X:ire, Y:ire] &
     X >= Y requires [X:ire, Y:ire].

skein_512_in_rules(1): skein_512_block_bytes_c may_be_replaced_by 64.
skein_512_in_rules(2): skein_block_type_cfg may_be_replaced_by 4.
skein_512_in_rules(3): skein_block_type_msg may_be_replaced_by 48.
skein_512_in_rules(4): spark__unsigned__u64__first <= fld_byte_count_lsb(fld_tweak_words(fld_h(null_skein_512_context))) may_be_deduced.
skein_512_in_rules(5): fld_byte_count_lsb(fld_tweak_words(fld_h(null_skein_512_context))) <= 
     spark__unsigned__u64__last may_be_deduced.
skein_512_in_rules(6): spark__unsigned__u32__first <= fld_byte_count_msb(fld_tweak_words(fld_h(null_skein_512_context))) may_be_deduced.
skein_512_in_rules(7): fld_byte_count_msb(fld_tweak_words(fld_h(null_skein_512_context))) <= 
     spark__unsigned__u32__last may_be_deduced.
skein_512_in_rules(8): spark__unsigned__u16__first <= fld_reserved(fld_tweak_words(fld_h(null_skein_512_context))) may_be_deduced.
skein_512_in_rules(9): fld_reserved(fld_tweak_words(fld_h(null_skein_512_context))) <= 
     spark__unsigned__u16__last may_be_deduced.
skein_512_in_rules(10): spark__unsigned__u7__first <= fld_tree_level(fld_tweak_words(fld_h(null_skein_512_context))) may_be_deduced.
skein_512_in_rules(11): fld_tree_level(fld_tweak_words(fld_h(null_skein_512_context))) <= 
     spark__unsigned__u7__last may_be_deduced.
skein_512_in_rules(12): spark__unsigned__u6__first <= fld_field_type(fld_tweak_words(fld_h(null_skein_512_context))) may_be_deduced.
skein_512_in_rules(13): fld_field_type(fld_tweak_words(fld_h(null_skein_512_context))) <= 
     spark__unsigned__u6__last may_be_deduced.
skein_512_in_rules(14): hash_bit_length__first <= fld_hash_bit_len(fld_h(null_skein_512_context)) may_be_deduced.
skein_512_in_rules(15): fld_hash_bit_len(fld_h(null_skein_512_context)) <= 
     hash_bit_length__last may_be_deduced.
skein_512_in_rules(16): natural__first <= fld_byte_count(fld_h(null_skein_512_context)) may_be_deduced.
skein_512_in_rules(17): fld_byte_count(fld_h(null_skein_512_context)) <= 
     natural__last may_be_deduced.
skein_512_in_rules(18): spark__unsigned__u64__first <= element(fld_x(null_skein_512_context), [I]) may_be_deduced_from [0 <= I, I <= 7].
skein_512_in_rules(19): element(fld_x(null_skein_512_context), [I]) <= 
     spark__unsigned__u64__last may_be_deduced_from [0 <= I, I <= 7].
skein_512_in_rules(20): spark__unsigned__byte__first <= element(fld_b(null_skein_512_context), [I]) may_be_deduced_from [0 <= I, I <= 63].
skein_512_in_rules(21): element(fld_b(null_skein_512_context), [I]) <= 
     spark__unsigned__byte__last may_be_deduced_from [0 <= I, I <= 63].
skein_512_in_rules(22): skein_schema_ver may_be_replaced_by 5154883667.
skein_512_in_rules(23): skein_cfg_tree_info_sequential may_be_replaced_by 0.
skein_512_in_rules(24): skein_cfg_str_len may_be_replaced_by 32.
skein_512_in_rules(25): integer__size >= 0 may_be_deduced.
skein_512_in_rules(26): integer__first may_be_replaced_by -2147483648.
skein_512_in_rules(27): integer__last may_be_replaced_by 2147483647.
skein_512_in_rules(28): integer__base__first may_be_replaced_by -2147483648.
skein_512_in_rules(29): integer__base__last may_be_replaced_by 2147483647.
skein_512_in_rules(30): natural__size >= 0 may_be_deduced.
skein_512_in_rules(31): natural__first may_be_replaced_by 0.
skein_512_in_rules(32): natural__last may_be_replaced_by 2147483647.
skein_512_in_rules(33): natural__base__first may_be_replaced_by -2147483648.
skein_512_in_rules(34): natural__base__last may_be_replaced_by 2147483647.
skein_512_in_rules(35): interfaces__unsigned_8__size >= 0 may_be_deduced.
skein_512_in_rules(36): interfaces__unsigned_8__size may_be_replaced_by 8.
skein_512_in_rules(37): interfaces__unsigned_8__first may_be_replaced_by 0.
skein_512_in_rules(38): interfaces__unsigned_8__last may_be_replaced_by 255.
skein_512_in_rules(39): interfaces__unsigned_8__base__first may_be_replaced_by 0.
skein_512_in_rules(40): interfaces__unsigned_8__base__last may_be_replaced_by 255.
skein_512_in_rules(41): interfaces__unsigned_8__modulus may_be_replaced_by 256.
skein_512_in_rules(42): interfaces__unsigned_16__size >= 0 may_be_deduced.
skein_512_in_rules(43): interfaces__unsigned_16__size may_be_replaced_by 16.
skein_512_in_rules(44): interfaces__unsigned_16__first may_be_replaced_by 0.
skein_512_in_rules(45): interfaces__unsigned_16__last may_be_replaced_by 65535.
skein_512_in_rules(46): interfaces__unsigned_16__base__first may_be_replaced_by 0.
skein_512_in_rules(47): interfaces__unsigned_16__base__last may_be_replaced_by 65535.
skein_512_in_rules(48): interfaces__unsigned_16__modulus may_be_replaced_by 65536.
skein_512_in_rules(49): interfaces__unsigned_32__size >= 0 may_be_deduced.
skein_512_in_rules(50): interfaces__unsigned_32__size may_be_replaced_by 32.
skein_512_in_rules(51): interfaces__unsigned_32__first may_be_replaced_by 0.
skein_512_in_rules(52): interfaces__unsigned_32__last may_be_replaced_by 4294967295.
skein_512_in_rules(53): interfaces__unsigned_32__base__first may_be_replaced_by 0.
skein_512_in_rules(54): interfaces__unsigned_32__base__last may_be_replaced_by 4294967295.
skein_512_in_rules(55): interfaces__unsigned_32__modulus may_be_replaced_by 4294967296.
skein_512_in_rules(56): interfaces__unsigned_64__size >= 0 may_be_deduced.
skein_512_in_rules(57): interfaces__unsigned_64__size may_be_replaced_by 64.
skein_512_in_rules(58): interfaces__unsigned_64__first may_be_replaced_by 0.
skein_512_in_rules(59): interfaces__unsigned_64__last may_be_replaced_by 18446744073709551615.
skein_512_in_rules(60): interfaces__unsigned_64__base__first may_be_replaced_by 0.
skein_512_in_rules(61): interfaces__unsigned_64__base__last may_be_replaced_by 18446744073709551615.
skein_512_in_rules(62): interfaces__unsigned_64__modulus may_be_replaced_by 18446744073709551616.
skein_512_in_rules(63): spark__unsigned__u6__size >= 0 may_be_deduced.
skein_512_in_rules(64): spark__unsigned__u6__first may_be_replaced_by 0.
skein_512_in_rules(65): spark__unsigned__u6__last may_be_replaced_by 63.
skein_512_in_rules(66): spark__unsigned__u6__base__first may_be_replaced_by 0.
skein_512_in_rules(67): spark__unsigned__u6__base__last may_be_replaced_by 63.
skein_512_in_rules(68): spark__unsigned__u6__modulus may_be_replaced_by 64.
skein_512_in_rules(69): spark__unsigned__u7__size >= 0 may_be_deduced.
skein_512_in_rules(70): spark__unsigned__u7__first may_be_replaced_by 0.
skein_512_in_rules(71): spark__unsigned__u7__last may_be_replaced_by 127.
skein_512_in_rules(72): spark__unsigned__u7__base__first may_be_replaced_by 0.
skein_512_in_rules(73): spark__unsigned__u7__base__last may_be_replaced_by 127.
skein_512_in_rules(74): spark__unsigned__u7__modulus may_be_replaced_by 128.
skein_512_in_rules(75): spark__unsigned__byte__size >= 0 may_be_deduced.
skein_512_in_rules(76): spark__unsigned__byte__first may_be_replaced_by 0.
skein_512_in_rules(77): spark__unsigned__byte__last may_be_replaced_by 255.
skein_512_in_rules(78): spark__unsigned__byte__base__first may_be_replaced_by 0.
skein_512_in_rules(79): spark__unsigned__byte__base__last may_be_replaced_by 255.
skein_512_in_rules(80): spark__unsigned__byte__modulus may_be_replaced_by 256.
skein_512_in_rules(81): spark__unsigned__u16__size >= 0 may_be_deduced.
skein_512_in_rules(82): spark__unsigned__u16__first may_be_replaced_by 0.
skein_512_in_rules(83): spark__unsigned__u16__last may_be_replaced_by 65535.
skein_512_in_rules(84): spark__unsigned__u16__base__first may_be_replaced_by 0.
skein_512_in_rules(85): spark__unsigned__u16__base__last may_be_replaced_by 65535.
skein_512_in_rules(86): spark__unsigned__u16__modulus may_be_replaced_by 65536.
skein_512_in_rules(87): spark__unsigned__u32__size >= 0 may_be_deduced.
skein_512_in_rules(88): spark__unsigned__u32__first may_be_replaced_by 0.
skein_512_in_rules(89): spark__unsigned__u32__last may_be_replaced_by 4294967295.
skein_512_in_rules(90): spark__unsigned__u32__base__first may_be_replaced_by 0.
skein_512_in_rules(91): spark__unsigned__u32__base__last may_be_replaced_by 4294967295.
skein_512_in_rules(92): spark__unsigned__u32__modulus may_be_replaced_by 4294967296.
skein_512_in_rules(93): spark__unsigned__u64__size >= 0 may_be_deduced.
skein_512_in_rules(94): spark__unsigned__u64__first may_be_replaced_by 0.
skein_512_in_rules(95): spark__unsigned__u64__last may_be_replaced_by 18446744073709551615.
skein_512_in_rules(96): spark__unsigned__u64__base__first may_be_replaced_by 0.
skein_512_in_rules(97): spark__unsigned__u64__base__last may_be_replaced_by 18446744073709551615.
skein_512_in_rules(98): spark__unsigned__u64__modulus may_be_replaced_by 18446744073709551616.
skein_512_in_rules(99): spark__crypto__word_count_t__size >= 0 may_be_deduced.
skein_512_in_rules(100): spark__crypto__word_count_t__first may_be_replaced_by 0.
skein_512_in_rules(101): spark__crypto__word_count_t__last may_be_replaced_by 268435455.
skein_512_in_rules(102): spark__crypto__word_count_t__base__first may_be_replaced_by -2147483648.
skein_512_in_rules(103): spark__crypto__word_count_t__base__last may_be_replaced_by 2147483647.
skein_512_in_rules(104): hash_bit_length__size >= 0 may_be_deduced.
skein_512_in_rules(105): hash_bit_length__first may_be_replaced_by 0.
skein_512_in_rules(106): hash_bit_length__last may_be_replaced_by 2147483640.
skein_512_in_rules(107): hash_bit_length__base__first may_be_replaced_by -2147483648.
skein_512_in_rules(108): hash_bit_length__base__last may_be_replaced_by 2147483647.
skein_512_in_rules(109): initialized_hash_bit_length__size >= 0 may_be_deduced.
skein_512_in_rules(110): initialized_hash_bit_length__first may_be_replaced_by 1.
skein_512_in_rules(111): initialized_hash_bit_length__last may_be_replaced_by 2147483640.
skein_512_in_rules(112): initialized_hash_bit_length__base__first may_be_replaced_by -2147483648.
skein_512_in_rules(113): initialized_hash_bit_length__base__last may_be_replaced_by 2147483647.
skein_512_in_rules(114): skein_512_state_words_index__size >= 0 may_be_deduced.
skein_512_in_rules(115): skein_512_state_words_index__first may_be_replaced_by 0.
skein_512_in_rules(116): skein_512_state_words_index__last may_be_replaced_by 7.
skein_512_in_rules(117): skein_512_state_words_index__base__first may_be_replaced_by -2147483648.
skein_512_in_rules(118): skein_512_state_words_index__base__last may_be_replaced_by 2147483647.
skein_512_in_rules(119): skein_512_block_bytes_count__size >= 0 may_be_deduced.
skein_512_in_rules(120): skein_512_block_bytes_count__first may_be_replaced_by 0.
skein_512_in_rules(121): skein_512_block_bytes_count__last may_be_replaced_by 64.
skein_512_in_rules(122): skein_512_block_bytes_count__base__first may_be_replaced_by -2147483648.
skein_512_in_rules(123): skein_512_block_bytes_count__base__last may_be_replaced_by 2147483647.
skein_512_in_rules(124): skein_512_block_bytes_index__size >= 0 may_be_deduced.
skein_512_in_rules(125): skein_512_block_bytes_index__first may_be_replaced_by 0.
skein_512_in_rules(126): skein_512_block_bytes_index__last may_be_replaced_by 63.
skein_512_in_rules(127): skein_512_block_bytes_index__base__first may_be_replaced_by -2147483648.
skein_512_in_rules(128): skein_512_block_bytes_index__base__last may_be_replaced_by 2147483647.
skein_512_in_rules(129): skein_512_state_bytes_index__size >= 0 may_be_deduced.
skein_512_in_rules(130): skein_512_state_bytes_index__first may_be_replaced_by 0.
skein_512_in_rules(131): skein_512_state_bytes_index__last may_be_replaced_by 63.
skein_512_in_rules(132): skein_512_state_bytes_index__base__first may_be_replaced_by -2147483648.
skein_512_in_rules(133): skein_512_state_bytes_index__base__last may_be_replaced_by 2147483647.
skein_512_in_rules(134): positive_block_512_count_t__size >= 0 may_be_deduced.
skein_512_in_rules(135): positive_block_512_count_t__first may_be_replaced_by 1.
skein_512_in_rules(136): positive_block_512_count_t__last may_be_replaced_by 33554431.
skein_512_in_rules(137): positive_block_512_count_t__base__first may_be_replaced_by -2147483648.
skein_512_in_rules(138): positive_block_512_count_t__base__last may_be_replaced_by 2147483647.
skein_512_in_rules(139): skein_512_context__size >= 0 may_be_deduced.
skein_512_in_rules(140): A = B may_be_deduced_from
     [goal(checktype(A,skein_512_context)),
      goal(checktype(B,skein_512_context)),
      fld_h(A) = fld_h(B),
      fld_x(A) = fld_x(B),
      fld_b(A) = fld_b(B)].
skein_512_in_rules(141): tweak_value__size >= 0 may_be_deduced.
skein_512_in_rules(142): tweak_value__size may_be_replaced_by 128.
skein_512_in_rules(143): A = B may_be_deduced_from
     [goal(checktype(A,tweak_value)),
      goal(checktype(B,tweak_value)),
      fld_byte_count_lsb(A) = fld_byte_count_lsb(B),
      fld_byte_count_msb(A) = fld_byte_count_msb(B),
      fld_reserved(A) = fld_reserved(B),
      fld_tree_level(A) = fld_tree_level(B),
      fld_bit_pad(A) = fld_bit_pad(B),
      fld_field_type(A) = fld_field_type(B),
      fld_first_block(A) = fld_first_block(B),
      fld_final_block(A) = fld_final_block(B)].
skein_512_in_rules(144): context_header__size >= 0 may_be_deduced.
skein_512_in_rules(145): A = B may_be_deduced_from
     [goal(checktype(A,context_header)),
      goal(checktype(B,context_header)),
      fld_tweak_words(A) = fld_tweak_words(B),
      fld_hash_bit_len(A) = fld_hash_bit_len(B),
      fld_byte_count(A) = fld_byte_count(B)].
