src/HOL/SPARK/Examples/RIPEMD-160/rmd/round.rls
author wenzelm
Mon, 15 Feb 2016 14:55:44 +0100
changeset 62337 d3996d5873dd
parent 41561 d1318f3c86ba
permissions -rw-r--r--
proper syntax;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
41561
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     1
           /*********************************************************/
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     2
                           /*Proof Rule Declarations*/
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     3
    /*Examiner Pro Edition, Version 9.1.0, Build Date 20101119, Build 19039*/
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     4
             /*Copyright (C) 2010 Altran Praxis Limited, Bath, U.K.*/
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     5
           /*********************************************************/
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     6
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     7
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     8
                        /*DATE : 29-NOV-2010 14:30:19.87*/
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     9
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    10
                            /*procedure RMD.Round*/
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    11
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    12
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    13
rule_family round_rules:
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    14
     X      requires [X:any] &
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    15
     X <= Y requires [X:ire, Y:ire] &
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    16
     X >= Y requires [X:ire, Y:ire].
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    17
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    18
round_rules(1): integer__size >= 0 may_be_deduced.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    19
round_rules(2): integer__first may_be_replaced_by -2147483648.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    20
round_rules(3): integer__last may_be_replaced_by 2147483647.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    21
round_rules(4): integer__base__first may_be_replaced_by -2147483648.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    22
round_rules(5): integer__base__last may_be_replaced_by 2147483647.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    23
round_rules(6): interfaces__unsigned_32__size >= 0 may_be_deduced.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    24
round_rules(7): interfaces__unsigned_32__first may_be_replaced_by 0.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    25
round_rules(8): interfaces__unsigned_32__last may_be_replaced_by 4294967295.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    26
round_rules(9): interfaces__unsigned_32__base__first may_be_replaced_by 0.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    27
round_rules(10): interfaces__unsigned_32__base__last may_be_replaced_by 4294967295.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    28
round_rules(11): interfaces__unsigned_32__modulus may_be_replaced_by 4294967296.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    29
round_rules(12): wordops__word__size >= 0 may_be_deduced.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    30
round_rules(13): wordops__word__first may_be_replaced_by 0.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    31
round_rules(14): wordops__word__last may_be_replaced_by 4294967295.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    32
round_rules(15): wordops__word__base__first may_be_replaced_by 0.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    33
round_rules(16): wordops__word__base__last may_be_replaced_by 4294967295.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    34
round_rules(17): wordops__word__modulus may_be_replaced_by 4294967296.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    35
round_rules(18): wordops__rotate_amount__size >= 0 may_be_deduced.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    36
round_rules(19): wordops__rotate_amount__first may_be_replaced_by 0.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    37
round_rules(20): wordops__rotate_amount__last may_be_replaced_by 15.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    38
round_rules(21): wordops__rotate_amount__base__first may_be_replaced_by -2147483648.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    39
round_rules(22): wordops__rotate_amount__base__last may_be_replaced_by 2147483647.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    40
round_rules(23): word__size >= 0 may_be_deduced.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    41
round_rules(24): word__first may_be_replaced_by 0.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    42
round_rules(25): word__last may_be_replaced_by 4294967295.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    43
round_rules(26): word__base__first may_be_replaced_by 0.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    44
round_rules(27): word__base__last may_be_replaced_by 4294967295.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    45
round_rules(28): word__modulus may_be_replaced_by 4294967296.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    46
round_rules(29): chain__size >= 0 may_be_deduced.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    47
round_rules(30): A = B may_be_deduced_from
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    48
     [goal(checktype(A,chain)),
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    49
      goal(checktype(B,chain)),
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    50
      fld_h0(A) = fld_h0(B),
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    51
      fld_h1(A) = fld_h1(B),
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    52
      fld_h2(A) = fld_h2(B),
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    53
      fld_h3(A) = fld_h3(B),
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    54
      fld_h4(A) = fld_h4(B)].
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    55
round_rules(31): block_index__size >= 0 may_be_deduced.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    56
round_rules(32): block_index__first may_be_replaced_by 0.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    57
round_rules(33): block_index__last may_be_replaced_by 15.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    58
round_rules(34): block_index__base__first <= block_index__base__last may_be_deduced.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    59
round_rules(35): block_index__base__first <= block_index__first may_be_deduced.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    60
round_rules(36): block_index__base__last >= block_index__last may_be_deduced.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    61
round_rules(37): round_index__size >= 0 may_be_deduced.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    62
round_rules(38): round_index__first may_be_replaced_by 0.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    63
round_rules(39): round_index__last may_be_replaced_by 79.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    64
round_rules(40): round_index__base__first <= round_index__base__last may_be_deduced.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    65
round_rules(41): round_index__base__first <= round_index__first may_be_deduced.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    66
round_rules(42): round_index__base__last >= round_index__last may_be_deduced.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    67
round_rules(43): chain_pair__size >= 0 may_be_deduced.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    68
round_rules(44): A = B may_be_deduced_from
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    69
     [goal(checktype(A,chain_pair)),
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    70
      goal(checktype(B,chain_pair)),
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    71
      fld_left(A) = fld_left(B),
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    72
      fld_right(A) = fld_right(B)].
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    73
round_rules(45): rotate_amount__size >= 0 may_be_deduced.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    74
round_rules(46): rotate_amount__first may_be_replaced_by 0.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    75
round_rules(47): rotate_amount__last may_be_replaced_by 15.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    76
round_rules(48): rotate_amount__base__first may_be_replaced_by -2147483648.
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    77
round_rules(49): rotate_amount__base__last may_be_replaced_by 2147483647.