- Nov 26, 2018
-
-
Robbert Krebbers authored
-
- Nov 22, 2018
-
-
Robbert Krebbers authored
Link to HTML sources for easier navigation See merge request FP/iris-coq!190
-
Paolo G. Giarrusso authored
-
Ralf Jung authored
-
- Nov 20, 2018
-
-
Ralf Jung authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
After Coq PR #7825 this will create unwanted evars.
-
- Nov 16, 2018
-
-
Robbert Krebbers authored
Update the link to std++ See merge request FP/iris-coq!189
-
Dan Frumin authored
-
- Nov 12, 2018
-
-
Robbert Krebbers authored
-
- Nov 11, 2018
-
-
Robbert Krebbers authored
-
- Nov 09, 2018
-
-
Robbert Krebbers authored
-
- Nov 08, 2018
-
-
Ralf Jung authored
-
Ralf Jung authored
-
Robbert Krebbers authored
-
- Nov 06, 2018
-
-
Robbert Krebbers authored
-
- Nov 01, 2018
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
Add `big_opM_union` and `big_sepM_union`. See merge request FP/iris-coq!188
-
Dan Frumin authored
-
Ralf Jung authored
-
Robbert Krebbers authored
-
- Oct 31, 2018
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
Fine-grained post-conditions for forked-off threads See merge request FP/iris-coq!182
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
This commit extends the state interpretation with an additional parameter to talk about the number of forked-off threads, and a fixed postcondition for each forked-off thread: state_interp : Λstate → list Λobservation → nat → iProp Σ; fork_post : iProp Σ; This way, instead of having `True` as the post-condition of `Fork`, one can have any post-condition, which is then recorded in the state interpretation. The point of keeping track of the postconditions of forked-off threads, is that we get an (additional) stronger adequacy theorem: Theorem wp_strong_all_adequacy Σ Λ `{invPreG Σ} s e σ1 v vs σ2 φ : (∀ `{Hinv : invG Σ} κs, (|={⊤}=> ∃ (stateI : state Λ → list (observation Λ) → nat → iProp Σ) (fork_post : iProp Σ), let _ : irisG Λ Σ := IrisG _ _ _ Hinv stateI fork_post in stateI σ1 κs 0 ∗ WP e @ s; ⊤ {{ v, let m := length vs in stateI σ2 [] m -∗ [∗] replicate m fork_post ={⊤,∅}=∗ ⌜ φ v ⌝ }})%I) → rtc erased_step ([e], σ1) (of_val <$> v :: vs, σ2) → φ v. The difference with the ordinary adequacy theorem is that this one only applies once all threads terminated. In this case, one gets back the post-conditions `[∗] replicate m fork_post` of all forked-off threads. In Iron we showed that we can use this mechanism to make sure that all resources are disposed of properly in the presence of fork-based concurrency.
-
Robbert Krebbers authored
More principled set of axioms for fancy updates and plainly Closes #164 See merge request FP/iris-coq!184
-
Jacques-Henri Jourdan authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Jacques-Henri Jourdan authored
A specific constructor for injecting values in expressions See merge request FP/iris-coq!175
-