lean4-htt/tests
Leonardo de Moura f6e19f1f93
fix: nonstandard Nat and Int instances (#9676)
This PR adds normalizers for nonstandard arithmetic instances. The types
`Nat` and `Int` have built-in support in `grind`, which uses the
standard instances for these types and assumes they are the ones in use.
However, users may define their own alternative instances that are
definitionally equal to the standard ones. This PR normalizes such
instances using simprocs. This situation actually occurs in Mathlib.
Example:

```lean
class Distrib (R : Type _) extends Mul R where

namespace Nat

instance instDistrib : Distrib Nat where
  mul := (· * ·)

theorem odd_iff.extracted_1_4 {n : Nat} (m : Nat)
  (hm : n =
    @HMul.hMul _ _ _ (@instHMul Nat instDistrib.toMul)
      2 m + 1) :
    n % 2 = 1 := by
  grind

end Nat
```
2025-08-01 23:48:57 +00:00
..
bench chore: large match statement benchmark (#9665) 2025-08-01 15:25:07 +00:00
compiler fix: avoid caching uses of never_extract constants in toLCNF (#8956) 2025-06-24 02:04:56 +00:00
elabissues
ir
lean fix: nonstandard Nat and Int instances (#9676) 2025-08-01 23:48:57 +00:00
pkg refactor: update built-in tactic error messages (#9633) 2025-07-31 14:16:57 +00:00
playground refactor: migrate all usages of old slice notation (#9000) 2025-06-27 18:52:07 +00:00
plugin
simpperf
.gitignore
common.sh
lakefile.toml
lean-toolchain