Commit graph

5486 commits

Author SHA1 Message Date
Daniel Selsam
ffc168d63a fix(frontends/lean/elaborator): visit_app partial 2015-11-08 14:05:00 -08:00
Leonardo de Moura
ab940a2001 feat(frontends/lean/elaborator): add support for partial explicit in the elaborator 2015-11-08 14:05:00 -08:00
Daniel Selsam
6b06a19294 chore(frontends/lean): remove whitespace 2015-11-08 14:05:00 -08:00
Daniel Selsam
fa58d7c71e feat(frontends/lean): basic support for partial explicit 2015-11-08 14:05:00 -08:00
Daniel Selsam
946e00f71a feat(library/explicit): support partial explicit 2015-11-08 14:05:00 -08:00
Leonardo de Moura
1d670e3193 feat(frontends/lean): support for '@@' -- the partial explicit operator 2015-11-08 14:05:00 -08:00
Leonardo de Moura
914f3b4e34 chore(library/blast/blast): fix style 2015-11-08 14:05:00 -08:00
Leonardo de Moura
0e4f97792e feat(library/blast): add blast::scope_debug auxiliary class for testing blast related procedures 2015-11-08 14:05:00 -08:00
Leonardo de Moura
fd917effad feat(library/blast): use new type_inference module in blast 2015-11-08 14:05:00 -08:00
Leonardo de Moura
52eb787288 refactor(library/type_inference): move (non-temporary) class.* options to type_inference module 2015-11-08 14:05:00 -08:00
Leonardo de Moura
56c15f4fb5 refactor(library/type_inference): move new type class resolution procedure to genere type_inference 2015-11-08 14:05:00 -08:00
Leonardo de Moura
4c573380b2 feat(library/class): add auxiliary methods 2015-11-08 14:05:00 -08:00
Leonardo de Moura
c361fc1f6f fix(frontends/lean/parser): method for parsing decimals
"division" has been renamed to "div"
2015-11-08 14:04:59 -08:00
Leonardo de Moura
6fa4691eb4 feat(library/type_inference): improve process_assignment 2015-11-08 14:04:59 -08:00
Leonardo de Moura
ab1937d46e feat(library/class_instance_resolution): add new (temporary) option class.force_new to force the new type class resolution procedure in HoTT mode 2015-11-08 14:04:59 -08:00
Floris van Doorn
46dba4ee5e refactor(category): move some files to subfolders, and create file with basic functors 2015-11-08 14:04:59 -08:00
Floris van Doorn
f2d07ca23c feat(category): various small changes in category theory 2015-11-08 14:04:59 -08:00
Floris van Doorn
de1c47eda9 feat(categories): add exponential laws for categories
also give nicer rules to construct equalities between (pre)categories
2015-11-08 14:04:59 -08:00
Floris van Doorn
21723a82b6 fix(lean-syntax): add some more syntax for categories 2015-11-08 14:04:59 -08:00
Floris van Doorn
a358813182 feat(lean-syntax): fix and extend syntax highlighting 2015-11-08 14:04:58 -08:00
Floris van Doorn
3f0d8c0a8c feat(category.adjoint): prove more about functors 2015-11-08 14:04:58 -08:00
Floris van Doorn
c7fd29f854 feat(category): start with the introduction rule for equivalences 2015-11-08 14:04:58 -08:00
Leonardo de Moura
410c9aef79 chore(library/type_inference): fix style 2015-11-08 14:04:58 -08:00
Leonardo de Moura
6465b16951 fix(library/class_instance_resolution): memory initialization bug in new type class resolution procedure 2015-11-08 14:04:58 -08:00
Leonardo de Moura
95348bc90b fix(library/class_instance_resolution): uninitialized variables 2015-11-08 14:04:58 -08:00
Leonardo de Moura
50186e2db3 feat(library/class_instance_resolution): add old type class resolution procedure back to be able to compile HoTT library 2015-11-08 14:04:58 -08:00
Leonardo de Moura
885393f4de feat(library/type_inference): check types when assigning meta-variables 2015-11-08 14:04:58 -08:00
Leonardo de Moura
766fdd415a feat(library/type_inference): postpone "nontrivial" universe unification constraints 2015-11-08 14:04:58 -08:00
Leonardo de Moura
0bf069f016 feat(library/class_instance_resolution): more liberal type class resolution procedure
This modification is needed for the group_theory folder
2015-11-08 14:04:58 -08:00
Leonardo de Moura
21501ccfa4 fix(library/type_inference): temporary hack for solving universe unification problems
We need a better solution. It turns out the universe constraints are not
as simple as we expected.
2015-11-08 14:04:58 -08:00
Leonardo de Moura
5f43b9b183 feat(library/class_instance_resolution): recursively invoke type class resolution when parameters are instances 2015-11-08 14:04:58 -08:00
Leonardo de Moura
6acf7afa16 fix(library/type_inference): bug when using apply_beta 2015-11-08 14:04:58 -08:00
Leonardo de Moura
8d8e43abfd fix(library/class_instance_resolution): transitive instances in the new type class resolution procedure 2015-11-08 14:04:58 -08:00
Leonardo de Moura
a1d200e1c6 feat(library/class_instance_resolution): add support for nested type
class resolution
2015-11-08 14:04:58 -08:00
Leonardo de Moura
e9b92adf29 feat(library/type_inference,library/class_instance_resolution): add on_is_def_eq_failure "event handler" 2015-11-08 14:04:57 -08:00
Leonardo de Moura
21bd30d51a fix(library/class_instance_resolution): bug in mk_choice_point 2015-11-08 14:04:57 -08:00
Leonardo de Moura
0446c43ebf refactor(library/class_instance_resolution): use new generic type_inference module to implement type class resolution 2015-11-08 14:04:57 -08:00
Leonardo de Moura
73543f1279 fix(library/norm_num): use new type-class resolution procedure at norm_num 2015-11-08 14:04:57 -08:00
Leonardo de Moura
f371182a6c feat(library/type_inference): generic and cheap type inference, unification, whnf 2015-11-08 14:04:57 -08:00
Leonardo de Moura
a7655b7d43 feat(library/class_instance_resolution): reset internal indices 2015-11-08 14:04:57 -08:00
Leonardo de Moura
1f01e5480d fix(library/class_instance_resolution): remove reset_cache_and_ctx used for debugging purposes 2015-11-08 14:04:57 -08:00
Leonardo de Moura
2edccf007b fix(library/class_instance_resolution): make sure that terms synthesized by type class resolution have override the ones synthesized by solving unification constraints. 2015-11-08 14:04:57 -08:00
Leonardo de Moura
b71a68c606 fix(frontends/lean/elaborator): visit_prenum was creating unnecessary universe metavariable
This was creating problems for the new type class resolution procedure
since visit_prenum was also not creating any constraint that enforced
the universe level of A to be equal to the superfluous universe level.
2015-11-08 14:04:57 -08:00
Leonardo de Moura
4787cf179e fix(library/class_instance_resolution): skip (instance) meta-variables that have been assigned by solving unification constraints 2015-11-08 14:04:57 -08:00
Leonardo de Moura
eb2236f036 feat(library/class_instance_resolution): bug in mk_choice 2015-11-08 14:04:57 -08:00
Leonardo de Moura
97407eb178 fix(library/class_instance_resolution): add hack for mk_subsingleton_instance API
The comment in the source code explains why the hack is needed
2015-11-08 14:04:57 -08:00
Leonardo de Moura
1b92a8333e fix(library/class_instance_resolution): better is_def_eq for universe levels at new type class resolution procedure 2015-11-08 14:04:57 -08:00
Leonardo de Moura
6b4a891adb fix(library/class_instance_resolution): bug when creating auxiliary meta-variables at try_instance 2015-11-08 14:04:57 -08:00
Leonardo de Moura
919d55b799 fix(library/class_instance_resolution): position information in the type class trace 2015-11-08 14:04:57 -08:00
Leonardo de Moura
088b0fb795 fix(library/class_instance_resolution): relax has_expr_metavar test at mk_choice 2015-11-08 14:04:57 -08:00
Leonardo de Moura
5f90ff0f07 fix(library/class_instance_resolution): incorrect assertion 2015-11-08 14:04:57 -08:00
Leonardo de Moura
443aca6280 chore(library/class_instance_resolution,library/init_module): fix style 2015-11-08 14:04:57 -08:00
Leonardo de Moura
abcfe0d805 feat(library/class_instance_resolution): add support for attribute [multiple-instances] in the new type class resolution procedure 2015-11-08 14:04:57 -08:00
Leonardo de Moura
2c177d595c fix(library/class_instance_resolution): bug in cache validation 2015-11-08 14:04:57 -08:00
Leonardo de Moura
343ede3fbe fix(library/class_instance_resolution): trace option for new type class resolution procedure 2015-11-08 14:04:57 -08:00
Leonardo de Moura
98943f7832 fix(library/class_instance_resolution): initialization bug and ignore universe metavariables not instantiated by unifier 2015-11-08 14:04: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
bf17440f31 feat(library/class_instance_resolution): throw exception is maximum depth is reached 2015-11-08 14:04:57 -08:00
Leonardo de Moura
f5819fab60 feat(library/class_instance_resolution): new type class resolution procedure 2015-11-08 14:04:57 -08:00
Leonardo de Moura
c69bbd4eb7 chore(library/norm_num,library/tactic/norm_num_tactic): fix style 2015-11-08 14:04:57 -08:00
Leonardo de Moura
bda0b038b0 fix(library/norm_num): include 'constants.h' instead of 'constants.cpp'
By including 'constants.cpp' we get compilation errors in some
platforms (e.g., 'g_one has been defined in multiple files...')

