Stanford Root

Schedule

Stanford Root

Schedule

CS 99

Functional Programming and Theorem Proving in Lean 4

UNITS:1
GRADING:Satisfactory/No Credit
LEVEL:Undergrad
GER:—

Objectives: Historically, mathematics and reasoning has almost always been done in prose: natural language text describing the relevant steps and logic involved. With the help of Proof Assistants, computers can automatically check mathematical proofs and reasoning. In this course we will give an introduction to Lean 4, a proof assistant and purely functional programming language. We introduce Lean first as a programming language for the first half of the course. In the latter half of the course, we explain its proof assistant features. Topics: Abstract data types, monads, error handling, type instances, type theory, specifically the calculus of inductive constructions (CIC), expression- and tactic-based theorem proving, and various libraries in Mathlib4. Target Audience: Students who want to learn about formalizing mathematics are the primary audience. The goal of the course is not to learn advanced mathematical concepts since the mathematical part stops at differential calculus. Students only need a reasonable aptitude in mathematics as a prerequisite. The secondary audience are researchers

Syllabus for selected term:
View Spring 2027 Syllabus

Sections

1 Term
Seminar 1Open
ID: 26632
0 / 999 enrolled
DAYS:TBD
TIME:TBD
LOCATION:TBD
1unit

CS 99: Functional Programming and Theorem Proving in Lean 4

1 units · Satisfactory/No Credit

Objectives: Historically, mathematics and reasoning has almost always been done in prose: natural language text describing the relevant steps and logic involved. With the help of Proof Assistants, computers can automatically check mathematical proofs and reasoning. In this course we will give an introduction to Lean 4, a proof assistant and purely functional programming language. We introduce Lean first as a programming language for the first half of the course. In the latter half of the course, we explain its proof assistant features. Topics: Abstract data types, monads, error handling, type instances, type theory, specifically the calculus of inductive constructions (CIC), expression- and tactic-based theorem proving, and various libraries in Mathlib4. Target Audience: Students who want to learn about formalizing mathematics are the primary audience. The goal of the course is not to learn advanced mathematical concepts since the mathematical part stops at differential calculus. Students only need a reasonable aptitude in mathematics as a prerequisite. The secondary audience are researchers

Offered in Spring 2027 at Stanford University.

Spring 2027 sections

  • Seminar — TBA TBA (Undergrad)

More CS courses

  • CS 52: CS + Social Good Studio: Implementing Social Good Projects
  • CS 53N: How Can Generative AI Help Us Learn? (DESIGN 183N)
  • CS 59SI: Quantum Computing: Open-Source Project Experience
  • CS 80E: Dissecting The Modern Computer
  • CS 83N: Playback Theater
  • CS 88: Computer-Use Agents: Building Computers to Operate Computers
  • CS 100ACE: Problem-solving Lab for CS106A
  • CS 100BACE: Problem-solving Lab for CS106B
  • CS 103: Mathematical Foundations of Computing
  • CS 103ACE: Mathematical Problem-solving Strategies
  • CS 104: Introduction to Essential Software Systems and Tools
  • CS 105: Introduction to Computers

All CS courses · All departments