Commit graph

9112 commits

Author SHA1 Message Date
Sebastian Ullrich
52ae484f68 feat(emacs): add keybindings for leanpkg commands (C-c C-p ...) 2017-07-27 14:40:22 +02:00
Sebastian Ullrich
dc3e0c17ff fix(emacs/lean-pkg): fix leanpkg being started in the wrong folder 2017-07-27 14:39:39 +02:00
Sebastian Ullrich
99b4c8714d chore(.appveyor.yml,.travis.yml): simplify using glob patterns 2017-07-26 17:13:34 +02:00
Sebastian Ullrich
c44ed73d56 fix(frontends/lean/scanner): minor lexical grammar fixup 2017-07-26 17:02:00 +02:00
Sebastian Ullrich
a54ac12918 chore(.appveyor.yml,.travis.yml,CMakeLists): set Lean version string to "nightly" for nightly builds to make artifact name and contents version-independent 2017-07-25 17:57:53 +02:00
Gabriel Ebner
25aa847aba fix(library/constructions/brec_on): make motive explicit in *.below
Otherwise you can't figure out the type from the pretty-printed output
`nat.below n`.
2017-07-23 09:38:44 +01:00
Gabriel Ebner
537b11f358 fix(library/tactic/cases_tactic): do not let internal exception escape
This was doubly ungood since the contained vm_obj was shared across
threads.  @digama0 wseq.exists_of_lift_rel_left should work now.
2017-07-22 15:25:56 +01:00
Mario Carneiro
667e1e1381 fix(CMakeLists): remove executable before overwriting on windows, third try
This one is tested to work on my machine
2017-07-21 05:09:02 -07:00
Leonardo de Moura
4faae27069 perf(frontends/lean): add notation #[...]
The new notation should be use to input long sequences.
Closes #1755
2017-07-21 04:20:48 -07:00
Leonardo de Moura
3bcbfbf348 perf(library/compiler/elim_recursors): beta_reduce ==> head_beta_reduce
This commit fixes the byte code generation performace problem
exposed by #1755
2017-07-21 03:32:23 -07:00
Leonardo de Moura
af80c2890d chore(library/init/meta/tactic): define focus_aux using is_assigned 2017-07-21 02:39:55 -07:00
Gabriel Ebner
17a501f024 fix(CMakeLists): remove executable before overwriting on windows, second try
@digama0 Does this fix the problem for you?
2017-07-21 10:03:32 +01:00
Gabriel Ebner
3943ffccfb fix(shell/CMakeLists): remove lean executable before copying
On windows, running executables cannot be overwritten.
2017-07-21 02:00:36 -07:00
Sebastian Ullrich
7e619487f0 fix(frontends/lean/elaborator): suppress error messages containing synthetic sorrys 2017-07-21 01:46:31 -07:00
Sebastian Ullrich
46c1a1a844 refactor(frontends/lean/elaborator,kernel/error_msgs): remove duplicate code 2017-07-21 01:46:31 -07:00
Sebastian Ullrich
f8cfc4ea1b feat(kernel/error_msgs,frontends/lean/elaborator): add more context to 'type/function expected' errors 2017-07-21 01:46:31 -07:00
Corey Richardson
ed0c3d227a chore(cmake): let MINGW_INSTALL_PATH be configurable 2017-07-20 21:50:23 +01:00
Corey Richardson
5fd504bec3 dist: add leanpkg.bat script for invocation on Windows 2017-07-20 21:50:23 +01:00
Sebastian Ullrich
ae5bc52d97 fix(frontends/lean/elaborator): pass expected type through visit_function 2017-07-20 01:58:29 -07:00
Sebastian Ullrich
9e8d30ec74 fix(frontends/lean/elaborator): suppress errors in visit_overloaded 2017-07-20 01:58:29 -07:00
Sebastian Ullrich
9ed72acabe fix(frontends/lean/builtin_exprs): allow constant patterns in do notation 2017-07-20 01:51:00 -07:00
Gabriel Ebner
53898d47b0 fix(library/tactic/smt/congruence_tactics): fix cc_state.add 2017-07-20 09:17:23 +01:00
Gabriel Ebner
776b440d55 fix(library/constructions/projection): fix macro expansion
Thanks to @fpvandoorn for noticing this issue in Lean 2!  We encountered
this situation when the inferred type of the projection argument did not
reduce to the structure type with the current transparency setting of
the type context.
2017-07-18 19:56:20 +01:00
Gabriel Ebner
ba2718a89d feat(library/init/meta/environment): expose function to unfold all macros 2017-07-18 19:49:53 +01:00
Gabriel Ebner
e94095cdf3 chore(library/tactic/cases_tactic): add a bit more information to error message 2017-07-18 09:07:09 +01:00
Gabriel Ebner
317319ded3 chore(library/tactic/cases_tactic): improve error message for unsupported equalities
@leodemoura Should we add a flag to introduce the equalities as
hypotheses in this case?
2017-07-18 08:55:36 +01:00
Sebastian Ullrich
9c2d42b269 fix(frontends/lean/parser): to_pattern_fn: replace invalid choice pattern with sorry
Fixes #1749
2017-07-17 14:59:07 +02:00
Gabriel Ebner
573525fb9f fix(library/kernel_serializer): fix build error 2017-07-16 16:29:30 +01:00
Leonardo de Moura
9afb53fad5 feat(kernel/expr): allow metavariables to have user-facing names
We need this feature for:
1) Defining nonlinear search patterns. Example: (?m <= ?m + 1)
2) Preprocessing recursive equations and support the pattern
refinement approach used in Agda. Example: in Agda, they accept
```
def append {A : Type} : Π (m n : nat), Vec A m -> Vec A n -> Vec A (m + n)
| m n nil            ys := ys
| m n (cons m' x xs) ys := cons x (append m' n xs ys)
```
These equations have to be refined. For example, `m` has to be
replaced with `0` (in the first equation), and `succ m'` in the
second. To implement this kind of refinement, we need to convert
the pattern variables (local constants) into metavariables during
elaboration. Then, the unassigned metavariables become local constants
again. This preprocessing step will fix some of the issues on #1594.
To completely fix #1594, we will need yet another preprocessing step
which will implement "complete transition" used in the equation
compiler before we start elim_match.cpp
2017-07-16 07:16:41 -07:00
Gabriel Ebner
246d71f3ff feat(library/equations_compiler): error recovery 2017-07-16 05:17:38 -07:00
Gabriel Ebner
9367e94900 fix(frontends/lean/pp): hide proof terms in non-proofs by default
This is mainly to reduce clutter.  Proof term printing can still be
forced using the `pp.proofs` option.
2017-07-15 22:21:22 +01:00
Gabriel Ebner
37d9e03cc1 feat(frontends/lean/pp): show substituted expressions for delayed abstractions
@leodemoura I tried to look up the unique names in the local context,
but this pretty much always fails.  AFAICT we never remember the local
context when pretty-printing expression texts.
2017-07-15 21:34:05 +01:00
Gabriel Ebner
68ee9396c6 fix(frontends/lean/parser): support backtracking from empty expressions
Fixes #1745.
2017-07-15 11:12:09 +01:00
Gabriel Ebner
1d6716d1fb fix(kernel/type_checker): eagerly check for proof irrelevant definitional equality
Fixes #1716.  @leodemoura I did not observe any performance effect on
the standard library.
2017-07-14 21:46:04 +01:00
Gabriel Ebner
2fd50bf460 fix(checker/checker): set the printing function 2017-07-14 21:45:39 +01:00
Gabriel Ebner
0579e68ab8 feat(library/export): add option to only export a single declaration 2017-07-14 09:49:24 +01:00
Gabriel Ebner
3392aa90b5 fix(frontends/lean/definition_cmds): support parameters in mutual defs 2017-07-13 15:14:46 +01:00
Gabriel Ebner
80ec86d230 fix(library/vm/vm_int): tons of fixes for int.shiftl 2017-07-11 22:54:26 +01:00
Gabriel Ebner
138c427bcb fix(library/vm_int): correct mpz implementation for int.rem 2017-07-11 22:53:59 +01:00
Gabriel Ebner
d0245c4c2f fix(library/vm/vm_int): unformly unbox small ints 2017-07-11 22:53:18 +01:00
Gabriel Ebner
27a39c4a2d fix(library/tactic/eval): do not catch exceptions 2017-07-11 22:52:31 +01:00
Mario Carneiro
ced436a707 fix(library/vm/vm_nat): fix VM definition of nat.shiftr
fixes #1723
2017-07-11 20:53:15 +01:00
Josh Pollock
ee55a03205 fix(src/library/vm,tests/lean): fixes #1723 2017-07-09 08:05:05 +02:00
Leonardo de Moura
8dcccd3bfc fix(frontends/lean/parser): make sure imax and max level arguments are parsed using the same precendence we use to parse application arguments
This commit addresses an issue raised by @digama0 on the Lean slack channel.
2017-07-07 12:43:07 -07:00
Sebastian Ullrich
ac8de2472e feat(library/tactic/induction_tactic): clear hypothesis before introducing new ones 2017-07-07 10:06:30 -07:00
Leonardo de Moura
91f4fd9507 fix(library/equations_compiler/elim_match): undo bcf44f7
See issue #1739

Main problem with this commit: the counter-examples for non-exhaustive matches will be
cryptic when using nested inductive types.
2017-07-07 09:16:07 -07:00
Sebastian Ullrich
aaa59085b3 fix(emacs/lean-mode): lean-execute: don't clobber compile-command 2017-07-07 17:19:23 +02:00
Leonardo de Moura
38c2c7dae8 feat(library/equations_compiler/elim_match): extend is_value_transition trick to other infinite types 2017-07-06 22:10:23 -07:00
Gabriel Ebner
820286c02c fix(library/equations_compiler/elim_match): check for forward dependencies with string literal matches 2017-07-06 22:04:58 -07:00
Gabriel Ebner
bcf44f7020 fix(library/equations_compiler): do not unfold generalized inductives 2017-07-06 22:04:58 -07:00