- 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
-
Ralf Jung authored
-
- Aug 08, 2016
-
-
Ralf Jung authored
-
Derek Dreyer authored
-
Robbert Krebbers authored
This generalization is surprisingly easy in Iris 3.0, so I could not resist not doing it :).
-
Robbert Krebbers authored
This makes stuff more uniform and also removes the need for the [inGFs] type class. Instead, there is now a type class [subG Σ1 Σ2] which expresses that a list of functors [Σ1] is contained in [Σ2].
-
Robbert Krebbers authored
-