Advertisement
Guest User

Untitled

a guest
Feb 20th, 2020
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. ----------------------------- MODULE Assignment1 -----------------------------
  2.  
  3. EXTENDS Naturals, Sequences
  4. CONSTANT Message, N
  5. VARIABLES in, out, q
  6. ASSUME (N \in Nat) /\ (N>0)
  7.  
  8. InChan == INSTANCE Channel WITH Data <- Message, chan <- in
  9. OutChan == INSTANCE Channel WITH Data <- Message, chan <- out
  10.  
  11.  
  12. Init == /\ InChan!InitChannel
  13. /\ OutChan!InitChannel
  14. /\ q = <<>>
  15.  
  16. TypeInvariant == /\ InChan!TypeInvariant
  17. /\ OutChan!TypeInvariant
  18. /\ q \in Seq(Message)
  19.  
  20. SSend(msg) == /\ InChan!Send(msg)
  21. /\ UNCHANGED <<out, q>>
  22.  
  23. BufRcv == /\ Len(q) < N
  24. /\ InChan!Rcv
  25. /\ q' = <<in.val>> \o q
  26. /\ UNCHANGED out
  27.  
  28. BufSend == /\ q # <<>>
  29. /\ OutChan!Send(Head(q))
  30. /\ q' = Tail(q)
  31. /\ UNCHANGED in
  32.  
  33. RRcv == /\ OutChan!Rcv
  34. /\ UNCHANGED <<in, q>>
  35.  
  36. Next == \/ \E msg \in Message : SSend(msg)
  37. \/ BufRcv
  38. \/ BufSend
  39. \/ RRcv
  40.  
  41. Spec == Init /\ [][Next]_<<in, out, q>>
  42.  
  43. THEOREM Spec => []TypeInvariant
  44.  
  45.  
  46. =============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement