Commit graph

271 commits

Author SHA1 Message Date
Leonardo de Moura
93c8e69313 chore(frontends/lean, library): cleanup anonymous instance management 2017-01-06 14:37:44 -08:00
Sebastian Ullrich
26e2aeec7a feat(frontends/lean,shell): complete attributes 2017-01-06 14:02:31 -08:00
Sebastian Ullrich
2816d3a036 feat(frontends/lean,shell): complete interactive tactics 2017-01-06 14:02:31 -08:00
Sebastian Ullrich
7040844f9a feat(frontends/lean/parser,shell): complete imports 2017-01-06 14:02:31 -08:00
Leonardo de Moura
85b98f08e9 fix(frontends/lean): bad position at spurious 'end' token 2016-12-29 19:51:36 -08:00
Sebastian Ullrich
98398b16f3 feat(frontends/lean,shell): implement completing options 2016-12-27 21:41:02 -08:00
Sebastian Ullrich
daf839e0d5 feat(frontends/lean,shell/server): report current goal anywhere within begin-end/by 2016-12-27 10:07:34 -08:00
Sebastian Ullrich
5cb06ea912 perf(frontends/lean/parser): break at break_at_pos even if not on an interesting token 2016-12-27 10:07:34 -08:00
Sebastian Ullrich
47e7df9b27 perf(frontends/lean/definition_cmds): skip definition elaboration during reparsing 2016-12-27 10:07:34 -08:00
Sebastian Ullrich
8ccf28abf3 chore(*): remove old code 2016-12-27 10:07:34 -08:00
Sebastian Ullrich
c9a8c02fdc feat(emacs,frontends/lean/parser,shell/server): more accurate info command using server-side parsing 2016-12-27 10:07:34 -08:00
Leonardo de Moura
ffc9c75824 fix(frontends/lean/parser): do not clear local universes when switching to tactic mode and/or quoting 2016-12-19 09:21:54 -08:00
Leonardo de Moura
1cfef1c6d9 fix(frontends/lean/parser): save next_inst_idx in the parser snapshot
This fixes issues with anonymous instances in sections.
In Emacs, we would get spurious error messages such as:

   invalid parameter/variable declaration, '_inst_1' has already been declared

This commit also adds a regression test for the problem.
2016-12-18 23:39:28 -08:00
Gabriel Ebner
a972c13ce9 refactor(library/task_queue): move task queue to util 2016-12-12 10:01:34 -05:00
Leonardo de Moura
55401a95ec fix(frontends/lean/parser): scope in tactic mode 2016-12-10 09:39:13 -08:00
Leonardo de Moura
e13bac41c3 fix(frontends/lean): 'sorry' axiom auto generation 2016-12-08 10:31:52 -08:00
Jared Roesch
e65d90ac79 feat(*): C++ code generator
in progress move of Lean.native to init
2016-12-05 16:11:41 -08:00
Gabriel Ebner
000d97a9a6 fix(frontends/lean/parser): wrap snapshot in shared_ptr 2016-11-30 11:27:02 -05:00
Leonardo de Moura
d40e97b4bc chore(*): compilation errors, fix style, fix warnings 2016-11-29 11:35:01 -08:00
Gabriel Ebner
3ecfddcbd5 fix(*): fix build 2016-11-29 11:12:43 -08:00
Gabriel Ebner
385ea13688 feat(kernel/declaration,*): all theorems are delayed, and are revealed on delta-reduction 2016-11-29 11:12:43 -08:00
Gabriel Ebner
a8df381d20 feat(*): parallel compilation 2016-11-29 11:12:40 -08:00
Leonardo de Moura
97dd2f34d5 feat(library,frontends/lean): add basic doc string support 2016-11-25 18:52:56 -08:00
Sebastian Ullrich
ba1b6165e3 feat(frontends, shell): implement basic server 'info' command 2016-11-08 08:37:41 -08:00
Sebastian Ullrich
388b337f50 chore(frontends/lean/info_manager): make copyable and integrate into snapshots 2016-11-08 08:37:41 -08:00
Gabriel Ebner
47e6fd091f refactor(frontends/lean): implement show goal function using exceptions 2016-10-21 15:42:29 -07:00
Leonardo de Moura
0bb155a427 chore(*): remove .clean support
In Lean2, we used to cache elaborated definitions in .clean files. The
main goal was to optimize each flycheck invocation produced by Emacs.

