15816 Substructural Logics
Fall 2016 
Frank Pfenning 
TuTh 1:302: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
messagepassing 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
Course Information
Lectures 
Tue Thu 1:302:50, GHC 4301 
Office Hours 
Mon 1:002:00, GHC 7019
Thu 3:004: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:30am11:30am, GHC 4211
Closed book.

Home 
http://www.cs.cmu.edu/~fp/courses/15816f16/ 
Learning objectives:
After taking this course, students will be able to
 model stateful, concurrent, and resourceaware 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 computationasproofreduction and
computationasproofconstruction 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
 Sessiontyped messagepassing 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
]
fp@cs
Frank Pfenning