The module constants(.h/cpp) does not expose global variables such as g_one.
We have to use the procedures get_one_name() instead.
2015-11-08 14:04:56 -08:00
Rob Lewis
ce1cbcc205 feat(library/norm_num): give better error message when norm_num fails 2015-11-08 14:04:56 -08:00
Rob Lewis
eb0b688da8 style(library/norm_num): remove debug code 2015-11-08 14:04:56 -08:00
Rob Lewis
958add9ef8 feat(library/norm_num): fix numeral normalization to work on new numeral structure; add support for multiplication 2015-11-08 14:04:56 -08:00
Leonardo de Moura
f4ce2bcbfe fix(library/CMakeLists): build 2015-11-08 14:04:56 -08:00
Leonardo de Moura
3b6eae1907 feat(library): start new type class resolution procedure 2015-11-08 14:04:56 -08:00
Leonardo de Moura
ee924e4842 fix(library/blast/infer_type): typos 2015-11-08 14:04:56 -08:00
Leonardo de Moura
4f394bd979 feat(library/meng_paulson): minor improvement 2015-11-08 14:04:56 -08:00
Leonardo de Moura
5b6b8257d8 chore(library/meng_paulson): fix style 2015-11-08 14:04:56 -08:00
Leonardo de Moura
b7e79dea29 fix(frontends/lean/parser): bug in parse_double 2015-11-08 14:04:56 -08:00
Leonardo de Moura
ee347772d7 feat(library/meng_paulson): ignore class and class-instances when computing set of relevant theorems 2015-11-08 14:04:56 -08:00
Leonardo de Moura
023ec1ba76 feat(library): add Meng&Paulson heuristic for selecting theorems 2015-11-08 14:04:56 -08:00
Leonardo de Moura
d64b410bbd feat(library): add declaration statistics 2015-11-08 14:04:56 -08:00
Leonardo de Moura
6df31d3406 refactor(library/data/nat/basic): mark some theorems as protected to avoid overloading 2015-11-08 14:04:56 -08:00
Leonardo de Moura
2b3af47fcf feat(frontends/lean/pp): pretty print "num numerals" too
This is an useful for "eval" demos
2015-11-08 14:04:56 -08:00
Leonardo de Moura
7838ed386d refactor(frontends/lean/pp,library/init/reserved_notation): pretty print "nat numerals" nicely even when namespace nat is not open 2015-11-08 14:04:56 -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
b777375469 fix(frontends/lean/parser): decimals 2015-11-08 14:04:56 -08:00
Leonardo de Moura
38c433dbec fix(frontends/lean/util): bug when parsing priorities 2015-11-08 14:04:55 -08:00
Leonardo de Moura
1f5d950b46 feat(frontends/lean/inductive_cmd): add options for disabling the automatic generation of auxiliary recursors 2015-11-08 14:04:55 -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
8ee214f133 checkpoint: new numeral encoding 2015-11-08 14:04:55 -08:00
Leonardo de Moura
8f18532a39 fix(emacs/lean-syntax): syntax highlight for [coercions] 2015-11-08 14:04:55 -08:00
Leonardo de Moura
744d1cba3d feat(library,hott,frontends/lean): avoid keywords with hyphen 2015-11-08 14:04:54 -08:00
Leonardo de Moura
a618bd7d6c refactor(library): use type classes for encoding all arithmetic operations
Before this commit we were using overloading for concrete structures and
type classes for abstract ones.