The Lean3 definition package was not updating this cache. Moreover, it
is not necessary because the new compilation server subsumes it.
2016-10-13 19:58:58 -07:00
Gabriel Ebner
a4d8ae2e30 fix(frontends/lean/parser): fix snapshots in prelude files 2016-10-13 18:49:10 -07:00
Gabriel Ebner
b14a0c43ff feat(frontends/lean/parser,library/module): warn if imported modules are out-of-date 2016-10-13 18:49:10 -07:00
Gabriel Ebner
ed6aace6ff feat(frontends/lean/parser): save messages in snapshots 2016-10-13 18:49:10 -07:00
Gabriel Ebner
8c188c59c5 feat(frontends/lean): remember column for snapshots 2016-10-13 18:49:10 -07:00
Gabriel Ebner
b05b514cc2 refactor(*): structured message objects 2016-10-13 18:49:10 -07:00
Leonardo de Moura
6d9a9b46f3 chore(frontends/lean): cleanup 2016-09-23 16:26:21 -07:00
Leonardo de Moura
c8e13cd391 feat(frontends/lean): minimize errors being reported 2016-09-23 09:20:31 -07:00
Leonardo de Moura
318ef761d3 feat(frontends/lean): lambda+anonymous_constructor+match notation 2016-09-21 08:49:05 -07:00
Leonardo de Moura
b2e1e920a9 chore(frontends/lean,library,linja): remove .ilean files 2016-09-20 08:43:45 -07:00
Leonardo de Moura
9df712581b chore(frontends/lean): remove 'new_elaborator' option 2016-09-20 08:32:37 -07:00
Leonardo de Moura
2a069a4d2a chore(frontends/lean): remove server and info_manager 2016-09-19 18:44:03 -07:00
Leonardo de Moura
f6aba503ff chore(frontends/lean): remove old elaborator 2016-09-19 17:10:28 -07:00
Leonardo de Moura
9f1a576e98 chore(frontends/lean): remove dead code from parser 2016-09-19 17:04:59 -07:00
Leonardo de Moura
e99eb6d47e feat(frontends/lean): revising inaccessible terms syntax again :( 2016-08-19 13:57:12 -07:00
Sebastian Ullrich
a2659cdaa5 feat(frontends/lean/decl_attributes): add [attr1, attr2] syntax 2016-08-16 13:49:03 -07:00
Sebastian Ullrich
e15e085126 refactor(frontends/lean/old_attributes, library/tactic/backward/backward_lemmas): merge [intro] and [intro!] attributes 2016-08-16 13:49:03 -07:00
Leonardo de Moura
f5c35f8d76 chore(*): fix compilation warnings 2016-08-10 18:03:13 -07:00
Leonardo de Moura
a0a72b5b82 refactor(frontends/lean): move local_context_adapter to separate folder 2016-08-10 07:52:38 -07:00
Leonardo de Moura
1602a53336 feat(frontends/lean): nary match 2016-08-08 10:04:58 -07:00
Leonardo de Moura
1e6b3614ab feat(frontends/lean): new pattern matching validation
@Kha, we now support variable/constant shadowing in patterns.
A constant may occur in a pattern if it is a constructor or tagged with
the new [pattern] attribute. In the standard library, I have tagged
'add', 'zero', 'one', 'bit0', 'bit1' and 'rfl' with this new attribute.
BTW, arbitrary constants and variables may occur nested in type ascriptions and
inaccessible terms.

Here is an example:

     meta_definition tactic_result_to_string {A : Type} : tactic_result A → string
     | (success a s)   := to_string a
     | (exception ⌞A⌟ e s) := "Exception: " ++ to_string (e ())

I had to use the inaccessible ⌞A⌟ in the example above, otherwise, we would be shadowing the parameter
{A : Type}, and we would get a type error.

The new validation is performed at to_pattern_fn (parser.cpp).
2016-08-07 11:31:11 -07:00
Leonardo de Moura
d36280f74f refactor(frontends/lean): id_behavior 2016-08-07 08:07:24 -07:00
Leonardo de Moura
fb8ae7f411 chore(frontends/lean/parser): add comment 2016-08-06 13:24:10 -07:00
Sebastian Ullrich
15595c0061 refactor(library/attribute_manager): delegate parameter parsing and printing to attribute class 2016-08-05 17:16:04 -07:00