Commit graph

1390 commits

Author SHA1 Message Date
Leonardo de Moura
ca261b7fa8 feat(library/init/meta/congruence_tactics): add option for retrieving only non-singleton equivalence classes, add auxiliary functions 2016-12-23 18:35:44 -08:00
Leonardo de Moura
a2850ac050 fix(library/tactic/congruence/congruence_closure): bugs in the fo-approx mode, and debug mode compilation errors 2016-12-23 17:31:20 -08:00
Leonardo de Moura
a4173467c4 feat(library/app_builder): use Semireducible if caller did not specify a transparency_mode and ctx.mode() is Reducible or None
see discussion at #1265
2016-12-23 14:41:22 -08:00
Leonardo de Moura
60d3255577 fix(library/type_context): issue #1258 again
This is yet another fix.
2016-12-22 10:51:16 -08:00
Leonardo de Moura
cc077554b5 fix(library/tactic/change_tactic): use id_locked in the change tactic to create checkpoint
closes #1260
2016-12-21 11:29:03 -08:00
Leonardo de Moura
fe3ed3d383 fix(library/constructions/induction_on): induction_on was not being marked as aux_recursor 2016-12-20 22:41:50 -08:00
Leonardo de Moura
98a14ee1c9 chore(tests/lean/run/test_single): use '-j 0' when running tests 2016-12-20 11:45:32 -08:00
Leonardo de Moura
db2e3727a6 feat(library/type_context): add yet another approximation to unifier
@avigad I decided to fallback into first-order unification to address
the (a ∉ []) issue.

@dselsam Have you experienced similar problems in the ICML project?
The new comment at type_context.cpp explains the problem and hack to
workaround it. The issue is yet another instance where using "first-order
unification" produces imprecision, but generates the solution we want.
2016-12-19 20:34:07 -08:00
Leonardo de Moura
47e6f8fa9e fix(library/type_context): do not revert auxiliary local declarations introduced by the recursive equation notation
see #1258
2016-12-19 11:06:50 -08:00
Sebastian Ullrich
d3f57c6497 fix(library/tactic/tactic_state): include implicitly opened namespaces in opened_namespaces 2016-12-18 23:49:00 -08:00
Leonardo de Moura
aa0abd5cef fix(library/equations_compiler/structural_rec): bug in decoder 2016-12-18 22:51:02 -08:00
Leonardo de Moura
1e76ba64e8 test(tests/lean/run/norm_num_tst): add norm_num tactic tests 2016-12-17 21:19:15 -08:00
Leonardo de Moura
0b9bc383b3 test(tests/lean/run): add regression test
This example exposes the problem described by Kha at slack.
2016-12-17 14:08:10 -08:00
Leonardo de Moura
4b97b00536 refactor(library/tools/super): move examples to test folder 2016-12-16 19:05:32 -08:00
Leonardo de Moura
f9ad1dbfc0 fix(frontends/lean/definition_cmds): bug at inline_new_defs
closes #1253
2016-12-15 20:32:06 -08:00
Leonardo de Moura
b2c1ea6fdb fix(library/type_context): failure cache
The new regression test exposes the problem being fixed.
2016-12-13 07:50:03 -08:00
Leonardo de Moura
3de3532a3e chore(tests/lean/run/even): remove duplicate 2016-12-12 10:48:10 -08:00
Leonardo de Moura
7794ecfb69 test(tests/lean/run): add test for performance issue reported in the lean group 2016-12-12 10:38:23 -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
aba6f8b8a8 feat(frontends/lean/parser): add support for anonymous parameters
Example:

check λ _, 0
2016-12-10 11:07:58 -08:00
Leonardo de Moura
9f6e71b374 feat(library/tactic): add "approximate" parameter to apply_core and rewrite_core
If this parameter is set to true, then approximate unification is
used.

closes #1208
2016-12-10 10:24:05 -08:00
Leonardo de Moura
55401a95ec fix(frontends/lean/parser): scope in tactic mode 2016-12-10 09:39:13 -08:00
Leonardo de Moura
b5dc88ee37 fix(library/equations_compiler/elim_match): see #1216
Fixes the problem described at #1216.
This is an alternative fix that prevents the m_var_stack from being in
an inconsistent state.
2016-12-08 15:38:14 -08:00
Leonardo de Moura
692701c5ef feat(library/init/meta): use cheap "reflexivity" after simp and rewrite
The idea is to make sure lean doesn't timeout (at reflexivity) when we apply simp or
rewrite in goals such as

    (x y : nat) |- x + y + 10000000000 = x + y + 200000000000000

