Leonardo de Moura
cb2f93ee6a
fix(kernel/expr,kernel/level): performance problem
...
The method unordered_set::clear takes time O(n) where n is the number of
buckets in the hashtable used to implement the set.
Moreover, it does not reduce the number of buckets to 0.
That is, it keeps `n` empty buckets.
This creates performance problems if the number of buckets gets really
huge at one point.
The tst6 at tests/kernel/expr.cpp demonstrates the problem
2015-09-30 17:25:13 -07:00
Leonardo de Moura
d07bbe7e8c
fix(kernel/expr): must take binder annotations into account in the hash-consing tables
2015-09-30 17:24:41 -07:00
Leonardo de Moura
57035d3162
feat(kernel/level,library/blast/expr): add universe level hash consing support in the kernel, simplify blast/expr even more
2015-09-30 13:31:42 -07:00
Leonardo de Moura
ac7c0fffd8
refactor(library/blast): simplify blast/expr
2015-09-30 12:54:03 -07:00
Leonardo de Moura
c5603e456a
feat(kernel/expr): replace "opportunistic" caching with precise caching
...
We also removed compilation option LEAN_CACHE_EXPRS
2015-09-30 12:29:43 -07:00
Leonardo de Moura
63c8966816
refactor(library/blast): change how we mark fixed/frozen hypothesis
2015-09-29 14:08:14 -07:00
Leonardo de Moura
eff60d835a
fix(library/blast/expr): typo
2015-09-29 12:44:56 -07:00
Leonardo de Moura
bce193ed2d
feat(library/blast/state): make sure the type/value of hypotheses and target is a closed term.
2015-09-29 12:42:20 -07:00
Leonardo de Moura
352d81e56a
feat(library/blast/state): add assertion to make sure blast state does not contain local constants.
2015-09-29 12:32:42 -07:00
Leonardo de Moura
c652eeeac6
feat(library/data/expr): add support for regular local constants in blast tactic
...
We need them when inferring types and checking whether two expressions
are definitionally equal or not.
Remark: they are temporary objects, and should never be included in the
blast state object.
2015-09-29 12:29:33 -07:00
Leonardo de Moura
21193156ef
refactor(library/blast): rename lref to href (hypothesis reference)
2015-09-29 12:13:20 -07:00
Leonardo de Moura
58b06d12b0
feat(library/kernel_bindings): expose get_ios in the Lua API
...
It gives access to the global io_state object.
2015-09-29 10:55:08 -07:00
Leonardo de Moura
be76512756
feat(library/blast/blast): normalize hypotheses and unfold reducible constants when converting goal into blast state
2015-09-29 10:42:35 -07:00
Leonardo de Moura
ca059107cf
fix(library/blast/state): incorrect 'replace'
2015-09-29 10:42:00 -07:00
Leonardo de Moura
df39d2f368
feat(library/blast): add helper functions to access blast tactic thread local state/context
2015-09-29 10:04:11 -07:00
Leonardo de Moura
9622b62537
fix(library/blast/blast): update local2lref
2015-09-29 09:31:25 -07:00
Leonardo de Moura
459f31f28b
feat(library/blast): add basic blast_exception
2015-09-29 09:02:58 -07:00
Leonardo de Moura
cb31189c30
chore(library/blast/branch): fix style
2015-09-28 19:07:43 -07:00
Leonardo de Moura
48e8b8b866
feat(library/blast): basic sanity checking for blast data-structures
2015-09-28 18:55:24 -07:00
Leonardo de Moura
465a939146
feat(library/bast): convert a blast branch back into a goal
2015-09-28 18:28:11 -07:00
Leonardo de Moura
3f751c170b
feat(library/blast): finish goal -> state translation
2015-09-28 17:39:30 -07:00
Leonardo de Moura
913d4526cd
feat(library/blast/expr): improve performance of abstract_lrefs
2015-09-28 16:42:55 -07:00
Leonardo de Moura
885f5745c4
refactor(library/blast): revise how goal meta-vars are compiled into blast mrefs
2015-09-28 16:40:19 -07:00
Leonardo de Moura
d3937aa02d
refactor(library/blast): use simpler encoding for lref and mref
2015-09-28 13:02:15 -07:00
Floris van Doorn
aac13a2ee7
fix(hott): minor changes to merge ulrik and my commits
2015-09-28 09:09:22 -07:00
Floris van Doorn
2264759060
feat(category): define colimits as dual of limits
2015-09-28 09:09:22 -07:00
Floris van Doorn
df73931a6d
feat(category.opposite): prove that the opposite of a univalent category is univalent
2015-09-28 09:09:22 -07:00
Floris van Doorn
099bd95ebd
feat(category.limits): prove that being complete is a mere proposition for categories
2015-09-28 09:09:22 -07:00
Floris van Doorn
51edd0ad1d
feat(category.constructions.hset): prove that the category of sets is complete
2015-09-28 09:09:22 -07:00
Floris van Doorn
f82d1bd566
feat(category): add limits in a category
2015-09-28 09:09:22 -07:00
Floris van Doorn
6e23305c5d
feat(category): define terminal, initial, indiscrete and sum category
2015-09-28 09:09:21 -07:00
Floris van Doorn
3c4c722afd
feat(hott): port more from chapters 4 and 6 of the book
2015-09-28 09:09:21 -07:00
Ulrik Buchholtz
c6f3f6f3f4
feat(hott): prove HoTT book 7.5.4 and 7.5.5
2015-09-28 09:09:21 -07:00
Ulrik Buchholtz
25ed9d6e5a
feat(hott): prove HoTT book Theorem 4.7.7
2015-09-28 09:09:21 -07:00
Ulrik Buchholtz
ed1029641a
fix(hott/*): update book.md and clean up homotopy.connectedness
2015-09-28 09:09:21 -07:00
Ulrik Buchholtz
2c22501084
feat(hott): prove HoTT book Theorem 4.7.6
2015-09-28 09:09:21 -07:00
Leonardo de Moura
7cb66cdfae
fix(emacs/lean-syntax): fixes #837
2015-09-28 08:45:35 -07:00
Leonardo de Moura
f01fd744cf
feat(library/blast): convert goal into blast state
2015-09-25 14:44:00 -07:00
Leonardo de Moura
33f46fd137
feat(library/blast): parse blast tactic and invoke stub
2015-09-25 12:45:16 -07:00
Leonardo de Moura
e5b2cd1564
refactor(library/blast): rename goal to branch
2015-09-25 11:58:51 -07:00
Leonardo de Moura
f73051c674
fix(CMakeLists.txt): do not generate DLL when using cross-compilation
...
It is not clear why it doesn't work.
This is not a big because we do not use cross-compilation anymore to
generate the official Lean for Windows. We use MSys2 instead.
2015-09-25 10:40:41 -07:00
Leonardo de Moura
542a998f0e
fix(tests/lean): adjust tests to reflect changes in the HoTT library
2015-09-25 09:46:51 -07:00
Leonardo de Moura
4a6ff8058d
fix(hott): import commands (some files have been moved to different directories)
2015-09-25 09:39:45 -07:00
Jeremy Avigad
719e9043cd
feat(library/data/set/equinumerosity): add Cantor's theorem, Schroeder-Bernstein theorem
2015-09-25 09:32:28 -07:00
Jeremy Avigad
2c7526e1fc
feat(library/*): add various theorems
2015-09-25 09:32:28 -07:00
Jeremy Avigad
135f5ff96b
feat(library/init/quot.lean): declare calc subst rule for iff
2015-09-25 09:32:28 -07:00
Ulrik Buchholtz
384a366e0f
refactor(hott): move homotopy hits to new homotopy folder
2015-09-24 22:52:33 -04:00
Leonardo de Moura
97cf839665
feat(api): annotate which procedures in the API may throw high-level exceptions
...
We say an exception is low-level (non high-level) when it is related to
memory exhaustion, system errors, and interruptions.
2015-09-23 18:39:34 -07:00
Leonardo de Moura
86e8508711
refactor(library/blast): we don't need blast::justification
2015-09-23 18:13:18 -07:00
Leonardo de Moura
7be1c015d1
checkpoint
2015-09-23 00:42:36 -07:00