CS7470  Seminar in PL: Logical Relations (Spring 2025)


Announcements

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
  • Intro; Simply-typed lambda calculus
    TAPL 8, 9, 11
Amal
Th 1/9
  • Normalization for STLC
    TAPL 12
Amal
Tu 1/14
  • Semantic Type Soundness for STLC
Amal
Th 1/16
  • Recursive types
Amal
Tu 1/21
  • Semantic Type Soundness for STLC with recursive types
Amal
Th 1/23
  • Polymorphic Types
Amal
Tu 1/28
  • Parametricity and Contextual Equivalence
Amal
Th 1/30
  • Proving Free Theorems
Amal
Tu 2/4
  • No class
Amal
Th 2/6
  • Existential Types and Representation Independence
Amal
Tu 2/11
  • Semantic Type Soundness for Immutable References
Andrew Wagner
Th 2/13
  • Semantic models using logics
Andrew Wagner
Tu 2/18
  • Semantic Type Soundness for Mutable References
Amal hw1 (latex)
Th 2/20
  • Mutable References contd.
Amal

Amal Ahmed
Last modified: Mon Feb 17 23:35:23 EST 2025

Valid XHTML 1.0!