This commit also addresses an issue raised at #1218
2016-12-08 14:41:26 -08:00
Leonardo de Moura
0818b02eb3 test(tests/lean/run): add test for @1218 2016-12-08 14:10:47 -08:00
Jeremy Avigad
6f64244f2a refactor(library/init/meta/tactic): switch 'pose' and 'note' 2016-12-08 13:17:42 -08:00
Leonardo de Moura
be3cff0c46 feat(library/type_context): move offset constraint resolution to lazy delta loop 2016-12-08 11:00:15 -08:00
Leonardo de Moura
278e960a6b feat(library/type_context): add support for offset constraints in the unifier
see discussion at #1226
2016-12-06 16:51:00 -08:00
Leonardo de Moura
ecd6f8cad6 chore(tests/lean/run/1089): fix test 2016-12-02 16:47:24 -08:00
Leonardo de Moura
78608a37e9 fix(frontends/lean/definition_cmds): implicit universe theorem parameters bug
See discussion at #1178
2016-11-29 11:12:43 -08:00
Gabriel Ebner
385ea13688 feat(kernel/declaration,*): all theorems are delayed, and are revealed on delta-reduction 2016-11-29 11:12:43 -08:00
Leonardo de Moura
398af80584 feat(shell/leandoc): add support for "brief" description
This feature is similar to the one available in doxygen.
2016-11-27 21:42:05 -08:00
Leonardo de Moura
002c62b49c feat(frontends/lean): basic leandoc tool 2016-11-27 14:31:31 -08:00
Leonardo de Moura
94c882f4d5 feat(library/documentation, frontends/lean): add /-! -/ doc string module block 2016-11-27 12:23:53 -08:00
Leonardo de Moura
6978906a78 chore(frontends/lean): remove namespace documentation
We will add module level doc strings /-! -/
2016-11-27 11:57:03 -08:00
Leonardo de Moura
338a46c225 fix(library/documentation): do not store doc strings for namespaces and declarations in the same name_map 2016-11-26 09:41:07 -08:00
Leonardo de Moura
b38810ffc3 feat(library/documentation): postprocess doc strings 2016-11-26 09:18:38 -08:00
Leonardo de Moura
97dd2f34d5 feat(library,frontends/lean): add basic doc string support 2016-11-25 18:52:56 -08:00
Leonardo de Moura
a009541b6e test(tests/lean/run): add test for issue #1089
See #1089
2016-11-24 14:51:45 -08:00
Leonardo de Moura
0554fd5997 fix(frontends/lean): name resolution at tactic execution time
This commit also adds a new tactic: tactic.resolve_name

closes #1201
2016-11-24 10:55:39 -08:00
Leonardo de Moura
b3c725c142 perf(library/equations_compiler/util): lemma generation performance when ite is used to compile equations 2016-11-23 15:48:12 -08:00
Leonardo de Moura
b75e8b99f5 fix(library/equations_compiler/structural_rec): missing case: reflexive inductive type eliminating into Prop
see #1199
2016-11-23 13:56:01 -08:00
Leonardo de Moura
21bad7cb97 feat(library/init/meta/comp_value_tactics): add support for char/string/fin at comp_val tactic 2016-11-23 13:19:54 -08:00
Leonardo de Moura
01bc4dfcd2 feat(library/init/meta/tactic): add dec_trivial notation 2016-11-23 11:42:57 -08:00
Leonardo de Moura
242ad1bd65 feat(library/init/meta/comp_value_tactics): add comp_val tactic for testing 2016-11-22 17:03:21 -08:00
Daniel Selsam
19596eae77 fix(library/init/logic.lean): if_true and if_false take instance as implicit instead of inst_implicit 2016-11-21 12:27:40 -08:00
Leonardo de Moura
1c484e8926 chore(tests/lean/run): adjust tests 2016-11-21 12:23:36 -08:00
Leonardo de Moura
f02de7e380 feat(frontends/lean/builtin_exprs): curly braces after show/have enter interactive mode 2016-11-18 17:00:08 -08:00
Leonardo de Moura
88d2f07567 feat(frontends/lean/tactic_notation): switch to proof-term mode when calc/suppose/assume/have/show occurs in a tactic block 2016-11-18 16:57:31 -08:00
Leonardo de Moura
6b466114a4 fix(library/init/meta/interactive): resolve name at interactive unfold tactics 2016-11-18 16:14:03 -08:00