Zulip Chat Archive

Stream: general

Topic: Inconsistent behavior between `simp_all` and `simp [*]`


Asei Inoue (Dec 16 2025 at 13:19):

this simp_all throw an error: (failed with a nested error)

example (_h : 1 + 1 = 2) : True := by
  have : 1 = 1 + 1 - 1 := by simp

  simp_all

And this simp [*] does not raise an error.

example (_h : 1 + 1 = 2) : True := by
  have : 1 = 1 + 1 - 1 := by simp

  simp [*]

However, both simp_all and simp [*] are failing for the same reason: there is a bad simp lemma in the local context. Given that the reason for failure is the same, I think it is strange that their behavior differs in whether or not they produce an error.

Asei Inoue (Dec 16 2025 at 13:20):

In v4.26.0, the behaviors of the two were consistent. I believe this is a bug in v4.27.0-rc1—what do you think?

Artie Khovanov (Dec 16 2025 at 19:01):

simp_all is very different to simp [*] at *. It's a much more powerful tactic that does things simp does not.

Asei Inoue (Dec 17 2025 at 01:31):

I know that simp_all and simp [*] are different.
the problem is, it is specific to v4.27.0-rc1
why this change is made?


Last updated: Dec 20 2025 at 21:32 UTC