Commit graph

408 commits

Author SHA1 Message Date
Leonardo de Moura
e5cf12e2ad refactor(frontends/lean/elaborator): cleanup interface 2016-08-10 08:20:10 -07:00
Leonardo de Moura
1041f6d9d8 feat(frontends/lean/structure_cmd): private structures 2016-08-06 00:03:06 -07:00
Leonardo de Moura
276b47688f feat(frontends/lean/elaborator): uvar => param at top-level 2016-08-05 18:24:37 -07:00
Leonardo de Moura
befe2d96e1 feat(frontends/lean/elaborator): chaining for anonymous constructors 2016-08-04 15:08:25 -07:00
Leonardo de Moura
8b05fba6ef feat(frontends/lean/elaborator): propagate expected type to arguments when elaborating constructors 2016-08-04 14:07:15 -07:00
Leonardo de Moura
6a0d9dab40 feat(frontends/lean/elaborator): anonymous constructors 2016-08-04 13:03:49 -07:00
Leonardo de Moura
794382da01 feat(frontends/lean/elaborator): take care of foreign universe metavars in the sanitizer 2016-08-03 14:13:42 -07:00
Leonardo de Moura
e87b54988b feat(frontends/lean/elaborator): minor cleanup 2016-08-03 13:25:49 -07:00
Leonardo de Moura
2c8e484aa3 feat(frontends/lean/elaborator): universe parameter name sanitizer 2016-08-03 13:13:44 -07:00
Leonardo de Moura
112aae2928 feat(frontends/lean/elaborator): erase info annotations 2016-08-02 15:43:23 -07:00
Leonardo de Moura
ee46befd26 chore(frontends/lean/elaborator): cleanup 2016-08-02 13:16:43 -07:00
Leonardo de Moura
babc8906b3 fix(library/metavar_util): but in instantiate_mvars 2016-08-02 13:16:17 -07:00
Leonardo de Moura
c91a7a8e9b fix(frontends/lean/elaborator): add checkpoint 2016-08-02 10:10:11 -07:00
Leonardo de Moura
139707413c fix(frontends/lean/elaborator): better position information 2016-08-02 10:00:05 -07:00
Leonardo de Moura
90f5dabf28 fix(frontends/lean/elaborator): order type class instances are synthesized 2016-08-01 23:59:22 -07:00
Leonardo de Moura
dd98c86a79 fix(frontends/lean/elaborator): as_atomic elaboration 2016-08-01 23:26:34 -07:00
Leonardo de Moura
219300e923 fix(frontends/lean/elaborator): erase 'as_atomic' annotation 2016-08-01 23:06:41 -07:00
Leonardo de Moura
c3ce9d0a2d fix(frontends/lean): bug that only happens in newer versions of g++
See #1098

