 13 Sep, 2019 40 commits


JacquesHenri Jourdan authored
The general idea is to first import/export modules which are further than the current one, and then import/export modules which are close dependencies. This commit tries to use the same order of imports for every file, and describes the convention in ProofGuide.md. There is one exception, where we do not follow said convention: in program_logic/weakestpre.v, using that order would break printing of texan triples (??).

 16 Jun, 2019 40 commits


Robbert Krebbers authored
Used the following script: sed ' s/\bCofeMor/OfeMor/g; s/\c>/\d>/g; s/\bcFunctor/oFunctor/g; s/\bCFunctor/OFunctor/g; s/\b\%CF/\%OF/g; s/\bconstCF/constOF/g; s/\bidCF/idOF/g s/\bdiscreteC/discreteO/g; s/\bleibnizC/leibnizO/g; s/\bunitC/unitO/g; s/\bprodC/prodO/g; s/\bsumC/sumO/g; s/\bboolC/boolO/g; s/\bnatC/natO/g; s/\bpositiveC/positiveO/g; s/\bNC/NO/g; s/\bZC/ZO/g; s/\boptionC/optionO/g; s/\blaterC/laterO/g; s/\bofe\_fun/discrete\_fun/g; s/\bdiscrete\_funC/discrete\_funO/g; s/\bofe\_morC/ofe\_morO/g; s/\bsigC/sigO/g; s/\buPredC/uPredO/g; s/\bcsumC/csumO/g; s/\bagreeC/agreeO/g; s/\bauthC/authO/g; s/\bnamespace_mapC/namespace\_mapO/g; s/\bcmra\_ofeC/cmra\_ofeO/g; s/\bucmra\_ofeC/ucmra\_ofeO/g; s/\bexclC/exclO/g; s/\bgmapC/gmapO/g; s/\blistC/listO/g; s/\bvecC/vecO/g; s/\bgsetC/gsetO/g; s/\bgset\_disjC/gset\_disjO/g; s/\bcoPsetC/coPsetO/g; s/\bgmultisetC/gmultisetO/g; s/\bufracC/ufracO/g s/\bfracC/fracO/g; s/\bvalidityC/validityO/g; s/\bbi\_ofeC/bi\_ofeO/g; s/\bsbi\_ofeC/sbi\_ofeO/g; s/\bmonPredC/monPredO/g; s/\bstateC/stateO/g; s/\bvalC/valO/g; s/\bexprC/exprO/g; s/\blocC/locO/g; ' i $(find theories name "*.v")

 03 Jun, 2019 40 commits


Robbert Krebbers authored
This allows one to make use of recursive ghost state obtained from the recursive domain equation solver.

 06 Mar, 2019 40 commits


Dan Frumin authored

 05 Mar, 2019 40 commits


Ralf Jung authored

 24 Jan, 2019 40 commits


Maxime Dénès authored
This is in preparation for coq/coq#9274.

 10 Dec, 2018 40 commits


Robbert Krebbers authored
This lemma is similar to `later_ownM`.

 05 Jun, 2018 40 commits
 19 Mar, 2018 40 commits


Ralf Jung authored

 05 Mar, 2018 40 commits


Ralf Jung authored
This is backwardscompatible; it desugars to a normal application on previous versions

 27 Nov, 2017 40 commits


Robbert Krebbers authored

 31 Oct, 2017 40 commits


Robbert Krebbers authored

 30 Oct, 2017 40 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 40 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 40 commits


Robbert Krebbers authored
For obsolete reasons, that no longer seem to apply, we used ∅ as the unit.

 17 Aug, 2017 40 commits


Robbert Krebbers authored

 08 Jun, 2017 40 commits


Robbert Krebbers authored

 24 Mar, 2017 40 commits


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 40 commits


Robbert Krebbers authored
This way, iSplit will work when one side is persistent.

Robbert Krebbers authored

 22 Feb, 2017 40 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 40 commits


Ralf Jung authored

 11 Jan, 2017 40 commits
 09 Jan, 2017 40 commits
 05 Jan, 2017 40 commits


Ralf Jung authored

 03 Jan, 2017 40 commits


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 40 commits


Ralf Jung authored

 24 Nov, 2016 40 commits


JacquesHenri Jourdan authored
The idea on magic wand is to use it for curried lemmas and use ⊢ for uncurried lemmas.

 22 Nov, 2016 40 commits


Ralf Jung authored

 21 Nov, 2016 40 commits


Robbert Krebbers authored
The old name didn't make much sense. Also now we can have pure_False too.
