15-836 Substructural Logics
Fall 2023 |
Frank Pfenning |
TuTh 9:30-10:50 |
GHC 4215 |
12 units |
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
Course Information
Lectures |
Tue Thu 9:30-10:50, GHC 4215 |
Office Hours |
Wed 10:30-12:00, GHC 6017 or by appointment
|
Course Communication |
piazza.com/cmu/fall2023/15836 |
Notes |
There is no textbook, but lecture notes
and papers will be posted
|
Credit |
12 units |
Grading |
60% Homework, 15% Midterm, 25% Miniproject |
Homework |
Weekly homework is assigned each Thursday and due the following Thursday.
Late homework will be accepted with prior notification of the instructor.
|
Midterm |
Thu Oct 12, in class
Closed book, closed notes.
|
Final |
There will be no final exam
|
Home |
http://www.cs.cmu.edu/~fp/courses/15836-f23/ |
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
- Ownership types and the Rust language
- Quantum programming languages
[ Home
| Schedule
| Assignments
| Resources
]
fp@cs
Frank Pfenning
|