           /*********************************************************/
                           /*Proof Rule Declarations*/
                             /*Examiner GPL Edition*/

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


                    /*procedure Parser_Utilities.AddToKey*/


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

addtokey_rules(1): rr_type__dnskey_record_type__maxdnskeylength may_be_replaced_by 1365.
addtokey_rules(2): blank may_be_replaced_by 32.
addtokey_rules(3): tab may_be_replaced_by 9.
addtokey_rules(4): integer__size >= 0 may_be_deduced.
addtokey_rules(5): integer__first may_be_replaced_by -2147483648.
addtokey_rules(6): integer__last may_be_replaced_by 2147483647.
addtokey_rules(7): integer__base__first may_be_replaced_by -2147483648.
addtokey_rules(8): integer__base__last may_be_replaced_by 2147483647.
addtokey_rules(9): character__size >= 0 may_be_deduced.
addtokey_rules(10): character__first may_be_replaced_by 0.
addtokey_rules(11): character__last may_be_replaced_by 255.
addtokey_rules(12): character__base__first may_be_replaced_by 0.
addtokey_rules(13): character__base__last may_be_replaced_by 255.
addtokey_rules(14): positive__size >= 0 may_be_deduced.
addtokey_rules(15): positive__first may_be_replaced_by 1.
addtokey_rules(16): positive__last may_be_replaced_by 2147483647.
addtokey_rules(17): positive__base__first may_be_replaced_by -2147483648.
addtokey_rules(18): positive__base__last may_be_replaced_by 2147483647.
addtokey_rules(19): unsigned_types__unsigned8__size >= 0 may_be_deduced.
addtokey_rules(20): unsigned_types__unsigned8__first may_be_replaced_by 0.
addtokey_rules(21): unsigned_types__unsigned8__last may_be_replaced_by 255.
addtokey_rules(22): unsigned_types__unsigned8__base__first may_be_replaced_by 0.
addtokey_rules(23): unsigned_types__unsigned8__base__last may_be_replaced_by 255.
addtokey_rules(24): unsigned_types__unsigned8__modulus may_be_replaced_by 256.
addtokey_rules(25): unsigned_types__unsigned16__size >= 0 may_be_deduced.
addtokey_rules(26): unsigned_types__unsigned16__first may_be_replaced_by 0.
addtokey_rules(27): unsigned_types__unsigned16__last may_be_replaced_by 65535.
addtokey_rules(28): unsigned_types__unsigned16__base__first may_be_replaced_by 0.
addtokey_rules(29): unsigned_types__unsigned16__base__last may_be_replaced_by 65535.
addtokey_rules(30): unsigned_types__unsigned16__modulus may_be_replaced_by 65536.
addtokey_rules(31): unsigned_types__unsigned32__size >= 0 may_be_deduced.
addtokey_rules(32): unsigned_types__unsigned32__first may_be_replaced_by 0.
addtokey_rules(33): unsigned_types__unsigned32__last may_be_replaced_by 4294967295.
addtokey_rules(34): unsigned_types__unsigned32__base__first may_be_replaced_by 0.
addtokey_rules(35): unsigned_types__unsigned32__base__last may_be_replaced_by 4294967295.
addtokey_rules(36): unsigned_types__unsigned32__modulus may_be_replaced_by 4294967296.
addtokey_rules(37): rr_type__classtype__size >= 0 may_be_deduced.
addtokey_rules(38): rr_type__classtype__first may_be_replaced_by rr_type__internet.
addtokey_rules(39): rr_type__classtype__last may_be_replaced_by rr_type__hs.
addtokey_rules(40): rr_type__classtype__base__first may_be_replaced_by rr_type__internet.
addtokey_rules(41): rr_type__classtype__base__last may_be_replaced_by rr_type__hs.
addtokey_rules(42): rr_type__classtype__pos(rr_type__classtype__first) may_be_replaced_by 0.
addtokey_rules(43): rr_type__classtype__pos(rr_type__internet) may_be_replaced_by 0.
addtokey_rules(44): rr_type__classtype__val(0) may_be_replaced_by 
     rr_type__internet.
addtokey_rules(45): rr_type__classtype__pos(rr_type__cs) may_be_replaced_by 1.
addtokey_rules(46): rr_type__classtype__val(1) may_be_replaced_by 
     rr_type__cs.
addtokey_rules(47): rr_type__classtype__pos(rr_type__ch) may_be_replaced_by 2.
addtokey_rules(48): rr_type__classtype__val(2) may_be_replaced_by 
     rr_type__ch.
addtokey_rules(49): rr_type__classtype__pos(rr_type__hs) may_be_replaced_by 3.
addtokey_rules(50): rr_type__classtype__val(3) may_be_replaced_by 
     rr_type__hs.
addtokey_rules(51): rr_type__classtype__pos(rr_type__classtype__last) may_be_replaced_by 3.
addtokey_rules(52): rr_type__classtype__pos(succ(X)) may_be_replaced_by 
     rr_type__classtype__pos(X) + 1
     if [X <=rr_type__hs, X <> rr_type__hs].
