Leonardo de Moura
7f4693a26d
chore(library/vm/vm_nat): add default value at force_to_unsigned
2017-01-03 10:26:36 -08:00
Leonardo de Moura
abb63cbfa6
fix(frontends/lean/elaborator): cactch app_exception when trying to create coercion
...
closes #1279
2017-01-03 09:03:00 -08:00
Leonardo de Moura
de8491474c
feat(library/tactic/smt/congruence_closure): more propagation rules for implication, and cleanup
2017-01-02 19:35:12 -08:00
Leonardo de Moura
a7cd840c74
fix(library/tactic/smt/congruence_closure): incorrect condition
2017-01-02 19:33:55 -08:00
Leonardo de Moura
2239791eab
fix(library/tactic/smt/congruence_closure): typo
2017-01-02 18:55:45 -08:00
Leonardo de Moura
cefccd0e47
feat(library/tactic/smt): perform "unit propagation" in the congruence closure module
2017-01-02 18:49:26 -08:00
Leonardo de Moura
ca6d3743c7
feat(library/tactic/smt): add mk_eq_true_intro mk_of_eq_true mk_eq_false_intro mk_not_of_eq_false
2017-01-02 13:39:16 -08:00
Leonardo de Moura
b200a86240
feat(library/tactic/smt): simplify congruence_closure internalization, visit lemmas at unit_propagation
2017-01-02 12:23:32 -08:00
Leonardo de Moura
316507081c
feat(library/tactic/smt): unit propagation interface
2017-01-02 10:28:26 -08:00
Leonardo de Moura
6e53d73e61
feat(library/tactic/smt): add cc_propagation_handler
2017-01-02 09:58:57 -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
32cc36214a
feat(library/init/meta/smt_tactic): allow user to select simp attribute to be used during SMT preprocessing, use preprocessing at intros too
2017-01-01 22:26:26 -08:00
Leonardo de Moura
4db7c05fb8
feat(frontends/lean/elaborator): generalize try_monad_coercion
2017-01-01 14:50:01 -08:00
Leonardo de Moura
effe19d334
feat(library/tactic/smt/smt_state): add smt_tactic.intros, define smt_state in Lean as (list smt_goal)
2017-01-01 14:17:03 -08:00
Leonardo de Moura
90096a3ee8
feat(library/init/meta/smt_tactic): add smt_tactic.close
2017-01-01 11:56:36 -08:00
Leonardo de Moura
19154e1ff3
chore(library/tactic/smt/smt_state): typo
2017-01-01 10:41:09 -08:00
Leonardo de Moura
d7e894d197
fix(util/rb_tree): typo
2017-01-01 10:38:41 -08:00
Leonardo de Moura
d2e935522c
feat(library/tactic/smt/smt_state): unique names at intro_all
2017-01-01 09:44:39 -08:00
Leonardo de Moura
a44a975388
feat(library/type_context,frontends/lean/elaborator): add class_exception (for max depth reached), ignore them during coercion resolution (just add a trace message)
2017-01-01 08:51:09 -08:00
Leonardo de Moura
35cc334b10
feat(library/init/meta): smt_tactic skeleton
2016-12-31 18:22:23 -08:00
Leonardo de Moura
66bc3c796a
feat(frontends/lean/elaborator): add extra coercion resolution rule for monads
...
We also removed the notation (♯tac) since it is not needed anymore.
@gebner, the comment at elaborator.cpp explains why you had to use the ♯
notation. The workaround is a little bit hackish, but I think it is
worth it. We will use monad lifts in many different places.
2016-12-31 13:50:15 -08:00
Gabriel Ebner
ae7c8f4070
fix(shell/lean_js): the and_comm name is taken now
2016-12-31 15:19:58 +01:00
Gabriel Ebner
c5e0ea2600
fix(shell/lean): make progress display work on emscripten
2016-12-31 15:16:03 +01:00
Gabriel Ebner
c90530193f
fix(library/st_task_queue): handle null dependencies
2016-12-31 15:15:49 +01:00
Gabriel Ebner
6fa246032f
fix(library/native_compiler): get_exe_location does not exist on emscripten
2016-12-31 15:15:20 +01:00
Gabriel Ebner
a06d9adfec
fix(CMakeLists): do not link to libdl on emscripten
2016-12-31 15:14:53 +01:00
Gabriel Ebner
f076630511
fix(CMakeLists): override MULTI_THREAD for emscripten
2016-12-31 15:13:12 +01:00
Leonardo de Moura
fd4fffea27
chore(frontends/lean/info_manager): cleanup old code
2016-12-30 18:59:15 -08:00
Leonardo de Moura
5f87ec3356
feat(library/tactic): allow user to write their own pretty printer for tactic states
2016-12-30 18:58:50 -08:00
Leonardo de Moura
5d825483c4
refactor(library/init/meta/interactive): tactic.interactive.types ==> interactive.types
...
Motivation: we will use auto-quotation for other tactic monads
2016-12-30 18:06:41 -08:00
Leonardo de Moura
b86494f0d4
feat(library/tactic): add destruct tactic that is similar to cases, but does not use revert/intro/clear
...
This tactic is useful for building more complex tactics using ematch and
cc because it does not invalidate cc_state nor ematch_state.
2016-12-30 17:05:24 -08:00
Leonardo de Moura
9c069a3eda
refactor(library/tactic/congruence): rename directory to smt
2016-12-30 13:15:19 -08:00
Leonardo de Moura
a0e9d38241
feat(library/init/meta/congruence_tactics): allow user to configure congruence_closure module
2016-12-30 12:42:10 -08:00
Leonardo de Moura
85b98f08e9
fix(frontends/lean): bad position at spurious 'end' token
2016-12-29 19:51:36 -08:00
Leonardo de Moura
79043177ee
fix(library/tactic/congruence/congruence_closure): bug in the interface between cc and ac modules
2016-12-29 19:25:29 -08:00
Leonardo de Moura
84cc00b1ea
fix(library/tactic/ac_tactics,library/tactic/congruence/theory_ac): crash when mixing different AC symbols
2016-12-29 18:38:40 -08:00
Leonardo de Moura
a500059672
refactor(library/unfold_macros): use replace_visitor_with_tc to implement unfold_macros
...
This commit also fixes a potential peformance problem at
unfold_macros (it was eagerly expanding let-expressions).
2016-12-29 18:11:33 -08:00
Leonardo de Moura
73bf232fea
fix(library/module): deadlock?
...
This commit also undoes the hackish workaround used at e33bd2e665
@gebner Could you please take a quick look at this fix, and check
whether it makes sense?
2016-12-29 17:56:50 -08:00
Leonardo de Moura
e33bd2e665
chore(library/unfold_macros): checking whether commit 7f86ad64eb broke the remote build
2016-12-29 16:18:13 -08:00
Leonardo de Moura
3faa72de24
chore(library/tactic/ac_tactics): style
2016-12-29 15:36:38 -08:00
Leonardo de Moura
4f463d6b85
fix(library/tactic/congruence/theory_ac): typo
2016-12-29 15:04:04 -08:00
Leonardo de Moura
b3d15b196d
feat(library/tactic/ac_tactics,library/tactic/congruence/theory_ac): add superpose transition
2016-12-29 14:54:25 -08:00
Leonardo de Moura
846caf53f7
refactor(library/tactic/ac_tactics,library/tactic/congruence/theory_ac): minimize number of AC macros
2016-12-29 13:15:42 -08:00
Leonardo de Moura
7ccbf0eb02
feat(library/tactic/congruence/theory_ac): add collapse transition
2016-12-29 11:24:36 -08:00
Leonardo de Moura
7d17840e3f
feat(library/tactic/congruence/theory_ac): add compose transition
2016-12-29 11:11:44 -08:00
Leonardo de Moura
deaf252acf
chore(library/tactic/congruence/theory_ac): improve trace messages
2016-12-29 09:59:11 -08:00
Leonardo de Moura
9065cf0350
feat(library/tactic/congruence/theory_ac): add internalization, interface with congruence closure module, and trivial/simp/orient transitions
...
Still missing: superpose, collapse and compose transitions.
2016-12-28 21:35:16 -08:00
Leonardo de Moura
bb37b33237
fix(library/tactic/ac_tactics): binary.left_comm ==> left_comm
2016-12-28 21:23:07 -08:00
Leonardo de Moura
7f86ad64eb
chore(library/unfold_macros): add definition for disabling optimization
2016-12-28 21:23:07 -08:00
Leonardo de Moura
caf92bbcc0
feat(kernel/expr): compress expr_macro representation
2016-12-28 09:01:21 -08:00