This is the first of series of commits that implement this modification
2015-11-08 14:04:54 -08:00
Soonho Kong
a25b43f1e8 feat: do not generate leanstatic.a in EMSCRIPTEN build 2015-11-03 18:22:05 -05:00
Sebastian Ullrich
7c047def97 feat(frontends/lean/parser): recognize padded Exprs terminators 2015-10-13 09:52:35 -07:00
Sebastian Ullrich
dbfebd5409 feat(frontends/lean/scanner): add more checks to read_quoted_symbol 2015-10-13 09:52:35 -07:00
Sebastian Ullrich
6c34718cbc chore(library,frontends/lean): remove option pp.extra_spaces
Obsoleted by improved pretty printer spacing
2015-10-13 09:52:35 -07:00
Leonardo de Moura
c5d614d4d9 feat(library/norm_num): store the local context 2015-10-08 13:22:37 -07:00
Leonardo de Moura
ce6e1c9694 feat(library/class_instance_synth): add helper mk_class_instance procedure 2015-10-08 13:10:41 -07:00
Leonardo de Moura
2c7d245bbe fix(library/blast/blast): bug when translating goal metavariables into
blast mref's
2015-10-08 13:10:41 -07:00
Leonardo de Moura
5d3ed8a634 fix(library/blast/hypothesis): hypotheses are initially inactive 2015-10-08 13:10:41 -07:00
Leonardo de Moura
e4f0f6a9b4 feat(library): numeral normalization skeleton 2015-10-08 12:49:12 -07:00
Leonardo de Moura
3bb09e9959 fix(library/blast): typos 2015-10-06 08:35:24 -07:00
Leonardo de Moura
c626e2e3c6 refactor(library/blast): divide hypotheses in: assumption, active and todo
The sets active and todo are disjoint.

A metavariable declaration can only depend on assumptions.
2015-10-04 21:59:37 -07:00
Leonardo de Moura
44881552b4 refactor(library/blast): refactor hypothesis object: merge m_value and m_justification fields 2015-10-04 21:27:39 -07:00
Leonardo de Moura
7b883cae8f feat(library/blast): simplify metavar_decl 2015-10-04 18:24:21 -07:00
Leonardo de Moura
4ab14e709e feat(library/blast): finish is_def_eq/unifier for blast tactic 2015-10-03 18:19:05 -07:00
Leonardo de Moura
a446c54b87 fix(tests/kernel/max_sharing): max_sharing on OSX 2015-10-03 12:12:21 -07:00
Leonardo de Moura
cd48114c47 fix(library/blast/infer_type): type of mref's 2015-10-02 15:53:22 -07:00
Leonardo de Moura
0a3fbda050 feat(library/blast): convert universe metavariables into uref's 2015-10-02 15:50:41 -07:00
Leonardo de Moura
442cbff578 feat(library/blast): add blast tactic is_def_eq procedure (aka unification)
We still have to implement subst_mref, assign_mref, and occurs check.
2015-10-02 15:21:28 -07:00
Leonardo de Moura
d324d54d21 fix(kernel/expr): add global expressions storing Prop and Type.{1} to
hash-consing cache when max-sharing is enabled
2015-10-02 15:04:10 -07:00
Leonardo de Moura
aadac02bec feat(library/blast): add infer_type for blast tactic 2015-10-02 13:11:17 -07:00
Leonardo de Moura
ad51339a28 feat(library/blast): add whnf for blast tactic 2015-10-01 16:21:17 -07:00
Leonardo de Moura
68a34bd1ba feat(library/projection): add get_projection_info_map 2015-10-01 16:10:27 -07:00
Leonardo de Moura
3cf11dac87 feat(kernel/instantiate): make sure instantiate_type_univ_params and instantiate_value_univ_params caches are reset when we enable max-sharing 2015-10-01 15:42:33 -07:00
Leonardo de Moura
45594e86c7 feat(kernel/abstract): make sure Pi/Fun cache is reset when we enable max-sharing 2015-10-01 15:28:55 -07:00
Leonardo de Moura
5051c0031e feat(frontends/lean): add '#accessible' command for debugging purposes 2015-09-30 18:50:28 -07:00
Leonardo de Moura
44baaac53e feat(library/private): add is_private predicate 2015-09-30 18:50:09 -07:00
Leonardo de Moura
a17a6fd660 chore(frontends/lean/pp): fix style 2015-09-30 17:47:46 -07:00
Leonardo de Moura
c9af007994 chore(frontends/lean): fix style 2015-09-30 17:40:35 -07:00
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
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
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
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
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
Leonardo de Moura
2411fa3d2b feat(library/blast/expr): add instantiate_rev 2015-09-21 17:12:45 -07:00
Leonardo de Moura
c5921fca6d refactor(library/blast): remove dead code
We don't need context anymore. The "context" is the blast goal object.
2015-09-21 16:22:53 -07:00
Leonardo de Moura
c0cf54e8d4 chore(library/blast): fix compilation warning 2015-09-21 16:21:21 -07:00
Leonardo de Moura
bb24421232 feat(library/blast): add hash consing for expressions (and universe levels) created in blast
We had to reimplement the expr API: replace, abstract, instantiate.

