Zulip Chat Archive
Stream: mathlib4
Topic: Regression: rw works, but simp fails
Shubakur Mitra (Feb 22 2026 at 20:50):
After updating Lean from v4.27.0-rc1 to v4.29.0-rc1 and mathlib from 1723eba8 to 7f14c970, the following proof started failing:
import Mathlib
open List in example {α : Type*} {xs : List α} {p : α → Bool} :
xs.findIdx p = 0 ↔ xs = [] ∨ ∃ (h : 0 < xs.length), p xs[0] := by
rcases xs with _ | ⟨x, xs⟩ <;> simp; rw [findIdx_eq] <;> simp
Further investigation shows that here rw works, but simp fails to close the goal:
import Mathlib
open List in example {α : Type*} {xs : List α} {p : α → Bool} :
xs.findIdx p = 0 ↔ xs = [] ∨ ∃ (h : 0 < xs.length), p xs[0] := by
rcases xs with _ | ⟨x, xs⟩ <;> simp; rw [findIdx_eq]; simp
· simp --fails
rw [getElem_cons_zero] --works
· sorry
Simp was working in the old version.
Yury G. Kudryashov (Feb 22 2026 at 21:15):
Use set_option backward.isDefEq.respectTransparency false
Yury G. Kudryashov (Feb 22 2026 at 21:15):
See the announcement, the FRO doesn't recommend downstream projects to update yet.
Last updated: Feb 28 2026 at 14:05 UTC