Commit graph

838 commits

Author SHA1 Message Date
Leonardo de Moura
ceeebb7e40 feat(frontends/lean/elaborator): improve error messages for eliminators 2016-09-29 11:29:59 -07:00
Leonardo de Moura
c8a720212b feat(frontends/lean): 'by' is now also using interactive mode syntax 2016-09-29 01:57:40 -07:00
Leonardo de Moura
84b45b010a feat(frontends/lean/elaborator): improve overloading support 2016-09-28 20:54:11 -07:00
Leonardo de Moura
1f07e87bc2 refactor(frontends/lean/elaborator): add first_pass_info struct 2016-09-28 20:54:10 -07:00
Leonardo de Moura
6e6609f2aa fix(frontends/lean): use coercions to sort at elaborate_type 2016-09-26 16:47:31 -07:00
Leonardo de Moura
dd8018eb04 fix(frontends/lean/elaborator): make coercion resolution more robust 2016-09-26 16:18:36 -07:00
Leonardo de Moura
b9b64b121c feat(frontends/lean/elaborator): add show-goal support (Ctrl-c-g on Emacs) 2016-09-26 11:19:08 -07:00
Leonardo de Moura
78c6bc3a26 feat(frontends/lean): add step-by-step 'begin...end' block execution 2016-09-26 10:56:40 -07:00
Leonardo de Moura
3c71d7eda2 feat(frontends/lean,library/tactic/tactic_state): improve error localization 2016-09-25 18:40:41 -07:00
Leonardo de Moura
264b614f0d fix(frontends/lean/elaborator): bug when checking for unassigned metavars 2016-09-25 17:22:45 -07:00
Leonardo de Moura
177840bc36 fix(frontends/lean/elaborator): structure instance notation {...} for structures that have implicit fields 2016-09-23 11:32:12 -07:00
Leonardo de Moura
f9eaab8130 feat(frontends/lean/definition_cmds): improve error minimization 2016-09-23 10:16:46 -07:00
Leonardo de Moura
9a1ef1cc0d fix(frontends/lean/elaborator): 'sorry' in quoted expressions 2016-09-23 09:34:00 -07:00
Leonardo de Moura
c8e13cd391 feat(frontends/lean): minimize errors being reported 2016-09-23 09:20:31 -07:00
Leonardo de Moura
7ae778e925 feat(frontends/lean): generalize '~>' notation, and add alias '^.' for '~>' 2016-09-23 08:18:19 -07:00
Leonardo de Moura
b55a17614a feat(frontends/lean): structure instances 2016-09-21 22:52:43 -07:00
Leonardo de Moura
b67216374c feat(frontends/lean): projection notation 2016-09-21 11:14:41 -07:00
Leonardo de Moura
335242e9f1 chore(frontends/lean): remove info_annotation module 2016-09-19 21:19:31 -07:00
Leonardo de Moura
10f4a22fff fix(frontends/lean/elaborator): try to synthesize pending type class instances before processing eliminator/recursor 2016-09-19 11:14:49 -07:00
Leonardo de Moura
677d3d4cf9 fix(frontends/lean/elaborator): ignore annotations around function when deciding which kind of elaborator strategy should be used 2016-09-18 19:10:13 -07:00
Leonardo de Moura
4c15c9833d fix(frontends/lean/elaborator): use_elim_elab_core 2016-09-17 20:04:14 -07:00
Leonardo de Moura
90bfd84a07 feat(frontends/lean): Type is now (Type 1)
In the standard library, we should use explicit universe variables for
universe polymorphic definitions.

Users that want to declare universe polymorphic definitions but do not
want to provide universe level parameters should use
  Type _
or
  Type*
