Practical Verification of Safety-Critical Systems

dc.contributor.advisorTatlock, Zachary
dc.contributor.advisorErnst, Michael D
dc.contributor.authorPernsteiner, Stuart
dc.date.accessioned2018-07-31T21:11:03Z
dc.date.available2018-07-31T21:11:03Z
dc.date.issued2018-07-31
dc.date.submitted2018
dc.descriptionThesis (Ph.D.)--University of Washington, 2018
dc.description.abstractSoftware-based control systems operate scientific equipment worth millions of dollars and even safety-critical medical devices, making them good targets for strong formal verification techniques. However, these systems are rarely verified in practice. We identify three key challenges hindering the application of verification to real-world control systems and present solutions to each. First, safety properties of control systems often rely on correct operation and interaction of several heterogeneous hardware and software components. No single analysis tool can reason about all types of components. We present techniques, based on the established practice of safety case construction, for building a machine-checkable safety case that combines concrete evidence about the system implementation derived from multiple analysis tools. Using these techniques, we uncovered safety-critical flaws in a prerelease version of control software for the Clinical Neutron Therapy System (CNTS), a radiotherapy installation. Second, software components of control systems are often developed using proprietary or domain-specific languages for which no formal semantics yet exist. We present a methodology for rapidly developing language semantics, allowing application of formal verification techniques in languages that have received little previous study. We used this methodology to develop semantics for Python and for the EPICS dataflow language, suitable for analyzing components of the CNTS control software. Third, for control system software written in specialized languages, often no verified language implementations are available. We present a new technique for developing verified compilers that combines a verified denotation function with a verified extraction procedure to achieve high run-time performance with low verification effort. We demonstrate the effectiveness of this technique by developing a verified compiler for a fragment of the EPICS dataflow language and using it to compile portions of the CNTS control software.
dc.embargo.termsOpen Access
dc.format.mimetypeapplication/pdf
dc.identifier.otherPernsteiner_washington_0250E_19011.pdf
dc.identifier.urihttp://hdl.handle.net/1773/42263
dc.language.isoen_US
dc.rightsnone
dc.subject
dc.subjectComputer science
dc.subject.otherComputer science and engineering
dc.titlePractical Verification of Safety-Critical Systems
dc.typeThesis

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Pernsteiner_washington_0250E_19011.pdf
Size:
874.91 KB
Format:
Adobe Portable Document Format