<html><body>Colloquium Speaker <br>Zachary Kincaid, University of Toronto <br>Wednesday, March 25, 12:30pm<br>Computer Science 105<br><br>Parallel Proofs for Parallel Programs<br><br>Today's software systems are large and complex - beyond the scope of comprehension of any one person.&nbsp; My research is motivated by the question of how machines can help humans better understand their code and aid the construction of reliable, secure, and efficient systems.&nbsp; Multi-threading is a long-standing obstacle to reasoning by both humans and machines.&nbsp; Conventionally, this obstacle is met by developing clever ways to reason about the program as if it were executing sequentially.&nbsp; In this talk, I will argue that we should embrace parallelism, not hide from it.&nbsp; I will discuss new *fundamentally parallel* foundations for automated program analysis, which allow the parallelism present in a program to be explicitly maintained and enable tractable automated reasoning and succinct proofs.&nbsp; In other words: my talk will be on parallel proofs for parallel programs.<br><br>Zachary Kincaid is a PhD candidate in the Department of Computer Science at the University of Toronto.&nbsp; He is interested in developing automated reasoning techniques to facilitate the construction of high-performance, dependable software.&nbsp; Zak's research focuses on static analysis and program verification, with a particular emphasis on multi-threaded programs.&nbsp; He has also made contributions to theorem proving and program synthesis.<br><br><br><br><br><br><div id="9fa6274a-1b34-4f45-893b-c0a3fda3060b"><br><span name="x"></span><br></div><br></body></html>