Commit graph

114 commits

Author SHA1 Message Date
Leonardo de Moura
55c8627f2c feat(frontends/lean): {! ... !} takes a list of pre-terms 2017-06-13 22:19:17 -07:00
Leonardo de Moura
603bbe5987 fix(*): gcc 7 linking errors 2017-05-31 16:35:09 -07:00
Leonardo de Moura
62c24f9bb5 chore(*): remove pos_num and num from stdlib 2017-05-25 18:24:16 -07:00
Sebastian Ullrich
cd013f22c0 chore(*): replace "'^.' notation" with "field notation", pretty print using "." 2017-03-31 09:40:49 -07:00
Sebastian Ullrich
add8836ab2 fix(frontends/lean/{elaborator,parser}): use position of '.' for field notation position
Note that flycheck will still highlight the entire word...
2017-03-31 09:40:49 -07:00
Leonardo de Moura
6183c7676e feat(frontends/lean): use . for field access 2017-03-28 15:29:54 -07:00
Leonardo de Moura
092985f777 fix(frontends/lean/util): fixes #1495
We should freeze only constants
2017-03-28 11:55:11 -07:00
Sebastian Ullrich
d8eef9e68e feat(frontends/lean/util): allow lazily resolved auto params 2017-03-27 13:42:08 -07:00
Leonardo de Moura
fdadada3a9 fix(frontends/lean): fixes #1468
@kha I had to add yet another hack to fix this issue.

In notation declarations, names are resolved at notation declaration time.
So, users do not expect them to be resolved again at tactic execution time.

I addressed this problem by wrapping constants occurring in notation
declarations with a "frozen_name" annotation. This transformation is
only performed if m_in_quote is true.
Then resolve_names_fn at elaborator.cpp will not try to resolve the
names again.

This change broke two other modules. `-` notation for inverting
equations at `rw`, and `calc` expressions inside quotes.
The broke for the same reason. They were not expecting the constants
to be wrapped with an annotation.
2017-03-18 13:48:21 -07:00
Sebastian Ullrich
e3bfd90b06 fix(frontends/lean/elaborator): default recover_from_error to false for most commands
Fixes #1446

fix(frontends/lean/util): quoting private name

uncovered by now failing run test
2017-03-09 20:51:35 -08:00
Leonardo de Moura
23935ee390 feat(frontends/lean): allow auto_param notation in structure declarations
See #1422

TODO: take the auto_param into account in the `{ ... }` notation.
2017-03-08 15:41:30 -08:00
Sebastian Ullrich
2394f1faa5 fix(frontends/lean/util): do not fall back to current position 2017-03-06 11:02:51 -08:00
Sebastian Ullrich
dfe1874365 refactor(frontends/lean/{parser,util}): extract quote functions
Also fixes ``f when f is private
2017-02-23 01:52:13 +01:00
Leonardo de Moura
c8bbb34e2a feat(frontends/lean): add auto_param gadget 2017-02-09 15:49:10 -08:00
Leonardo de Moura
32e6442d0a feat(frontends/lean): no global universes in the frontend 2017-02-08 17:23:04 -08:00
Gabriel Ebner
95068e4e79 feat(library/sorry): make sorry a macro 2017-02-05 14:01:03 +01:00
Leonardo de Moura
01414cf21c feat(frontends/lean): add token class, and procedure for consuming the tokens 2017-02-03 18:11:06 -08:00
Gabriel Ebner
5fdc737dfc feat(library/tactic): store name of current declaration in tactic_state 2017-01-28 08:27:19 +01:00
Leonardo de Moura
71a7a7f466 feat(frontends/lean): add default field values 2017-01-22 21:25:49 -08:00
Leonardo de Moura
30cea2dceb fix(frontends/lean): auxiliary bind-application in do-notation was not allowing us to obtain type information for the monadic actions.
The new test exposes the problem.
2017-01-12 18:38:31 -08:00
Leonardo de Moura
7e1db95c79 fix(frontends/lean): doc strings after constants and axioms 2017-01-12 00:22:37 -08:00
Leonardo de Moura
7a150b41b9 fix(frontends/lean): fixes #1292 2017-01-09 15:53:37 -08:00
Sebastian Ullrich
26e2aeec7a feat(frontends/lean,shell): complete attributes 2017-01-06 14:02:31 -08:00
Sebastian Ullrich
98398b16f3 feat(frontends/lean,shell): implement completing options 2016-12-27 21:41:02 -08:00
Leonardo de Moura
e13bac41c3 fix(frontends/lean): 'sorry' axiom auto generation 2016-12-08 10:31:52 -08:00
Leonardo de Moura
ea3adf4a7c feat(library/init/meta/tactic): universe polymorphic tactics 2016-10-25 03:42:55 +08:00
Leonardo de Moura
9b84db083d fix(frontends/lean): error localization bugs 2016-10-15 13:40:57 -07:00
Leonardo de Moura
d0d75c0923 refactor(kernel): reduce number of configurations supported in the kernel
Now, eta and impredicativity are assumed to be always true.

