Error Reference › Lean 4
Lean 4

simp made no progress (Lean 4)

simp ran but none of its lemmas changed the goal (or the hypothesis you pointed it at), so Lean reports the call as an error.

What it looks like

Main.lean:4:2: error: `simp` made no progress

What does "simp made no progress (Lean 4)" mean?

It is an error, not a warning: Lean treats a simp that changes nothing as a mistake, which keeps proofs clean. Lean 4.23 and later write `simp` made no progress with backticks; Lean 4.22 and earlier write simp made no progress. dsimp and simp_all have their own versions of the message.

What causes "simp made no progress (Lean 4)"?

  • The goal is already in simp normal form, or the lemma it needs is not tagged @[simp].
  • The lemma you passed does not match the goal as written.
  • The fact is in a hypothesis, so simp needs at h.
  • An earlier tactic already changed the goal, so this simp has nothing left to do.

How do I confirm the cause?

  1. Put the cursor before simp and read the goal — is the term you expect to simplify actually there?
  2. Try simp only [h] with the one lemma you think applies; if that also fails, the lemma does not match.

How do I fix "simp made no progress (Lean 4)"?

  • Pass the lemmas or definitions it needs: simp [foo, bar], or simp [myDef] to unfold a definition.
  • Use simp at h, or simp at * for every hypothesis and the goal.
  • If the goal is already simplified or solved, delete the simp call.
  • Use simp? in a version that works to see exactly which lemmas it used.

How do I stop it happening again?

  • Use simp only [...] in finished proofs, so a Mathlib update cannot change what they do.
  • Remove simp calls that stopped doing anything after a refactor.
Got a different error? Paste it into the Explain This Error tool → Identifies the family and the fix — runs locally, nothing uploaded.

Related errors