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
      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. 12 Jun, 2020 1 commit
  4. 23 May, 2020 2 commits
  5. 07 Apr, 2020 1 commit
  6. 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
  7. 20 Mar, 2020 2 commits
  8. 28 Feb, 2020 1 commit
  9. 18 Feb, 2020 1 commit
  10. 01 Feb, 2020 1 commit
  11. 20 Nov, 2019 1 commit
    • Robbert Krebbers's avatar
      Use `notypeclasses refine` in `iPoseProof` helpers. · d5d02af5
      Robbert Krebbers authored
      Also, rewrite `iIntoEmpValid`. Now, instead of using Ltac to traverse
      the type of the term and generate goals for the premises, we repeatedly
      apply a series of lemmas. This has the advantage that it works up to
      convertability, and we no longer need the `eval ...` hacks.
      d5d02af5
  12. 20 Sep, 2019 1 commit
  13. 19 Sep, 2019 1 commit
  14. 13 Aug, 2019 2 commits
  15. 18 Jun, 2019 1 commit
  16. 17 Jun, 2019 1 commit
  17. 15 Jun, 2019 2 commits
  18. 09 Jun, 2019 2 commits
  19. 24 May, 2019 1 commit
  20. 06 May, 2019 1 commit
  21. 01 May, 2019 2 commits
  22. 05 Mar, 2019 1 commit
  23. 11 Jan, 2019 1 commit
    • Robbert Krebbers's avatar
      Allow `iSpecialize` to be nested. · c6af67f9
      Robbert Krebbers authored
      It now supports the specialization pattern `(H spat1 .. spatn)`, which first
      recursively specializes the hypothesis `H` using the specialization patterns
      `spat1 .. spatn`.
      c6af67f9
  24. 25 Dec, 2018 1 commit
  25. 13 Dec, 2018 1 commit
  26. 06 Dec, 2018 1 commit
  27. 04 Oct, 2018 1 commit
  28. 04 Jul, 2018 3 commits
  29. 03 Jul, 2018 1 commit
  30. 02 Jul, 2018 1 commit