lean4-htt/tests
Leonardo de Moura fedf235cba fix: fixes #2011
In Lean 4, we have support for typing constraints of the form
```
(?m ...).1 =?= v
```
where the type of `?m ...` is a structure with a single field.
This kind of constraint is reduced to `?m ... =?= ⟨v⟩`

This feature is implemented by the function `isDefEqSingleton`.
As far as I remember, Lean 3 does not implement this feature.

This commit disables this feature if the structure is a class.
The goal is to avoid the generation of counterintuitive instances by
typing inference.

For example, in the example at issue #2011, the following weird
instance was being generated for `Zero (f x)`
```
(@Zero.mk (f x✝) ((@instZero I (fun i => f i) fun i => inst✝¹ i).1 x✝)
```
where `inst✝¹` is the local instance `[∀ i, Zero (f i)]`
Note that this instance is definitinally equal to the expected nicer
instance `inst✝¹ x✝`.
However, the nasty instance trigger nasty unification higher order
constraints later.

Note that a few tests broke because different error messages were
produced. The new error messages seem better. I do not expect this
change to affect Mathlib4 since Lean 3 does not have this feature.
2023-01-05 17:33:45 -08:00
..
bench feat: LLVM backend (#1837) 2022-12-30 12:45:30 +01:00
compiler chore: correctly comment out initUnboxed test 2023-01-03 18:28:24 -08:00
elabissues
ir
lean fix: fixes #2011 2023-01-05 17:33:45 -08:00
pkg test: add test for local macro in auto tactic 2023-01-04 09:01:02 -08:00
playground test: alternative encoding experiment for decEq and noConfusion 2022-11-23 18:46:10 -08:00
plugin feat: LLVM backend (#1837) 2022-12-30 12:45:30 +01:00
simpperf
.gitignore
common.sh feat: LLVM backend (#1837) 2022-12-30 12:45:30 +01:00