Model-based reasoning: generalised concurrent counting

Verification example with `n` threads, each decrementing a shared variable. This verification problem shows that our model-based abstraction approach can be applied to applications that spawn a dynamic number of threads.

General Information

  • Backend: Silicon
  • Language: PVL
  • Features: Fork/join concurrency, Futures, Statically-scoped locking
  • Path to Example File: futures/counteradd_n.pvl
  • Should Verify: Yes
  • Date: 2017-06-19
  • Lines of Code: 91 (comments not included)
  • Lines of Specification: 26 (28.6% of total)
  • Computation Time: 27.9 seconds