Leonardo de Moura
bf9f7560f7
feat(frontends/lean): (Type u) can't be a proposition
...
(Type u) is the old (Type (u+1))
(PType u) is the old (Type u)
Type* is the old (Type (_+1))
PType* is the old Type*
The stdlib can be compiled, but we still have > 70 broken tests
See discussion at #1341
2017-01-30 11:54:00 -08:00
Leonardo de Moura
3178f41cce
fix(library/compiler/inliner): applications of definitions marked as [inline] are inlined even if they are not fully applied
...
see #1316
2017-01-17 16:33:19 -08:00
Leonardo de Moura
fc00275636
fix(library/compiler/elim_recursors): it was assuming that recursive arguments occur after non recursive ones
2017-01-16 22:59:17 -08:00
Leonardo de Moura
ad8c241129
perf(library/compiler/eta_expansion): conservative eta_expansion
...
We only eta_expand where needed (e.g., partial constructor/projection/recursor applications).
2017-01-12 11:18:16 -08:00
Leonardo de Moura
1977b4ff3f
fix(library/compiler/vm_compiler): bytecode generation error
...
This bug was introduced by commit 2bd400964c
when we decided to store arguments in reverse order.
2017-01-12 11:18:16 -08:00
Leonardo de Moura
1f2b8745dc
fix(library/compiler): prevent let-expressions from being expanded
2017-01-12 11:18:16 -08:00
Leonardo de Moura
2df280431a
fix(library/compiler/comp_irrelevant): fix #1302
2017-01-11 11:10:17 -08:00
Leonardo de Moura
b526e30c55
fix(library/compiler/cse): common subexpressions inside common subexpressions were not being eliminated
2017-01-09 11:11:55 -08:00
Gabriel Ebner
9435762643
fix(compiler/vm_compiler): only compile computable non-builtin definitions
2017-01-04 16:30:22 -08:00
Leonardo de Moura
a516d384ae
fix(library/compiler/erase_irrelevant): make sure io monad actions are not erased by dead code elimination optimization
2017-01-02 01:42:36 -08:00
Leonardo de Moura
b313328cb9
feat(library/equations_compiler): int constants
2016-12-25 10:00:18 -08:00
Leonardo de Moura
5f72e37501
chore(library/vm): fix warning
2016-12-20 10:19:20 -08:00
Leonardo de Moura
bd2f9bce05
fix(library/compiler/erase_irrelevant): issue created by elim_unused_lets optimization
2016-12-14 18:51:53 -08:00
Leonardo de Moura
6e3959de2f
feat(library/compiler): create declarations for nested values
2016-12-12 10:37:58 -08:00
Leonardo de Moura
502413d5dd
chore(library/compiler/elim_unused_lets): style
2016-12-12 08:32:42 -08:00
Leonardo de Moura
028bf36152
feat(library/compiler): eliminate unused let declarations
2016-12-12 08:23:37 -08:00
Leonardo de Moura
abfea1f388
feat(library/compiler/cse): ignore 0-ary macros during common subexpression elimination
2016-12-12 07:40:46 -08:00
Leonardo de Moura
fbc1bb4d89
perf(library/compiler): add common subexpression elimination
...
It addresses a performance problem reported by Brian (huffman@galois.com ).
2016-12-11 14:43:51 -08:00
Leonardo de Moura
6577cc87a3
feat(library): add pre_monad
...
closes #1235
2016-12-08 12:48:55 -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
Leonardo de Moura
62d6b88570
fix(library/compiler/preprocess): make sure let-expressions are not expanded in the compiler preprocessor
2016-11-22 10:24:13 -08:00
Leonardo de Moura
e16e9880f7
chore(library/system): enforce Lean naming conventions IO ==> io
2016-11-17 11:27:37 -08:00
Leonardo de Moura
fffe69fdf9
feat(library/vm,library/tactic/vm_monitor): use optionT to define vm monad
2016-11-14 16:13:56 -08:00
Leonardo de Moura
7232e3a076
feat(library/vm/vm): invoke debugger (aka vm_monitor)
2016-11-14 14:45:49 -08:00
Leonardo de Moura
e673fa65ba
feat(library/vm/vm): Store position information at vm_decl's
2016-11-11 15:39:32 -08:00
Leonardo de Moura
7d3c0c24f8
fix(library/compiler): missing file
2016-11-10 09:34:32 -08:00
Leonardo de Moura
d6000416f8
feat(library/compiler,frontends/lean/elaborator): (try to) preserve position information
...
We will use this information in the debugger.
2016-11-09 16:51:48 -08:00
Leonardo de Moura
b79b76db83
feat(library/compiler/vm_compiler): improve local_info collection
2016-11-09 12:18:44 -08:00
Leonardo de Moura
6ce00a9b45
fix(library/compiler): move inliner to the beginning
...
Reason: the inliner may introduce recursors, non eta-expanded terms,
etc. Before this commit, it was "undoing" previous compilation steps.
2016-11-08 16:14:01 -08:00
Leonardo de Moura
6b3da2daf4
feat(library/compiler/vm_compiler): save local_info for let-expressions
2016-11-08 15:50:38 -08:00
Leonardo de Moura
d66584f390
feat(library/vm,library/compiler): save argument names
2016-11-08 15:10:04 -08:00
Leonardo de Moura
1cee5fbfea
chore(library/compiler/vm_compiler): hide API
2016-11-05 14:11:21 -07:00
Gabriel Ebner
41643d6400
fix(library/compiler/vm_compiler): prevent segfault
2016-11-04 09:47:17 -07:00
Leonardo de Moura
9d3aa5b627
fix(library/compiler/elim_recursors): bug in elim_recursors
...
We may fail to type check auxiliary definitions that use rec_fn_macro.
The problem is that this macro cannot be unfolded.
So, we fix the problem by not type checking them. We add them as
constants, and store the definition in an auxiliary vector.
2016-11-02 14:19:28 -07:00
Leonardo de Moura
e62810c9b8
fix(library/compiler/lambda_lifting): make sure constructors are eta-expanded
...
closes #1133
2016-11-02 13:26:15 -07:00
Leonardo de Moura
30ae8a29b6
fix(library/compiler/elim_recursors): some recursor applications were not being eliminated
2016-11-02 13:05:52 -07:00
Leonardo de Moura
a77e4b5abf
fix(library/compiler/erase_irrelevant): bug at is_comp_irrelevant
2016-10-27 11:51:37 +08:00
Leonardo de Moura
7465529445
feat(library/tactic): 'eval_expr' tactic skeleton
2016-10-03 16:26:28 -07:00
Leonardo de Moura
5e5285ee67
refactor(library): rename pr1/pr2 ==> fst/snd
2016-09-21 09:48:39 -07:00
Leonardo de Moura
b524e3d5f1
fix(frontends/lean/elaborator): postprocess rec_fn_macros used in meta_definitions
2016-09-18 13:01:50 -07:00
Leonardo de Moura
2ac2badd58
fix(library/compiler/preprocess): do not unfold proofs
2016-09-13 08:47:39 -07:00
Leonardo de Moura
932d14241b
chore(kernel): remove support for mutually inductive datatypes from the kernel
2016-09-10 17:39:17 -07:00
Leonardo de Moura
0b2c3659cf
perf(library/compiler/nat_value): replace all numerals with nat_value_macro
...
Reason: Later we try to type check the compiler intermediate results.
If only some of the numerals are converted, we may spend a lot of time
making sure the two different representations are equivalent.
2016-09-04 16:42:40 -07:00
Leonardo de Moura
567d6824f4
chore(library/compiler/preprocess): mark assertions as conditional
...
is_def_eq may take a very long time after the transformations are applied.
2016-09-03 16:15:22 -07:00
Leonardo de Moura
0ec22bb2cf
refactor(library/type_context): new type class instance cache
2016-09-01 17:37:30 -07:00
Sebastian Ullrich
441a219a66
feat(library/attribute_manager): make attributes with side-effect free callbacks removable
2016-08-23 21:52:52 -07:00
Leonardo de Moura
a93eada058
feat(library/type_context): improved (and simplified) cache management for type_context
2016-08-23 17:56:58 -07:00
Sebastian Ullrich
ca8be3857c
feat(library/user_attribute): add user-defined attributes and make attribute_manager environment-aware
2016-08-18 12:56:44 -07:00
Sebastian Ullrich
34e00cd5a2
refactor(library/attribute_manger): simplify: make every attribute prioritizable
2016-08-16 13:49:02 -07:00
Leonardo de Moura
f5c35f8d76
chore(*): fix compilation warnings
2016-08-10 18:03:13 -07:00