Search: 
 
 GSRC Student Profile:

Himanshu Jain

hjain@cs.cmu.edu
http://www.cs.cmu.edu/~hjain

Carnegie Mellon University
Advisor: Edmund M. Clarke

GSRC theme:  concurrent
Expected graduation:  Aug, 2008

Research Overview:  Satisfiability Checking of Non-clausal Formulas and Word-level Verification of Hardware Designs

I am working on the following projects:

Predicate Abstraction and Refinement techniques for Verifying Verilog: Most model checkers used in the hardware industry use a very low level design, usually a net-list, for verification. Our work develops techniques for verifying hardware designs at a higher level of abstraction. In particular, we use predicate abstraction, a software verification technique, to verify register transfer level (RTL) circuits. A tool based on this work is available from http://www.cs.cmu.edu/~modelcheck/vcegar. For more details see our IEEE TCAD 2007 paper (journal version) or DAC 2005 paper.

Non-clausal Satisfiability (SAT) solvers: We are developing new SAT solvers that do not require the input formula to be in Conjunctive Normal Form (CNF). Our first attempt in this direction is a solver called SatMate. It is based on the idea of General Matings. We devised techniques for performing search space pruning, learning, and non-chronological backtracking in the new solver. On certain benchmark classes our solver has a better performance than CNF-based SAT solvers. For more details see our SAT 2006 paper.

Efficient support for Transactions in Concurrent Software: We are developing new ideas to improve software transactional memory (STM) implementations. We are also working on verification of programs that use transactions and verification of transactional memory implementations themselves.

Software verification using static analysis and model checking: We used the invariants generated from abstract domains (octagon abstract domain) to improve static analysis and verification of C programs. We also developed techniques for improving the performance of the predicate abstraction and refinement loop. The main idea was to localize the use of predicates using weakest pre-conditions. For more details see our CAV 2006 paper and TACAS 2005 paper.

Verification of SpecC Programs: We applied predicate abstraction for verification of SpecC, a hardware/software system-level description language. This involved dealing with the concurrency constructs and the bit-vector semantics of the language. For more details see our FMSD 2007 paper (journal version) or MEMOCODE 2004 paper.

You can obtain copies of my papers from my website . Please email me if a paper you are looking for is not available.

 
You are not logged in
©1998-2008 GSRC