lean4-htt/tests
Joachim Breitner 445c8f2ee0
feat: FunInd: more equalities in context, more careful cleanup (#5364)
A round of clean-up for the context of the functional induction
principle cases.

* Already previously, with `match e with | p => …`, functional induction
would ensure that `h : e = p` is in scope, but it wouldn’t work in
dependent cases. Now it introduces heterogeneous equality where needed
(fixes #4146)
* These equalities are now added always (previously we omitted them when
the discriminant was a variable that occurred in the goal, on the
grounds that the goal gets refined through the match, but it’s more
consistent to introduce the equality in any case)
* We no longer use `MVarId.cleanup` to clean up the goal; it was
sometimes too aggressive (fixes #5347)
* Instead, we clean up more carefully and with a custom strategy:
* First, we substitute all variables without a user-accessible name, if
we can.
  * Then, we substitute all variable, if we can, outside in.
* As we do that, we look for `HEq`s that we can turn into `Eq`s to
substitute some more
  * We substitute unused `let`s.
  
**Breaking change**: In some cases leads to a different functional
induction principle (different names and order of assumptions, for
example).
2024-09-16 12:30:12 +00:00
..
bench chore: rename Array.data to Array.toList 2024-09-10 15:24:23 +10:00
compiler chore: rename Array.data to Array.toList 2024-09-10 15:24:23 +10:00
elabissues
ir
lean feat: FunInd: more equalities in context, more careful cleanup (#5364) 2024-09-16 12:30:12 +00:00
pkg feat: accept user-defined options on the cmdline (#4741) 2024-08-02 12:24:56 +00:00
playground
plugin chore: when a linter crashes, prefix its name (#4967) 2024-08-12 02:36:42 +00:00
simpperf
.gitignore
common.sh
lean-toolchain