Commit graph

9 commits

Author SHA1 Message Date
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
7ff91ec1ef feat(library/defeq_canonizer): add trace.defeq_canonizer 2017-01-08 19:31:04 -08:00
Leonardo de Moura
94f16d1e44 refactor(library/tactic): move defeq_canonizer::state to tactic_state
It was being stored in the environment before. This was very hackish,
and it was producing a series of unnecessary environment updates, and
thread local caches invalidations.

The new test tests/lean/run/heap.lean is 5x-6x faster after this commit.
2017-01-07 10:17:51 -08:00
Leonardo de Moura
d3795b20dd feat(library/defeq_canonizer): remove thread local cache
The goal is to avoid hard to debug behavior because any tactic (e.g., simp/dsimp/cc) using
defeq_canonize was breaking referential transparency.
2016-12-27 12:56:39 -08:00
Leonardo de Moura
bf0f24e22d feat(src/library/defeq_canonizer): improve cache 2016-10-05 22:00:23 -07:00
Leonardo de Moura
cda867b124 fix(library/defeq_canonizer): bugs found by Daniel
This is a cleanup of
10d23f0075
2016-07-04 17:22:37 -07:00
Leonardo de Moura
3912da372a feat(library/tactic/defeq_simplifier): invoke defeq_canonize from defeq_simp 2016-06-24 14:46:43 -07:00
Leonardo de Moura
feb9f13d5f fix(library/defeq_canonizer): typo 2016-06-24 14:02:26 -07:00
Leonardo de Moura
4ffdbff68e feat(library): add defeq_canonizer 2016-06-24 13:17:09 -07:00