BPJ Model Checking

From BP Wiki
Revision as of 21:20, 27 April 2014 by Assaf (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Verifying programs with BP model checking

Introduction

  • You can find bugs and under-specification in behavioral programs using model checking.
  • The model checking capability of BP (abbr. BPmc) is part of the overall BPJ execution infrastructure. Thus, the program can be verified directly by executing it (with appropriate setup) subject to all relevant alternatives. There is no need to create a separate model or abstraction to be verified by an external tool.
  • During model checking execution, the BP infrastructure executes all possible paths of a behavioral program looking for states with desired and undesired properties per your specification.
  • The model checking capabilities support checking for safety properties (including deadlocks) and for liveness properties (with fairness assumptions)
  • An application must be first enabled for model checking.
  • Verification Example: Movie: Using model-checking to repair a behavioral program for play Tic Tac Toe:
    • We present a program for playing Tic Tac Toe and verify it using BP model checking.
    • When the b-thread for adding the third O in a line is removed, the program may lose the game.
    • "coding" and adding the b-thread, causes the program to never lose the game.

Additional Information