Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Aditya V. Thakur is active.

Publication


Featured researches published by Aditya V. Thakur.


tools and algorithms for construction and analysis of systems | 2009

The Yogi Project: Software Property Checking via Static Analysis and Testing

Aditya V. Nori; Sriram K. Rajamani; Sai Deep Tetali; Aditya V. Thakur

We present Yogi , a tool that checks properties of C programs by combining static analysis and testing. Yogi implements the Dash algorithm which performs verification by combining directed testing and abstraction. We have engineered Yogi in such a way that it plugs into Microsofts Static Driver Verifier framework. We have used this framework to run Yogi on 69 Windows Vista drivers with 85 properties. We find that the new algorithm enables Yogi to scale much better than Slam , which is the current engine driving Microsofts Static Driver Verifier.


computer aided verification | 2010

Directed proof generation for machine code

Aditya V. Thakur; Junghee Lim; Akash Lal; Amanda Burton; Evan Driscoll; Matt Elder; Tycho Andersen; Thomas W. Reps

We present the algorithms used in McVeto (Machine-Code VErification TOol), a tool to check whether a stripped machine-code program satisfies a safety property The verification problem that McVeto addresses is challenging because it cannot assume that it has access to (i) certain structures commonly relied on by source-code verification tools, such as control-flow graphs and call-graphs, and (ii) meta-data, such as information about variables, types, and aliasing It cannot even rely on out-of-scope local variables and return addresses being protected from the programs actions What distinguishes McVeto from other work on software model checking is that it shows how verification of machine-code can be performed, while avoiding conventional techniques that would be unsound if applied at the machine-code level.


IEEE Transactions on Software Engineering | 2010

Proofs from Tests

Nels E. Beckman; Aditya V. Nori; Sriram K. Rajamani; Robert J. Simmons; Sai Deep Tetali; Aditya V. Thakur

We present an algorithm DASH to check if a program P satisfies a safety property φ. The unique feature of this algorithm is that it uses only test generation operations, and it refines and maintains a sound program abstraction as a consequence of failed test generation operations. Thus, each iteration of the algorithm is inexpensive, and can be implemented without any global may-alias information. In particular, we introduce a new refinement operator WPα that uses only the alias information obtained by symbolically executing a test to refine abstractions in a sound manner. We present a full exposition of the DASH algorithm and its theoretical properties. We have implemented DASH in a tool called YOGI that plugs into Microsofts Static Driver Verifier framework. We have used this framework to run YOGI on 69 Windows Vista drivers with 85 properties and find that YOGI scales much better than SLAM, the current engine driving Microsofts Static Driver Verifier.


static analysis symposium | 2012

A generalization of stålmarck's method

Aditya V. Thakur; Thomas W. Reps

This paper gives an account of Stalmarcks method for validity checking of propositional-logic formulas, and explains each of the key components in terms of concepts from the field of abstract interpretation. We then use these insights to present a framework for propositional-logic validity-checking algorithms that is parametrized by an abstract domain and operations on that domain. Stalmarcks method is one instantiation of the framework; other instantiations lead to new decision procedures for propositional logic.


architectural support for programming languages and operating systems | 2016

Scaling up Superoptimization

Phitchaya Mangpo Phothilimthana; Aditya V. Thakur; Rastislav Bodik; Dinakar Dhurjati

Developing a code optimizer is challenging, especially for new, idiosyncratic ISAs. Superoptimization can, in principle, discover machine-specific optimizations automatically by searching the space of all instruction sequences. If we can increase the size of code fragments a superoptimizer can optimize, we will be able to discover more optimizations. We develop LENS, a search algorithm that increases the size of code a superoptimizer can synthesize by rapidly pruning away invalid candidate programs. Pruning is achieved by selectively refining the abstraction under which candidates are considered equivalent, only in the promising part of the candidate space. LENS also uses a bidirectional search strategy to prune the candidate space from both forward and backward directions. These pruning strategies allow LENS to solve twice as many benchmarks as existing enumerative search algorithms, while LENS is about 11-times faster. Additionally, we increase the effective size of the superoptimized fragments by relaxing the correctness condition using contexts (surrounding code). Finally, we combine LENS with complementary search techniques into a cooperative superoptimizer, which exploits the stochastic search to make random jumps in a large candidate space, and a symbolic (SAT-solver-based) search to synthesize arbitrary constants. While existing superoptimizers consistently solve 9--16 out of 32 benchmarks, the cooperative superoptimizer solves 29 benchmarks. It can synthesize code fragments that are up to 82% faster than code generated by gcc -O3 from WiBench and MiBench.


static analysis symposium | 2012

Bilateral algorithms for symbolic abstraction

Aditya V. Thakur; Matt Elder; Thomas W. Reps

Given a concrete domain


computer aided verification | 2010

There's plenty of room at the bottom: analyzing and verifying machine code

Thomas W. Reps; Junghee Lim; Aditya V. Thakur; Gogul Balakrishnan; Akash Lal

\mathcal{C}


symposium on code generation and optimization | 2008

Comprehensive path-sensitive data-flow analysis

Aditya V. Thakur; R. Govindarajan

, a concrete operation


computer aided verification | 2012

OpenNWA: a nested-word automaton library

Evan Driscoll; Aditya V. Thakur; Thomas W. Reps

\tau: \mathcal{C} \to \mathcal{C}


Electronic Notes in Theoretical Computer Science | 2015

PostHat and All That

Aditya V. Thakur; Akash Lal; Junghee Lim; Thomas W. Reps

, and an abstract domain

Collaboration


Dive into the Aditya V. Thakur's collaboration.

Top Co-Authors

Avatar

Thomas W. Reps

University of Wisconsin-Madison

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Junghee Lim

University of Wisconsin-Madison

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Ben Liblit

University of Wisconsin-Madison

View shared research outputs
Top Co-Authors

Avatar

Evan Driscoll

University of Wisconsin-Madison

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Matt Elder

University of Wisconsin-Madison

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge