interface DIC =
sorts Dic, Pal, Sig, Bool;
state Dic;
events INIT:->,
INSPAL:PalxSig->,
REMPAL:Pal->,
CONSPAL:Pal->Sig,
EMPTYDIC:->Bool,
EXISTPAL:Pal->Bool;
end;
module Dicionario: DIC
sorts Dic = Pal -> Sig;
Pal = STR;
Sig = STR;
Bool = SYM;
events INIT =
sigma' = [];
INSPAL(pal, sig) =
{ ~EXISTPAL(pal) => sigma' = sigma + [pal -> sig];
REMPAL(pal) =
{ EXISTPAL(pal) => sigma' = sigma\{pal};
CONSPAL(pal, sig') =
{ EXISTPAL(pal) => sig' = sigma[pal];
EMPTYDIC(b') =
b' = sigma == [];
EXISTPAL(pal, b') =
b' = pal in dom(sigma);
end;