Skip to content
Snippets Groups Projects
  1. Oct 01, 2020
  2. Sep 29, 2020
    • Robbert Krebbers's avatar
    • Robbert Krebbers's avatar
      Comment. · ded3b674
      Robbert Krebbers authored
      ded3b674
    • Robbert Krebbers's avatar
      Make `iFrame` "less" smart w.r.t. clean up of modalities. · d179e416
      Robbert Krebbers authored
      Previously, if would "cleanup" `<affine>` and `□` if the result after framing
      is affine and intuitionistic, respectively. This behavior was inconsistent,
      since similar "cleanup" was not performed for `<absorbing>` and `<persistent>`.
      This MR thus removes this "cleanup" of modalities. It now consistently removes
      the modalities `<affine>`, `<absorbing>, `<persistent>` and `□` only if the
      result after framing is `True` or `emp`.
      
      Since `iFrame` is already very complicated, and since its performance is
      sometimes suboptimal in bigger developments, @jung and I believed doing
      fewer "smart" things is better than the alternative, namely performing doing
      sophisticated "cleanup" for all modalities, which is presented in
      iris/iris!450
      d179e416
  3. 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).
      3732f05e
  4. 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).
      84144f00
  5. Sep 21, 2020
    • 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
  6. Sep 10, 2020
  7. Aug 29, 2020
  8. Aug 28, 2020
  9. Aug 12, 2020
  10. Jul 22, 2020
  11. 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
    • 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
  12. Jul 15, 2020
  13. Jul 14, 2020
  14. Jun 30, 2020
  15. Jun 29, 2020
  16. Jun 26, 2020
  17. Jun 12, 2020
  18. May 25, 2020
  19. May 24, 2020
  20. May 23, 2020
  21. May 07, 2020
  22. Apr 22, 2020
  23. Apr 07, 2020
  24. Apr 06, 2020
  25. Apr 03, 2020
Loading