Commit graph

13774 commits

Author SHA1 Message Date
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
Leonardo de Moura
16e7976b1a chore(library/init/data/vector): remove [...] notation for vectors
This is a temporary workaround. The problem is that this notation
overloads the one in list, and we currently can't handle nary
overloads in patterns.
2017-07-26 13:45:30 +01:00
Leonardo de Moura
a258620425 feat(library/init/data/default): add vector and bitvec 2017-07-26 13:38:51 +01:00
Leonardo de Moura
1ec65bed44 refactor(library/init): move bitvector to main repo
@digama0 I moved bitvec back to the main repo, and many nat lemmas.
I want these lemmas here for now. I will need some of them for future
decision procedures.
2017-07-26 13:35:38 +01:00
Leonardo de Moura
d5850871da fix(leanpkg/leanpkg): list.for and monad.for issues 2017-07-26 12:02:08 +01:00
Mario Carneiro
fb2447468b chore(init/category/combinators): remove monad.for
and variations, in favor of monad.map and variations
2017-07-26 11:52:11 +01:00
Mario Carneiro
4dc261393f refactor(init/data/list): move out advanced list defs 2017-07-26 11:52:11 +01:00
Mario Carneiro
813fda9ba5 refactor(init/data/{nat,list}): rename for consistency with stdlib 2017-07-26 11:52:10 +01:00
Mario Carneiro
09f9cada65 chore(init/data/nat): rename add_one_eq_succ -> add_one 2017-07-26 11:52:10 +01:00
Mario Carneiro
cc81118892 refactor(init/data): move out some nat lemmas 2017-07-26 11:52:10 +01:00
Mario Carneiro
7d4fe55bff fix(tests/lean/run/choice_anon_ctor): fix test 2017-07-26 11:52:10 +01:00
Mario Carneiro
36b2fb228e fix(leanpkg): fix leanpkg (use list instead of hash_map) 2017-07-26 11:52:10 +01:00
Mario Carneiro
74aeb250ec refactor(*): move out stdlib 2017-07-26 11:52:10 +01:00
Sebastian Ullrich
b3bc4b73fa fix(.appveyor.yml): ... 2017-07-26 09:55:38 +02:00
Sebastian Ullrich
f1316eaf40 fix(.appveyor.yml): ugh 2017-07-25 18:36:10 +02:00
Sebastian Ullrich
eea5370292 fix(.appveyor.yml): fix build 2017-07-25 18:08:51 +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
Sebastian Ullrich
fdc1df49ec fix(.appveyor.yml): use correct variable syntax... 2017-07-25 14:29:35 +02:00