Remark: blast expressions do not use metavariables and local constants,
but the new mref and lref expressions.
2015-09-21 16:17:11 -07:00
Leonardo de Moura
4cfebe7f1c refactor(kernel): move instantiate_univ_cache to separate .h file 2015-09-21 16:08:34 -07:00
Leonardo de Moura
9c09b0750b chore(kernel/expr): remove dead code 2015-09-21 15:43:51 -07:00
Leonardo de Moura
a7c2d798de refactor(kernel): move replace_cache to separate .h file 2015-09-21 15:24:45 -07:00
Leonardo de Moura
28a5ca5809 fix(frontends/lean): fixes #830 2015-09-18 07:51:02 -07:00
Leonardo de Moura
dd5bb8e7f7 chore(library/tactic/apply_tactic): remove dead code 2015-09-16 08:41:02 -07:00
Leonardo de Moura
b7271c39af chore(library/blast,runtime/cpp): fix style 2015-09-16 07:50:00 -07:00
Leonardo de Moura
5028d794ce refactor(library,library/blast): move context to blast 2015-09-16 07:49:39 -07:00
Leonardo de Moura
1259f52fa8 chore(runtime/cpp/lean_runtime): add assertion to make sure we are satisfying alignment constraints 2015-09-16 07:38:00 -07:00
Leonardo de Moura
46f7123cc8 fix(runtime/cpp): typo 2015-09-16 07:34:08 -07:00
Leonardo de Moura
00a59a50b6 feat(library/context): add "context"-like object 2015-09-15 17:14:39 -07:00
Leonardo de Moura
df3100d2cd fix(library/local_context): bug in abstract_locals procedure 2015-09-12 17:17:13 -07:00
Floris van Doorn
732897340d fix(types): change some definitions to theorems 2015-09-11 23:35:21 -07:00
Floris van Doorn
e84b22864f feat(hott): various changes in the HoTT library 2015-09-11 23:35:21 -07:00
Floris van Doorn
fd89aa77a3 feat(hott): prove Yoneda lemma 2015-09-11 23:35:21 -07:00
Leonardo de Moura
d3e6880df0 chore(compiler/util,library/aux_recursors): fix style 2015-09-11 23:27:43 -07:00
Leonardo de Moura
de2906ee8e fix(compiler): missing files 2015-09-11 23:24:09 -07:00
Leonardo de Moura
3b420057fe feat(compiler/util): add is_recursive_rec_app 2015-09-11 17:51:15 -07:00
Leonardo de Moura
6a020c65a4 refactor(compiler/simp_pr1_rec): rename variable to avoid confusion 2015-09-11 17:50:57 -07:00
Leonardo de Moura
fd2e4616cf fix(compiler/simp_pr1_rec): missing recursor nested inside recursor 2015-09-11 17:27:42 -07:00
Leonardo de Moura
088350c2aa refactor(compiler): rename rec_args.* to util.* 2015-09-11 17:15:06 -07:00
Leonardo de Moura
49a574dbbf refactor(compiler): rename elim_rec to preprocess_rec 2015-09-11 17:12:32 -07:00
Leonardo de Moura
3d10c9daf8 feat(compiler): add simplification step for definitions generated using definitional package 2015-09-11 15:02:30 -07:00
Leonardo de Moura
f134960492 feat(compiler): add auxiliary procedure for extracting which minor premise arguments are recursive 2015-09-11 15:01:12 -07:00
Leonardo de Moura
ea759cb1c9 feat(compiler): add eta expansion 2015-09-11 11:23:23 -07:00
Leonardo de Moura
b31ab7d77a feat(compiler,frontends/lean): add #compile command for debugging purposes, add compiler module 2015-09-11 10:49:07 -07:00
Leonardo de Moura
8666c92bae feat(library,library/definitional): tag auxiliary recursors automatically generated by Lean 2015-09-11 10:08:54 -07:00
Rob Lewis
8e428f2d3f fix(src/library/definitional/equations.cpp): fix typo in error message 2015-09-11 08:52:53 -07:00
Leonardo de Moura
84a80b343a chore(runtime/cpp): fix style 2015-09-11 08:44:18 -07:00
Leonardo de Moura
e36fde4d45 feat(runtime/cpp): add runtime library for Lean -> C++ compiler 2015-09-11 08:44:18 -07:00
Soonho Kong
f941af03ba feat(CMakeLists.txt): install *.md in standard/hott libraries
close #823
2015-09-10 18:13:47 -04:00
Leonardo de Moura
88739f0199 fix(tests/shared/env): memory leaks in test program 2015-09-09 10:02:18 -07:00
Leonardo de Moura
f452cabc34 feat(api/exception): add lean_exception_get_detailed_message 2015-09-08 18:00:23 -07:00
Leonardo de Moura
eec3780c6d feat(api): add API (lean_exception_to_pp_string) for pretty printing exceptions 2015-09-08 17:46:07 -07:00
Leonardo de Moura
7289e386cb feat(api/lean_expr): add lean_macro_def_eq and lean_macro_def_to_string 2015-09-08 16:51:32 -07:00
Leonardo de Moura
36d2c63ad0 feat(api): add APIs for parsing files, commands and expressions 2015-09-08 16:44:33 -07:00
Leonardo de Moura
1fdbd681cc feat(frontends/lean/builtin_exprs): name hypothesis in suffices
closes #817
2015-09-03 16:09:39 -07:00
Jeremy Avigad
7c966e3d02 fix(src/emacs/lean-syntax.el): highlight identifiers after 'proposition' and 'corollary' 2015-09-03 15:38:27 -07:00
Leonardo de Moura
57115688ea chore(util/thread): fix style 2015-09-03 15:07:55 -07:00
Leonardo de Moura
ade3f80089 fix(util/thread,init/init): initialization problem 2015-09-03 14:43:50 -07:00
Leonardo de Moura
3c50a9cff8 fix(util/thread): LEAN_AUTO_THREAD_FINALIZATION on OSX 2015-09-03 14:18:31 -07:00
Leonardo de Moura
1dc1574ad4 fix(frontends/lean/parse_table): do not add 'no_info' annotation in tactic expressions 2015-09-02 20:51:06 -07: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
6f88e06472 fix(tests/shared/CMakeLists): typos in test scripts 2015-09-02 12:49:43 -07:00
Leonardo de Moura
524e507022 fix(util/thread): make sure threads are finalized when using the Lean C API and threads are created by the host system 2015-09-02 12:23:10 -07:00
Floris van Doorn
a8964adb9c fix(hott): make sure there are no sorry's visible 2015-09-01 15:17:46 -07:00
Floris van Doorn
7e52c49dce feat(hott): many changes is the HoTT library
Prove that 'is_left_adjoint F' is a mere proposition, although this proof is commented out because it takes ~10 seconds
2015-09-01 15:17:46 -07:00
Floris van Doorn
c24fd508b6 feat(hott/types): add more about pathovers in type constructors, prove that double negation elimination doesn't hold universally 2015-09-01 15:17:46 -07:00
Simon Cruanes
8ce3d44302 doc(vim/README): add a readme for vim syntax coloring 2015-09-01 15:08:16 -07:00
Simon Cruanes
0a307bf76c fix(vim): small fixes 2015-09-01 15:08:07 -07:00
Simon Cruanes
94b68a8263 fix(vim/syntax/lean): match notations in vim syntax 2015-09-01 15:07:54 -07:00
Simon Cruanes
3188a42259 feat(vim): add basic syntax support for vim 2015-09-01 15:07:43 -07:00
Joe Hendrix
79b77b1011 fix(api): lean_ios_is_std returned incorrect result 2015-09-01 14:40:39 -07:00
Joe Hendrix
91dc9c7bd9 fix(api): fix typos in function name and comment 2015-09-01 14:40:34 -07:00
Leonardo de Moura
c84e886c7b fix(frontends/lean/notation_cmd): fixes #808
This commit and 2b1d2c fixes #808
2015-08-31 18:05:58 -10:00
Leonardo de Moura
08169c5ac2 fix(library/unifier): fixes #809
Daniel is correct when he says the interaction between choice
case-splits, delta case-splits, and coercions can be subtle.

