CS 267 Class Project
- Sanjana Sahayaraj: Differential quantitative information flow analysis using SPF.
- Plane Janthong: Safety of relational queries in Tuple Relational Calculus and Datalog.
- Seemanta Saha: Symbolic Path Finder (SPF) driver generation for quantitative information analysis.
- Mohammadjavad Amiri: Verification of Business Processes using SPIN Model Checker.
- David Mc Carthy: Real-Time Models to Verify Pulse Gate Circuits.
- Isaac Mackey and Burak Kadron: Inter-procedural path complexity analysis.
- Samuel Dowell and William Eiers: Quantitative information flow analysis using a sampling-based
model-counting constraint solver.
There are a number of verification tools listed in the class webpage
and we are going to discuss a number of verification techniques in class.
As a class project you can either 1) apply an existing verification tool to
programs or specifications in some domain where verification can be useful
(and hopefully find some bugs), or 2) extend an existing verification
tool or technique and demonstrate its applicability in some domain.
Automated verification is an active area and there are lots of research
opportunities for applying automated verification to new domains and
extending existing techniques.
Automated verification typically has scalability problems and application of
some verification tools may require manual translation, modeling or
simplification. In some cases it may be possible to automate such steps
(for example by writing a translator from the target language to the input
language of one of the existing verification tools).
The first thing to do is to find an application domain. You have
to figure this out as soon as possible. Please choose a topic that is
related to your interests so that the project is fun for you!
You can do the project either individually or as part of a two-member team.
- Project topic: Send me one paragraph describing your project.
List the team members if it is a team project. Due:
January 19th, Thursday
- Progress report: Prepare a 3-5 page
progress report about your project.
In the progress report you should explain the topic of your study,
and discuss your findings so far.
Due: February 17th, Friday
- Project Presentation:
We will have 15 minute project presentations in class on
March 16th Thursday.
- Final Report:
You will need to turn in a final project report up to 10 pages
at the end of the quarter.
Due: March 23rd Thursday.
Here are some project suggestions. Talk to instructor for details.
Integrating a sampling-based model-counting constraint solver to Symbolic
Path Finder (SPF) for quantitative information flow analysis of crypto
code. Comparing performance of sampling-based model-counting constraint
solvers with other model counting constraints solvers integrated with SPF.
Lucas Bang, Abdulbaki Aydin, Quoc-Sang Phan, Corina S. Pasareanu, Tevfik Bultan:
String analysis for side channels with segmented oracles. SIGSOFT FSE 2016: 193-204
Kuldeep S. Meel, Moshe Y. Vardi, Supratik Chakraborty, Daniel J. Fremont, Sanjit A. Seshia, Dror Fried, Alexander Ivrii, Sharad Malik:
Constrained Sampling and Counting: Universal Hashing Meets SAT Solving. AAAI Workshop: Beyond NP 2016
Corina S. Pasareanu, Willem Visser, David H. Bushnell, Jaco Geldenhuys, Peter C. Mehlitz, Neha Rungta:
Symbolic PathFinder: integrating symbolic execution with model checking for Java bytecode analysis. Autom. Softw. Eng. 20(3): 391-425 (2013)
- Symbolic Path Finder (SPF) driver generation for quantitative information analysis.
In order to analyze large programs with symbolic execution it is necessary to write drivers
that focus to analysis to parts of the code that are related to the property that is
being verified. This project would build on existing automated driver generation techniques
implemented for SPF and focus on extending them to quantitative information flow analysis.
- Inter-procedural path complexity analysis. This project will involve extending
an existing Path complexity analyzer tool to handle inter-procedural paths.