1. 15 May, 2018 1 commit
  2. 02 May, 2018 1 commit
    • Dan Frumin's avatar
      Simplify the Treiber stack refinement · bf38948f
      Dan Frumin authored
      The simplification is acheieved by removing the stackUR workaround.
      That RA was used to enusure that the nodes that were parts of the
      stack do not change themselves -- this is crucial for the safety of
      pop and iter operations.
      
      Now this is achieved by using duplicable propositions (∃ q, n ↦ᵢ{q} v)
      to ensure that the node are still alive/not freed.
      bf38948f
  3. 23 Apr, 2018 1 commit
  4. 09 Apr, 2018 1 commit
  5. 29 Mar, 2018 1 commit
  6. 28 Mar, 2018 3 commits
  7. 24 Mar, 2018 2 commits
  8. 31 Jan, 2018 5 commits
  9. 30 Jan, 2018 1 commit
  10. 29 Jan, 2018 1 commit
  11. 28 Jan, 2018 2 commits
  12. 25 Jan, 2018 1 commit
  13. 18 Jan, 2018 1 commit
  14. 15 Jan, 2018 5 commits
    • Dan Frumin's avatar
    • Dan Frumin's avatar
    • Dan Frumin's avatar
      Strengthen `related_bind` · bf3aca9a
      Dan Frumin authored
      We define a stronger rule `related_bind_up`, in which there is a baked
      in semantic type `R`. The idea here is that we don't actually require
      the expressions that we bind to have the same syntactic type.
      
      ```
        {E;R::Δ;⤉Γ} ⊨ e1 ≤log≤ e2 : τ
      ∗ (∀ vv, ⟦ τ ⟧ (R::Δ) vv -∗ {E;Δ;Γ} ⊨ K[v1] ≤log≤ K'[v2] : τ')
      ____________________________________________________________
        {E;Δ;Γ} ⊨ K[e1] ≤log≤ K'[e2] : τ'
      ```
      
      We can then use `bin_log_related_weaken_2` to prove the original
      binding rule.
      
      The advantages of the new rule is that it allows us to prove the
      following compatibility rule for seq:
      
      ```
      {E;(R::Δ);⤉Γ} ⊨ e1 ≤log≤ e1' : τ1 -∗
      {E;Δ;Γ} ⊨ e2 ≤log≤ e2' : τ2 -∗
      {E;Δ;Γ} ⊨ (e1;; e2) ≤log≤ (e1';; e2') : τ2.
      ```
      
      The idea here is that we can also pick any *semantic* type to related
      e1 and e1'. For instance, if both e1 and e1' are expressions of type
      Nat then it is not necessarily the case that we can relate them at
      that type -- they might reduce to two different numerals -- but
      it *should* be the case that we can relate their effects, if it makes
      sense. E.g.
      
      ((#l <- #1;; #0) ;; e) ≤ ((#l <- #1;; #1) ;; e)
      bf3aca9a
    • Dan Frumin's avatar
      Strengthen `bin_log_related_weaken_2` · 751f6d75
      Dan Frumin authored
      751f6d75
    • Dan Frumin's avatar
      d0a6e8d0
  15. 14 Jan, 2018 1 commit
  16. 12 Jan, 2018 4 commits
  17. 06 Jan, 2018 1 commit
  18. 04 Jan, 2018 2 commits
  19. 03 Jan, 2018 3 commits
  20. 14 Dec, 2017 1 commit
  21. 13 Dec, 2017 1 commit
  22. 12 Dec, 2017 1 commit