I believe the following condition
https://github.com/leanprover/lean/blob/master/src/frontends/lean/elaborator.cpp#L111
reduces counter-intuitive behavior. Example, the coercion should not
influence the resulting type.
BTW, by removing this condition, many files in the library broke when I
tried to compile from scratch

      make clean-olean
      make

I used the following workaround. Given a delta-delta constraint

           f a =?= f b

If the terms are types, and no case-split will be performed, then
the delta-delta constraint is eagerly solved.
In principle, we don't need the condition that the terms are types.
However, many files break if we remove it. The problem is that many files in the standard
library are abusing the higher-order unification procedure. The
elaboration problems are quite tricky to solve.
I use the extra condition "the terms are types" because usually if they
are, "f" is morally injective, and we don't really want to unfold it.

Note that the following two cases do not work

     check '{1, 2, 3}
     check insert 1 (insert 2 (insert 3 empty))

Well, they work if we the num namespace is open, and they are
interpreted as having type (finset num)
2015-08-31 17:59:30 -10:00
Leonardo de Moura
2b1d2c21ad fix(frontends/lean/util): bug when parsing priorities and numerals are overloaded 2015-08-31 15:08:21 -10:00
Leonardo de Moura
0fb52a9a13 feat(api): add lean_get_recursor_name 2015-08-25 03:46:28 -07:00
Leonardo de Moura
1299e6ab24 test(tests/shared/env): add inductive types test 2015-08-25 03:46:28 -07:00
Leonardo de Moura
bdd8fae14d feat(api): add lean_inductive API 2015-08-25 03:46:28 -07:00
Leonardo de Moura
45163acf25 refactor(kernel/inductive): use local constants to represent introduction rules 2015-08-25 03:46:28 -07:00
Leonardo de Moura
3c4b3c1ad6 test(tests/shared/env): add total order simple tests 2015-08-23 19:55:45 -07:00
Leonardo de Moura
78e9a57e06 feat(api): add total orders for lean_name, lean_univ and lean_expr APIs 2015-08-23 19:42:22 -07:00
Leonardo de Moura
8c30067f8c fix(util/stackinfo): lazy thread initialization
We also add a multithread example for the C API.
This example reproduces a problem reported by Joe Hendrix.
2015-08-23 19:08:02 -07:00
Leonardo de Moura
e03c0ae93d chore(api/module): fix style 2015-08-23 09:55:25 -07:00
Leonardo de Moura
38b0a6e22c test(tests/shared/env): add type checker tests 2015-08-23 09:49:33 -07:00
Leonardo de Moura
23a490f3f1 feat(api): add lean_type_checker API 2015-08-23 09:34:31 -07:00
Leonardo de Moura
2926b41e9f fix(tests/shared/env): memory leak 2015-08-23 09:24:05 -07:00
Leonardo de Moura
b42e561bb1 feat(api): expose lean_expr pretty printing function 2015-08-23 09:09:17 -07:00
Leonardo de Moura
3798493d99 test(tests/shared/env): add import module test 2015-08-23 08:54:11 -07:00
Leonardo de Moura
6f78304f31 feat(api): APIs for importing/exporting modules 2015-08-23 08:30:55 -07:00
Leonardo de Moura
5263ef4a74 feat(api): add lean_ios API 2015-08-23 08:19:25 -07:00
Leonardo de Moura
98a27c53de refactor(api/env): use module procedures 2015-08-23 07:49:06 -07:00
Leonardo de Moura
c83b72e9b6 test(tests/shared/env): add tests for lean_env API 2015-08-22 13:35:35 -07:00
Leonardo de Moura
0aff6bd747 feat(api): add lean_env API 2015-08-22 12:37:22 -07:00
Leonardo de Moura
62e396bec6 test(tests/shared): add some tests for lean_expr C API 2015-08-22 11:08:07 -07:00
Leonardo de Moura
a7e4cd94c2 feat(api): add lean_decl API 2015-08-22 10:41:33 -07:00
Leonardo de Moura
8272ff61f6 fix(tests/shared/name): access violation 2015-08-21 18:33:06 -07:00
Leonardo de Moura
2b6033f42e feat(api): add lean_expr API 2015-08-21 17:45:13 -07:00
Leonardo de Moura
a3c404ac3b feat(library/tactic/apply_tactic): do not report elaboration failure in apply tactic when proof_state.report_failure() is false 2015-08-21 15:45:52 -07:00
Leonardo de Moura
9bae1eee29 feat(api/univ): add lean_list_univ API 2015-08-21 15:25:12 -07:00
Leonardo de Moura
35d3c6f5a5 test(tests/shared/name): add tests for lean_list_name API 2015-08-21 15:12:43 -07:00
Leonardo de Moura
adeba5c05e feat(api/name): add lean_list_name API 2015-08-21 15:04:19 -07:00
Leonardo de Moura
3747ba095a fix(frontends/lean/elaborator): incorrect assertion
It is supposed to be "!first implies is_local(from)"

