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