Purpose: practice reading and describing Alloy models, demonstrate individual understanding of your project so far
This homework assignment includes questions about your project; however, it is still an individual assignment.
check OnlyValid for 5 but exactly 5 Floor, 25 Time command. Alloy should find no counterexamples.
l had no planned direction at time t. What would be the value of l.plannedDirection[t]?
requestsPending defined as a separate function?
initTime predicate?
ValidTransitions predicate) as any transition allowed by the someChange predicate. What four predicates are used by someChange to define the valid transitions?
Valid predicate. In English, what must be true at an instance in time for it to be valid? (That is, describe the conditions that hold, don’t just say that ValidIndicators and ValidRequestLights must both be true.)
move, requestFloor, openDoors, and closeDoors) call a set of helper predicates, no…ChangeExcept. What is the purpose of the calls to these helper predicates?
The OnlyValid assertion says that if the system configuration is valid at one instance in time, then it is also valid at the next instance in time.
OnlyValid to assert that the first instance in time is valid?
initTime to cause the improved assertion to have a counterexample. What lines did you comment out? (Be sure to uncomment them when you’re done.)
OnlyValid checks all allowed transitions, what use are assertions like OnlyValid_Move and OnlyValid_Open that just check specific operations and constraints?
Compare my provided solution to the one you (and your team) developed for P1. Describe the major differences between my model and yours. For each major difference, indicate whether you think the difference is significant (i.e., makes one model more expressive than the other) or just incidental (i.e., a matter of style or personal preference).
I’ll evaluate your description based on:
Please include (small) code snippets in your description if that helps you make your point.