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
Sebastian Ullrich
f998fed50e
fix(.travis.yml): fix script working dir
2017-07-25 14:02:16 +02:00
Sebastian Ullrich
a93dba699e
feat(.appveyor.yml): add artifact with version-independent name
2017-07-25 13:46:13 +02:00
Sebastian Ullrich
586d355703
feat(.travis.yml): deploy nightly builds to Github Pages
2017-07-25 13:33:36 +02:00
Gabriel Ebner
d68665f7a2
chore(library/init/meta/tactic): fix copy-paste error in docstring
2017-07-23 09:48:08 +01: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
c7c8387bd8
chore(tests/lean/run/bin_tree): fix broken test
2017-07-21 05:05:42 -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