Leonardo de Moura
b69cf7ef43
fix(library/tactic/rewrite_tactic): instantiate assign metavars before rewriting
...
fixes #1587
2017-05-18 10:57:03 -07:00
Leonardo de Moura
cabb4350d9
feat(library): instances are not reducible by default anymore
...
Motivation: see "Other goodies" section at
https://github.com/leanprover/lean/wiki/Refactoring-structures
We had to add a new transparency mode: Instances at type_context.
In this mode, instances and reducible definitions are considered
transparent.
The new mode is used in the defeq_canonizer, code generator,
and sizeof lemma generation at inductive_compiler.
We also use the new mode in the unfold tactics.
2017-04-26 14:10:11 -07:00
Leonardo de Moura
36c7d46c34
feat(library/tactic): add options trace.rewrite and trace.kabstract for debugging rewrite tactic
...
See #1480
@semorrison We can now use the following commands to trace the rewrite
tactic
```lean
set_option trace.rewrite true
set_option trace.kabstract true
```
When these options are used, Lean will pretty print the subterm selected
by the rewrite tactic. That is, the subterm that will be rewritten.
This option may help you diagnose what is going on.
2017-03-27 18:18:20 -07:00
Sebastian Ullrich
4d41b03168
chore(frontends/lean,library/tactic): remove old tactic_state functions
2017-02-17 15:41:58 +01:00
Leonardo de Moura
418d62ff48
fix(library/tactic/rewrite_tactic): fixes #1277
2017-01-23 16:34:07 -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
ac4cd3d733
feat(library/tactic/rewrite_tactic): disable pp.beta at rewrite error msg
2016-11-21 15:58:11 -08:00
Leonardo de Moura
9d52b6607d
feat(library/tactic): use annotated_head_beta_reduce instead of head_beta_reduce in tactics
2016-11-21 15:40:12 -08:00
Leonardo de Moura
018d73ce84
feat(library/tactic/rewrite_tactic): improve error message
2016-09-28 21:17:57 -07:00
Leonardo de Moura
4c3c2d6236
fix(library/tactic/rewrite_tactic): instantiate mvars in the type
2016-07-19 21:59:09 -04:00
Leonardo de Moura
a20abd61e8
feat(library/tactic): implement rewrite and kabstract using occurrences object
2016-07-18 10:10:37 -04:00
Leonardo de Moura
579f643d1d
refactor(library): move kabstract to tactic folder
2016-07-18 09:57:02 -04:00
Leonardo de Moura
7f0276f592
feat(library/tactic): add 'rewrite' tactic and variants
2016-07-17 16:08:11 -04:00
Leonardo de Moura
aeee79da2b
chore(library): library/tactic => library/old_tactic
2016-06-06 16:38:27 -07:00
Leonardo de Moura
487a1e7f89
refactor(kernel): remove extension_context
...
We replaced it with abstract_type_context
2016-03-19 15:15:39 -07:00
Leonardo de Moura
e7f1f409c4
refactor(kernel): simplify kernel type_checker
...
TODO: cleanup, move justification/metavar/constraints to library
2016-03-18 16:28:42 -07:00
Leonardo de Moura
d8079aa16a
refactor(library): create copy of the kernel type_checker in library
...
Motivation: it will allow us to simplify the kernel type_checker and
make sure it implements the same API provided by type_context
2016-03-18 14:34:10 -07:00
Leonardo de Moura
7d61f640f6
refactor(*): add abstract_type_context class
2016-02-26 14:17:34 -08:00
Leonardo de Moura
5a4dd3f237
feat(library/reducible): remove [quasireducible] annotation
2016-02-25 17:42:44 -08:00
Leonardo de Moura
632d4fae36
chore(library): rename local_context to old_local_context
2016-02-11 18:15:16 -08:00
Leonardo de Moura
c9e9fee76a
refactor(*): remove name_generator and use simpler mk_fresh_name
2016-02-11 18:05:57 -08:00
Leonardo de Moura
6a36bffe4b
fix(library/class_instance_resolution): bugs in new type class resolution procedure
2015-11-08 14:04:57 -08:00
Leonardo de Moura
cd144993c0
chore(frontends/lean/prenum,library/tactic/rewrite_tactic): fix style
2015-11-08 14:04:56 -08:00
Leonardo de Moura
d1e111fd6c
fix(hott,frontends/lean,library,library/tactic): make sure we can still compile the HoTT library
2015-11-08 14:04:55 -08:00
Leonardo de Moura
26eb6fa849
feat(*): new numeral encoding
2015-11-08 14:04:55 -08:00
Leonardo de Moura
634c0b5e9d
feat(library/tactic,frontends/lean): propagate new options back to elaborator
2015-09-02 20:34:14 -07:00
Leonardo de Moura
0dc8dc999e
fix(library/tactic/rewrite_tactic): crash when trying to unfold constructor
2015-07-28 12:43:56 -07:00
Leonardo de Moura
c2edc330ef
fix(library/tactic/rewrite_tactic): remove incorrect assertion
2015-07-13 19:19:12 -04:00
Leonardo de Moura
8e8e08cfe7
feat(library/tactic): use occurrence object in unfold tactic family
2015-07-11 18:53:45 -04:00
Leonardo de Moura
a9515ac7a4
feat(library/tactic/rewrite_tactic): try to fold nested recursive applications after unfolding a recursive function
...
See issue #692 .
The implementation still has some rough spots.
It is not clear what the right semantic is.
Moreover, the folds in e_closure could not be eliminated automatically.
2015-07-08 21:19:18 -04:00
Leonardo de Moura
0fc2efe88e
fix(library/tactic/rewrite_tactic): fixes #702
2015-06-28 20:37:17 -07:00
Leonardo de Moura
2f75768243
feat(library/tactic/rewrite_tactic): fail when nothing is rewritten
...
fixes #686
2015-06-28 12:05:00 -07:00
Leonardo de Moura
e3e9220ab9
fix(library/tactic/rewrite_tactic): fixes #708
2015-06-26 18:41:08 -07:00
Leonardo de Moura
0b7859f387
feat(library,frontends/lean): add support for projections in the elaborator
...
The idea is to simulate the computation rules such as
pr1 (mk a b) ==> a
in the elaborator
2015-06-26 17:18:29 -07:00
Leonardo de Moura
a680114fd8
fix(library/tactic/rewrite_tactic): potential crash in the rewrite tactic
2015-06-26 17:18:29 -07:00
Leonardo de Moura
694eef7f6a
fix(util/sexpr/format): retract change that may be creating problems for emscripten
2015-06-18 10:49:13 -07:00
Leonardo de Moura
bf71d9f342
fix(library/tactic/rewrite_tactic): fixes #682
2015-06-17 18:49:02 -07:00
Leonardo de Moura
f60cdee14b
fix(library/tactic/rewrite_tactic): memory leak
2015-06-16 15:47:21 -07:00
Leonardo de Moura
8699d2dfb7
feat(library/tactic/rewrite_tactic): display list of overloads occurring in a failed rewrite step
2015-06-14 16:30:18 -07:00
Leonardo de Moura
9fbf267a3f
feat(library/tactic/rewrite_tactic): when 'rewrite' step fails apply esimp and try again
...
closes #670
2015-06-12 19:48:58 -07:00
Leonardo de Moura
627e05c9e6
fix(library/tactic/rewrite_tactic): improve krewrite
2015-06-08 16:46:28 -07:00
Leonardo de Moura
d6a483fe84
feat(library): add idx_metavar module
2015-06-08 16:02:37 -07:00
Leonardo de Moura
0e099b5fd8
feat(library/tactic/rewrite_tactic): apply beta&eta reduction before rewriting steps, add option 'rewrite.beta_eta' (default true) to control new feature.
2015-06-06 20:43:52 -07:00
Leonardo de Moura
d0d3f9bb41
refactor(kernel,library,frontends/lean): add helper functions, and cleanup collect_locals
2015-06-05 17:29:36 -07:00
Leonardo de Moura
d547698a56
refactor(library,library/tactic): move class_instance_synth to library
...
This module will be needed by the simplifier
2015-06-01 16:30:40 -07:00
Leonardo de Moura
c07d14e94a
fix(library/tactic/rewrite_tactic): incorrect assertion
2015-05-29 15:59:03 -07:00
Leonardo de Moura
85409a59d3
feat(library/tactic/rewrite_tactic): add xrewrite and krewrite tactic variants
...
closes #511
2015-05-27 16:32:43 -07:00
Leonardo de Moura
7d73f4f091
refactor(library,frontends/lean): simplify the creation of custom normalizers
2015-05-27 15:33:20 -07:00
Leonardo de Moura
a3f23d5233
feat(library/tactic): add improved 'subst' tactic
2015-05-25 15:03:59 -07:00
Leonardo de Moura
004ea80e65
fix(library/tactic/rewrite_tactic): apply beta reduction when selecting patterns
2015-05-24 18:44:30 -07:00