1. 25 Oct, 2016 1 commit
  2. 16 Oct, 2016 1 commit
  3. 14 Oct, 2016 1 commit
  4. 12 Oct, 2016 5 commits
  5. 10 Oct, 2016 1 commit
  6. 06 Oct, 2016 2 commits
  7. 05 Oct, 2016 1 commit
  8. 04 Oct, 2016 1 commit
  9. 20 Sep, 2016 3 commits
  10. 09 Sep, 2016 1 commit
    • Robbert Krebbers's avatar
      Support for specialization of P₁ -★ .. -★ Pₙ -★ Q where Q is persistent. · 090aaea3
      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.
      090aaea3
  11. 06 Sep, 2016 5 commits
  12. 01 Sep, 2016 1 commit
  13. 30 Aug, 2016 1 commit
  14. 28 Aug, 2016 1 commit
  15. 26 Aug, 2016 3 commits
  16. 25 Aug, 2016 3 commits
  17. 24 Aug, 2016 1 commit
  18. 23 Aug, 2016 1 commit
  19. 22 Aug, 2016 1 commit
    • Robbert Krebbers's avatar
      Generalize equality of heap_lang so it works on any value. · 8111cab0
      Robbert Krebbers authored
      This is more consistent with CAS, which also can be used on any value.
      Note that being able to (atomically) test for equality of any value and
      being able to CAS on any value is not realistic. See the discussion at
      https://gitlab.mpi-sws.org/FP/iris-coq/issues/26, and in particular JH
      Jourdan's observation:
      
        I think indeed for heap_lang this is just too complicated.
      
        Anyway, the role of heap_lang is not to model any actual
        programming language, but rather to show that we can do proofs
        about certain programs. The fact that you can write unrealistic
        programs is not a problem, IMHO. The only thing which is important
        is that the program that we write are realistic (i.e., faithfully
        represents the algorithm we want to p
      
      This commit is based on a commit by Zhen Zhang who generalized equality
      to work on any literal (and not just integers).
      8111cab0
  20. 11 Aug, 2016 1 commit
  21. 09 Aug, 2016 2 commits
  22. 08 Aug, 2016 3 commits