Skip to content
Snippets Groups Projects
  1. Oct 01, 2020
  2. Sep 10, 2020
  3. Jun 26, 2020
  4. May 16, 2020
  5. Mar 16, 2020
  6. Mar 09, 2020
  7. Nov 08, 2019
  8. Nov 06, 2019
  9. Sep 13, 2019
    • Jacques-Henri Jourdan's avatar
      Reorder Requires so that we do not depend of Export bugs. · 43a1a90f
      Jacques-Henri 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 (??).
      43a1a90f
  10. Jun 15, 2019
  11. Jun 14, 2019
  12. Jun 13, 2019
  13. Jun 12, 2019
  14. Jun 06, 2019
  15. Mar 05, 2019
  16. Jan 11, 2019
  17. Dec 03, 2018
  18. Oct 31, 2018
    • Robbert Krebbers's avatar
    • Robbert Krebbers's avatar
      Get rid of `irisG'`. · d0f42b2a
      Robbert Krebbers authored
      d0f42b2a
    • Robbert Krebbers's avatar
      Fine-grained post-conditions for forked-off threads. · ebf06f91
      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.
      ebf06f91
    • Robbert Krebbers's avatar
      f716d0dc
  19. Oct 24, 2018
  20. Oct 18, 2018
  21. Oct 05, 2018
  22. Oct 03, 2018
  23. Jun 25, 2018
  24. Jun 14, 2018
  25. Jun 05, 2018
  26. Jan 20, 2018
    • Robbert Krebbers's avatar
      Consistently name `wp_value_inv`. · 6edc1fe3
      Robbert Krebbers authored
      We already used the following naming convention: `wp_value'` is stated in
      terms of `of_val` and `wp_value` is stated in terms of `IntoVal`. This
      commit applies this convention to `wp_value_inv` as well.
      6edc1fe3
  27. Dec 11, 2017
  28. Dec 07, 2017
Loading