lean4-htt/tests/lean/run
Leonardo de Moura 1cdadba4b2 fix(library/compiler/csimp): type error
@kha This is another instance of a problem we discussed last summer.
I guess there are many more instances like this one that we are not handling.
Recall that we want to preserve types at `csimp` because we eventually
want to allow users to use equational theorems as rewriting rules during
compilation.
However, some of the transformations that `csimp` perform do not
preserve typeability in CIC.
Moreover, some of the optimizations require type inference.

I see the possible long term solutions:

1- Erase types and proofs as soon as possible. The main drawback here is
that we would have to develop an approach for translating Lean theorems
into valid rewriting rules for lambda pure. For example, the following
theorem should not be used as a rewriting rule after we erase types.
```
forall (xs : List Unit) (f : Unit -> Unit), List.map f xs = List.map id xs
```
BTW, I don't want to abandon the idea of using lemmas as rewriting rules in
the compiler.

2- Go over `csimp` and other compiler steps and make sure they work
properly even when `type_checker::infer_type` fails.
2019-06-03 17:36:40 -07:00
..
1954.lean chore(tests/lean): fix tests 2018-08-23 13:49:07 -07:00
1968.lean chore(tests): fix/disable some tests 2019-03-21 15:11:05 -07:00
array1.lean chore(tests): fix tests 2019-03-29 11:25:26 -07:00
compiler_proj_bug.lean chore(tests/lean): fix more tests 2019-03-21 15:11:05 -07:00
coroutine.lean chore(tests): fix tests 2019-03-27 14:06:23 -07:00
csimp_type_error.lean fix(library/compiler/csimp): type error 2019-06-03 17:36:40 -07:00
deriv.lean chore(tests/lean): fix more tests 2019-03-21 15:11:05 -07:00
ext_eff.lean chore(tests): port tests, fix at least compiler tests 2019-03-21 15:11:05 -07:00
ext_eff_linear.lean chore(tests): port tests, fix at least compiler tests 2019-03-21 15:11:05 -07:00
extern.lean chore(tests): port tests, fix at least compiler tests 2019-03-21 15:11:05 -07:00
float_cases_bug.lean chore(tests/lean/run/float_cases_bug): fix test 2019-05-07 15:22:01 -07:00
fun.lean chore(tests/lean): fix more tests 2019-03-21 15:11:05 -07:00
handlers.lean chore(tests/lean): fix more tests 2019-03-21 15:11:05 -07:00
ind_cmd_bug.lean chore(frontends/lean/inductive_cmds): disable broken check 2019-03-04 11:05:21 -08:00
inline_fn.lean chore(tests/lean): fix more tests 2019-03-21 15:11:05 -07:00
inliner_loop.lean chore(tests/lean): move test to tests/lean/run 2019-03-28 18:21:10 -07:00
name_mangling.lean chore(tests/lean): fix more tests 2019-03-21 15:11:05 -07:00
new_compiler.lean chore(tests/lean): fix more tests 2019-03-21 15:11:05 -07:00
new_inductive.lean chore(tests/lean): fix more tests 2019-03-21 15:11:05 -07:00
new_inductive2.lean chore(tests/lean): fix more tests 2019-03-21 15:11:05 -07:00
noncomputable_bug.lean chore(tests/lean): fix more tests 2019-03-21 15:11:05 -07:00
quasi_pattern_unification_approx_issue.lean chore(library/init/control/id): rename id monad to Id 2019-03-29 16:45:52 -07:00
rc_tests.lean chore(tests/lean/run/rc_tests): fix test 2019-05-22 18:46:30 -07:00
struct_instance_in_eqn.lean chore(tests/lean): fix more tests 2019-03-21 15:11:05 -07:00
test_single.sh chore(shell/lean): reduce lean interface to taking a single file, assuming all dependencies have already been built 2019-01-25 18:27:38 +01:00
type_class_performance1.lean chore(tests/lean): fix more tests 2019-03-21 15:11:05 -07:00