The design of concurrent programs is error-prone due to the interaction between concurrently executing threads. Traditional automated techniques for finding errors in concurrent ...
Reasoning about the correctness of multithreaded programs is complicated by the potential for unexpected interference between threads. Previous work on controlling thread interfer...
Wireless sensor networks are envisioned to be deployed in mission-critical applications. Detecting a compromised sensor, whose memory contents have been tampered, is crucial in the...
Mark Shaneck, Karthikeyan Mahadevan, Vishal Kher, ...
The outcome of verifying software is often a `counterexample', i.e., a listing of the actions and states of a behavior not satisfying the specification. In order to understan...
We show how the binary encoding and decoding of typed data and typed programs can be understood, programmed, and verified with the help of question-answer games. The encoding of a...