Motivation: the rest of the system assumes eta.
Regarding impredicativity, we decided to support only the standard library.
2016-09-27 17:07:01 -07:00
Leonardo de Moura
bbf21b4e65 feat(frontends/lean/begin_end_block): auto-quote identifiers 2016-09-25 17:25:21 -07:00
Leonardo de Moura
6d9a9b46f3 chore(frontends/lean): cleanup 2016-09-23 16:26:21 -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
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
a74f02546b refactor(*): remove abbreviation command 2016-09-03 17:11:29 -07:00
Leonardo de Moura
803c956d18 feat(util/sexpr/option_declarations): allow options to be registered after initialization 2016-08-19 16:58:30 -07:00
Leonardo de Moura
ddc3789929 feat(frontends/lean): add run_tactic command
This commit also adds the tactic `add_decl`.
2016-08-18 10:56:18 -07:00
Sebastian Ullrich
cb6a6b642e refactor(library/attribute_manager): remove attribute tokens and use name for attribute names 2016-08-16 13:49:03 -07:00
Leonardo de Moura
8f33269286 feat(frontends/lean): add decl_util module for definition/inductive commands 2016-08-10 17:04:12 -07:00
Leonardo de Moura
371dd9d1e1 refactor(frontends/lean): move match-expr parser to different module 2016-08-08 09:05:22 -07:00
Leonardo de Moura
b6be493cef feat(frontends/lean/util): elaborate priority/precedence expressions using the new elaborator 2016-08-03 17:01:34 -07:00
Leonardo de Moura
dc44edfd41 feat(frontends/lean): use new elaborator in the 'check' command 2016-08-02 14:57:49 -07:00
Sebastian Ullrich
c4edad0372 feat(frontends/lean, library): remove attribute and metaclass scoping
All data is now part of either a global, permanent scope or a local,
temporary one
2016-07-29 23:44:21 -04:00
Leonardo de Moura
8333500457 refactor(library): move try_eta to util 2016-06-17 10:29:02 -07:00
Leonardo de Moura
fdea718d9d chore(frontends/lean): remove all #include "library/tactic.*" from frontends/lean 2016-04-25 15:41:12 -07:00
Leonardo de Moura
06ef0ad7be refactor(frontends/lean): add local_level_decls
Remark: the template local_decls will be deleted in the future.
The instances local_expr_decls will be replace by local_context.
2016-03-30 15:47:32 -07:00
Leonardo de Moura
c4f25cf15b refactor(frontends/lean): rename elaborate methods 2016-03-30 15:05:24 -07:00
Leonardo de Moura
56d7fc4c23 refactor(*): cleanup replace_visitor subclasses, and make sure let-expressions are handled 2016-02-29 16:55:19 -08:00
Leonardo de Moura
20f70035dd fix(frontends/lean/util): fixes #1007 2016-02-22 10:54:55 -08:00
Leonardo de Moura
f67181baf3 chore(*): remove support for Lua 2016-02-11 17:17:55 -08:00
Leonardo de Moura
45dbf76df9 refactor(library): add attribute manager 2015-12-17 20:58:15 -08:00
Leonardo de Moura
ce622e9179 feat(frontends/lean): add auto-include for structures and inductive decls 2015-12-13 13:39:34 -08:00