This PR fixes an issue where `grind` failed to prove `f ≠ 0` from `f * r ≠ 0` when using `Lean.Grind.CommSemiring`, but succeeded with `Lean.Grind.Semiring`. The `propagateMul` propagator handles `0 * a = 0` and `a * 0 = 0` rules for semirings that don't have full ring support in grind. Previously, `CommSemiring` was excluded because it uses a ring envelope for normalization, but that approach doesn't propagate these equalities back to the original terms. Now `CommSemiring` also uses `propagateMul`. Reported as https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Grind.20failure.20for.20CommSemiring.2C.20not.20Semiring 🤖 Prepared with Claude Code --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| bench | ||
| bench-radar | ||
| compiler | ||
| elabissues | ||
| ir | ||
| lake | ||
| lean | ||
| pkg | ||
| playground | ||
| plugin | ||
| simpperf | ||
| .gitignore | ||
| common.sh | ||
| lakefile.toml | ||
| lean-toolchain | ||