Zulip Chat Archive

Stream: lean4

Topic: UInt reduceBEq is hidden


Pavel Klimov (Dec 16 2025 at 11:21):

Simproc UInt32.reduceBEq and similar are hidden
https://github.com/leanprover/lean4/blob/8f80d2c2e0441b7ead0fe9dd889375c1180b2c68/src/Lean/Meta/Tactic/Simp/BuiltinSimprocs/UInt.lean#L55
It happens because of hygiene mechanism in macros.

So, as far as I understand, there is no way to use it in simp only syntax. Only when you use simp with all simp power you can use it. I know you can disable some transformations, but anyway. Is there any reason behind, why UInt32.reduceBEq and similar are hidden?

Examples.

The following is working:

example (h : (2347861 == 522312) = true) : 1 = 2 := by
  simp only [Nat.reduceBEq, Bool.false_eq_true] at h

while following doesn't:

example (h : ((2347861 : UInt32) == (522312 : UInt32)) = true) : 1 = 2 := by
  simp only [UInt32.reduceBEq, Bool.false_eq_true] at h

Markus Himmel (Dec 16 2025 at 11:58):

Thank you for the report. Would you mind reporting this as a bug over at https://github.com/leanprover/lean4/issues ?


Last updated: Dec 20 2025 at 21:32 UTC