- Oct 07, 2016
-
-
Ralf Jung authored
-
- Oct 05, 2016
-
-
Robbert Krebbers authored
-
- Sep 28, 2016
-
-
Robbert Krebbers authored
This allows us to factor out properties about connectives that commute with the big operators.
-
Robbert Krebbers authored
-
- Sep 27, 2016
-
-
Robbert Krebbers authored
Used in iRevert, iClear, iFrame, and for generalizing the IH in iInduction and iLöb.
-
Robbert Krebbers authored
As proposed by JH Jourdan in issue 34.
-
- Sep 20, 2016
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- Sep 09, 2016
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
Before this commit, given "HP" : P and "H" : P -★ Q with Q persistent, one could write: iSpecialize ("H" with "#HP") to eliminate the wand in "H" while keeping the resource "HP". The lemma: own_valid : own γ x ⊢ ✓ x was the prototypical example where this pattern (using the #) was used. However, the pattern was too limited. For example, given "H" : P₁ -★ P₂ -★ Q", one could not write iSpecialize ("H" with "#HP₁") because P₂ -★ Q is not persistent, even when Q is. So, instead, this commit introduces the following tactic: iSpecialize pm_trm as # which allows one to eliminate implications and wands while being able to use all hypotheses to prove the premises, as well as being able to use all hypotheses to prove the resulting goal. In the case of iDestruct, we now check whether all branches of the introduction pattern start with an `#` (moving the hypothesis to the persistent context) or `%` (moving the hypothesis to the pure Coq context). If this is the case, we allow one to use all hypotheses for proving the premises, as well as for proving the resulting goal.
-
Jacques-Henri Jourdan authored
-
- Sep 07, 2016
-
-
Jacques-Henri Jourdan authored
Define disjointness of namespaces in terms of masks.\n\nThe proofs are made simpler and some lemmas get more general.
-
Jacques-Henri Jourdan authored
-
- Sep 06, 2016
-
-
Robbert Krebbers authored
I had to perform some renaming to avoid name clashes.
-
- Sep 05, 2016
-
-
Jacques-Henri Jourdan authored
-
- Sep 04, 2016
-
-
Robbert Krebbers authored
-
- Aug 29, 2016
-
-
Robbert Krebbers authored
This way we ensure that Coq gives an error message when one accidentially writes "N ⊆ E" instead of "nclose N ⊆ E". Before, it used the ⊆ instance of lists.
-
Robbert Krebbers authored
This avoids Coq distinguishing iProp and uPred (iResUR _) when it should not.
-
Robbert Krebbers authored
(which are useful in Amin's logical relations development).
-
- Aug 28, 2016
-
-
Robbert Krebbers authored
This also removes the double use of the name 'wp_fork' in both program_logic/weakestpre and heap_lang/lifting.
-
- Aug 25, 2016
-
-
Robbert Krebbers authored
-
Janno authored
-
Robbert Krebbers authored
Following the time anology of later, the step-index 0 corresponds does not correspond to 'now', but rather to the end of time (i.e. 'last').
-
Robbert Krebbers authored
-
Robbert Krebbers authored
Make names more consistent with the rest of the development, make definitions type classes opaque so that the proofmode does not unfold then, declare timeless, persistent and proper instances.
-
- Aug 23, 2016
-
-
Robbert Krebbers authored
-
- Aug 22, 2016
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
This implements issue #3.
-
Robbert Krebbers authored
-
Robbert Krebbers authored
Since [inG] ranges over [cmraT]s, using an [ucmraT]s results in [ucmra_cmraR] coercions that slow down type checking. This commit improves the compilation time of thread_local.v by 40%.
-
Jacques-Henri Jourdan authored
By using the global ghost maps instead of our own ones.
-
- Aug 18, 2016
-
-
Jacques-Henri Jourdan authored
-
Jacques-Henri Jourdan authored
-
- Aug 11, 2016
-
-
Robbert Krebbers authored
It is not non-expansive, so not a function we should use.
-
- Aug 10, 2016
-
-
Zhen Zhang authored
-
- Aug 09, 2016
-
-
Ralf Jung authored
-
Ralf Jung authored
-
Robbert Krebbers authored
-