Commit graph

13602 commits

Author SHA1 Message Date
Sebastian Ullrich
07bb7d809b
chore(.travis.yml): increase travis_wait timeout
By default, `travis_wait` kills the process after 20 minutes, so this could make test runs fail that actually would have succeeded before the change. Increase to maximum job runtime of 60 minutes.
2018-03-13 17:17:55 +01:00
Leonardo de Moura
16f28315ee doc(lean4): design notes
@kha I added some notes for the Lean4 branch. It is very unpolished.
2018-03-09 17:48:00 -08:00
Sebastian Ullrich
29d1911f50 chore(.appveyor.yml,src/CMakeLists): make cxx and linker flags configurable and use them to disable slow LTO on AppVeyor 2018-03-08 10:30:58 -08:00
Sebastian Ullrich
340e056dee chore(shell/CMakeLists): copy mpir.dll when building with MSVC
Also simplify code a bit
2018-03-08 10:30:47 -08:00
Sebastian Ullrich
854475808d chore(shell/CMakeLists): make bin/lean a proper target
This ensures that it will be re-copied when removed, which is a quick way of
switching between debug and release builds.
2018-03-08 10:30:38 -08:00
Sebastian Ullrich
94b45cf48a chore(.appveyor.yml): support MSVC 2018-03-08 10:30:28 -08:00
Sebastian Ullrich
7c8f884699 chore(README,doc/faq): The Gitter chat room has been migrated to Zulip 2018-03-08 10:06:37 -08:00
Sebastian Ullrich
fbe6b70295 perf(library/module_mgr): fix module_info reference cycle 2018-03-08 10:06:20 -08:00
Sebastian Ullrich
191d1e7321 chore(shell/server): sync_output command for debugging 2018-03-08 10:06:09 -08:00
Leonardo de Moura
2e66449feb fix(library/tactic/tactic_state): build 2018-03-08 09:58:07 -08:00
Leonardo de Moura
169cd87dbe feat(library/system/io): add io.run_tactic
@nunoplopes @aqjune
I had to add a new primitive to allow you to execute a tactic from the
`main` function. The `main` function is in the `io` monad. The new
primitive has type:
```
meta constant io.run_tactic {α : Type} (a : tactic α) : io α
```
I also added a new test that shows how to use it.
The test displays all declarations that have the `nat` prefix.

