-
Notifications
You must be signed in to change notification settings - Fork 0
/
PartialRefinement.pvs
31 lines (24 loc) · 1.42 KB
/
PartialRefinement.pvs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
PartialRefinement[Conf: TYPE,
FM: TYPE,
{||}: [FM -> set[Conf]],
Asset: TYPE,
AssetName: TYPE,
CK: TYPE,
(IMPORTING maps[AssetName,Asset]) [||]: [CK -> [mapping -> [Conf -> finite_sets[Asset].finite_set]]] ]: THEORY
BEGIN
% Partial SPL Refinement
IMPORTING PartialRefDefault[Conf,FM, {||}, Asset, AssetName, CK,[||]]
IMPORTING PartialRefWeak[Conf,FM, {||}, Asset, AssetName, CK,[||]]
% --------------------------------------------------------------------------------------------------------
% ------------------------------------------------VARIABLES-----------------------------------------------
% --------------------------------------------------------------------------------------------------------
pl, pl1, pl2, pl3, pl4: VAR PL
m: VAR CM
p, p1, p2: VAR finite_sets[Asset].finite_set
%--------------------------------------------------EQUIVALENCE BETWEEN DEFS-----------------------------------------------
% Theorem <correspondence between strong partial ref and weak partial ref>
strongPartCaseWeak: THEOREM FORALL pl1,pl2,m:
identity?(m)
=>
(strongPartialRefinement(pl1,pl2,domain(m)) <=> weakPartialRefinement(pl1,pl2,m))
END PartialRefinement