domain BType = {Empty, Full} ;
node Pre
   flow  I : FailureType : in; O: FailureType : out;
   state Stored, Delayed : FailureType, S : BType;
   event pre_read, pre_wait;
   init  Stored := Ok, Delayed := Ok, S := Empty;
   trans
     (Stored != I) & (S = Empty) |- pre_read -> Stored := I, S = Full;
     (S = Full) |- pre_wait -> Delayed := Stored, S = Empty;
   assert  O = Delayed;
   extern law (pre_read) = "[0,0]"; law (pre_wait) = "[a,b]";
edon