fixes #807
2015-08-20 17:56:20 -07:00
Leonardo de Moura
c32a95bb13 chore(tests/shared/options): fix compilation warning 2015-08-19 08:13:58 -07:00
Leonardo de Moura
87349dc355 feat(frontends/lean/token_table): add 'proposition' keyword 2015-08-19 08:05:31 -07:00
Leonardo de Moura
3a72cd9621 fix(frontends/lean): rename multiword keyword "suffices to show" to "suffices" 2015-08-18 17:57:53 -07:00
Daniel Selsam
0942e94321 fix(library/export): typos 2015-08-18 17:49:03 -07:00
Leonardo de Moura
2b52198702 fix(library/unfold_macros): fixes #806 2015-08-18 17:46:47 -07:00
Leonardo de Moura
3ce8c5d6f7 feat(frontends/lean): add "suffices to show A, from B, C" construct 2015-08-18 17:04:38 -07:00
Leonardo de Moura
a18983c1aa fix(api/lean_univ): typo 2015-08-18 16:01:50 -07:00
Leonardo de Moura
858971c3a5 test(tests/shared): add test for the universe C API 2015-08-18 15:32:27 -07:00
Leonardo de Moura
d627414f9b feat(api): expose universe expressions in the C API 2015-08-18 15:07:44 -07:00
Leonardo de Moura
0909c8f08f chore(CMakeLists): use --export-all in cygwin 2015-08-18 13:57:01 -07:00
Leonardo de Moura
53bf7f5ff1 fix(src/tests/shared/name): invalid delete 2015-08-18 13:56:06 -07:00
Leonardo de Moura
81baa64c77 chore(src/api/options): fix style 2015-08-18 12:43:58 -07:00
Leonardo de Moura
a1798ed331 test(tests/shared): add test for the options C API 2015-08-18 12:18:33 -07:00
Leonardo de Moura
da11f7738d feat(api): expose configuration options in the C API 2015-08-18 11:57:27 -07:00
Leonardo de Moura
e8e315ff14 refactor(api): uniform names 2015-08-18 11:01:46 -07:00
Leonardo de Moura
617f55b947 chore(src/api): workaround style 2015-08-18 10:13:07 -07:00
Leonardo de Moura
52c4133021 test(tests/shared/name.c): add anonymous unique test 2015-08-18 10:06:50 -07:00
Leonardo de Moura
549eec8a06 test(tests/shared/name.c): test exception 2015-08-17 18:22:59 -07:00
Leonardo de Moura
9d486a4e88 feat(tests/shared): add test for the hierarchical name C API 2015-08-17 17:48:09 -07:00
Leonardo de Moura
42d41fb276 feat(api): expose hierarchical names in the C API 2015-08-17 17:23:10 -07:00
Leonardo de Moura
21c41f50ea fix(frontends/lean/elaborator): fixes #803 2015-08-17 14:56:41 -07:00
Leonardo de Moura
4d3ed6ca43 feat(init/init): automatically initialize lean shared library 2015-08-17 14:18:32 -07:00
Leonardo de Moura
cb7ca51dcb feat(library/unfold_macros): avoid unnecessary get_value 2015-08-17 13:03:08 -07:00
Leonardo de Moura
b07a364d2f feat(frontends/lean/parser): process multiple parsing actions
closes #800
2015-08-17 09:42:10 -07:00
Leonardo de Moura
d913c04e90 feat(frontends/lean/parse_table): add simple notion of "compatible" parsing actions
See issue #800
2015-08-17 08:41:30 -07:00
Leonardo de Moura
933850e0d1 fix(library/shared_environment): compilation warning 2015-08-17 08:41:12 -07:00
Leonardo de Moura
edb4c09bc1 fix(frontends/lean,kernel/inductive): compilation errors in Debug mode 2015-08-16 19:02:48 -07:00
Leonardo de Moura
ea04414058 feat(frontends/lean): allow user to overload notation containing foldr/foldl and/or scoped expressions
see new tests for a summary of new features

