Advertisement
Guest User

Untitled

a guest
Feb 20th, 2020
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.63 KB | None | 0 0
  1. ----------------------------- MODULE Channel -----------------------------
  2.  
  3. EXTENDS Naturals
  4. CONSTANT Data
  5. VARIABLES chan
  6.  
  7. TypeInvariant == chan \in [val: Data, rdy: {0,1}, ack: {0,1}]
  8.  
  9. InitChannel == /\ TypeInvariant
  10. /\ chan.ack = chan.ack
  11.  
  12. Send(d) == /\ chan.ack = chan.ack
  13. /\ chan' = [chan EXCEPT !.val = d, !.rdy = 1 - @]
  14.  
  15. Rcv == /\ chan.rdy # chan.ack
  16. /\ chan' = [chan EXCEPT !.ack = 1-@]
  17.  
  18. NextChannel == (\E d \in Data: Send(d)) \/ Rcv
  19.  
  20. Spec == InitChannel /\ [][NextChannel]_chan
  21.  
  22. THEOREM Spec => []TypeInvariant
  23. =============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement