<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>