see issue #800
2015-08-16 18:24:30 -07:00
Leonardo de Moura
ffde40a500 fix(frontends/lean/parse_table): missing condition 2015-08-16 15:35:17 -07:00
Leonardo de Moura
eb8f586dba fix(library/normalize): fixes #801 2015-08-16 14:22:02 -07:00
Leonardo de Moura
1d6bebf3a3 feat(frontends/lean/parse_table): start support for multiple "actions" in parsing tables 2015-08-16 13:52:06 -07:00
Leonardo de Moura
5f5642c4ce fix(kernel/inductive): compilation error with clang++ 2015-08-15 15:06:57 -07:00
Leonardo de Moura
7bc8673786 feat(library/module): efficient inductive_reader
Do not check imported inductive declarations when trust level is greater than 0.
2015-08-15 14:48:49 -07:00
Leonardo de Moura
e80d9685e5 refactor(kernel/inductive): add certified_inductive_decl object
We will use this object to implement a more efficient import procedure
2015-08-15 13:26:38 -07:00
Leonardo de Moura
b21d85d19e chore(library/coercion): fix style 2015-08-14 18:49:01 -07:00
Daniel Selsam
7223293a93 feat(library/coercion): improve error message when coercion has no viable source 2015-08-14 18:44:44 -07:00
Daniel Selsam
5bef45b1fd feat(library/coercion): improve error message when target is unacceptable 2015-08-14 18:44:44 -07:00
Daniel Selsam
f4e1e9d671 feat(library/coercion): closes #794
Include level information in primary coercion error message if
pp_options are set to display levels.
2015-08-14 18:44:43 -07:00
Leonardo de Moura
6c934229f7 feat(kernel,library/module): only module reader can add declarations without type-checking them 2015-08-14 18:37:17 -07:00
Leonardo de Moura
11558df6be chore(util/serializer): fix style 2015-08-14 18:34:33 -07:00
Leonardo de Moura
d1f13d2871 perf(library/module): skip checksum if trust level is very high 2015-08-14 18:23:12 -07:00
Leonardo de Moura
d3d1b58fb4 perf(util/serializer): minor performance improvement 2015-08-14 18:13:08 -07:00
Leonardo de Moura
cc8b5d2d6e perf(library/unfold_macros): skip contains_untrusted_macro if trust level is very high 2015-08-14 18:10:19 -07:00
Leonardo de Moura
849b99d244 perf(library/module): use block read 2015-08-14 17:56:21 -07:00
Leonardo de Moura
54a49bbf2e feat(util/serializer): simple compression trick
reduces the standard library .olean files from 7.2 Mb to 6.1 Mb
2015-08-14 15:27:44 -07:00
Leonardo de Moura
5a6a4b45c1 fix(library/definitional/equations): fixes #796 2015-08-14 14:39:23 -07:00
Leonardo de Moura
8c4e5c82ab fix(tests/shared/CMakeFiles): make sure the working directory is the one containing the DLL 2015-08-13 12:31:30 -07:00
Leonardo de Moura
5f8b600024 fix(CMakeLists): use --export-all option when creating DLL on Windows 2015-08-13 12:14:24 -07:00
Leonardo de Moura
3de290db35 fix(tests/shared): include shared_test in the test suite 2015-08-13 11:52:38 -07:00
Leonardo de Moura
52138b8232 fix(CMakeLists): dylib generation 2015-08-13 11:50:41 -07:00
Leonardo de Moura
98bfb8467a test(test/shared): add small program for testing shared library 2015-08-13 11:48:54 -07:00
Leonardo de Moura
8746484b8f fix(CMakeLists): DLL generation 2015-08-13 11:38:33 -07:00
Leonardo de Moura
498afc1e6f feat(CMakeLists): add shared library 2015-08-13 11:21:05 -07:00
Leonardo de Moura
602626803b fix(frontends/lean/builtin_cmds): 'print axioms' and theorem queue 2015-08-11 21:08:45 -07:00
Leonardo de Moura
5d8d226640 fix(frontends/lean/parser): add support for decimals
Decimal numbers are notation for rationals.
If rat.of_num is not available, then an error is generated.

closes #793
2015-08-11 18:44:48 -07:00
Leonardo de Moura
66a59d5b51 feat(frontends/lean/util): remove hack that overrides priority namespace
closes #789
2015-08-11 18:01:40 -07:00
Leonardo de Moura
0b8f57841a feat(frontends/lean/decl_cmds): closes #791 2015-08-11 17:53:33 -07:00
Soonho Kong
6443de67d4 feat(emacs/lean-mode): lean-exec-at-pos uses timer to wait until flycheck process is over
close #790
2015-08-11 20:17:53 -04:00
Daniel Selsam
40471ca8e3 doc(frontends/lean/elaborator): assert invariant in visit_app 2015-08-11 17:02:38 -07:00
Leonardo de Moura
23118371d1 refactor(library/aliases): cleanup 2015-08-11 06:41:56 -07:00
Soonho Kong
00582934ec feat(CMakeLists.txt): update CXX_FLAGS_EMSCRIPTEN
Add: -O3 -s ALLOW_MEMORY_GROWTH=1 --llvm-lto 1

