1. 22 Jul, 2020 1 commit
  2. 21 Jul, 2020 3 commits
    • Tej Chajed's avatar
      Use user-supplied names in iIntros · c1affb21
      Tej Chajed authored
      Preserve identifiers in binders where possible, analogous to the support
      for destructing existentials in !479.
      
      Fixes #336.
      c1affb21
    • Robbert Krebbers's avatar
      Tweak some names in test file. · 11678073
      Robbert Krebbers authored
      11678073
    • Tej Chajed's avatar
      Use user names when destructing existentials · 7d0bb151
      Tej Chajed authored and Robbert Krebbers's avatar Robbert Krebbers committed
      When running `iDestruct "H" as (?) "H"`, use the name of the binder in
      "H". For example, if "H" has type `∃ y, Φ y`,  we now use `y` as the
      name of the variable after freshening. Previously the name was always
      the equivalent of running `fresh H`.
      
      The implementation achieves this by forwarding the desired identifier
      name through the `IntoExist` typeclass. Identifiers are serialized in
      Gallina by using them as the name of a function of type `ident_name :=
      unit -> unit`.
      7d0bb151
  3. 15 Jul, 2020 1 commit
  4. 12 Jun, 2020 1 commit
  5. 23 May, 2020 3 commits
  6. 16 May, 2020 1 commit
  7. 15 Apr, 2020 1 commit
    • Paolo G. Giarrusso's avatar
      Fix entailment notations `(⊢@{PROP})` and `(⊣⊢@{PROP} )` etc. · 1b820fbf
      Paolo G. Giarrusso authored
      Fix #302, including their ASCII variants.
      - Don't use quotes `'` that are not surrounded by spaces.
      - However, notation `'(⊢@{' PROP } )` prevents parsing `(⊢@{PROP} Q)` using the
      `⊢@{PROP} Q` notation.
      
      To fix that, we force left-factorization: we add a notation for `'(⊢@{' PROP }
      Q )`, defined to coincide with '⊢@{' PROP } Q but which can be left-factored
      with `( '⊢@{' PROP } )`.
      
      - Add left and right operator sections for (bi)entailment
      - Add tests.
      
      Also do all of the above also for ASCII notations, except for operator sections,
      which seem to require more discussion.
      1b820fbf
  8. 14 Apr, 2020 1 commit
  9. 07 Apr, 2020 2 commits
  10. 06 Apr, 2020 1 commit
    • Tej Chajed's avatar
      Add support for pure names in intro patterns · 1375d6aa
      Tej Chajed authored
      Notably this support relies on string to identifier conversion, which
      works natively using Ltac2 in Coq 8.11+ and with a plugin
      (https://github.com/ppedrot/coq-string-ident) in Coq 8.10. To use it,
      you must replace intro_patterns.string_to_ident_hook with a real
      implementation; see https://gitlab.mpi-sws.org/iris/string-ident for a
      working implementation that works with Coq 8.11 (using Ltac2).
      
      The syntax is %H (within a string intro pattern). This is technically
      backwards-incompatible, because this was previously supported and parsed
      as % and H separately. To restore the old behavior, separate with a
      space, eg [% H].
      1375d6aa
  11. 31 Mar, 2020 1 commit
  12. 27 Mar, 2020 1 commit
  13. 20 Mar, 2020 2 commits
  14. 19 Mar, 2020 1 commit
  15. 16 Mar, 2020 1 commit
  16. 10 Mar, 2020 1 commit
  17. 28 Feb, 2020 1 commit
  18. 18 Feb, 2020 3 commits
  19. 10 Feb, 2020 2 commits
  20. 01 Feb, 2020 1 commit
  21. 15 Jan, 2020 1 commit
  22. 13 Dec, 2019 1 commit
  23. 22 Nov, 2019 1 commit
    • Paolo G. Giarrusso's avatar
      Fix iPoseProof on recursive lemmas (fix #274) · 3f468582
      Paolo G. Giarrusso authored and Robbert Krebbers's avatar Robbert Krebbers committed
      When proving `foo` through a fixpoint, Coq's guardedness checker needs to see to
      which arguments `foo` is applied. Opaque lemmas applied to `foo` itself prevent
      that, so make them transparent.
      * Make `IntoEmpValid` lemmas transparent.
      * Expose application of `IntoEmpValid` instance to its argument.
      * Add comment to `tac_pose_proof`
      
      This MR brings back the type of `tac_pose_proof` to the one it had before !329.
      Hence, this seems worth a comment.
      3f468582
  24. 08 Nov, 2019 3 commits
  25. 20 Sep, 2019 1 commit
  26. 19 Sep, 2019 1 commit
  27. 13 Aug, 2019 2 commits
  28. 15 Jun, 2019 1 commit