Modern software systems are designed and implemented in a modular fashion by composing individual components. Early validation of individual module designs and implementations off...
We present a formal semantics for a subset of Verilog, commonly used to describe cell libraries, in terms of transition systems. Such transition systems can serve as input to symb...
Java's annotation mechanism allows us to extend its type system with non-null types. However, checking such types cannot be done using the existing bytecode verification algor...
Chris Male, David J. Pearce, Alex Potanin, Constan...
Atomicity is a fundamental correctness property in multithreaded programs. This paper presents an algorithm for verifying atomicity via type inference. The underlying type system ...
Cormac Flanagan, Stephen N. Freund, Marina Lifshin
We describe a practical method for reasoning about realistic concurrent programs. Our method allows global two-state invariants that restrict update of shared state. We provide sim...
Ernie Cohen, Michal Moskal, Wolfram Schulte, Steph...