Author: Ernst, M.D.
Paper Title Page
TUDPL02 Automatic Formal Verification for EPICS 285
 
  • J.P. Jacky, S.P. Banerian
    University of Washington Medical Center, Seattle, Washington, USA
  • M.D. Ernst, C.A. Loncaric, S. Pernsteiner, Z.L. Tatlock, E. Torlak
    University of Washington, Seattle, USA
 
  We built an EPICS-based radiation therapy machine control system, and are using it to treat patients at our hospital. To help ensure safety, we use a restricted subset of EPICS constructs and programming techniques, and developed several new automated formal verification tools for them. The Symbolic Evaluator checks properties of EPICS database programs (applications), using symbolic evaluation and satisfiability checking. It found serious errors in our control program that were missed by reviews and testing. Other tools are based on a formal semantics for database records, derived from EPICS documentation and expressed in the specification language of an automated theorem prover. The Verified Interpreter is a re-implementation of the parts of the database engine we use, which is proved correct against the formal semantics. We used it to check those parts of EPICS core by differential testing. It found no significant errors (differences between EPICS behavior and the formal semantics). A Verified Compiler is in development. It will compile a database to a standalone program that does not use EPICS core, where the machine code is verified to conform to the formal semantics.  
video icon Talk as video stream: https://youtu.be/CFSnkB5z0GA  
slides icon Slides TUDPL02 [0.389 MB]  
DOI • reference for this paper ※ https://doi.org/10.18429/JACoW-ICALEPCS2017-TUDPL02  
Export • reference for this paper using ※ BibTeX, ※ LaTeX, ※ Text/Word, ※ RIS, ※ EndNote (xml)