What is Logic for Systems?

Mathematical logic provides the foundation for a rich set of tools for reasoning about systems and discovering whether their behavior meets our expectations. These tools allow us to model (e.g.) the state of buffers and caches, prove whether our protocols obey desirable properties, explore the consequences of memory-management strategies, and much more.

As a Computer Science student, you’ve often been asked to write code with the intent of creating a system. This class is different. Here, we’ll ask you to create models of systems and interact with them in numerous ways. You will learn to use modern, logic-based tools to describe and analyze program designs, algorithms, data-structures, and other artifacts—we’ll learn the logical frameworks we need as we go along. In the end, you’ll develop a better understanding of how to use logic-based tools to analyze whatever systems you encounter after Brown.

Class Time and Location

Class will be held on Mondays, Wednesdays, and Fridays from 10:00am to 10:50am in Barus & Holley 168.

Course Calendar



Course Documents

Other resources