This site will be maintained for Software Design & Implementation taken in spring semester of 2015 under Prof. David Stotts at UNC-Chapel Hill.
A7:Meeting FSM
CTL formulae 1,2,3 as given by you give the same answers which are provided.
Following are the questions we had to ask to the model checker.
Is there a situation when someone speaks but nobody listens?
EF(Pspeak & ~Plisten).
TRUE
Do multiple moderators control the meeting?
EF(Pmoderate & TdropFloor ).
FALSE
Does being in pool guarantee that person will speak?
AF(Ppool -> AX(AF(Pspeak))).
FALSE
Do people get stuck in wait?
AG(Pwait -> AX(AF(~Pwait))).
FALSE
A8:Dining philosophers : 3 person case
- FSM file
Questions to be verified:
- There can never be two philosopher eating at the same time.
~ AG( (PEat1 & PEat2) | (PEat1 & PEat3) | (PEat2 & PEat3)).
TRUE
- It is possible to for only one philosopher to be thinking
~EF((PThink1 & ~ PThink2 & ~PThink3) | (~ PThink1 & PThink2 & ~PThink3) |(~PThink1 & ~PThink2 & PThink3)).
TRUE
- It is impossible that any philosopher is starved... i.e.,
fails to get two forks to eat.
EF(TGetFood1) & EF(TGetFood2) & EF(TGetFood3).
TRUE
- There is no chance that once a philosopher gets the forks
it eats forever and never gives up the forks
AG( PEats1 -> AX(AF(~PEats1))) & AG( PEats2 -> AX(AF(~PEats2))) & AG( PEats3 -> AX(AF(~PEats3))).
TRUE
- It is impossible for all philosophers to always think
and never eat
~ AG( ~TGetFood1 |~TGetFood2 | ~ TGetFood3).
TRUE
|