cc @kha
2018-03-07 12:15:26 -08:00
Leonardo de Moura
832d2358f1 test(tests/lean/run/1942): closes #1942
It seems the assertion violation has been fixed by recent changes.
2018-03-06 17:43:08 -08:00
Leonardo de Moura
2889482fe9 fix(library/init/meta/interactive): fixes #1943 2018-03-06 17:36:18 -08:00
Nuno Lopes
9152aaa7d6 fix(bit_tricks): make sure no one calls math.h's log2()
this fixes the bit_trick test with MSVC
2018-03-06 11:21:28 -08:00
Leonardo de Moura
d569533bf5 chore(tests/lean/try_for_heap): disable expensive test 2018-03-05 17:55:01 -08:00
Leonardo de Moura
0492f254b7 chore(library/data/dlist): remove rsimp dependency
Reason: `rsimp` is based on the smt framework. The smt framework
has to be reimplemented. Moreover, the smt framework is currently
not using the new cache infrastructure and we pay a substantial
performance penalty.
2018-03-05 17:09:08 -08:00
Leonardo de Moura
3e81f88887 feat(library): implement new cache API for fun_info 2018-03-05 15:46:42 -08:00
Leonardo de Moura
eddc64d154 chore(library/abstract_context_cache): remove unnecessary argument 2018-03-05 14:40:47 -08:00
Leonardo de Moura
a5ace58fb3 feat(library): add elab_context 2018-03-05 13:11:55 -08:00
Leonardo de Moura
bdea7d420d chore(*): type_context ==> type_context_old 2018-03-05 12:38:24 -08:00
Leonardo de Moura
f873def910 refactor(library/type_context): move unification_hints to cache object 2018-03-05 12:17:09 -08:00
Sebastian Ullrich
d6d44a1994 fix(frontends/lean/pp): fix #1922
Fixes #1922
2018-03-02 13:02:48 -08:00
Sebastian Ullrich
f487989470 feat(init/core): add infer_instance 2018-03-01 16:09:10 +01:00
Sebastian Ullrich
3d63169b44 feat(init): some simp lemmas 2018-03-01 16:07:52 +01:00
Sebastian Ullrich
48147646bc refactor(library): mk_result/get_result_* ~> mk_success/get_success_* 2018-03-01 14:56:01 +01:00
Sebastian Ullrich
e1fc2bdbea refactor(library): encapsulate tactic's Lean implementation better 2018-03-01 14:56:01 +01:00
Nuno Lopes
39270fd46f fix(tactic): build on MSVC 2018-02-28 10:38:50 -08:00
Sebastian Ullrich
f72a700e34 fix(frontends/lean/decl_cmds): attribute cmd: save info for first ident 2018-02-28 17:42:19 +01:00
Sebastian Ullrich
76843717c4 chore(frontends/lean/elaborator): style 2018-02-28 12:49:22 +01:00
Sebastian Ullrich
61b6e26671 fix(init/meta/tactic): make tactic.funext work on non-abstractions 2018-02-28 12:49:22 +01:00
Sebastian Ullrich
1abf8738fc feat(frontends/lean/structure_cmd): allow implicitness infer annotation and parameters in field declaration 2018-02-28 12:49:22 +01:00
Sebastian Ullrich
f3ca420b64 feat(frontends/lean/elaborator): hide opt/auto param types when elaborating structure field values 2018-02-28 12:49:22 +01:00
Sebastian Ullrich
cf8dd9e75e feat(fronteds/lean/builtin_exprs): do notation: use overloadable bind instead of has_bind.bind 2018-02-28 12:49:22 +01:00
Leonardo de Moura
b72d465835 refactor(library/init/meta): remove tactic_state.mk_empty
The tactic_state object will contain a name_generator for creating fresh
names. `tactic_state.mk_empty` is bad because it does not have sufficient
information to create this name_generator.
Moreover `tactic_state.mk_empty` was only being used to convert
`tactic A` into a `parser A`.
We implement this primitive now in C++. In C++, we will be able
to use the parser name generator to initialize a fresh `tactic_state`.
2018-02-27 14:45:47 -08:00
Leonardo de Moura
902445c56f chore(frontends/lean): remove parser_state object
This is dead code. We have decided to implement the new parser in Lean.
2018-02-27 14:05:02 -08:00
Leonardo de Moura
221931492e feat(library/name_generator): add nest_with 2018-02-27 13:17:58 -08:00
Leonardo de Moura
3895fd8511 chore(library): use type_context to update metavar_context 2018-02-27 12:23:26 -08:00
Leonardo de Moura
69335ce540 chore(.travis.yml): add travis_wait
`ctest` is timing out in debug mode.
The `travis_wait` command extends the threshold to 20mins.
https://docs.travis-ci.com/user/common-build-problems/#Build-times-out-because-no-output-was-received
2018-02-27 11:30:45 -08:00
Sebastian Ullrich
5279f92dae fix(library/tactic/simp_lemmas): avoid rewrite failure with more robust code
The old code assumed `emetas` to be descendingly ordered by tmp idx, which is
not true for rfl lemmas.
2018-02-27 10:59:51 -08:00
Nuno Lopes
0eebde1b8b fix(process): fix inherited io on windows (handles were being incorrectly closed)
This also unifies the win/linux versions a bit more
2018-02-27 10:55:42 -08:00
Nuno Lopes
ce66af8f5b fix(process): order of parameters of process class was wrong 2018-02-27 10:55:42 -08:00
Nuno Lopes
9e42e434b5 chore(io): remove a few unneeded ref count bumps 2018-02-27 10:55:38 -08:00
Nuno Lopes
f6a5c26a1f fix(io.cmd): close stdout pipe 2018-02-27 10:43:09 -08:00
Nuno Lopes
ea6a4be124 chore(library): match stdio enum with Lean values 2018-02-27 10:43:09 -08:00
Nuno Lopes
c67062644a fix(io_proc): fix crash on Windows/VS when invoking external processes
This commit also removes a couple of unused functions
2018-02-27 10:43:09 -08:00
Leonardo de Moura
ec141d1671 chore(library/tactic/change_tactic): use type_context instead of metavar_context 2018-02-27 10:41:11 -08:00
Leonardo de Moura
6bf20a980d doc(library/tactic/tactic_state): plan for getting rid of remaining occurrences of mk_fresh_name and mk_tagged_fresh_name 2018-02-27 10:34:55 -08:00
Leonardo de Moura
a962efdcd1 fix(library/tactic/cases_tactic): fixes #1836 2018-02-26 15:32:03 -08:00
Leonardo de Moura
421f2c2ae2 fix(library/tactic/subst_tactic): subst was creating type incorrect motive when using dependent elimination
This commit fix a bug reported at comment
https://github.com/leanprover/lean/issues/1827#issuecomment-368258713

Remark: the original problem reported at issue #1827 has nothing to do
with this bug.
2018-02-26 14:02:10 -08:00
Leonardo de Moura
e53ef3c335 fix(library/type_context): remove unsafe type_context::operator=(type_context &&)
This commit also implements a custom `type_context(type_context &&)`
constructor that enforces correct usage.
2018-02-26 12:28:22 -08:00