src/HOL/SPARK/Manual/complex_types_app/initialize.rls
author berghofe
Thu, 22 Sep 2011 16:50:23 +0200
changeset 45044 2fae15f8984d
permissions -rw-r--r--
Added documentation for HOL-SPARK
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45044
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     1
           /*********************************************************/
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     2
                           /*Proof Rule Declarations*/
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     3
    /*Examiner Pro Edition, Version 9.1.0, Build Date 20101119, Build 19039*/
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     4
             /*Copyright (C) 2010 Altran Praxis Limited, Bath, U.K.*/
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     5
           /*********************************************************/
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     6
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     7
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     8
                        /*DATE : 22-SEP-2011 11:10:52.42*/
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     9
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    10
                   /*procedure Complex_Types_App.Initialize*/
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    11
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    12
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    13
rule_family initialize_rules:
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    14
     X      requires [X:any] &
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    15
     X <= Y requires [X:ire, Y:ire] &
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    16
     X >= Y requires [X:ire, Y:ire].
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    17
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    18
initialize_rules(1): integer__size >= 0 may_be_deduced.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    19
initialize_rules(2): integer__first may_be_replaced_by -2147483648.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    20
initialize_rules(3): integer__last may_be_replaced_by 2147483647.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    21
initialize_rules(4): integer__base__first may_be_replaced_by -2147483648.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    22
initialize_rules(5): integer__base__last may_be_replaced_by 2147483647.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    23
initialize_rules(6): complex_types__day__size >= 0 may_be_deduced.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    24
initialize_rules(7): complex_types__day__first may_be_replaced_by complex_types__mon.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    25
initialize_rules(8): complex_types__day__last may_be_replaced_by complex_types__sun.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    26
initialize_rules(9): complex_types__day__base__first may_be_replaced_by complex_types__mon.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    27
initialize_rules(10): complex_types__day__base__last may_be_replaced_by complex_types__sun.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    28
initialize_rules(11): complex_types__day__pos(complex_types__day__first) may_be_replaced_by 0.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    29
initialize_rules(12): complex_types__day__pos(complex_types__mon) may_be_replaced_by 0.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    30
initialize_rules(13): complex_types__day__val(0) may_be_replaced_by 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    31
     complex_types__mon.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    32
initialize_rules(14): complex_types__day__pos(complex_types__tue) may_be_replaced_by 1.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    33
initialize_rules(15): complex_types__day__val(1) may_be_replaced_by 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    34
     complex_types__tue.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    35
initialize_rules(16): complex_types__day__pos(complex_types__wed) may_be_replaced_by 2.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    36
initialize_rules(17): complex_types__day__val(2) may_be_replaced_by 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    37
     complex_types__wed.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    38
initialize_rules(18): complex_types__day__pos(complex_types__thu) may_be_replaced_by 3.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    39
initialize_rules(19): complex_types__day__val(3) may_be_replaced_by 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    40
     complex_types__thu.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    41
initialize_rules(20): complex_types__day__pos(complex_types__fri) may_be_replaced_by 4.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    42
initialize_rules(21): complex_types__day__val(4) may_be_replaced_by 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    43
     complex_types__fri.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    44
initialize_rules(22): complex_types__day__pos(complex_types__sat) may_be_replaced_by 5.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    45
initialize_rules(23): complex_types__day__val(5) may_be_replaced_by 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    46
     complex_types__sat.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    47
initialize_rules(24): complex_types__day__pos(complex_types__sun) may_be_replaced_by 6.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    48
initialize_rules(25): complex_types__day__val(6) may_be_replaced_by 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    49
     complex_types__sun.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    50
initialize_rules(26): complex_types__day__pos(complex_types__day__last) may_be_replaced_by 6.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    51
initialize_rules(27): complex_types__day__pos(succ(X)) may_be_replaced_by 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    52
     complex_types__day__pos(X) + 1
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    53
     if [X <=complex_types__sun, X <> complex_types__sun].
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    54
initialize_rules(28): complex_types__day__pos(pred(X)) may_be_replaced_by 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    55
     complex_types__day__pos(X) - 1
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    56
     if [X >=complex_types__mon, X <> complex_types__mon].
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    57
initialize_rules(29): complex_types__day__pos(X) >= 0 may_be_deduced_from
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    58
     [complex_types__mon <= X, X <= complex_types__sun].
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    59
initialize_rules(30): complex_types__day__pos(X) <= 6 may_be_deduced_from
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    60
     [complex_types__mon <= X, X <= complex_types__sun].
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    61
initialize_rules(31): complex_types__day__val(X) >= 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    62
     complex_types__mon may_be_deduced_from
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    63
     [0 <= X, X <= 6].
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    64
initialize_rules(32): complex_types__day__val(X) <= 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    65
     complex_types__sun may_be_deduced_from
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    66
     [0 <= X, X <= 6].
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    67
initialize_rules(33): succ(complex_types__day__val(X)) may_be_replaced_by 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    68
     complex_types__day__val(X+1)
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    69
     if [0 <= X, X < 6].
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    70
initialize_rules(34): pred(complex_types__day__val(X)) may_be_replaced_by 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    71
     complex_types__day__val(X-1)
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    72
     if [0 < X, X <= 6].
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    73
initialize_rules(35): complex_types__day__pos(complex_types__day__val(X)) may_be_replaced_by X
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    74
     if [0 <= X, X <= 6].
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    75
initialize_rules(36): complex_types__day__val(complex_types__day__pos(X)) may_be_replaced_by X
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    76
     if [complex_types__mon <= X, X <= complex_types__sun].
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    77
initialize_rules(37): complex_types__day__pos(X) <= 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    78
     complex_types__day__pos(Y) & X <= Y are_interchangeable 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    79
     if [complex_types__mon <= X, X <= complex_types__sun, 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    80
     complex_types__mon <= Y, Y <= complex_types__sun].
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    81
initialize_rules(38): complex_types__day__val(X) <= 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    82
     complex_types__day__val(Y) & X <= Y are_interchangeable 
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    83
     if [0 <= X, X <= 6, 0 <= Y, Y <= 6].
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    84
initialize_rules(39): complex_types__array_index__size >= 0 may_be_deduced.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    85
initialize_rules(40): complex_types__array_index__first may_be_replaced_by 0.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    86
initialize_rules(41): complex_types__array_index__last may_be_replaced_by 9.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    87
initialize_rules(42): complex_types__array_index__base__first may_be_replaced_by -2147483648.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    88
initialize_rules(43): complex_types__array_index__base__last may_be_replaced_by 2147483647.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    89
initialize_rules(44): complex_types__record_type__size >= 0 may_be_deduced.
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    90
initialize_rules(45): A = B may_be_deduced_from
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    91
     [goal(checktype(A,complex_types__record_type)),
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    92
      goal(checktype(B,complex_types__record_type)),
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    93
      fld_field1(A) = fld_field1(B),
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    94
      fld_field2(A) = fld_field2(B)].