I only managed to reproduce the bug after I installed Ubuntu 16.04
2016-08-01 21:57:11 -07:00
Leonardo de Moura
582117da96 fix(frontends/lean/elaborator): elaborator must take into account binder information when caching inferred types 2016-08-01 16:35:42 -07:00
Leonardo de Moura
d46e9b411c fix(frontends/lean/elaborator): spurious universe parameters being generated 2016-08-01 08:10:15 -07:00
Leonardo de Moura
7ddc3c72dd fix(frontends/lean/elaborator, library/vm/vm_qexpr): add and handle as_is annotation 2016-07-31 20:49:53 -07:00
Leonardo de Moura
12fa52c77d feat(library/tactic, frontends/lean/elaborator): add to_expr tactic 2016-07-31 20:21:17 -07:00
Leonardo de Moura
09c000fcb8 chore(frontends/lean/elaborator): remove unnecessary field 2016-07-31 19:54:04 -07:00
Leonardo de Moura
42958be45f feat(frontends/lean/elaborator): better get_level 2016-07-31 17:45:02 -07:00
Leonardo de Moura
e5298c9d8f feat(frontends/lean/elaborator): modify the pre-term for overloaded notation
The new encoding is better for the new elaborator.
2016-07-31 17:14:01 -07:00
Leonardo de Moura
c983e46daa fix(frontends/lean/elaborator): make sure error messages are not affected by purify_metavars 2016-07-31 15:53:30 -07:00
Leonardo de Moura
215bd214ef chore(frontends/lean/elaborator): add another trace msg 2016-07-31 15:10:36 -07:00
Leonardo de Moura
1aeda0e74b feat(frontends/lean/elaborator): invoke tactics 2016-07-31 11:56:52 -07:00
Leonardo de Moura
e28e4fc896 feat(frontends/lean/elaborator): convert unassigned universe levels into universe parameters, basic support for by tactic 2016-07-31 03:45:18 -07:00
Leonardo de Moura
c46403265b feat(library/local_context): add instance_mvars method for local_context object 2016-07-31 02:36:51 -07:00
Leonardo de Moura
fafea473b8 feat(frontends/lean/elaborator): coercions to sort 2016-07-30 19:47:04 -07:00
Leonardo de Moura
b4fefd8c0b feat(frontends/lean/elaborator): coercions to functions 2016-07-30 18:54:20 -07:00
Leonardo de Moura
a0589ce8b8 feat(frontends/lean): automatic coercions 2016-07-30 11:53:25 -07:00
Leonardo de Moura
d05e5422f9 refactor(frontends/lean/elaborator): snapshots 2016-07-29 10:36:14 -07:00
Leonardo de Moura
aae33e02b0 fix(frontends/lean/elaborator): check expected type in applications, make sure we don't accidentally unfold definitions unnecessarily 2016-07-28 17:30:56 -07:00
Leonardo de Moura
cdee8b811a feat(frontends/lean/elaborator): special support for elaborating have-expressions 2016-07-28 16:20:53 -07:00
Leonardo de Moura
a7c8cbc548 feat(frontends/lean/elaborator): add hard coded coercion from bool to Prop 2016-07-28 15:38:22 -07:00
Leonardo de Moura
b5f006d229 feat(frontends/lean/elaborator): use expected types to disambiguate overloads 2016-07-28 15:32:25 -07:00
Leonardo de Moura
e2f14f2dc4 feat(frontends/lean/elaborator): use full_names when displaying ambiguous overload 2016-07-28 15:21:07 -07:00
Leonardo de Moura
f5ca3cdd68 refactor(frontends/lean/elaborator): simplify visit_default_app_core 2016-07-28 15:09:23 -07:00
Leonardo de Moura
ba4abed588 fix(frontends/lean/elaborator): better position tracking for applications 2016-07-27 18:52:19 -07:00
Leonardo de Moura
acda62d725 fix(frontends/lean/elaborator): preserve expected_type when annotations are used 2016-07-27 18:48:31 -07:00
Leonardo de Moura
ef2e80e635 refactor(library/type_context): remove dangerous 'get_cache' method 2016-07-27 18:32:36 -07:00
Leonardo de Moura
690e39b261 feat(frontends/lean/elaborator): add checkpoint at typed_expr 2016-07-27 18:08:28 -07:00
Leonardo de Moura
12070e589a feat(frontends/lean/elaborator): elaboration procedure for recursor/eliminator applications 2016-07-27 17:58:18 -07:00
Leonardo de Moura
084f82b00b feat(frontends/lean/elaborator): elaborate Pi, fix visit_lambda, improve ensure_type 2016-07-27 16:42:45 -07:00
Leonardo de Moura
3a5f6f2e64 feat(frontends/lean/builtin_cmds): improve output produced by #elab command, use kernel type checker to check elaboration result 2016-07-27 15:29:25 -07:00
Leonardo de Moura
7ae1a2c067 fix(frontends/lean/elaborator): synthesize metavariables using the context where they were declared 2016-07-27 15:03:17 -07:00
Leonardo de Moura
9477b91978 feat(frontends/lean/elaborator): elaborate lambdas 2016-07-27 11:40:30 -07:00
Leonardo de Moura
f8b48ac955 feat(frontends/lean/elaborator): support for strict implicit arguments 2016-07-27 10:38:59 -07:00