Why create a model using Alloy?
I believe that I know the answer, but I want to confirm with you.
We create a model using Alloy because we want to verify that the model holds for some property. Please allow me to give a few examples to illustrate what I mean:
- We create an Alloy model of a traffic light system because we want to verify that the traffic light system will never have two green lights (in perpendicular directions) at a junction at the same time. By building an Alloy model and checking it using the Alloy Analyzer, we can verify that the traffic light system is safe.
- We create an Alloy model of a leader election protocol (in a bunch of decentralized, communicating processes one process is elected the leader) because we want to verify that the protocol results in electing exactly one process as the leader.
- We create an Alloy model of a hotel’s operations because we want to verify that there will be no unauthorized access to any room.
Those examples illustrate why we create Alloy models: so we can verify that some property holds. After creating the Alloy model and verifying that the desired property holds, if we faithfully implement the model then we can have confidence that the system will have the desired property. That’s why we create Alloy models. Do you agree? Is there anything else you would add?