1           /*********************************************************/
2                           /*Proof Rule Declarations*/
3    /*Examiner Pro Edition, Version 9.1.0, Build Date 20101119, Build 19039*/
4             /*Copyright (C) 2010 Altran Praxis Limited, Bath, U.K.*/
5           /*********************************************************/
6
7
8                        /*DATE : 29-NOV-2010 14:30:19.83*/
9
10                              /*function RMD.S_L*/
11
12
13rule_family s_l_rules:
14     X      requires [X:any] &
15     X <= Y requires [X:ire, Y:ire] &
16     X >= Y requires [X:ire, Y:ire].
17
18s_l_rules(1): rotate_amount__first <= element(s_values, [I]) may_be_deduced_from [0 <= I, I <= 79].
19s_l_rules(2): element(s_values, [I]) <= rotate_amount__last may_be_deduced_from [0 <= I, I <= 79].
20s_l_rules(3): s_values may_be_replaced_by 
21           mk__rotate_definition([round_index__first] := 11, [
22           round_index__first + 1] := 14, [round_index__first + 2] := 
23           15, [round_index__first + 3] := 12, [round_index__first + 4] := 
24           5, [round_index__first + 5] := 8, [round_index__first + 6] := 
25           7, [round_index__first + 7] := 9, [round_index__first + 8] := 
26           11, [round_index__first + 9] := 13, [round_index__first + 10] := 
27           14, [round_index__first + 11] := 15, [
28           round_index__first + 12] := 6, [round_index__first + 13] := 
29           7, [round_index__first + 14] := 9, [round_index__first + 15] := 
30           8, [round_index__first + 16] := 7, [round_index__first + 17] := 
31           6, [round_index__first + 18] := 8, [round_index__first + 19] := 
32           13, [round_index__first + 20] := 11, [
33           round_index__first + 21] := 9, [round_index__first + 22] := 
34           7, [round_index__first + 23] := 15, [round_index__first + 24] := 
35           7, [round_index__first + 25] := 12, [round_index__first + 26] := 
36           15, [round_index__first + 27] := 9, [round_index__first + 28] := 
37           11, [round_index__first + 29] := 7, [round_index__first + 30] := 
38           13, [round_index__first + 31] := 12, [
39           round_index__first + 32] := 11, [round_index__first + 33] := 
40           13, [round_index__first + 34] := 6, [round_index__first + 35] := 
41           7, [round_index__first + 36] := 14, [round_index__first + 37] := 
42           9, [round_index__first + 38] := 13, [round_index__first + 39] := 
43           15, [round_index__first + 40] := 14, [
44           round_index__first + 41] := 8, [round_index__first + 42] := 
45           13, [round_index__first + 43] := 6, [round_index__first + 44] := 
46           5, [round_index__first + 45] := 12, [round_index__first + 46] := 
47           7, [round_index__first + 47] := 5, [round_index__first + 48] := 
48           11, [round_index__first + 49] := 12, [
49           round_index__first + 50] := 14, [round_index__first + 51] := 
50           15, [round_index__first + 52] := 14, [
51           round_index__first + 53] := 15, [round_index__first + 54] := 
52           9, [round_index__first + 55] := 8, [round_index__first + 56] := 
53           9, [round_index__first + 57] := 14, [round_index__first + 58] := 
54           5, [round_index__first + 59] := 6, [round_index__first + 60] := 
55           8, [round_index__first + 61] := 6, [round_index__first + 62] := 
56           5, [round_index__first + 63] := 12, [round_index__first + 64] := 
57           9, [round_index__first + 65] := 15, [round_index__first + 66] := 
58           5, [round_index__first + 67] := 11, [round_index__first + 68] := 
59           6, [round_index__first + 69] := 8, [round_index__first + 70] := 
60           13, [round_index__first + 71] := 12, [
61           round_index__first + 72] := 5, [round_index__first + 73] := 
62           12, [round_index__first + 74] := 13, [
63           round_index__first + 75] := 14, [round_index__first + 76] := 
64           11, [round_index__first + 77] := 8, [round_index__first + 78] := 
65           5, [round_index__first + 79] := 6).
66s_l_rules(4): integer__size >= 0 may_be_deduced.
67s_l_rules(5): integer__first may_be_replaced_by -2147483648.
68s_l_rules(6): integer__last may_be_replaced_by 2147483647.
69s_l_rules(7): integer__base__first may_be_replaced_by -2147483648.
70s_l_rules(8): integer__base__last may_be_replaced_by 2147483647.
71s_l_rules(9): round_index__size >= 0 may_be_deduced.
72s_l_rules(10): round_index__first may_be_replaced_by 0.
73s_l_rules(11): round_index__last may_be_replaced_by 79.
74s_l_rules(12): round_index__base__first <= round_index__base__last may_be_deduced.
75s_l_rules(13): round_index__base__first <= round_index__first may_be_deduced.
76s_l_rules(14): round_index__base__last >= round_index__last may_be_deduced.
77s_l_rules(15): rotate_amount__size >= 0 may_be_deduced.
78s_l_rules(16): rotate_amount__first may_be_replaced_by 0.
79s_l_rules(17): rotate_amount__last may_be_replaced_by 15.
80s_l_rules(18): rotate_amount__base__first may_be_replaced_by -2147483648.
81s_l_rules(19): rotate_amount__base__last may_be_replaced_by 2147483647.
82