Leonardo de Moura
d87dfbfb03
chore(library/equations_compiler): remove equations macro
2018-06-19 13:41:08 -07:00
Leonardo de Moura
140e906267
chore(library/equations_compiler): remove equation and no_equation macros
2018-06-19 13:41:07 -07:00
Leonardo de Moura
b4f4924be4
chore(library/equations_compiler): remove as_pattern macro
2018-06-19 13:41:07 -07:00
Leonardo de Moura
c0a9b0bb4b
chore(frontends/lean): remove field_notation macro
...
In the new parser, field_notation will be a syntax object.
2018-06-19 13:41:07 -07:00
Leonardo de Moura
970d14afa9
refactor(frontends/lean/structure_instance): implement structure instances using mdata
2018-06-18 15:57:42 -07:00
Leonardo de Moura
f948892505
refactor(frontends/lean/choice): use mdata to implement choice
2018-06-18 14:21:11 -07:00
Leonardo de Moura
b84090aaca
feat(library/annotation): remove annonation macro
...
We now use the new `expr.mdata` constructor.
2018-06-18 13:39:02 -07:00
Sebastian Ullrich
70970ce5e0
feat(library/init/lean/parser/reader): add simplistic implementation of a tiny initial part of the Lean reader
...
Maybe 'reader' isn't the best name.
2018-06-18 19:23:58 +02:00
Sebastian Ullrich
bf9bf19215
doc(library/init/lean/parser/parser_t): some monad_parser documentation
2018-06-18 13:50:05 +02:00
Leonardo de Moura
a49de9ccd3
feat(library/init/lean): add kvmap
...
We use it to implement `expr.mdata` and `options`
2018-06-15 16:05:11 -07:00
Sebastian Ullrich
7ae87705c2
feat(library/init/lean/parser/parser_t): introduce monad_parser
2018-06-15 17:48:20 +02:00
Leonardo de Moura
0394018e98
chore(library/init/lean/macro): update TODO
2018-06-14 16:28:34 -07:00
Leonardo de Moura
73e067d361
feat(kernel): add expression literals
2018-06-14 14:55:14 -07:00
Leonardo de Moura
021bc40e95
feat(library/init/lean/expr): new lean.expr type
2018-06-13 15:44:15 -07:00
Leonardo de Moura
e9b4b811de
chore(library/equations_compiler/util): disable generation of equational lemmas
...
@kha, `eqn_compiler.lemmas` is false by default.
I will keep them disabled until I remove the inductive compiler.
I'm building the new inductive datatype module (to replace the inductive
compiler), and the lemmas will fail to be proved in the next commits
until the transition is complete.
2018-06-12 13:03:25 -07:00
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
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
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
1bae8f8eab
refactor(library/init/lean/ir/parser): parser.lean => parser_t.lean
2018-06-05 08:00:13 -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
9a671d7c7d
chore(library/compiler): delete rec_fn_macro
2018-05-31 17:11:25 -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
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
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
115ca87555
feat(library/init/lean/core): define core language
2018-05-18 15:35:42 -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
Leonardo de Moura
5d8501acf5
chore(runtime/lean_obj): consistent naming convention
2018-05-17 16:45:27 -07:00
Leonardo de Moura
217fa0e8c9
feat(library/init/lean/ir/lirc): add option to specify whether input is in SSA or not
2018-05-17 15:53:49 -07:00
Leonardo de Moura
af1a5fe874
feat(library/init/lean/ir): add x : ty := y instruction
...
It is useful when we are not producing IR in SSA.
2018-05-17 15:44:13 -07:00
Leonardo de Moura
b14f7e2fa4
chore(library/init/lean/ir/reserved): update list of reserved words
2018-05-17 15:44:01 -07:00
Leonardo de Moura
dede61b122
feat(library/init/lean/ir): add tag and tag_ref instructions
2018-05-17 14:51:41 -07:00
Leonardo de Moura
5d53eccb59
feat(runtime): string support
2018-05-17 13:11:47 -07:00
Sebastian Ullrich
4a7c2fcafc
test(tests/lean/macro1): add examples from prototype
2018-05-17 17:45:02 +02:00
Sebastian Ullrich
789707efe6
refactor(library/init/lean/trace): avoid init.meta import
2018-05-17 14:25:12 +02:00
Sebastian Ullrich
308d58ad77
chore(library/init/lean/trace): remove 'meta'
2018-05-17 14:15:25 +02:00
Leonardo de Moura
53d459911f
refactor(library/init/lean/ir): RC instructions
2018-05-16 10:28:51 -07:00
Leonardo de Moura
8cb7511a91
feat(runtime/lean_obj): natural number support
2018-05-16 10:28:51 -07:00
Sebastian Ullrich
2cf731c607
feat(library/init/lean/trace.lean): add tracing structure and monad prototypes
2018-05-16 18:47:37 +02:00
Leonardo de Moura
ade8cb7296
chore(library/init/lean/ir): make it clear that big number may be a tagged pointer
2018-05-15 15:58:58 -07:00