Skip to content
Snippets Groups Projects
  1. Feb 13, 2017
  2. Feb 12, 2017
    • Robbert Krebbers's avatar
      Make iSpecialize work with coercions. · f1b30a2e
      Robbert Krebbers authored
      For example, when having `"H" : ∀ x : Z, P x`, using
      `iSpecialize ("H" $! (0:nat))` now works. We do this by first
      resolving the `IntoForall` type class, and then instantiating
      the quantifier.
      f1b30a2e
  3. Feb 11, 2017
  4. Feb 10, 2017
  5. Feb 09, 2017
  6. Feb 07, 2017
  7. Feb 06, 2017
  8. Feb 03, 2017
  9. Feb 02, 2017
  10. Feb 01, 2017
    • Robbert Krebbers's avatar
      Make f_equiv stronger. · fd81b328
      Robbert Krebbers authored
      It no longer requires the functions on both sides of the relation
      to be syntactically the same.
      fd81b328
    • Robbert Krebbers's avatar
      Arguments for gsetC and gset_disjC. · bf069d12
      Robbert Krebbers authored
      bf069d12
    • Jacques-Henri Jourdan's avatar
      Cancelable and IdFree typeclasses. · 71c10187
      Jacques-Henri Jourdan authored
      Cancelable elements are a new way of proving local updates, by
      removing some cancellable element of the global state, provided that
      we own it and we are willing to lose this ownership.
      
      Identity-free elements are an auxiliary that is necessary to prove that
      [Some x] is cancelable.
      
      For technical reasons, these two notions are not defined exactly like
      what one might expect, but also take into account validity. Otherwise,
      an exclusive element would not be cancelable or idfree, which is
      rather confusing.
      71c10187
  11. Jan 30, 2017
    • Robbert Krebbers's avatar
      A bunch of missing Params instances. · e4f1b5c2
      Robbert Krebbers authored
      e4f1b5c2
    • Robbert Krebbers's avatar
      Support introduction patterns /=, {H}, {$H} in iDestruct. · 686f5740
      Robbert Krebbers authored
      This fixes issue #57.
      
      I considered supporting these introduction patterns also in a nested fashion --
      for example allowing `iDestruct foo as [H1 [{H1} H1 /= H2|H2]` -- but that
      turned out to be quite difficult.
      
      Where should we allow `/=`, `{H}` and `{$H}` exactly. Clearly something like
      `>/=` makes no sense, unless we adopt to some kind of 'stack like' semantics
      for introduction patterns as in ssreflect. Alternatively, we could only allow
      these patterns in the branches of the destructing introduction pattern
      `[... | ... | ...]` but that brings other complications, e.g.:
      
      - What to do with `(H1 & /= & H3)`?
      - How to distinguish the introduction patterns `[H _]` and `[_ H]` for
        destructing a spatial conjunction? We cannot simply match on the shape of the
        introduction pattern anymore, because one could also write `[_ H /=]`.
      686f5740
    • Robbert Krebbers's avatar
      0090c56c
    • Robbert Krebbers's avatar
      6fc0ecff
Loading