Commit graph

7439 commits

Author SHA1 Message Date
Leonardo de Moura
6153ccd253 fix(frontends/lean/parse_table): compilation warning 2015-09-30 17:40:18 -07:00
Sebastian Ullrich
8a96cb6218 fix(frontends/lean/pp): extend needs_space_sep to two-token lookahead 2015-09-30 17:39:21 -07:00
Sebastian Ullrich
0fdae28439 fix(util/sexpr/format): LINE is a token separator 2015-09-30 17:38:57 -07:00
Sebastian Ullrich
d1b5031dbd feat(library): add some spacing hints 2015-09-30 17:36:32 -07:00
Sebastian Ullrich
da08079af9 feat(frontends/lean): allow specifying notation spacing via quoted symbols
Unquoted tokens inherit their spacing from the respective reserved definition.
2015-09-30 17:36:32 -07:00
Sebastian Ullrich
8f96b725e3 feat(frontends/lean): save transitions instead of actions in notation::parse_table 2015-09-30 17:36:32 -07:00
Sebastian Ullrich
189a300b11 feat(frontends/lean): improve pretty printing space insertion heuristic 2015-09-30 17:36:32 -07:00
Sebastian Ullrich
8fd8ff2773 fix(frontends/lean): ignore reserved notation for pretty printing
Because reserved notation uses `Prop` as a dummy expression, pretty
printing `Prop` unnecessarily invokes pp_notation on every reserved
notation entry.
2015-09-30 17:36:32 -07:00
Leonardo de Moura
d140ff6148 fix(doc/lua/lua.md): adjust test to reflect recent changes in the expr caching mechanism 2015-09-30 17:34:39 -07:00
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