Design by Provable Contracts

External: Coursera Courses ↗ · Coursera

Open Course on External: Coursera

Free to audit · Opens on External: Coursera

Design by Provable Contracts

Coursera · Intermediate ·🏗️ Systems Design & Architecture ·2w ago
e.g. This is primarily aimed at first- and second-year undergraduates interested in engineering or science, along with high school students and professionals with an interest in programming.Design by Provable Contracts teaches you how to move from "the tests pass" to "the math says it cannot break." Across five modules, you'll climb a five-rung provability ladder — from lint and types, through property-based and bounded-model checking, to dependent-typed proofs in Lean 4 — applied to a single running example: the softmax function used in modern machine learning. By the end, you will be able to: (1) read a peer-reviewed paper and translate its preconditions, postconditions, and invariants into a YAML contract; (2) choose the right verification rung for a given cost-vs-confidence trade-off, using lint, types, proptest, and Kani in Rust; and (3) build a complete pipeline from paper to YAML to Lean theorem, producing a machine-checked guarantee that holds for every input of every length. The course is hands-on and tool-first: Rust for the lower rungs, Lean 4 for the top rung, and YAML as the connective tissue between math and code. You will leave with a reusable mental model and a working capstone you can apply to any safety-critical numerical kernel.
Watch on External: Coursera ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Related AI Lessons

Architecture preempts the experiment
Learn how architecture can guide experimentation in software development
Dev.to AI
Concurrency is byproduct of capability design not bottleneck to patch
Concurrency is a natural result of well-designed capabilities, not a bottleneck to be fixed, and understanding this can improve system performance
Dev.to AI
The System Design Interview Where I Realized I Was Building for Resumes, Not Reality
Learn to design systems for real-world problems, not just to impress on resumes, and understand the importance of practicality in system design interviews
Medium · Programming
The System Design Interview Where I Realized I Was Building for Resumes, Not Reality
Learn how to approach system design interviews with a focus on real-world problems, not just impressing with technical jargon
Medium · Startup
Up next
Microservices – “Small Services, Big Systems”
Next Gen Synthetix
Watch →