LTL model-checking algorithm

We consider the drink vendor machine example (see transition system T below) and the specification "one can only get finitely many drinks".

  1. Formalize the specification as an LTL formula
  2. Give a Büchi automaton B that accepts the runs that do not satisfy the formula
  3. Compute the product P of the Büchi automaton B and the transition system T
  4. Check if the transition system T satisfies the property above using:
    1. A naive algorithm based on DFS requests on P
    2. A decomposition of P in strongly-connected components
  5. Write a PlusCal model corresponding to the transition system above and model-check your model w.r.t. the specification above