1. 24 Jan, 2022 1 commit
  2. 16 Dec, 2021 1 commit
  3. 08 Nov, 2021 1 commit
  4. 01 Oct, 2021 1 commit
  5. 05 Sep, 2021 1 commit
  6. 03 Sep, 2021 2 commits
  7. 29 Jul, 2021 1 commit
  8. 28 Jul, 2021 1 commit
  9. 18 Jun, 2021 1 commit
  10. 14 Jun, 2021 2 commits
  11. 25 May, 2021 2 commits
  12. 27 Jan, 2021 1 commit
  13. 13 Jan, 2021 1 commit
  14. 04 Dec, 2020 1 commit
  15. 11 Nov, 2020 2 commits
  16. 28 Sep, 2020 1 commit
    • Tej Chajed's avatar
      Improve some iIntros error messages · 3732f05e
      Tej Chajed authored
      A failing iIntros for implications should prettify the identifier before
      printing, and iIntros on something that isn't a wand or implication
      should say what couldn't be introduced (to clarify that `iIntros "HP
      HQ"` failed because of the HQ in particular, for example).
      3732f05e
  17. 24 Sep, 2020 1 commit
    • Tej Chajed's avatar
      Fix error when destructing as multiple pats · 84144f00
      Tej Chajed authored
      `iDestruct H as "H1 H2"` produces an error that says the pattern should
      contain exactly one proper introduction pattern. When multiple patterns
      are provided, due to Ltac variable shadowing iDestructHypFindPat was
      instead reporting only the first pattern in the error message (and even
      that was printed as the parsed AST rather than the original string).
      84144f00
  18. 21 Sep, 2020 1 commit
    • Tej Chajed's avatar
      Report an error when iIntro fails to find a forall · fa0b270b
      Tej Chajed authored
      The error handling for `iIntro (?)` and similar tactics didn't correctly
      report failures when the goal couldn't be turned into a universal
      quantifier. This is something missing from !482 due to no test
      triggering the error.
      fa0b270b
  19. 22 Jul, 2020 1 commit
  20. 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
  21. 12 Jun, 2020 1 commit
  22. 23 May, 2020 2 commits
  23. 07 Apr, 2020 1 commit
  24. 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
  25. 20 Mar, 2020 2 commits
  26. 28 Feb, 2020 1 commit
  27. 18 Feb, 2020 1 commit
  28. 01 Feb, 2020 1 commit
  29. 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
  30. 20 Sep, 2019 1 commit
  31. 19 Sep, 2019 1 commit
  32. 13 Aug, 2019 1 commit