Skip to content
Snippets Groups Projects
  1. Jul 22, 2020
  2. Jul 21, 2020
    • 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. Jul 15, 2020
  4. Jun 12, 2020
  5. May 23, 2020
  6. May 16, 2020
  7. Apr 15, 2020
    • 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. Apr 14, 2020
  9. Apr 07, 2020
  10. Apr 06, 2020
    • 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. Mar 31, 2020
  12. Mar 27, 2020
  13. Mar 20, 2020
  14. Mar 19, 2020
  15. Mar 16, 2020
  16. Mar 10, 2020
  17. Feb 28, 2020
  18. Feb 18, 2020
  19. Feb 10, 2020
  20. Feb 01, 2020
  21. Jan 15, 2020
  22. Dec 13, 2019
  23. Nov 22, 2019
    • 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. Nov 08, 2019
  25. Sep 20, 2019
  26. Sep 19, 2019
  27. Aug 13, 2019
  28. Jun 15, 2019
Loading