15-816 Substructural Logics

Fall 2016
Frank Pfenning
TuTh 1:30-2:50
GHC 4301
12 units
First lecture will be Tue Aug 30

This graduate course provides an introduction to substructural logics, such as linear, ordered, affine, bunched, or separation logic, with an emphasis on their applications in computer science. This includes the design and theory of programming constructs for concurrent message-passing computation and techniques for specifying and reasoning about programming languages in the form of substructural operational semantics.

Prerequisites: This is an introductory graduate course with no formal prerequisites, but an exposure to functional programming and type systems may be helpful. Enterprising undergraduates are welcome to attend this course.

Prior Versions of This Course

Class Material

Schedule Lecture notes and additional readings
Assignments Homeworks assignments and due dates
Resources Links to other resources

Course Information

Lectures Tue Thu 1:30-2:50, GHC 4301
Office Hours Mon 1:00-2:00, GHC 7019
Thu 3:00-4:00, GHC 7019
Course Communicaity piazza.com/cmu/fall2016/15816
Notes There is no textbook, but lecture notes and papers will be posted
Credit 12 units
Grading 60% Homework, 15% Midterm, 25% Final
Homework Weekly homework is assigned each Thursday and due the following Thursday.
Late homework will be accepted only under exceptional circumstances.
Midterm Tue Oct 18, in class.
Closed book.
Final Mon Dec 12, 8:30am-11:30am, GHC 4211
Closed book.
Home http://www.cs.cmu.edu/~fp/courses/15816-f16/

Learning objectives: After taking this course, students will be able to

  • model stateful, concurrent, and resource-aware systems in substructural logics
  • define and reason about programming languages using substructural operational semantics
  • capture computational phenomena in advanced substructural type theories
  • apply the judgmental method to define logics and type theories for a rich variety of applications
  • appreciate the deep philosophical underpinnings and elegance of the computation-as-proof-reduction and computation-as-proof-construction paradigms

Topics: Many of these topics are tentative, depending on the pace of the course and participant interests.

  • Deductive inference
  • Substructural hypothetical judgments
  • From inference rules to propositions and back
  • Judgmental independence principles
  • Ordered, linear, affine, strict, and persistent hypotheses
  • Harmony
  • Cut elimination
  • Concurrent computation as cut reduction
  • Session-typed message-passing concurrency
  • Substructural operational semantics
  • Concurrent cost semantics
  • Combining logics with adjunctions
  • Polarization and focusing
  • Computation as proof construction
  • Substructural logical frameworks
  • Resource semantics
  • Logical embeddings
  • Automata in logical fragments
  • Substructural characterizations of complexity classes
  • Lambek calculus and categorial grammars
  • Classical linear logic
Even more tenative:
  • Bunched logic and its resource semantics
  • Separation logic and imperative computation
  • Modeling protein interaction networks

[ Home | Schedule | Assignments | Resources ]

Frank Pfenning