feat(frontends/lean): connect new elaborator to frontend

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(frontends/lean): infer type of definitions

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(kernel/type_checker): improve 'declaration still has metavars' error message

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(frontends/lean/decl_cmds): allow binders but no type in definitions

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(library/unifier): set conflict if type mismatch during metavariable assignment

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(library/error_handling): pretty print unifier exceptions

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(library/unifier): bug in lambda_abstract_locals auxiliary function

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(kernel/type_checker): bug in the app_delayed_justification object

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(frontends/lean/parser): add missing save_pos

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(kernel/type_checker): use the application to provide error location

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(frontends/lean/elaborator): to cache values, we must push/pop whenever we update the m_ctx

Thus, we are disabling the cache for now.
It is also unclear whether it is useful or not.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(frontends/lean): add '@' explicit notation

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(kernel/expr): add flat_app auxiliary function

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(frontends/lean/elaborator): typo

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
test(lean/run): add another test for new elaborator

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(kernel/converter): missing case: two constants c.{l1} and c.{l2} where l1 and l2 are structurally different but equivalent (or can be made equivalent)

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(library/unifier): when imitating (f a), abstract local constants occurring in f

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
test(lean/run): add elaborator tests

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(tests/lua/tc_bug1): update test to reflect recent changes

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>