Sebastian Ullrich
b1aff14650
feat(library/init/lean/parser/syntax.lean): simplify syntax debug output
2018-06-07 14:57:13 +02:00
Sebastian Ullrich
613b6805b3
chore(library/init/lean/parser/parser_t.lean): fix comments
2018-06-07 14:57:13 +02:00
Sebastian Ullrich
bdfdd1288e
feat(library/init/lean/parser/macro): allow expanders to be skipped dynamically
2018-06-07 14:57:13 +02:00
Leonardo de Moura
ee7bc150f2
chore(library/init/meta/expr): remove elaborated : bool parameter from expr
2018-06-06 09:47:01 -07:00
Leonardo de Moura
3a7229add3
chore(library/init): pexpr is now an opaque constant
2018-06-06 09:36:22 -07:00
Leonardo de Moura
441b9077b2
feat(library/comp_val): add mk_name_val_ne_proof
...
We need this procedure otherwise it takes forever to prove equation lemmas
for definitions such as:
```
def macros : name → option macro
| `lambda := some lambda_macro
| `intro_x := some intro_x_macro
| _ := none
```
We never experienced this problem in Lean3 because we used `name`
literals only occurred in patterns of *meta* definitions. So, no
equation lemma was generated.
@kha `def macros` was taking more than 1 second to elaborate on my
machine. It is now instantaneous.
2018-06-06 09:18:59 -07:00
Leonardo de Moura
e160154d14
fix(library/init/meta/name): duplicate
2018-06-06 08:47:28 -07:00
Leonardo de Moura
530c437953
feat(library/init/data/char/basic): missing theorems for equation compiler
2018-06-06 08:47:17 -07:00
Leonardo de Moura
dda1f0ebaa
chore(library/init/meta/interactive): remove more tactics
2018-06-06 08:46:48 -07:00
Leonardo de Moura
e4a168af91
chore(library/init/meta): remove goal tagging feature
2018-06-06 08:46:47 -07:00
Sebastian Ullrich
1c380037d3
refactor(library/init/lean/parser/syntax): replace syntax.lst with syntax.node, remove span field from syntax_node
2018-06-06 15:46:39 +02:00
Sebastian Ullrich
732c823646
feat(library/init/lean/parser): remove syntax_id, use De Bruijn indices instead
2018-06-06 15:36:28 +02:00
Leonardo de Moura
50ce4e8ae9
chore(library/init/meta/interactive_base): remove Lean3 format macros
2018-06-05 16:29:26 -07:00
Leonardo de Moura
bd7138349a
chore(library/init/meta/pexpr): remove pexpr primitives
2018-06-05 16:28:12 -07:00
Leonardo de Moura
ab481d7e7b
chore(library/init/meta): remove unnecessary primitives
2018-06-05 16:13:22 -07:00
Leonardo de Moura
45202eca16
chore(library/init/meta): cleanup
2018-06-05 15:32:59 -07:00
Leonardo de Moura
1bae8f8eab
refactor(library/init/lean/ir/parser): parser.lean => parser_t.lean
2018-06-05 08:00:13 -07:00
Leonardo de Moura
60339d6c87
feat(library/init/data/hashmap/basic): missing function
2018-06-04 19:58:24 -07:00
Sebastian Ullrich
0f7c0ac8bf
feat(init/lean/parser/parser): make a monad transformer
...
Also move parser combinators into the more specific namespace `init.lean.parser.parser_t`.
2018-06-04 12:57:23 +02:00
Sebastian Ullrich
6a0f3056f4
chore(library/init/lean/parser/syntax): cleanup
2018-06-04 11:02:45 +02:00
Leonardo de Moura
ac0352b584
refactor(kernel): remove quotitent normalizer extension
...
The `quot` type is now implemented in the kernel.
We will do the same thing for inductives.
We will not support normalizer extensions anymore in Lean4.
It doesn't make sense since we settled with 2 extensions: quotients and
inductives. Moreover, any new extension would require substantial
changes (e.g., code generator).
The normalizer_extension feature was useful when we were experimenting
with different kernel flavors.
2018-06-01 10:52:17 -07:00
Leonardo de Moura
9a671d7c7d
chore(library/compiler): delete rec_fn_macro
2018-05-31 17:11:25 -07:00
Leonardo de Moura
3c1ccc9b74
refactor(kernel): use m_meta instead of m_trusted
2018-05-31 11:18:00 -07:00
Leonardo de Moura
80545832f4
chore(library): remove user attributes
2018-05-31 09:10:41 -07:00
Leonardo de Moura
4d8549305d
doc(library/init/env_ext): document environment extensions in use
2018-05-30 14:28:49 -07:00
Leonardo de Moura
1a369521cb
chore(library/init/lean/macro): update macro TODO list
2018-05-30 10:24:31 -07:00
Sebastian Ullrich
c4d7eb7949
feat(init/lean/parser/macro): global names can be overloaded
2018-05-29 16:43:32 +02:00
Leonardo de Moura
a7760631dc
chore(library/init/lean/macro): document macros in use
2018-05-24 17:39:10 -07:00
Leonardo de Moura
1332fbabd6
feat(library,frontends): remove sorry macro
...
Lean4 will not have macros.
2018-05-24 14:00:30 -07:00
Leonardo de Moura
9a4b3f85f3
feat(library/init/lean/level): missing functions
2018-05-22 10:49:24 -07:00
Leonardo de Moura
4d7ae73d39
feat(library/init/lean): add level
2018-05-22 09:45:18 -07:00
Leonardo de Moura
84c0580e05
fix(library/init/meta/tactic): monad_from_pure_bind is used to implement io
2018-05-21 15:45:56 -07:00
Leonardo de Moura
160b7e8847
refactor(library/init/meta/expr): local_const will have only one field
...
In Lean3, we supported two kinds of local constant:
context-less (inherited from Lean2) and context-based (type,
binder-info and pretty printing name are stored in the context).
The context-less was used in the kernel and a few modules we kept when
we moved from Lean2 to Lean3. Even if we keep the hybrind
representation, we should not expose the context-less to users.
2018-05-21 15:36:09 -07:00
Leonardo de Moura
d04f0b2022
chore(library/init/meta): remove old code
2018-05-21 15:30:12 -07:00
Leonardo de Moura
afd018d7cc
chore(*): remove several tactics
2018-05-21 06:53:01 -07:00
Leonardo de Moura
032a101262
chore(*): remove more files
...
@kha I'm trying to remove as much as possible before I start
modifying `expr`
2018-05-21 06:42:58 -07:00
Leonardo de Moura
0955962f65
chore(*): remove some unnecessary files and tactics
2018-05-21 06:29:50 -07:00
Leonardo de Moura
e99036251c
feat(library/init/meta/expr): remove more occurrences of local_const
2018-05-20 17:39:05 -07:00
Leonardo de Moura
92ff42776c
chore(library/tactic): remove match_tactic
2018-05-20 17:33:31 -07:00
Leonardo de Moura
8ffe6497c8
feat(library/init/meta): reduce occurrences of expr.local_const
2018-05-20 17:26:47 -07:00
Leonardo de Moura
b78e9df869
chore(runtime/object): tag => obj_tag
...
`tag` at `object.h` conflicts with `tag` at `expr.h`
2018-05-20 12:00:59 -07:00
Leonardo de Moura
2944f7a027
chore(runtime): lean_obj.* ==> object.*
2018-05-20 10:17:15 -07:00
Leonardo de Moura
2d604e7d25
chore(runtime/lean_obj): remove lean_ prefix
2018-05-20 10:13:44 -07:00
Leonardo de Moura
d92679f969
refactor(*): replace name with lean.name
2018-05-20 09:42:44 -07:00
Leonardo de Moura
a52b418452
refactor(*): mk sure old name has same shape of new lean.name type
2018-05-20 08:48:48 -07:00
Leonardo de Moura
115ca87555
feat(library/init/lean/core): define core language
2018-05-18 15:35:42 -07:00
Leonardo de Moura
1bc7c0812c
chore(kernel,library): remove task from the kernel and library
2018-05-18 09:06:03 -07:00
Sebastian Ullrich
bba55aad47
feat(library/init/lean/trace): implement conditional tracing via good old trace classes
2018-05-18 14:52:15 +02:00
Sebastian Ullrich
3796c73b85
feat(library/init/lean/options): add lean.options
2018-05-18 14:51:40 +02:00
Leonardo de Moura
acdcbdb71e
feat(library/init/lean/ir): add instructions for (big) integer arithmetic
2018-05-17 18:17:23 -07:00