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