The Lean Language Reference

17.2. What is grind?

A proof‑automation tactic inspired by modern SMT solvers.

Picture a virtual white‑board: every time grind discovers a new equality, inequality, or Boolean literal it writes that fact on the board, merges equivalent terms into buckets, and invites each engine to read from—and add back to—the shared white-board. The cooperating engines are:

  • congruence closure,

  • constraint propagation,

  • E‑matching,

  • guided case analysis, and

  • a suite of satellite theory solvers (linear integer arithmetic, commutative rings, …).

Lean supports dependent types and a powerful type‑class system, and grind produces ordinary Lean proof terms for every fact it adds.