author | wenzelm |
Wed, 02 Aug 2000 19:40:14 +0200 | |
changeset 9502 | 50ec59aff389 |
parent 9403 | aad13b59b8d9 |
child 10064 | 1a77667b21ef |
permissions | -rw-r--r-- |
6815 | 1 |
(* Title: HOL/UNITY/Alloc |
2 |
ID: $Id$ |
|
3 |
Author: Lawrence C Paulson, Cambridge University Computer Laboratory |
|
4 |
Copyright 1998 University of Cambridge |
|
5 |
||
6 |
Specification of Chandy and Charpentier's Allocator |
|
7 |
*) |
|
8 |
||
8930 | 9 |
Alloc = AllocBase + PPROD + |
6815 | 10 |
|
8055
bb15396278fb
abolition of localTo: instead "guarantees" has local vars as extra argument
paulson
parents:
8041
diff
changeset
|
11 |
(** State definitions. OUTPUT variables are locals **) |
bb15396278fb
abolition of localTo: instead "guarantees" has local vars as extra argument
paulson
parents:
8041
diff
changeset
|
12 |
|
6815 | 13 |
record clientState = |
14 |
giv :: nat list (*client's INPUT history: tokens GRANTED*) |
|
15 |
ask :: nat list (*client's OUTPUT history: tokens REQUESTED*) |
|
16 |
rel :: nat list (*client's OUTPUT history: tokens RELEASED*) |
|
17 |
||
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
18 |
record 'a clientState_d = |
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
19 |
clientState + |
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
20 |
dummy :: 'a (*dummy field for new variables*) |
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
21 |
|
8311
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
22 |
constdefs |
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
23 |
(*DUPLICATED FROM Client.thy, but with "tok" removed*) |
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
24 |
(*Maybe want a special theory section to declare such maps*) |
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
25 |
non_dummy :: 'a clientState_d => clientState |
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
26 |
"non_dummy s == (|giv = giv s, ask = ask s, rel = rel s|)" |
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
27 |
|
8311
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
28 |
(*Renaming map to put a Client into the standard form*) |
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
29 |
client_map :: "'a clientState_d => clientState*'a" |
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
30 |
"client_map == funPair non_dummy dummy" |
8311
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
31 |
|
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
32 |
|
6815 | 33 |
record allocState = |
8055
bb15396278fb
abolition of localTo: instead "guarantees" has local vars as extra argument
paulson
parents:
8041
diff
changeset
|
34 |
allocGiv :: nat => nat list (*OUTPUT history: source of "giv" for i*) |
bb15396278fb
abolition of localTo: instead "guarantees" has local vars as extra argument
paulson
parents:
8041
diff
changeset
|
35 |
allocAsk :: nat => nat list (*INPUT: allocator's copy of "ask" for i*) |
bb15396278fb
abolition of localTo: instead "guarantees" has local vars as extra argument
paulson
parents:
8041
diff
changeset
|
36 |
allocRel :: nat => nat list (*INPUT: allocator's copy of "rel" for i*) |
6815 | 37 |
|
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
38 |
record 'a allocState_d = |
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
39 |
allocState + |
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
40 |
dummy :: 'a (*dummy field for new variables*) |
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
41 |
|
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
42 |
record 'a systemState = |
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
43 |
allocState + |
6815 | 44 |
client :: nat => clientState (*states of all clients*) |
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
45 |
dummy :: 'a (*dummy field for new variables*) |
6815 | 46 |
|
47 |
||
48 |
constdefs |
|
49 |
||
50 |
(** Resource allocation system specification **) |
|
51 |
||
52 |
(*spec (1)*) |
|
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
53 |
system_safety :: 'a systemState program set |
6815 | 54 |
"system_safety == |
9109 | 55 |
Always {s. setsum(%i.(tokens o giv o sub i o client)s) (lessThan Nclients) |
56 |
<= NbT + setsum(%i.(tokens o rel o sub i o client)s) (lessThan Nclients)}" |
|
6815 | 57 |
|
58 |
(*spec (2)*) |
|
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
59 |
system_progress :: 'a systemState program set |
8985 | 60 |
"system_progress == INT i : lessThan Nclients. |
6815 | 61 |
INT h. |
62 |
{s. h <= (ask o sub i o client)s} LeadsTo |
|
6827 | 63 |
{s. h pfixLe (giv o sub i o client) s}" |
64 |
||
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
65 |
system_spec :: 'a systemState program set |
6827 | 66 |
"system_spec == system_safety Int system_progress" |
6815 | 67 |
|
68 |
(** Client specification (required) ***) |
|
69 |
||
8055
bb15396278fb
abolition of localTo: instead "guarantees" has local vars as extra argument
paulson
parents:
8041
diff
changeset
|
70 |
(*spec (3)*) |
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
71 |
client_increasing :: 'a clientState_d program set |
6815 | 72 |
"client_increasing == |
8055
bb15396278fb
abolition of localTo: instead "guarantees" has local vars as extra argument
paulson
parents:
8041
diff
changeset
|
73 |
UNIV guarantees[funPair rel ask] |
bb15396278fb
abolition of localTo: instead "guarantees" has local vars as extra argument
paulson
parents:
8041
diff
changeset
|
74 |
Increasing ask Int Increasing rel" |
6815 | 75 |
|
76 |
(*spec (4)*) |
|
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
77 |
client_bounded :: 'a clientState_d program set |
6815 | 78 |
"client_bounded == |
8055
bb15396278fb
abolition of localTo: instead "guarantees" has local vars as extra argument
paulson
parents:
8041
diff
changeset
|
79 |
UNIV guarantees[ask] |
bb15396278fb
abolition of localTo: instead "guarantees" has local vars as extra argument
paulson
parents:
8041
diff
changeset
|
80 |
Always {s. ALL elt : set (ask s). elt <= NbT}" |
6815 | 81 |
|
82 |
(*spec (5)*) |
|
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
83 |
client_progress :: 'a clientState_d program set |
6815 | 84 |
"client_progress == |
85 |
Increasing giv |
|
8055
bb15396278fb
abolition of localTo: instead "guarantees" has local vars as extra argument
paulson
parents:
8041
diff
changeset
|
86 |
guarantees[funPair rel ask] |
6827 | 87 |
(INT h. {s. h <= giv s & h pfixGe ask s} |
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
88 |
LeadsTo {s. tokens h <= (tokens o rel) s})" |
6815 | 89 |
|
8065
658e0d4e4ed9
first working version to Alloc/System_Client_Progress;
paulson
parents:
8055
diff
changeset
|
90 |
(*spec: preserves part*) |
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
91 |
client_preserves :: 'a clientState_d program set |
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
92 |
"client_preserves == preserves (funPair giv clientState_d.dummy)" |
8065
658e0d4e4ed9
first working version to Alloc/System_Client_Progress;
paulson
parents:
8055
diff
changeset
|
93 |
|
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
94 |
client_spec :: 'a clientState_d program set |
8065
658e0d4e4ed9
first working version to Alloc/System_Client_Progress;
paulson
parents:
8055
diff
changeset
|
95 |
"client_spec == client_increasing Int client_bounded Int client_progress |
658e0d4e4ed9
first working version to Alloc/System_Client_Progress;
paulson
parents:
8055
diff
changeset
|
96 |
Int client_preserves" |
6827 | 97 |
|
6815 | 98 |
(** Allocator specification (required) ***) |
99 |
||
8055
bb15396278fb
abolition of localTo: instead "guarantees" has local vars as extra argument
paulson
parents:
8041
diff
changeset
|
100 |
(*spec (6)*) |
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
101 |
alloc_increasing :: 'a allocState_d program set |
6815 | 102 |
"alloc_increasing == |
103 |
UNIV |
|
8055
bb15396278fb
abolition of localTo: instead "guarantees" has local vars as extra argument
paulson
parents:
8041
diff
changeset
|
104 |
guarantees[allocGiv] |
8985 | 105 |
(INT i : lessThan Nclients. Increasing (sub i o allocGiv))" |
6815 | 106 |
|
107 |
(*spec (7)*) |
|
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
108 |
alloc_safety :: 'a allocState_d program set |
6815 | 109 |
"alloc_safety == |
8985 | 110 |
(INT i : lessThan Nclients. Increasing (sub i o allocRel)) |
8055
bb15396278fb
abolition of localTo: instead "guarantees" has local vars as extra argument
paulson
parents:
8041
diff
changeset
|
111 |
guarantees[allocGiv] |
9109 | 112 |
Always {s. setsum(%i.(tokens o sub i o allocGiv)s) (lessThan Nclients) |
113 |
<= NbT + setsum(%i.(tokens o sub i o allocRel)s) (lessThan Nclients)}" |
|
6815 | 114 |
|
115 |
(*spec (8)*) |
|
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
116 |
alloc_progress :: 'a allocState_d program set |
6815 | 117 |
"alloc_progress == |
8985 | 118 |
(INT i : lessThan Nclients. Increasing (sub i o allocAsk) Int |
6815 | 119 |
Increasing (sub i o allocRel)) |
120 |
Int |
|
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
121 |
Always {s. ALL i<Nclients. |
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
122 |
ALL elt : set ((sub i o allocAsk) s). elt <= NbT} |
6815 | 123 |
Int |
8985 | 124 |
(INT i : lessThan Nclients. |
6827 | 125 |
INT h. {s. h <= (sub i o allocGiv)s & h pfixGe (sub i o allocAsk)s} |
8075 | 126 |
LeadsTo |
127 |
{s. tokens h <= (tokens o sub i o allocRel)s}) |
|
8055
bb15396278fb
abolition of localTo: instead "guarantees" has local vars as extra argument
paulson
parents:
8041
diff
changeset
|
128 |
guarantees[allocGiv] |
8985 | 129 |
(INT i : lessThan Nclients. |
8069
19b9f92ca503
working with weak LeadsTo in guarantees precondition\!
paulson
parents:
8065
diff
changeset
|
130 |
INT h. {s. h <= (sub i o allocAsk) s} |
8122
b43ad07660b9
working version, with Alloc now working on the same state space as the whole
paulson
parents:
8075
diff
changeset
|
131 |
LeadsTo |
6827 | 132 |
{s. h pfixLe (sub i o allocGiv) s})" |
133 |
||
9109 | 134 |
(*NOTE: to follow the original paper, the formula above should have had |
135 |
INT h. {s. h i <= (sub i o allocGiv)s & h i pfixGe (sub i o allocAsk)s} |
|
136 |
LeadsTo |
|
137 |
{s. tokens h i <= (tokens o sub i o allocRel)s}) |
|
138 |
thus h should have been a function variable. However, only h i is ever |
|
139 |
looked at.*) |
|
140 |
||
8065
658e0d4e4ed9
first working version to Alloc/System_Client_Progress;
paulson
parents:
8055
diff
changeset
|
141 |
(*spec: preserves part*) |
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
142 |
alloc_preserves :: 'a allocState_d program set |
8311
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
143 |
"alloc_preserves == preserves (funPair allocRel |
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
144 |
(funPair allocAsk allocState_d.dummy))" |
8065
658e0d4e4ed9
first working version to Alloc/System_Client_Progress;
paulson
parents:
8055
diff
changeset
|
145 |
|
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
146 |
alloc_spec :: 'a allocState_d program set |
8065
658e0d4e4ed9
first working version to Alloc/System_Client_Progress;
paulson
parents:
8055
diff
changeset
|
147 |
"alloc_spec == alloc_increasing Int alloc_safety Int alloc_progress Int |
658e0d4e4ed9
first working version to Alloc/System_Client_Progress;
paulson
parents:
8055
diff
changeset
|
148 |
alloc_preserves" |
6815 | 149 |
|
150 |
(** Network specification ***) |
|
151 |
||
152 |
(*spec (9.1)*) |
|
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
153 |
network_ask :: 'a systemState program set |
8985 | 154 |
"network_ask == INT i : lessThan Nclients. |
8075 | 155 |
Increasing (ask o sub i o client) |
156 |
guarantees[allocAsk] |
|
157 |
((sub i o allocAsk) Fols (ask o sub i o client))" |
|
6815 | 158 |
|
159 |
(*spec (9.2)*) |
|
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
160 |
network_giv :: 'a systemState program set |
8985 | 161 |
"network_giv == INT i : lessThan Nclients. |
8075 | 162 |
Increasing (sub i o allocGiv) |
163 |
guarantees[giv o sub i o client] |
|
164 |
((giv o sub i o client) Fols (sub i o allocGiv))" |
|
6815 | 165 |
|
166 |
(*spec (9.3)*) |
|
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
167 |
network_rel :: 'a systemState program set |
8985 | 168 |
"network_rel == INT i : lessThan Nclients. |
8075 | 169 |
Increasing (rel o sub i o client) |
170 |
guarantees[allocRel] |
|
171 |
((sub i o allocRel) Fols (rel o sub i o client))" |
|
6815 | 172 |
|
8065
658e0d4e4ed9
first working version to Alloc/System_Client_Progress;
paulson
parents:
8055
diff
changeset
|
173 |
(*spec: preserves part*) |
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
174 |
network_preserves :: 'a systemState program set |
8075 | 175 |
"network_preserves == preserves allocGiv Int |
8985 | 176 |
(INT i : lessThan Nclients. |
8065
658e0d4e4ed9
first working version to Alloc/System_Client_Progress;
paulson
parents:
8055
diff
changeset
|
177 |
preserves (funPair rel ask o sub i o client))" |
658e0d4e4ed9
first working version to Alloc/System_Client_Progress;
paulson
parents:
8055
diff
changeset
|
178 |
|
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
179 |
network_spec :: 'a systemState program set |
8065
658e0d4e4ed9
first working version to Alloc/System_Client_Progress;
paulson
parents:
8055
diff
changeset
|
180 |
"network_spec == network_ask Int network_giv Int |
658e0d4e4ed9
first working version to Alloc/System_Client_Progress;
paulson
parents:
8055
diff
changeset
|
181 |
network_rel Int network_preserves" |
6827 | 182 |
|
183 |
||
184 |
(** State mappings **) |
|
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
185 |
sysOfAlloc :: "((nat => clientState) * 'a) allocState_d => 'a systemState" |
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
186 |
"sysOfAlloc == %s. let (cl,xtr) = allocState_d.dummy s |
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
187 |
in (| allocGiv = allocGiv s, |
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
188 |
allocAsk = allocAsk s, |
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
189 |
allocRel = allocRel s, |
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
190 |
client = cl, |
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
191 |
dummy = xtr|)" |
6827 | 192 |
|
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
193 |
|
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
194 |
sysOfClient :: "(nat => clientState) * 'a allocState_d => 'a systemState" |
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
195 |
"sysOfClient == %(cl,al). (| allocGiv = allocGiv al, |
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
196 |
allocAsk = allocAsk al, |
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
197 |
allocRel = allocRel al, |
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
198 |
client = cl, |
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
199 |
systemState.dummy = allocState_d.dummy al|)" |
6827 | 200 |
|
8311
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
201 |
consts |
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
202 |
Alloc :: 'a allocState_d program |
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
203 |
Client :: 'a clientState_d program |
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
204 |
Network :: 'a systemState program |
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
205 |
System :: 'a systemState program |
6827 | 206 |
|
8311
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
207 |
rules |
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
208 |
Alloc "Alloc : alloc_spec" |
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
209 |
Client "Client : client_spec" |
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
210 |
Network "Network : network_spec" |
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
211 |
|
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
212 |
defs |
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
213 |
System_def |
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
214 |
"System == rename sysOfAlloc Alloc Join Network Join |
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
215 |
(rename sysOfClient |
8985 | 216 |
(plam x: lessThan Nclients. rename client_map Client))" |
8311
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
217 |
|
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
218 |
|
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
219 |
(** |
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
220 |
locale System = |
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
221 |
fixes |
9403
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
222 |
Alloc :: 'a allocState_d program |
aad13b59b8d9
much tidying in connection with the 2nd UNITY paper
paulson
parents:
9109
diff
changeset
|
223 |
Client :: 'a clientState_d program |
8311
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
224 |
Network :: 'a systemState program |
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
225 |
System :: 'a systemState program |
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
226 |
|
6827 | 227 |
assumes |
228 |
Alloc "Alloc : alloc_spec" |
|
229 |
Client "Client : client_spec" |
|
230 |
Network "Network : network_spec" |
|
231 |
||
232 |
defines |
|
233 |
System_def |
|
8311
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
234 |
"System == rename sysOfAlloc Alloc |
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
235 |
Join |
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
236 |
Network |
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
237 |
Join |
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
238 |
(rename sysOfClient |
8985 | 239 |
(plam x: lessThan Nclients. rename client_map Client))" |
8311
6218522253e7
new mostly working version; Alloc nearly converted to "Rename"
paulson
parents:
8286
diff
changeset
|
240 |
**) |
8286
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
241 |
|
d4b895d3afa7
not working yet. partial conversion to use "rename" instead of "extend"
paulson
parents:
8122
diff
changeset
|
242 |
|
6815 | 243 |
end |