- Automatic software verification is an important but hard problem. Verifiers primarily rely on static analysis to reason about all possible program behaviors, where a purely static analysis makes inferences based solely on program text. However, since verification is so hard, to be successful it seems necessary to leverage all possible sources that can provide any useful information about the program. Hence, limiting a verifier to just the program text is unnecessarily restrictive. Our thesis is that verification can be aided and significantly improved by learning from data gathered from program executions. In particular, we focus on the problem of invariant inference and its applications in verification. Invariant inference is a core problem that every software verifier must address. The traditional verifiers infer invariants by analyzing program text alone. The main contribution of this thesis is an effective technique to infer loop invariants by combining static analysis and machine learning applied to program executions.
|Type of resource
|electronic; electronic resource; remote
|1 online resource.
|Stanford University, Department of Computer Science.
|Dill, David L
|Dill, David L
|Statement of responsibility
|Submitted to the Department of Computer Science.
|Thesis (Ph.D.)--Stanford University, 2016.
- © 2016 by Rahul Sharma
- This work is licensed under a Creative Commons Attribution Non Commercial 3.0 Unported license (CC BY-NC).
Also listed in
Loading usage metrics...