← All papers
First page of Waterproof Editor: an educational environment for proof assistants and programming languages

Waterproof Editor: an educational environment for proof assistants and programming languages

Pim Otte, Dick Arends, Raul Sánchez Flores, Pieter Wils, Jim Portegies

math.HO Jun 1, 2026 · v1 cs.CY
Adds Lean support to the Waterproof educational editor via Verbose Lean, the lean4-infoview package, and a custom Verso genre for exercise sheets.
Waterproof Editor provides an educational environment specifically targeted to teaching with proof assistants or programming languages. It arose from Waterproof, educational software targeted at helping students acquire the skill of giving mathematical proofs. Its original features such as enabling rich formatting and providing clear input areas are now abstracted away in an npm package and can be used in different educational contexts. We invite interested parties to use this component in their educational software, and offer to assist with this.

Waterproof, an educational tool for teaching mathematical proof built on Rocq, had its editor features tightly coupled to Rocq. This made it hard to reuse them with other proof assistants such as Lean, or with programming languages.

The editor features were split off into a reusable npm package, Waterproof Editor. These features include Markdown rendering, protected input areas, inline feedback, and collapsible hints. Its only conceptual requirement is an evaluation function on input areas. For Lean, Verbose Lean was integrated using the lean4-infoview package and a custom Verso genre, so that plain files remain editable with standard tools.

Figure 3: A screenshot of Waterproof Editor with a Verbose lean exercise.

Three use cases are demonstrated: Waterproof with Verbose Lean, JavaScript programming exercises checked by test suites, and a browser-only Waterproof built on a Rocq-lsp WASM webworker. The authors argue that extending the editor to further languages is feasible as a student project.

Figure 4: Illustration of JavaScript exercises using Waterproof Editor.