 05 Mar, 2019 1 commit


Ralf Jung authored

 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 backwardscompatible; 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


JacquesHenri 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
