Version 0.1.0 · Free

Room to Prove

Mathematics you can read, run and test.

A free desktop app to support learning mathematics.

  • Lean proofs, read as mathematics.
  • An AI assistant.
  • Lessons with live figures.
  • Python and exact computation.

For macOS, Windows version coming soon.

A lesson on the Mean Value Theorem, with a live figure

Lean, read as mathematics

Room to Prove parses Lean with gradually refined rules and renders it in words.

In Lean
theorem eq_of_deriv_eq_zero {f : ℝ → ℝ} {a b : ℝ}
    (hab : a < b)
    (hfc : ContinuousOn f (Icc a b))
    (hfd : DifferentiableOn ℝ f (Ioo a b))
    (h0 : ∀ x ∈ Ioo a b, deriv f x = 0) :
    f a = f b := by
  obtain ⟨c, hc, hslope⟩ :=
    exists_deriv_eq_slope f hab hfc hfd
  rw [h0 c hc, eq_div_iff (sub_ne_zero.mpr hab.ne')]
    at hslope
  linarith
In Room to Prove
Theorem eq_of_deriv_eq_zero✓ proved in Lean

Let f : ℝ → ℝ and a, b ∈ ℝ.

Suppose a < b (hab), f is continuous on [a, b] (hfc), f is differentiable on (a, b) (hfd) and ∀x ∈ (a, b), f′(x) = 0 (h0).

Then f(a) = f(b).

  1. From Lagrange’s Mean Value Theorem (applied to f, (hab), (hfc) and (hfd)), obtain c, hc and hslope. Now c ∈ ℝ, hc : c ∈ (a, b) and hslope : f′(c) = (f(b) − f(a)) / (b − a).
  2. Rewrite in hslope using (h0) (applied to c and (hc)) and eq_div_iff (applied to sub_ne_zero.mpr hab.ne′). It becomes hslope : 0 · (b − a) = f(b) − f(a). Using sub_ne_zero and ne_of_gt.
  3. This follows from the hypotheses by linear arithmetic. This completes the proof.

How Room to Prove reads Lean →

Figures you can play with

A library of figures, ready to use. Move a slider, press play.

  • Over a hundred, from calculus to knots and physics
  • The assistant makes new ones, or changes them

Figures in the docs →

A torus knot, in space, drawn by Room to Prove
A torus knot, in space
A cardioid from a times table, drawn by Room to Prove
A cardioid from a times table
The field of two currents, drawn by Room to Prove
The field of two currents
A complex function’s landscape, drawn by Room to Prove
A complex function’s landscape

The assistant drafts, you correct

Ask for a lesson, a figure or a script. You get a draft to edit.

  • Edit the text, or click into the page
  • Check each Lean block yourself
  • Any model: local, OpenRouter, or your key

The assistant in the docs →

A lesson the assistant wrote, open in the draft editor: its Markdown beside the page it makes

Search all of Mathlib

By name, words or symbols, across 419,272 declarations.

  • Every name opens as a page: what it says, its proof, what it uses

Lean in the docs →

Search for "mean value": the lessons' theorems and Mathlib's, each with its statement

Plugins, when you need more

Tools, Python and Lean libraries, in one click.

  • Or your own, even a private Lean library

Plugins in the docs →

The Plugins panel: tools, Python libraries and Lean libraries

Also in the app

Python, built in

NumPy, SciPy, SymPy, Matplotlib.

Exact computation

With Lean’s rules.

Your own lessons

Formulas, figures, Lean.

Made for reading

Themes and type sizes.

Checked, never guessed

Lean checks the proofs

✓ proved in Leandepends on sorry

Figures compute their numbers

#{f′(a):2}→1.00

References are real

CrossrefarXivdblp

Sandboxed plugins

pluginsassistant-generated code

Your model, your choice

on this computerOpenRouteryour key

Your work stays with you

no accountno tracking

Room to Prove 0.1.0

Lean and Mathlib download inside the app:
about 1 GB, 11 GB on disk.

Download free