Leonardo de Moura
6ab792733d
feat(library/type_context): smart unfolding
...
closes #1794
2018-01-09 15:09:08 -08:00
Leonardo de Moura
bff40665b0
fix(library/aux_definition): make sure aux_definition level params are sorted
...
This modification guarantees that the order of universe parameters in a
declaration `f` is identical to the one in `f._meta_aux` (if it exists).
2018-01-09 13:12:23 -08:00
Leonardo de Moura
e0bdb10ab4
fix(library/type_context): clenaup whnf_head_pred
...
The code had a few leftovers from the old `whnf_pred` method.
We don't use `whnf_pred` anymore.
2018-01-08 11:31:03 -08:00
Leonardo de Moura
600a32d323
chore(library/equations_compiler/pack_mutual): _mutual should be a suffix instead of prefix
2018-01-08 10:43:34 -08:00
Leonardo de Moura
587540f11b
feat(frontends/lean): add abbreviation command
...
This command is not just a cosmetic feature.
We need it to defined `id_rhs` before the tactic framework is defined.
We want `id_rhs` to be used in all definitions generated by the equation
compiler. Right now, it is only used in definitions defined after the
tactic framework.
2018-01-05 15:40:59 -08:00
Leonardo de Moura
d2ae028cbe
chore(library/type_context): missing CACHE_CODE
2018-01-05 14:10:28 -08:00
Leonardo de Moura
b7de24715b
fix(util/rbtree): make sure traversal methods do not crash if given function updates the tree
...
This is a fix for a nasty bug at `type_context::set_instance_fingerprint`.
This method traverses the local context `m_lctx` and invokes `is_class`
which may invoke `whnf`, and `whnf` may temporarily update the local
context. The local context is implemented using a `rb_tree`.
Note that the updates performed by `whnf` are temporary, but it
its representation in memory may be different.
2018-01-05 14:10:28 -08:00
Leonardo de Moura
43d7bac49b
feat(library/init/meta): add support for new unify at rw tactic
2018-01-04 13:05:55 -08:00
Leonardo de Moura
040722c7e7
feat(library/init/meta): add unify config option to apply_cfg
...
This commit also fixes a problem in the `apply` tactic error messages.
2018-01-04 12:51:59 -08:00
Leonardo de Moura
e1b0b72bf0
chore(library/type_context): update design notes
2018-01-04 11:38:42 -08:00
Leonardo de Moura
7db5d79c76
chore(doc/faq): typo
2018-01-03 15:43:48 -08:00
Leonardo de Moura
6079189162
doc(faq): add FAQ
2018-01-03 15:39:02 -08:00
Leonardo de Moura
22270d37cf
feat(library/type_context): m_update => m_update_left/m_update_right
2018-01-03 13:49:42 -08:00
Leonardo de Moura
e9650d835d
chore(library/type_context): cleanup metavar method names
...
This commit also fixes some corner case bugs at is_def_eq
2018-01-03 13:49:42 -08:00
Leonardo de Moura
8621be6335
fix(frontends/lean): closes #1898
2018-01-02 12:33:00 -08:00
Sebastian Ullrich
acf4b56cd4
fix(library/process): uses bash's convention for exit codes
2017-12-30 19:31:55 +01:00
Sebastian Ullrich
93c90a9f5c
fix(library/process): flush stdout before forking
2017-12-30 19:31:55 +01:00
Sebastian Ullrich
6216d6147c
fix(leanpkg/main): avoid recursively executing leanpkg
...
This failed on Windows because CreateProcess was looking for a file named `leanpkg.exe`.
2017-12-30 19:31:55 +01:00
Sebastian Ullrich
2586f5b6f2
feat(system/io): get_cwd/set_cwd
2017-12-30 19:31:55 +01:00
Sebastian Ullrich
3442634181
fix(library/process): inheriting IO handles on Windows
2017-12-30 19:31:55 +01:00
Sebastian Ullrich
37e2f085e4
chore(shell/CMakeLists): leanpkg integration tests
2017-12-30 19:31:55 +01:00
Sebastian Ullrich
adc0d250fc
fix(shell/lean): show progress messages only when stdout is a terminal
2017-12-30 17:39:53 +01:00
Sebastian Ullrich
6e02ce9b34
fix(.travis.yml): support combining $TEST_LEANPKG_REGISTRY and $UPLOAD
2017-12-22 11:54:29 +01:00
Sebastian Ullrich
a36376a6cf
fix(frontends/lean/builtin_cmds): #eval: set message caption
2017-12-22 11:04:46 +01:00
Sebastian Ullrich
5eaa6efab9
chore(.travis.yml): fix Travis on OS X
2017-12-21 08:28:44 -08:00
Leonardo de Moura
d0dfb3f9f9
fix(library/tactic/simp_lemmas): closes #1863
2017-12-20 15:12:02 -08:00
Mario Carneiro
56c54a478f
fix(init/coe): use Sort instead of Type in subtype coe
2017-12-20 14:02:03 -08:00
Sebastian Ullrich
7e4f348b8c
chore(script/test_registry): Replace with leanpkg. Execute in every artifact-producing build configuration.
2017-12-20 14:01:45 -08:00
Leonardo de Moura
ddf014cc7f
feat(library/init/version): add lean.githash : string
2017-12-20 14:00:41 -08:00
Leonardo de Moura
c6ddc51c2b
fix(library/app_builder): typo at mk_congr
...
closes #1893
2017-12-20 13:13:55 -08:00
Leonardo de Moura
a2dc2b6549
fix(util): null_output_channel
...
On OSX, Lean was often crashing when using trace messages.
I identified a problem in the thread finalization process.
In OSX, the `silent_ios_helper` at `library/trace.cpp` was being
finalized after the `null_streambuf` at `util/null_ostream.cpp`.
There was also a memory corruption problem also related to
`null_streambuf`.
This commit fixes this problem by using the following recipe
for creating null output stream buffers in C++.
https://stackoverflow.com/questions/11826554/standard-no-op-output-stream
2017-12-20 11:50:41 -08:00
Leonardo de Moura
8de8771ee0
chore(library/vm/vm_parser): remove leftover comment
2017-12-17 09:52:44 -08:00
Leonardo de Moura
8b835f9ab6
fix(frontends/lean): fixes #1890
...
It fixes the issue by propagating the correct information to the
equation compiler.
The fix may be a little bit hackish, but it is comapatible with
the approach we are already using: store `m_is_meta` flag in the equation
macro.
Disclaimer: we may still have other instances of this bug, since
the information may still be propagated incorrectly in other places.
I will not refactor this code right now nor accept any PR that
changes the current design. I am busy in other parts of the code
base and do not have time to do the context switch required for
implementing this kind of change and/or review the PR and make sure I'm
happy with it.
2017-12-17 09:42:06 -08:00
Leonardo de Moura
f7bc884ae8
chore(kernel/type_checker): fix compilation warning msgs
2017-12-17 08:44:51 -08:00
Gabriel Ebner
9ef95c9dff
chore(gitignore): ignore autogenerated version.lean file
2017-12-17 15:49:51 +01:00
Gabriel Ebner
860cc95730
fix(library/compiler/rec_fn_macro): do not type-check in non-meta declarations
2017-12-17 15:47:52 +01:00
Leonardo de Moura
e89eece98c
feat(library/init): add lean.version : nat × nat × nat
...
closes #1873
2017-12-15 17:48:26 -08:00
Leonardo de Moura
0252393eb5
doc(library/type_context): relax preconditions for using is_def_eq in new implementation
2017-12-15 17:37:33 -08:00
Leonardo de Moura
91ff183b3e
chore(library): remove out notation for out_param
2017-12-15 15:47:58 -08:00
Leonardo de Moura
f0352d31a1
feat(library/type_context, library): inout ==> out modifier in type class declarations
...
@kha: I decided to implement this change before I start the
type_context modifications. The change did not affect the corelib and
test suite much. The only annoying problem is that `out` cannot be
used to name locals anymore.
2017-12-15 14:46:47 -08:00
Leonardo de Moura
9503ceb832
doc(library/type_context): improve docstring for new design
...
cc @kha
2017-12-15 13:20:26 -08:00
Leonardo de Moura
7106bcf7a5
chore(frontends/lean/inductive_cmds): remove app_builder dependency
2017-12-15 11:35:34 -08:00
Leonardo de Moura
7c1447d615
fix(library/app_builder,library/util): get_level's with slightly different behavior
2017-12-15 11:33:29 -08:00
Leonardo de Moura
aed2c442a3
chore(library/app_builder): add assertion stating that app_builder::mk_app arguments do not contain tmp metavars
2017-12-15 11:22:15 -08:00
Leonardo de Moura
8850099e3d
chore(library/tactic/smt): remove app_builder dependency
2017-12-15 11:18:41 -08:00
Leonardo de Moura
0492e49a3f
fix(library/type_context): fixes #1888
2017-12-15 08:49:45 -08:00
Scott Morrison
a395c26165
chore(.travis.yml): work around change in Travis OS X image
2017-12-15 10:41:09 +01:00
Leonardo de Moura
73c4ea7e35
chore(library/type_context): typos and missing remarks
2017-12-14 18:26:41 -08:00
Leonardo de Moura
f0f2fc42b6
doc(library/type_context): design notes for new type_context
2017-12-14 17:57:28 -08:00
Leonardo de Moura
746134d11c
feat(library/init/meta/interactive): add goal tagging support for by_cases
...
This commit also incorporates changes suggested at commit 84a1911949dec94.
2017-12-13 15:17:13 -08:00