Sebastian Ullrich
579d4a459e
chore(init/meta/interactive): check simp lemmas for ambiguous overloads
...
Fixes #1786
2017-08-15 12:43:02 +02:00
Gabriel Ebner
32ddac5f40
feat(library/tactic/kabstract): expose kabstract to VM
2017-08-14 11:41:54 +02:00
Gabriel Ebner
867bc46d99
feat(library/vm/vm_parser): expose parse_command_like to the vm
2017-08-14 11:41:48 +02:00
Gabriel Ebner
b50597228b
chore(tests/lean/print_ax2): remove duplicate and broken test
2017-08-06 10:33:33 +02:00
Gabriel Ebner
e2717ec2c5
fix(library/compiler/inliner): inline auxiliary declarations
...
Fixes #1763 .
2017-08-06 10:24:26 +02:00
Gabriel Ebner
7e4a5a78c8
chore(library/init/algebra/order): generalize lemma
2017-08-06 09:58:24 +02:00
Gabriel Ebner
0c15724e8e
fix(library/tactic/simplify): handle universe polymorphic simplification rules
...
The issue was that instantiate_mvars(infer(m)) had a metavariable, while
infer(instantiate_mvars(m)) did not. Changing the call from assign to
is_def_eq also unifies the type, assigning the metavariable inside the
type.
2017-08-03 17:42:07 +01:00
Leonardo de Moura
b6c691cead
test(tests/lean/run/whnf_mvar): add test to check whether whnf instantiate mvars or not
...
@digama0 As I suspected, `whnf` already instantiates metavariables.
2017-08-03 11:29:22 +01:00
Gabriel Ebner
22011dcde4
chore(init/algebra/order): typo
...
Thanks to @fpvandoorn for proof-reading!
2017-08-02 15:41:51 +01:00
Leonardo de Moura
f39e42bf2d
fix(library/tactic/destruct_tactic): fixes #1766
2017-08-02 15:35:33 +01:00
Leonardo de Moura
fdaa26f2fd
feat(library/equations_compiler/wf_rec): fixes #1782
2017-08-02 15:12:04 +01:00
Gabriel Ebner
66b80dde54
chore(library/init/algebra/order): remove unused lemmas
2017-08-02 14:41:35 +01:00
Gabriel Ebner
f5a6429efc
doc(doc/changes): describe order type class changes
2017-08-02 14:41:35 +01:00
Gabriel Ebner
5922f71c50
feat(library/init/algebra/order): add default value for lt
2017-08-02 14:41:35 +01:00
Gabriel Ebner
fe5cb0106c
fix(frontends/lean/structure_cmd): disable def-eq check of pre-expressions
2017-08-02 14:41:35 +01:00
Gabriel Ebner
c500f9497d
feat(frontends/lean/structure_cmd): inherit default values in old_structure_cmd
2017-08-02 14:41:35 +01:00
Gabriel Ebner
b1954f949b
chore(init/data/int): remove unused lemmas
2017-08-02 14:41:35 +01:00
Gabriel Ebner
ce509e621a
refactor(library/init/algebra): remove order_pair classes
2017-08-02 14:41:35 +01:00
Sebastian Ullrich
4f66673fc2
feat(init/meta/attribute,library/tactic/attribute): user_attribute apply handlers
2017-08-02 14:32:39 +01:00
Sebastian Ullrich
8571860876
chore(emacs/lean-dev): lean-diff-test-file: create missing files
2017-08-02 14:32:02 +01:00
Gabriel Ebner
becec82311
fix(frontends/lean/structure_cmd): simplify parser
2017-08-02 11:27:13 +01:00
Gabriel Ebner
b6f81e30e5
fix(frontends/lean/structure_cmd): prevent segfault
...
Fixes #1727 .
2017-08-02 11:27:13 +01:00
Leonardo de Moura
39fa7625b8
feat(library/init/meta/interactive): add specialize tactic
...
closes #1779
2017-08-02 10:20:25 +01:00
Gabriel Ebner
403234f29e
fix(frontends/lean/interactive): fix empty prefix in autocompletion
2017-08-01 18:42:31 +01:00
Gabriel Ebner
6d0a7a80af
fix(frontends/lean/builtin_exprs): prevent segfault
2017-08-01 14:57:37 +01:00
Gabriel Ebner
c15f2979c6
fix(frontends/lean/util): allow docstrings after variables
2017-08-01 10:18:05 +01:00
Gabriel Ebner
89e1b196db
fix(library/compiler/preprocess): do not unfold noncomputable definitions
...
This happened in Johannes' real number formalization. We tried to
unfold a noncomputable definition even though it would have been erased
afterwards, and failed.
The check_computable check was introduced in order to fix the error
message in #1401 , the error message is still intelligible in that
example.
2017-08-01 08:37:18 +01:00
Gabriel Ebner
2804a0ea27
fix(util/name): escape empty name components using french quotes
2017-07-31 16:01:46 +01:00
Mario Carneiro
092fc89333
doc(changes): changelog
2017-07-28 22:40:25 +01:00
Gabriel Ebner
36dc037d65
perf(util/rc): do not use fences
...
As suggested by David Chisnall. If I read the spec correctly, it would
be unsafe to use the release ordering for dec_ref_core: then the
following situation could happen:
```c++
// m_rc -> 2
// Thread 1:
unsigned x = atomic_fetch_sub_explicit(&m_rc, 1u, memory_order_release);
// Thread 2:
unsigned y = atomic_fetch_sub_explicit(&m_rc, 1u, memory_order_release);
// x = y = 1u, m_rc -> 2
```
That is, a release store operation is not required to be visible to
another release operation.
Herb Sutter also recommends the acq_rel ordering for reference counters.
2017-07-28 18:31:04 +01:00
Mario Carneiro
1b28b9f5bd
chore(init/data/int/basic): define nat_abs using equation compiler
2017-07-28 16:47:53 +01:00
Mario Carneiro
490cc50b51
chore(init/data/nat): mark simp rules
2017-07-28 16:47:53 +01:00
Mario Carneiro
fb4e952ac8
fix(init/meta/congr_tactic): congr tries assumption first
...
This gives a workaround for the situation where the `congr` tactic does too much congruence applications, such as reducing `|- a + b = b + a` to `|- a = b` and `|- b = a`, by supplying the desired equalities to stop at using `have`.
2017-07-28 16:47:53 +01:00
Mario Carneiro
f369e34bd6
chore(library/standard): remove standard.lean (unused, and confusing given stdlib)
2017-07-28 16:47:53 +01:00
Mario Carneiro
9ca2113790
refactor(init/algebra/group): parameterize transport_mul_to_add
2017-07-28 16:47:53 +01:00
Mario Carneiro
bd19736b21
feat(init/data/nat/bitwise): definitional lemmas for nat.shiftl
2017-07-28 16:47:53 +01:00
Mario Carneiro
89131ba1ff
feat(init/meta/interactive): expose custom hyp name in by_contra
2017-07-28 16:47:53 +01:00
Mario Carneiro
e6294710db
refactor(init/classical): simplify classical proofs
2017-07-28 16:47:53 +01:00
Mario Carneiro
ec82afb45a
fix(tests): fix tests
2017-07-28 16:47:02 +01:00
Mario Carneiro
26548c956c
feat(init/meta/interactive): rw at *, rw at h1 h2 |- support
...
Now tactics supporting locations can also specify the goal among the locations by using the name `⊢` or `|-`. Also `rw at *` is implemented so that it will rewrite any hypotheses or the goal for which the whole sequence of rewrites succeeds. (This is different from `rw at h1 h2 ... hn |-`, which requires that all rewrites run to completion on each specified target.)
2017-07-28 16:47:02 +01:00
Leonardo de Moura
870ce5c0fe
fix(library/init/meta/constructor_tactic): fixes #1771
2017-07-28 09:45:51 +01:00
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
5539be0dcc
chore(script/deploy_gh_pages): --reset-author
2017-07-27 10:23:16 +02:00
Sebastian Ullrich
d6db630786
feat(leanpkg): make test imply build
2017-07-27 10:15:42 +02:00
Sebastian Ullrich
2e200535fb
chore(script/deploy_gh_pages): upload to new lean-nightly repo
2017-07-26 17:17:48 +02:00
Sebastian Ullrich
99b4c8714d
chore(.appveyor.yml,.travis.yml): simplify using glob patterns
2017-07-26 17:13:34 +02:00
Sebastian Ullrich
cb325e85fa
fix(script/deploy_gh_pages): use --amend
2017-07-26 17:02:00 +02:00
Sebastian Ullrich
c44ed73d56
fix(frontends/lean/scanner): minor lexical grammar fixup
2017-07-26 17:02:00 +02:00
Leonardo de Moura
58016bc037
chore(tests/lean): fix test suite
2017-07-26 14:10:02 +01:00