addtokey_rules(53): rr_type__classtype__pos(pred(X)) may_be_replaced_by 
     rr_type__classtype__pos(X) - 1
     if [X >=rr_type__internet, X <> rr_type__internet].
addtokey_rules(54): rr_type__classtype__pos(X) >= 0 may_be_deduced_from
     [rr_type__internet <= X, X <= rr_type__hs].
addtokey_rules(55): rr_type__classtype__pos(X) <= 3 may_be_deduced_from
     [rr_type__internet <= X, X <= rr_type__hs].
addtokey_rules(56): rr_type__classtype__val(X) >= 
     rr_type__internet may_be_deduced_from
     [0 <= X, X <= 3].
addtokey_rules(57): rr_type__classtype__val(X) <= rr_type__hs may_be_deduced_from
     [0 <= X, X <= 3].
addtokey_rules(58): succ(rr_type__classtype__val(X)) may_be_replaced_by 
     rr_type__classtype__val(X+1)
     if [0 <= X, X < 3].
addtokey_rules(59): pred(rr_type__classtype__val(X)) may_be_replaced_by 
     rr_type__classtype__val(X-1)
     if [0 < X, X <= 3].
addtokey_rules(60): rr_type__classtype__pos(rr_type__classtype__val(X)) may_be_replaced_by X
     if [0 <= X, X <= 3].
addtokey_rules(61): rr_type__classtype__val(rr_type__classtype__pos(X)) may_be_replaced_by X
     if [rr_type__internet <= X, X <= rr_type__hs].
addtokey_rules(62): rr_type__classtype__pos(X) <= 
     rr_type__classtype__pos(Y) & X <= Y are_interchangeable 
     if [rr_type__internet <= X, X <= rr_type__hs, 
     rr_type__internet <= Y, Y <= rr_type__hs].
addtokey_rules(63): rr_type__classtype__val(X) <= 
     rr_type__classtype__val(Y) & X <= Y are_interchangeable 
     if [0 <= X, X <= 3, 0 <= Y, Y <= 3].
addtokey_rules(64): rr_type__linelengthindex__size >= 0 may_be_deduced.
addtokey_rules(65): rr_type__linelengthindex__first may_be_replaced_by 1.
addtokey_rules(66): rr_type__linelengthindex__last may_be_replaced_by 256.
addtokey_rules(67): rr_type__linelengthindex__base__first may_be_replaced_by -2147483648.
addtokey_rules(68): rr_type__linelengthindex__base__last may_be_replaced_by 2147483647.
addtokey_rules(69): rr_type__resourcerecordtype__size >= 0 may_be_deduced.
addtokey_rules(70): A = B may_be_deduced_from
     [goal(checktype(A,rr_type__resourcerecordtype)),
      goal(checktype(B,rr_type__resourcerecordtype)),
      fld_ttlinseconds(A) = fld_ttlinseconds(B),
      fld_class(A) = fld_class(B)].
addtokey_rules(71): 
     rr_type__dnskey_record_type__keylengthvaluetype__size >= 0 may_be_deduced.
addtokey_rules(72): 
     rr_type__dnskey_record_type__keylengthvaluetype__first may_be_replaced_by 0.
addtokey_rules(73): 
     rr_type__dnskey_record_type__keylengthvaluetype__last may_be_replaced_by 1365.
addtokey_rules(74): 
     rr_type__dnskey_record_type__keylengthvaluetype__base__first may_be_replaced_by -2147483648.
addtokey_rules(75): 
     rr_type__dnskey_record_type__keylengthvaluetype__base__last may_be_replaced_by 2147483647.
addtokey_rules(76): 
     rr_type__dnskey_record_type__dnskeystringtypeindex__size >= 0 may_be_deduced.
addtokey_rules(77): 
     rr_type__dnskey_record_type__dnskeystringtypeindex__first may_be_replaced_by 1.
addtokey_rules(78): 
     rr_type__dnskey_record_type__dnskeystringtypeindex__last may_be_replaced_by 1365.
addtokey_rules(79): 
     rr_type__dnskey_record_type__dnskeystringtypeindex__base__first may_be_replaced_by -2147483648.
addtokey_rules(80): 
     rr_type__dnskey_record_type__dnskeystringtypeindex__base__last may_be_replaced_by 2147483647.
addtokey_rules(81): rr_type__dnskey_record_type__dnskeystringtype__size >= 0 may_be_deduced.
addtokey_rules(82): rr_type__dnskey_record_type__dnskeyrecordtype__size >= 0 may_be_deduced.
addtokey_rules(83): A = B may_be_deduced_from
     [goal(checktype(A,rr_type__dnskey_record_type__dnskeyrecordtype)),
      goal(checktype(B,rr_type__dnskey_record_type__dnskeyrecordtype)),
      fld_inherit(A) = fld_inherit(B),
      fld_flags(A) = fld_flags(B),
      fld_protocol(A) = fld_protocol(B),
      fld_algorithm(A) = fld_algorithm(B),
      fld_key(A) = fld_key(B),
      fld_keylength(A) = fld_keylength(B)].
