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

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


               /*procedure Skein.Skein_512_Update.Copy_Msg_To_B*/


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

copy_msg_to__rules(1): integer__size >= 0 may_be_deduced.
copy_msg_to__rules(2): integer__first may_be_replaced_by -2147483648.
copy_msg_to__rules(3): integer__last may_be_replaced_by 2147483647.
copy_msg_to__rules(4): integer__base__first may_be_replaced_by -2147483648.
copy_msg_to__rules(5): integer__base__last may_be_replaced_by 2147483647.
copy_msg_to__rules(6): natural__size >= 0 may_be_deduced.
copy_msg_to__rules(7): natural__first may_be_replaced_by 0.
copy_msg_to__rules(8): natural__last may_be_replaced_by 2147483647.
copy_msg_to__rules(9): natural__base__first may_be_replaced_by -2147483648.
copy_msg_to__rules(10): natural__base__last may_be_replaced_by 2147483647.
copy_msg_to__rules(11): interfaces__unsigned_8__size >= 0 may_be_deduced.
copy_msg_to__rules(12): interfaces__unsigned_8__size may_be_replaced_by 8.
copy_msg_to__rules(13): interfaces__unsigned_8__first may_be_replaced_by 0.
copy_msg_to__rules(14): interfaces__unsigned_8__last may_be_replaced_by 255.
copy_msg_to__rules(15): interfaces__unsigned_8__base__first may_be_replaced_by 0.
copy_msg_to__rules(16): interfaces__unsigned_8__base__last may_be_replaced_by 255.
copy_msg_to__rules(17): interfaces__unsigned_8__modulus may_be_replaced_by 256.
copy_msg_to__rules(18): interfaces__unsigned_16__size >= 0 may_be_deduced.
copy_msg_to__rules(19): interfaces__unsigned_16__size may_be_replaced_by 16.
copy_msg_to__rules(20): interfaces__unsigned_16__first may_be_replaced_by 0.
copy_msg_to__rules(21): interfaces__unsigned_16__last may_be_replaced_by 65535.
copy_msg_to__rules(22): interfaces__unsigned_16__base__first may_be_replaced_by 0.
copy_msg_to__rules(23): interfaces__unsigned_16__base__last may_be_replaced_by 65535.
copy_msg_to__rules(24): interfaces__unsigned_16__modulus may_be_replaced_by 65536.
copy_msg_to__rules(25): interfaces__unsigned_32__size >= 0 may_be_deduced.
copy_msg_to__rules(26): interfaces__unsigned_32__size may_be_replaced_by 32.
copy_msg_to__rules(27): interfaces__unsigned_32__first may_be_replaced_by 0.
copy_msg_to__rules(28): interfaces__unsigned_32__last may_be_replaced_by 4294967295.
copy_msg_to__rules(29): interfaces__unsigned_32__base__first may_be_replaced_by 0.
copy_msg_to__rules(30): interfaces__unsigned_32__base__last may_be_replaced_by 4294967295.
copy_msg_to__rules(31): interfaces__unsigned_32__modulus may_be_replaced_by 4294967296.
copy_msg_to__rules(32): interfaces__unsigned_64__size >= 0 may_be_deduced.
copy_msg_to__rules(33): interfaces__unsigned_64__size may_be_replaced_by 64.
copy_msg_to__rules(34): interfaces__unsigned_64__first may_be_replaced_by 0.
copy_msg_to__rules(35): interfaces__unsigned_64__last may_be_replaced_by 18446744073709551615.
copy_msg_to__rules(36): interfaces__unsigned_64__base__first may_be_replaced_by 0.
copy_msg_to__rules(37): interfaces__unsigned_64__base__last may_be_replaced_by 18446744073709551615.
copy_msg_to__rules(38): interfaces__unsigned_64__modulus may_be_replaced_by 18446744073709551616.
copy_msg_to__rules(39): spark__unsigned__u6__size >= 0 may_be_deduced.
copy_msg_to__rules(40): spark__unsigned__u6__first may_be_replaced_by 0.
copy_msg_to__rules(41): spark__unsigned__u6__last may_be_replaced_by 63.
copy_msg_to__rules(42): spark__unsigned__u6__base__first may_be_replaced_by 0.
copy_msg_to__rules(43): spark__unsigned__u6__base__last may_be_replaced_by 63.
copy_msg_to__rules(44): spark__unsigned__u6__modulus may_be_replaced_by 64.
copy_msg_to__rules(45): spark__unsigned__u7__size >= 0 may_be_deduced.
copy_msg_to__rules(46): spark__unsigned__u7__first may_be_replaced_by 0.
copy_msg_to__rules(47): spark__unsigned__u7__last may_be_replaced_by 127.
copy_msg_to__rules(48): spark__unsigned__u7__base__first may_be_replaced_by 0.
copy_msg_to__rules(49): spark__unsigned__u7__base__last may_be_replaced_by 127.
copy_msg_to__rules(50): spark__unsigned__u7__modulus may_be_replaced_by 128.
copy_msg_to__rules(51): spark__unsigned__byte__size >= 0 may_be_deduced.
copy_msg_to__rules(52): spark__unsigned__byte__first may_be_replaced_by 0.
copy_msg_to__rules(53): spark__unsigned__byte__last may_be_replaced_by 255.
copy_msg_to__rules(54): spark__unsigned__byte__base__first may_be_replaced_by 0.
copy_msg_to__rules(55): spark__unsigned__byte__base__last may_be_replaced_by 255.
copy_msg_to__rules(56): spark__unsigned__byte__modulus may_be_replaced_by 256.
copy_msg_to__rules(57): spark__unsigned__u16__size >= 0 may_be_deduced.
copy_msg_to__rules(58): spark__unsigned__u16__first may_be_replaced_by 0.
copy_msg_to__rules(59): spark__unsigned__u16__last may_be_replaced_by 65535.
copy_msg_to__rules(60): spark__unsigned__u16__base__first may_be_replaced_by 0.
copy_msg_to__rules(61): spark__unsigned__u16__base__last may_be_replaced_by 65535.
copy_msg_to__rules(62): spark__unsigned__u16__modulus may_be_replaced_by 65536.
copy_msg_to__rules(63): spark__unsigned__u32__size >= 0 may_be_deduced.
copy_msg_to__rules(64): spark__unsigned__u32__first may_be_replaced_by 0.
copy_msg_to__rules(65): spark__unsigned__u32__last may_be_replaced_by 4294967295.
copy_msg_to__rules(66): spark__unsigned__u32__base__first may_be_replaced_by 0.
copy_msg_to__rules(67): spark__unsigned__u32__base__last may_be_replaced_by 4294967295.
copy_msg_to__rules(68): spark__unsigned__u32__modulus may_be_replaced_by 4294967296.
copy_msg_to__rules(69): spark__unsigned__u64__size >= 0 may_be_deduced.
copy_msg_to__rules(70): spark__unsigned__u64__first may_be_replaced_by 0.
copy_msg_to__rules(71): spark__unsigned__u64__last may_be_replaced_by 18446744073709551615.
copy_msg_to__rules(72): spark__unsigned__u64__base__first may_be_replaced_by 0.
copy_msg_to__rules(73): spark__unsigned__u64__base__last may_be_replaced_by 18446744073709551615.
copy_msg_to__rules(74): spark__unsigned__u64__modulus may_be_replaced_by 18446744073709551616.
copy_msg_to__rules(75): spark__crypto__word_count_t__size >= 0 may_be_deduced.
copy_msg_to__rules(76): spark__crypto__word_count_t__first may_be_replaced_by 0.
copy_msg_to__rules(77): spark__crypto__word_count_t__last may_be_replaced_by 268435455.
copy_msg_to__rules(78): spark__crypto__word_count_t__base__first may_be_replaced_by -2147483648.
copy_msg_to__rules(79): spark__crypto__word_count_t__base__last may_be_replaced_by 2147483647.
copy_msg_to__rules(80): hash_bit_length__size >= 0 may_be_deduced.
copy_msg_to__rules(81): hash_bit_length__first may_be_replaced_by 0.
copy_msg_to__rules(82): hash_bit_length__last may_be_replaced_by 2147483640.
copy_msg_to__rules(83): hash_bit_length__base__first may_be_replaced_by -2147483648.
copy_msg_to__rules(84): hash_bit_length__base__last may_be_replaced_by 2147483647.
copy_msg_to__rules(85): skein_512_state_words_index__size >= 0 may_be_deduced.
copy_msg_to__rules(86): skein_512_state_words_index__first may_be_replaced_by 0.
copy_msg_to__rules(87): skein_512_state_words_index__last may_be_replaced_by 7.
copy_msg_to__rules(88): skein_512_state_words_index__base__first may_be_replaced_by -2147483648.
copy_msg_to__rules(89): skein_512_state_words_index__base__last may_be_replaced_by 2147483647.
copy_msg_to__rules(90): skein_512_block_bytes_count__size >= 0 may_be_deduced.
copy_msg_to__rules(91): skein_512_block_bytes_count__first may_be_replaced_by 0.
copy_msg_to__rules(92): skein_512_block_bytes_count__last may_be_replaced_by 64.
copy_msg_to__rules(93): skein_512_block_bytes_count__base__first may_be_replaced_by -2147483648.
copy_msg_to__rules(94): skein_512_block_bytes_count__base__last may_be_replaced_by 2147483647.
copy_msg_to__rules(95): skein_512_block_bytes_index__size >= 0 may_be_deduced.
copy_msg_to__rules(96): skein_512_block_bytes_index__first may_be_replaced_by 0.
copy_msg_to__rules(97): skein_512_block_bytes_index__last may_be_replaced_by 63.
copy_msg_to__rules(98): skein_512_block_bytes_index__base__first may_be_replaced_by -2147483648.
copy_msg_to__rules(99): skein_512_block_bytes_index__base__last may_be_replaced_by 2147483647.
copy_msg_to__rules(100): skein_512_context__size >= 0 may_be_deduced.
copy_msg_to__rules(101): 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)].
copy_msg_to__rules(102): msg__index__subtype__1__first >= natural__first may_be_deduced.
copy_msg_to__rules(103): msg__index__subtype__1__last <= natural__last may_be_deduced.
copy_msg_to__rules(104): msg__index__subtype__1__first <= 
     msg__index__subtype__1__last may_be_deduced.
copy_msg_to__rules(105): msg__index__subtype__1__last >= natural__first may_be_deduced.
copy_msg_to__rules(106): msg__index__subtype__1__first <= natural__last may_be_deduced.
copy_msg_to__rules(107): tweak_value__size >= 0 may_be_deduced.
copy_msg_to__rules(108): tweak_value__size may_be_replaced_by 128.
copy_msg_to__rules(109): 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)].
copy_msg_to__rules(110): context_header__size >= 0 may_be_deduced.
copy_msg_to__rules(111): 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)].
