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

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


                    /*procedure Skein.Skein_Start_New_Type*/


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

skein_start__rules(1): integer__size >= 0 may_be_deduced.
skein_start__rules(2): integer__first may_be_replaced_by -2147483648.
skein_start__rules(3): integer__last may_be_replaced_by 2147483647.
skein_start__rules(4): integer__base__first may_be_replaced_by -2147483648.
skein_start__rules(5): integer__base__last may_be_replaced_by 2147483647.
skein_start__rules(6): natural__size >= 0 may_be_deduced.
skein_start__rules(7): natural__first may_be_replaced_by 0.
skein_start__rules(8): natural__last may_be_replaced_by 2147483647.
skein_start__rules(9): natural__base__first may_be_replaced_by -2147483648.
skein_start__rules(10): natural__base__last may_be_replaced_by 2147483647.
skein_start__rules(11): interfaces__unsigned_16__size >= 0 may_be_deduced.
skein_start__rules(12): interfaces__unsigned_16__size may_be_replaced_by 16.
skein_start__rules(13): interfaces__unsigned_16__first may_be_replaced_by 0.
skein_start__rules(14): interfaces__unsigned_16__last may_be_replaced_by 65535.
skein_start__rules(15): interfaces__unsigned_16__base__first may_be_replaced_by 0.
skein_start__rules(16): interfaces__unsigned_16__base__last may_be_replaced_by 65535.
skein_start__rules(17): interfaces__unsigned_16__modulus may_be_replaced_by 65536.
skein_start__rules(18): interfaces__unsigned_32__size >= 0 may_be_deduced.
skein_start__rules(19): interfaces__unsigned_32__size may_be_replaced_by 32.
skein_start__rules(20): interfaces__unsigned_32__first may_be_replaced_by 0.
skein_start__rules(21): interfaces__unsigned_32__last may_be_replaced_by 4294967295.
skein_start__rules(22): interfaces__unsigned_32__base__first may_be_replaced_by 0.
skein_start__rules(23): interfaces__unsigned_32__base__last may_be_replaced_by 4294967295.
skein_start__rules(24): interfaces__unsigned_32__modulus may_be_replaced_by 4294967296.
skein_start__rules(25): interfaces__unsigned_64__size >= 0 may_be_deduced.
skein_start__rules(26): interfaces__unsigned_64__size may_be_replaced_by 64.
skein_start__rules(27): interfaces__unsigned_64__first may_be_replaced_by 0.
skein_start__rules(28): interfaces__unsigned_64__last may_be_replaced_by 18446744073709551615.
skein_start__rules(29): interfaces__unsigned_64__base__first may_be_replaced_by 0.
skein_start__rules(30): interfaces__unsigned_64__base__last may_be_replaced_by 18446744073709551615.
skein_start__rules(31): interfaces__unsigned_64__modulus may_be_replaced_by 18446744073709551616.
skein_start__rules(32): spark__unsigned__u6__size >= 0 may_be_deduced.
skein_start__rules(33): spark__unsigned__u6__first may_be_replaced_by 0.
skein_start__rules(34): spark__unsigned__u6__last may_be_replaced_by 63.
skein_start__rules(35): spark__unsigned__u6__base__first may_be_replaced_by 0.
skein_start__rules(36): spark__unsigned__u6__base__last may_be_replaced_by 63.
skein_start__rules(37): spark__unsigned__u6__modulus may_be_replaced_by 64.
skein_start__rules(38): spark__unsigned__u7__size >= 0 may_be_deduced.
skein_start__rules(39): spark__unsigned__u7__first may_be_replaced_by 0.
skein_start__rules(40): spark__unsigned__u7__last may_be_replaced_by 127.
skein_start__rules(41): spark__unsigned__u7__base__first may_be_replaced_by 0.
skein_start__rules(42): spark__unsigned__u7__base__last may_be_replaced_by 127.
skein_start__rules(43): spark__unsigned__u7__modulus may_be_replaced_by 128.
skein_start__rules(44): spark__unsigned__u16__size >= 0 may_be_deduced.
skein_start__rules(45): spark__unsigned__u16__first may_be_replaced_by 0.
skein_start__rules(46): spark__unsigned__u16__last may_be_replaced_by 65535.
skein_start__rules(47): spark__unsigned__u16__base__first may_be_replaced_by 0.
skein_start__rules(48): spark__unsigned__u16__base__last may_be_replaced_by 65535.
skein_start__rules(49): spark__unsigned__u16__modulus may_be_replaced_by 65536.
skein_start__rules(50): spark__unsigned__u32__size >= 0 may_be_deduced.
skein_start__rules(51): spark__unsigned__u32__first may_be_replaced_by 0.
skein_start__rules(52): spark__unsigned__u32__last may_be_replaced_by 4294967295.
skein_start__rules(53): spark__unsigned__u32__base__first may_be_replaced_by 0.
skein_start__rules(54): spark__unsigned__u32__base__last may_be_replaced_by 4294967295.
skein_start__rules(55): spark__unsigned__u32__modulus may_be_replaced_by 4294967296.
skein_start__rules(56): spark__unsigned__u64__size >= 0 may_be_deduced.
skein_start__rules(57): spark__unsigned__u64__first may_be_replaced_by 0.
skein_start__rules(58): spark__unsigned__u64__last may_be_replaced_by 18446744073709551615.
skein_start__rules(59): spark__unsigned__u64__base__first may_be_replaced_by 0.
skein_start__rules(60): spark__unsigned__u64__base__last may_be_replaced_by 18446744073709551615.
skein_start__rules(61): spark__unsigned__u64__modulus may_be_replaced_by 18446744073709551616.
skein_start__rules(62): hash_bit_length__size >= 0 may_be_deduced.
skein_start__rules(63): hash_bit_length__first may_be_replaced_by 0.
skein_start__rules(64): hash_bit_length__last may_be_replaced_by 2147483640.
skein_start__rules(65): hash_bit_length__base__first may_be_replaced_by -2147483648.
skein_start__rules(66): hash_bit_length__base__last may_be_replaced_by 2147483647.
skein_start__rules(67): tweak_value__size >= 0 may_be_deduced.
skein_start__rules(68): tweak_value__size may_be_replaced_by 128.
skein_start__rules(69): 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_start__rules(70): context_header__size >= 0 may_be_deduced.
skein_start__rules(71): 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)].
