1. 13 Sep, 2019 1 commit
    • 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
  2. 06 Mar, 2019 1 commit
  3. 05 Mar, 2019 1 commit
  4. 24 Jan, 2019 1 commit
  5. 23 May, 2018 2 commits
  6. 03 May, 2018 1 commit
  7. 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
  8. 26 Apr, 2018 1 commit
  9. 25 Apr, 2018 2 commits
  10. 04 Apr, 2018 1 commit
  11. 28 Mar, 2018 1 commit
  12. 03 Mar, 2018 1 commit
  13. 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
  14. 23 Feb, 2018 4 commits
  15. 15 Feb, 2018 1 commit
  16. 30 Oct, 2017 2 commits
  17. 25 Oct, 2017 1 commit
  18. 11 Apr, 2017 2 commits
  19. 07 Apr, 2017 1 commit
  20. 27 Jan, 2017 1 commit
  21. 05 Jan, 2017 1 commit
  22. 03 Jan, 2017 1 commit
  23. 13 Dec, 2016 1 commit
  24. 09 Dec, 2016 2 commits
  25. 24 Nov, 2016 1 commit
  26. 23 Nov, 2016 1 commit
  27. 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
  28. 17 Nov, 2016 1 commit
  29. 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
  30. 28 Oct, 2016 2 commits
  31. 25 Oct, 2016 1 commit
    • 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