Skip to content
Snippets Groups Projects
  1. Apr 23, 2022
  2. Feb 11, 2022
  3. Feb 02, 2022
  4. Jan 24, 2022
  5. Dec 16, 2021
  6. Nov 08, 2021
  7. Oct 01, 2021
  8. Sep 05, 2021
  9. Sep 03, 2021
  10. Jul 29, 2021
  11. Jul 28, 2021
  12. Jun 18, 2021
  13. Jun 14, 2021
  14. May 25, 2021
  15. Jan 27, 2021
  16. Jan 13, 2021
  17. Dec 04, 2020
  18. Nov 11, 2020
  19. Sep 28, 2020
    • 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).
      Verified
      3732f05e
  20. Sep 24, 2020
    • 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).
      Verified
      84144f00
  21. Sep 21, 2020
  22. Jul 22, 2020
  23. 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.
      Verified
      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
  24. Jun 12, 2020
  25. May 23, 2020
  26. Apr 07, 2020
  27. Apr 06, 2020
  28. Mar 20, 2020
  29. Feb 28, 2020
  30. Feb 18, 2020
  31. Feb 01, 2020
  32. Nov 20, 2019
    • 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
Loading