- 24 Jan, 2019 1 commit
-
-
Maxime Dénès authored
This is in preparation for coq/coq#9274.
-
- 10 Dec, 2018 1 commit
-
-
Robbert Krebbers authored
This lemma is similar to `later_ownM`.
-
- 05 Jun, 2018 2 commits
- 19 Mar, 2018 1 commit
-
-
Ralf Jung authored
-
- 05 Mar, 2018 1 commit
-
-
Ralf Jung authored
This is backwards-compatible; it desugars to a normal application on previous versions
-
- 27 Nov, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 31 Oct, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 30 Oct, 2017 3 commits
-
-
Robbert Krebbers authored
The absence of this axiom has two consequences: - We no longer have `■ (P ∗ Q) ⊢ ■ P ∗ ■ Q` and `□ (P ∗ Q) ⊢ □ P ∗ □ Q`, and as a result, separating conjunctions in the unrestricted/persistent context cannot be eliminated. - When having `(P -∗ ⬕ Q) ∗ P`, we do not get `⬕ Q ∗ P`. In the proof mode this means when having: H1 : P -∗ ⬕ Q H2 : P We cannot say `iDestruct ("H1" with "H2") as "#H1"` and keep `H2`. However, there is now a type class `PositiveBI PROP`, and when there is an instance of this type class, one gets the above reasoning principle back. TODO: Can we describe positivity of individual propositions instead of the whole BI? That way, we would get the above reasoning principles even when the BI is not positive, but the propositions involved are.
-
Robbert Krebbers authored
Otherwise, ownership of cores in our ordered RA model will not be persistent.
-
Robbert Krebbers authored
-
- 25 Oct, 2017 5 commits
-
-
Robbert Krebbers authored
Replace/remove some occurences of `persistently` into `persistent` where the property instead of the modality is used.
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- 17 Sep, 2017 1 commit
-
-
Robbert Krebbers authored
For obsolete reasons, that no longer seem to apply, we used ∅ as the unit.
-
- 17 Aug, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 08 Jun, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 24 Mar, 2017 1 commit
-
-
Robbert Krebbers authored
Instead, I have introduced a type class `Monoid` that is used by the big operators: Class Monoid {M : ofeT} (o : M → M → M) := { monoid_unit : M; monoid_ne : NonExpansive2 o; monoid_assoc : Assoc (≡) o; monoid_comm : Comm (≡) o; monoid_left_id : LeftId (≡) monoid_unit o; monoid_right_id : RightId (≡) monoid_unit o; }. Note that the operation is an argument because we want to have multiple monoids over the same type (for example, on `uPred`s we have monoids for `∗`, `∧`, and `∨`). However, we do bundle the unit because: - If we would not, the unit would appear explicitly in an implicit argument of the big operators, which confuses rewrite. By bundling the unit in the `Monoid` class it is hidden, and hence rewrite won't even see it. - The unit is unique. We could in principle have big ops over setoids instead of OFEs. However, since we do not have a canonical structure for bundled setoids, I did not go that way.
-
- 21 Mar, 2017 2 commits
-
-
Robbert Krebbers authored
This way, iSplit will work when one side is persistent.
-
Robbert Krebbers authored
-
- 22 Feb, 2017 2 commits
-
-
Robbert Krebbers authored
I probably tested against a wrong version. This reverts commit 02bc52b4.
-
Robbert Krebbers authored
This makes lambdarust 1 min (=7%) faster.
-
- 27 Jan, 2017 1 commit
-
-
Ralf Jung authored
-
- 11 Jan, 2017 2 commits
- 09 Jan, 2017 2 commits
- 05 Jan, 2017 1 commit
-
-
Ralf Jung authored
-
- 03 Jan, 2017 1 commit
-
-
Ralf Jung authored
This patch was created using find -name *.v | xargs -L 1 awk -i inplace '{from = 0} /^From/{ from = 1; ever_from = 1} { if (from == 0 && seen == 0 && ever_from == 1) { print "Set Default Proof Using \"Type*\"."; seen = 1 } }1 ' and some minor manual editing
-
- 09 Dec, 2016 1 commit
-
-
Ralf Jung authored
-
- 24 Nov, 2016 1 commit
-
-
Jacques-Henri Jourdan authored
The idea on magic wand is to use it for curried lemmas and use ⊢ for uncurried lemmas.
-
- 22 Nov, 2016 1 commit
-
-
Ralf Jung authored
-
- 21 Nov, 2016 1 commit
-
-
Robbert Krebbers authored
The old name didn't make much sense. Also now we can have pure_False too.
-
- 17 Nov, 2016 1 commit
-
-
Robbert Krebbers authored
-
- 15 Nov, 2016 1 commit
-
-
Robbert Krebbers authored
There is no way to infer the cmra A, so we make it explicit.
-
- 03 Nov, 2016 1 commit
-
-
Robbert Krebbers authored
The old choice for ★ was a arbitrary: the precedence of the ASCII asterisk * was fixed at a wrong level in Coq, so we had to pick another symbol. The ★ was a random choice from a unicode chart. The new symbol ∗ (as proposed by David Swasey) corresponds better to conventional practise and matches the symbol we use on paper.
-
- 28 Oct, 2016 1 commit
-
-
Ralf Jung authored
-
- 27 Oct, 2016 1 commit
-
-
Ralf Jung authored
-