1. 02 May, 2018 1 commit
    • Ralf Jung's avatar
      Add support for ElimInv to introduce a binder from the accessor · b2711d60
      Ralf Jung authored
      If the accessor introduces a binder, the first Coq-level intro pattern of `iInv`
      is used for that binder unless the type of the binder is unit, in which case
      `iInv` removes it completely.  Binders on the closing view shift are not (yet)
      supported as they are harder to smoothly eliminate in the unit case.
      b2711d60
  2. 26 Apr, 2018 1 commit
  3. 25 Apr, 2018 2 commits
  4. 04 Apr, 2018 1 commit
  5. 28 Mar, 2018 1 commit
  6. 03 Mar, 2018 1 commit
  7. 01 Mar, 2018 1 commit
    • Jacques-Henri Jourdan's avatar
      Make iFrame able to accumulate assertions in an evar. · 09663be3
      Jacques-Henri Jourdan authored
      This requires changing the Hint Mode of the [Frame] type class because it should not fail if its parameter is an evar, but instantiate it instead. In order to prevent all the other instances of [Frame] to intantiate this evar themselves, we create a new type class [KnwonFrame], which corresponds to the old behavior.
      09663be3
  8. 23 Feb, 2018 4 commits
  9. 15 Feb, 2018 1 commit
  10. 30 Oct, 2017 2 commits
  11. 25 Oct, 2017 1 commit
  12. 11 Apr, 2017 2 commits
  13. 07 Apr, 2017 1 commit
  14. 27 Jan, 2017 1 commit
  15. 05 Jan, 2017 1 commit
  16. 03 Jan, 2017 1 commit
  17. 13 Dec, 2016 1 commit
  18. 09 Dec, 2016 2 commits
  19. 24 Nov, 2016 1 commit
  20. 23 Nov, 2016 1 commit
  21. 22 Nov, 2016 1 commit
    • Robbert Krebbers's avatar
      Make nclose an explicit coercion. · 274209c2
      Robbert Krebbers authored
      We do this by introducing a type class UpClose with notation ↑.
      
      The reason for this change is as follows: since `nclose : namespace
      → coPset` is declared as a coercion, the notation `nclose N ⊆ E` was
      pretty printed as `N ⊆ E`. However, `N ⊆ E` could not be typechecked
      because type checking goes from left to right, and as such would look
      for an instance `SubsetEq namespace`, which causes the right hand side
      to be ill-typed.
      274209c2
  22. 17 Nov, 2016 1 commit
  23. 03 Nov, 2016 1 commit
    • Robbert Krebbers's avatar
      Use symbol ∗ for separating conjunction. · cc31476d
      Robbert Krebbers authored
      The old choice for ★ was a arbitrary: the precedence of the ASCII asterisk *
      was fixed at a wrong level in Coq, so we had to pick another symbol. The ★ was
      a random choice from a unicode chart.
      
      The new symbol ∗ (as proposed by David Swasey) corresponds better to
      conventional practise and matches the symbol we use on paper.
      cc31476d
  24. 28 Oct, 2016 2 commits
  25. 25 Oct, 2016 3 commits
    • Robbert Krebbers's avatar
      Generalize update tactics into iMod and iModIntro for modalities. · fc30ca08
      Robbert Krebbers authored
      There are now two proof mode tactics for dealing with modalities:
      
      - `iModIntro` : introduction of a modality
      - `iMod pm_trm as (x1 ... xn) "ipat"` : eliminate a modality
      
      The behavior of these tactics can be controlled by instances of the `IntroModal`
      and `ElimModal` type class. We have declared instances for later, except 0,
      basic updates and fancy updates. The tactic `iMod` is flexible enough that it
      can also eliminate an updates around a weakest pre, and so forth.
      
      The corresponding introduction patterns of these tactics are `!>` and `>`.
      
      These tactics replace the tactics `iUpdIntro`, `iUpd` and `iTimeless`.
      
      Source of backwards incompatability: the introduction pattern `!>` is used for
      introduction of arbitrary modalities. It used to introduce laters by stripping
      of a later of each hypotheses.
      fc30ca08
    • Robbert Krebbers's avatar
    • Robbert Krebbers's avatar
      Rename rvs -> bupd (basic update), pvs -> fupd (fancy update). · 1b85d654
      Robbert Krebbers authored
      And also rename the corresponding proof mode tactics.
      1b85d654
  26. 05 Oct, 2016 1 commit
  27. 20 Sep, 2016 1 commit
  28. 25 Aug, 2016 1 commit