Close leanprover/tutorial#96
2015-08-10 02:03:39 -04:00
Soonho Kong
938dae7b19 refactor(emacs/lean-syntax.el): clean up regexps for syntax 2015-08-08 09:55:16 -07:00
Leonardo de Moura
1f34c72192 fix(frontends/lean/parser): fixes #770 2015-08-08 09:48:31 -07:00
Leonardo de Moura
dc2e702373 feat(library/unifier): generate approximate solution for universe constraints of the form (max u ?m =?= max u v)
closes #777
2015-08-08 09:29:59 -07:00
Leonardo de Moura
6c5832a564 feat(frontends/lean/decl_cmds): allow recursive examples
closes #774
2015-08-08 08:26:25 -07:00
Leonardo de Moura
06f20694c8 fix(frontends/lean/builtin_exprs): fixes #768 2015-08-08 04:20:17 -07:00
Leonardo de Moura
d46dbce86e feat(library/tactic/tactic): apply substitution in 'then' combinator
closes #778
2015-08-08 03:42:21 -07:00
Jeremy Avigad
d6bde18b46 feat,refactor(library/data/{finset,set}/*,src/emacs/lean-input.el): add powerset and notation, and some tidying 2015-08-07 13:45:15 -07:00
Leonardo de Moura
5568085ab9 fix(frontends/lean/elaborator): closes #771
Produce nicer error message when type/goal is a metavariable and
universe metavariables have already been instantiated with universe
parameters.
2015-08-07 13:29:22 -07:00
Leonardo de Moura
6a079fdd2d fix(library/tactic/exact_tactic): fixes #779 2015-08-07 13:29:22 -07:00
Leonardo de Moura
f21647899f feat(frontends/lean/builtin_exprs): rename 'show' hidden name to 'this'
This is useful if 'show' is recursive
2015-08-07 13:29:21 -07:00
Soonho Kong
f9b069b6a5 fix(emacs/lean-company.el): set timeout for company-lean--import-candidates
Custom variable lean-company-import-timeout is added (default: 1sec).

Close #766
2015-08-06 22:53:49 -04:00
Soonho Kong
a4014fb532 feat(emacs/lean-util.el): add lean-find-files 2015-08-06 22:48:00 -04:00
Soonho Kong
7d1895928a fix(emacs/lean-mode.el): use original extension when make temp-file
close #767
2015-08-05 12:51:09 -04:00
Soonho Kong
795728267d doc(emacs/README.md): update MELPA instruction 2015-08-03 09:27:16 -04:00
Leonardo de Moura
60ba3d15ff feat(library/data/matrix): add basic matrix module 2015-08-01 19:33:31 +01:00
Leonardo de Moura
1f304ad4b9 fix(frontends/lean/pp): pretty printing 'binder'
This commit also replaces many occurrences of 'binders' with 'binder'.
2015-07-31 11:27:38 -07:00
Leonardo de Moura
8f5a760b89 feat(frontends/lean/elaborator): display the whole proof state in option "--goal"
see issue #755
2015-07-31 08:56:17 -07:00
Leonardo de Moura
f264adfa92 fix(library/export): bug in --export-all option 2015-07-30 17:23:38 -07:00
Leonardo de Moura
9bf64c10fd feat(library/export): export the whole environment when using "--expor-all" 2015-07-30 15:04:49 -07:00
Soonho Kong
bed751a2d7 feat(emacs/lean-settings.el): add lean-keybinding customize group
close #758
2015-07-30 11:33:17 -07:00
Leonardo de Moura
656b642c4a fix(frontends/lean): identifier size when using unicode
see issue #756
2015-07-30 11:32:24 -07:00
Leonardo de Moura
a39cac4fad feat(frontends/lean): improve '--info' command line option
see issue #756
2015-07-30 11:05:39 -07:00
Soonho Kong
c390550340 feat(emacs/lean-mode.el): add show-goal-at-pos and show-id-keyword-info in the menu 2015-07-30 10:46:47 -07:00
Soonho Kong
46a79ec43d feat(emacs/lean-mode.el): add lean-show-id-keyword-info
close #756
2015-07-30 10:46:10 -07:00
Leonardo de Moura
cc4f18c062 feat(frontends/lean): add "--info" command line option for extracting identifier/keyword information
see issue #756
2015-07-30 10:18:03 -07:00
Leonardo de Moura
be61fb0566 feat(frontends/lean/elaborator): add "noncomputable theory" command, display "noncomputable" when printing definitions
When the command "noncomputable theory" is used, Lean will not sign an
error when a noncomputable definition is not marked as noncomputable
2015-07-29 17:54:35 -07:00
Leonardo de Moura
384ccf2b6c feat(frontends/lean/elaborator): change behavior of "show goal" for incomplete "by tactic"
If "by tactic" did not completely solved the goal, then we show the
final state when the user presses "C-c C-g"
2015-07-29 17:34:42 -07:00
Leonardo de Moura
b3707ab54a feat(library/tactic/unfold_rec): fixes #753 2015-07-29 17:13:02 -07:00
Leonardo de Moura
ed41a01a51 fix(frontends/lean/elaborator): fixes #755 2015-07-29 16:41:30 -07:00
Leonardo de Moura
0bda39c8ac feat(frontends/lean): check for noncomputability when moving theorems from theorem_queue to environment 2015-07-29 13:01:07 -07:00
Leonardo de Moura
69ead0ddd8 feat(frontends/lean/decl_cmds): reject unnecessary "noncomputable" annotations 2015-07-29 13:01:07 -07:00
Leonardo de Moura
74be3031b1 feat(frontends/lean/decl_cmds): sign an error if "noncomputable" keyword is used in the HoTT library or with non-definitions 2015-07-29 13:01:06 -07:00
Soonho Kong
8a9f774611 fix(emacs/lean-mode.el): lean-exec-at-pos don't ask to save
close #752
2015-07-29 10:28:18 -07:00
Soonho Kong
5d159ea664 fix(emacs/lean-mode.el): fix wrong parens in lean-show-goal-at-pos 2015-07-28 22:11:35 -07:00
Leonardo de Moura
308af87b69 feat(library): add 'noncomputable' keyword for the standard library 2015-07-28 21:56:35 -07:00
Leonardo de Moura
a009db2902 feat(library): add module for tracking noncomputable definitions 2015-07-28 18:15:26 -07:00
Leonardo de Moura
7e8a394caf chore(tests/lean): fix style and adjust tests 2015-07-28 18:15:25 -07:00
Leonardo de Moura
b81d4d50f1 feat(frontends/lean/bultin_cmds): add 'print axioms <declname>' command that prints axioms a giving declaration depends on 2015-07-28 18:15:25 -07:00
Leonardo de Moura
8048cbd6f2 feat(kernel): do not hide semi-constructive axioms 2015-07-28 18:15:25 -07:00
Soonho Kong
1829e64a76 feat(emacs/lean-server.el): lean-server-consume-all-async-tasks restart lean-server if necessary
related issue: #263
2015-07-28 18:14:16 -07:00
Leonardo de Moura
80e3da0526 fix(library/util): fixes #751 2015-07-28 16:30:20 -07:00
Leonardo de Moura
ad5d792a8e feat(library,shell): add --export-all command line option 2015-07-28 15:54:44 -07:00
Soonho Kong
a5da840593 fix(emacs/lean-mode.el): typo 2015-07-28 14:46:59 -07:00
Soonho Kong
0fed6129df feat(emacs/lean-mode): add lean-show-goal-at-pos
which is bound to 'C-c C-g' by default. Depending on the current char,
it invokes lean-server with either '--goal' or '--hole' option.

close #749
2015-07-28 14:17:36 -07:00
Leonardo de Moura
cfa9412f96 fix(frontends/lean): "show goal" localization, add "position", support "by tactic" 2015-07-28 12:48:12 -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
Soonho Kong
f71987612f fix(emacs/lean-syntax.el): update lean-info syntax highlight
close #748
2015-07-28 11:51:01 -07:00
Soonho Kong
72f0fc29fd fix(emacs/lean-mode.el): check header and footer in lean-exec-at-pos-extract-body
close #747
2015-07-28 11:13:31 -07:00
Leonardo de Moura
08b23d8b4f test(tests/lean/extra): add test for "show goal" feature 2015-07-27 21:03:16 -07:00