CS7470  Seminar in PL: Logical Relations (Spring 2025)


Course Information

Time & Place

Tuesdays 11:45-1:25 and Thursdays 2:50pm - 4:30pm in Forsyth 236

Professor

Amal Ahmed
Office: WVH 328
Email: amal at ccs.neu.edu
Office hours: by appointment (email me)

Course Description

Logical relations are a well-known method for proving type soundness of languages and equivalence of program components. The proof method dates back to 1967 but for decades it wasn't clear how to scale the technique to features found in practical programming languages, such as recursive types, dynamically allocated mutable memory, polymorphism, and concurrency. This changed with the advent of step-indexed logical relations in the early 2000s which eliminated the circularities that complicated prior efforts at scaling the technique to such advanced language features.

In this course, we'll start with the simplest proof using logical relations, using them to prove type soundness of a simply typed language, and gradually show how to scale the technique to a variety of advanced programming-language features. Then we'll cover many exciting recent applications of the technique, including compiler correctness, type safety and security properties of advanced languages, sound language interoperability, and specification of ABIs. We'll also briefly discuss papers in the literature that make use of logical relations for verification of concurrent code, proving soundness of the Rust MIR, soundness of program reasoning on CHERI, and more.

The course will consist of lectures for most of the semester. There will be a few homework assignments in the early part of the semester to give students practice doing logical relations proofs. For the project, students may either (1) select a small language, compiler pass, or interoperability case study and prove a soundness, security or correctness property using a logical relation, or (2) select a research paper to present that makes use of logical relations.

Topics include:
This course is intended primarily for PhD students; however, MS students and undergraduates are encouraged to contact the instructor.

Prerequisites

CS 5400 (PPL) or CS 7400 (Intensive PPL), or permission from instructor.

Readings

There is no required textbook. Readings will include a few research papers relevant to the topic being covered in lecture.

Grading

The percentages below are subject to change:

Background Reading

To pick up the background material required for this course you may want to read one of the following:


Schedule

(Subject to change)

Date Topic and Readings Presenter HW/Notes
Tu 1/7
  • Simply-typed lambda calculus; Normalization
    TAPL 8, 9, 11, 12
Amal

Amal Ahmed
Last modified: Tue Jan 7 03:30:57 EST 2025

Valid XHTML 1.0!