The construction of reliable concurrent and distributed systems is an extremely difficult endeavour. For complex systems, it requires modular development strategies based on prec...
The goal of cache management is to maximize data reuse. Collaborative caching provides an interface for software to communicate access information to hardware. In theory, it can o...
Testing of software components during development is a heavily used approach to detect programming errors and to evaluate the quality of software. Systematic approaches to softwar...
Debugging and testing is a larger part of the effort spent in a software development cycle. Debugging a program is time consuming and is a continuous cycle of code modification an...
Motivated by applications to proof assistants based on dependent types, we develop and prove correct a strong reducer and equivalence checker for the -calculus with products, sums...