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 Linear Logic, Spring 2012

Linear Logic, Fall 2001

Linear Logic, Spring 1998 Class Material Schedule Lecture notes and additional readings (combined lecture notes) 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 ] fp@cs

Frank Pfenning