A Teaching Language for Specification
summary
A compact teaching language called LSL (Logical Student Language) builds on ISL so students spend little time on syntax and much time on real specification work. It uses contracts + generators for runtime checking and property‑based testing, adds lightweight verification via Rosette symbolic execution to find deep bugs that random tests miss, and scales to assignments like a simple memory allocator and a distributed snapshot algorithm. Course materials and the Racket package are public and a two‑week Lean bridge shows full proofs.
AI-written summary · about
chapters (13)
- 0:00Teaching language for specification
- 1:04Teaching formal specification
- 3:11Proof assistants in courses
- 6:19Logical Specification Language
- 7:25Informal to formal specs
- 9:52Property-based testing with contracts
- 11:37Lightweight verification
- 13:03Transitioning to Lean
- 14:05Advantages of teaching language
- 16:36Course structure with design recipes
- 19:47Live demo: contracts & testing
- 24:47Future improvements & materials
- 26:45Q&A
