Milner's Vending Machine #
This file formalises Milner's vending machine example for CCS.
We formalise two versions:
- A machine with a deterministic LTS:
coin.(tea.VM + coffee.VM). - A machine with a nondeterministic LTS:
coin.tea.VM + coin.coffee.VM.
We then prove the classical example that the two are not bisimilar. We also show the distinction with HML: only the deterministic machine offers the choice of drink after a coin is inserted.
Future work on proving that the two vending machines are trace equivalent would be welcome.
Action names.
Insert a coin.
Equations
Instances For
Tea request.
Equations
Instances For
Coffee request.
Equations
Instances For
The vending machine process.
Equations
Instances For
Deterministic vending machine #
Constant definitions: vm = coin.(tea.VM + coffee.VM)
Equations
- One or more equations did not get rendered due to their size.
Instances For
The LTS of CCS for the deterministic vending machine.
Instances For
Nondeterministic vending machine #
vm = coin.tea.VM + coin.coffee.VM
Equations
- One or more equations did not get rendered due to their size.
Instances For
The LTS of CCS for the nondeterministic vending machine.
Instances For
The deterministic and nondeterministic vending machines are not bisimilar.
HML properties of the two vending machines #
HML model for the deterministic machine with no atomic propositions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
HML model for the nondeterministic machine with no atomic propositions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
After inserting a coin, it is possible to choose between tea and coffee.
Equations
- One or more equations did not get rendered due to their size.