Documentation

Cslib.Algorithms.CCS.VendingMachine

Milner's Vending Machine #

This file formalises Milner's vending machine example for CCS.

We formalise two versions:

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.

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
    @[reducible, inline]

    The LTS of CCS for the deterministic vending machine.

    Equations
    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
        @[reducible, inline]

        The LTS of CCS for the nondeterministic vending machine.

        Equations
        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.
              Instances For