2016-09-17 14:30:54 -07:00
Leonardo de Moura
9c8b7be225 chore(frontends/lean/elaborator): improve error message 2016-09-15 18:47:32 -07:00
Leonardo de Moura
80ddb0e706 feat(frontends/lean/elaborator): use type class resolution for _ arguments even when @ (or @@) is used 2016-09-15 17:29:38 -07:00
Leonardo de Moura
25714d71a2 refactor(frontends/lean/elaborator): rename visit_default_app since it is not the "default" elaboration strategy anymore 2016-09-15 17:14:01 -07:00
Leonardo de Moura
f60de96d98 fix(frontends/lean/elaborator): bug at @@ annotation 2016-09-15 17:03:59 -07:00
Leonardo de Moura
f42afe2b65 feat(frontends/lean/elaborator): [elab_with_expected_type] is the new default strategy 2016-09-15 14:45:52 -07:00
Leonardo de Moura
5d3765a6b7 fix(frontends/lean/elaborator): missing instantiate_mvars 2016-09-15 13:59:09 -07:00
Leonardo de Moura
6a331e2ab8 feat(frontends/lean/elaborator): better error message when there is a mismatch between inferred and synthesized instances 2016-09-15 09:05:19 -07:00
Leonardo de Moura
8d51607ea0 chore(frontends/lean/elaborator): remove verbose trace message 2016-09-14 18:14:53 -07:00
Leonardo de Moura
59ce650033 feat(frontends/lean/elaborator): improve how type class instances are handled at visit_app_with_expected 2016-09-14 18:07:01 -07:00
Leonardo de Moura
0ff5733d70 refactor(frontends/lean/elaborator): checkpoints 2016-09-14 17:29:51 -07:00
Leonardo de Moura
b426119e83 chore(frontends/lean/elaborator): rename attribute [elab_default] ==> [elab_simple] 2016-09-14 09:42:30 -07:00
Leonardo de Moura
9bb8b0e6ef feat(frontends/lean/elaborator): always use approximate is_def_eq in the elaborator 2016-09-14 09:01:09 -07:00
Leonardo de Moura
9461595a70 chore(frontends/lean/elaborator): remove leftover 2016-09-13 21:55:55 -07:00
Leonardo de Moura
2ff3e4aaeb feat(frontends/lean/elaborator): better error position 2016-09-13 16:17:50 -07:00
Leonardo de Moura
cf1c50f4e9 fix(frontends/lean/elaborator): get_elim_info_for_builtin 2016-09-13 14:17:08 -07:00
Leonardo de Moura
5f8f7bcccb feat(frontends/lean/elaborator): add proxy_attribute for elaborator strategies
This commit also adds a template for creating proxy_attribute's.
2016-09-13 13:02:37 -07:00
Leonardo de Moura
0d166970de fix(frontends/lean/elaborator): missing instantiate_mvars 2016-09-13 08:09:12 -07:00
Leonardo de Moura
d79fbee421 fix(frontends/lean/elaborator): visit_app_with_expected
Mark ite and dite with elab_with_expected_type.
2016-09-12 16:48:21 -07:00
Leonardo de Moura
aa2f9fadee feat(frontends/lean/elaborator): add support for nondependent eliminators in the new elaborator 2016-09-12 15:26:13 -07:00
Leonardo de Moura
24f76d5260 feat(frontends/lean/elaborator): improve convoy and elim 2016-09-10 22:51:26 -07:00
Leonardo de Moura
61f7702940 feat(frontends/lean/elaborator): disable checks 2016-09-10 22:50:29 -07:00
Leonardo de Moura
f53ff9a3b6 feat(frontends/lean/elaborator): add [elab_as_eliminator] attribute 2016-09-10 21:58:30 -07:00
Leonardo de Moura
214e91d1ae feat(frontends/lean/elaborator): improve match_convoy in the new elaborator 2016-09-10 21:41:40 -07:00
Leonardo de Moura
4d06f71e72 chore(frontends/lean/elaborator): remove unnecessary procedure 2016-09-10 21:14:58 -07:00
Leonardo de Moura
91994ff823 feat(frontends/lean/elaborator): switch to new let-decls 2016-09-10 13:00:53 -07:00
Leonardo de Moura
c25ac7f54f feat(library/equations_compiler): pull nested recursive calls 2016-09-09 17:56:56 -07:00
Leonardo de Moura
fc0230730d feat(frontends/lean/elaborator): make sure all equations have the same number of patterns 2016-09-09 12:13:41 -07:00
Leonardo de Moura
89bc55aece feat(frontends/lean/elaborator): improve expected type for equation rhs 2016-09-08 19:22:26 -07:00