Skip to content
Snippets Groups Projects
  1. Aug 28, 2020
  2. Jun 15, 2020
  3. May 12, 2020
  4. Apr 15, 2020
  5. Apr 05, 2020
    • Paolo G. Giarrusso's avatar
      Switch `inj _` to `inj f`, part 2 · ffa05e8a
      Paolo G. Giarrusso authored
      Code not affected by a00d9bd8.
      
      All occurrences are gone, except for one in `base.v` where you'd need different
      functions.
      
      However, I'm unsure this is an improvement: in lots of cases here, the function
      didn't need to be guessed, but could be deduced by "simple" higher-order
      unification, the one where unifying `?f ?a` against `g args last_arg` sets `?f =
      g args`.
      Verified
      ffa05e8a
  6. Mar 31, 2020
  7. Mar 13, 2020
  8. Feb 13, 2020
  9. Sep 19, 2019
    • Robbert Krebbers's avatar
      Disambiguate Haskell-style notations for partially operators. · 45690e49
      Robbert Krebbers authored
      For example, change `(!! i)` into `(.!! x)` so that `!!` can also be used as
      a prefix, as done in VST for example.
      
      This closes issue #42.
      
      I have used the `sed` script below. This script took care of nearly all uses
      apart from a few occurrences where a space was missing, e.g. `(,foo)`. In
      this case, `coqc` will just fail, allowing one to patch up things manually.
      
      The script is slightly too eager on Iris developments, where it also replaces
      `($ ...)` introduction patterns. When porting Iris developments you thus may
      want to remove the line for `$`.
      
      ```
      sed '
      s/(= /(.= /g;
      s/ =)/ =.)/g;
      s/(≠ /(.≠ /g;
      s/ ≠)/ ≠.)/g;
      s/(≡ /(.≡ /g;
      s/ ≡)/ ≡.)/g;
      s/(≢ /(.≢ /g;
      s/ ≢)/ ≢.)/g;
      s/(∧ /(.∧ /g;
      s/ ∧)/ ∧.)/g;
      s/(∨ /(.∨ /g;
      s/ ∨)/ ∨.)/g;
      s/(:left_right_arrow: /(.:left_right_arrow: /g;
      s/ :left_right_arrow:)/ :left_right_arrow:.)/g;
      s/(→ /(.→ /g;
      s/ →)/ →.)/g;
      s/($ /(.$ /g;
      s/(∘ /(.∘ /g;
      s/ ∘)/ ∘.)/g;
      s/(, /(., /g;
      s/ ,)/ ,.)/g;
      s/(∘ /(.∘ /g;
      s/ ∘)/ ∘.)/g;
      s/(∪ /(.∪ /g;
      s/ ∪)/ ∪.)/g;
      s/(⊎ /(.⊎ /g;
      s/ ⊎)/ ⊎.)/g;
      s/(∩ /(.∩ /g;
      s/ ∩)/ ∩.)/g;
      s/(∖ /(.∖ /g;
      s/ ∖)/ ∖.)/g;
      s/(⊆ /(.⊆ /g;
      s/ ⊆)/ ⊆.)/g;
      s/(⊈ /(.⊈ /g;
      s/ ⊈)/ ⊈.)/g;
      s/(⊂ /(.⊂ /g;
      s/ ⊂)/ ⊂.)/g;
      s/(⊄ /(.⊄ /g;
      s/ ⊄)/ ⊄.)/g;
      s/(∈ /(.∈ /g;
      s/ ∈)/ ∈.)/g;
      s/(∉ /(.∉ /g;
      s/ ∉)/ ∉.)/g;
      s/(≫= /(.≫= /g;
      s/ ≫=)/ ≫=.)/g;
      s/(!! /(.!! /g;
      s/ !!)/ !!.)/g;
      s/(⊑ /(.⊑ /g;
      s/ ⊑)/ ⊑.)/g;
      s/(⊓ /(.⊓ /g;
      s/ ⊓)/ ⊓.)/g;
      s/(⊔ /(.⊔ /g;
      s/ ⊔)/ ⊔.)/g;
      s/(:: /(.:: /g;
      s/ ::)/ ::.)/g;
      s/(++ /(.++ /g;
      s/ ++)/ ++.)/g;
      s/(≡ₚ /(.≡ₚ /g;
      s/ ≡ₚ)/ ≡ₚ.)/g;
      s/(≢ₚ /(.≢ₚ /g;
      s/ ≢ₚ)/ ≢ₚ.)/g;
      s/(::: /(.::: /g;
      s/ :::)/ :::.)/g;
      s/(+++ /(.+++ /g;
      s/ +++)/ +++.)/g;
      ' -i $(find -name "*.v")
      ```
      45690e49
  10. Sep 11, 2019
    • Jacques-Henri Jourdan's avatar
      Fix Open/Close scope · a64bf2f0
      Jacques-Henri Jourdan authored
      Use Open/Close Scope without Local (i.e., export the scope opening)
      only when the scope corresponds to the main purpose of the module.
      a64bf2f0
  11. Jun 28, 2019
  12. May 30, 2019
  13. May 08, 2019
  14. Mar 16, 2019
    • Jakob Botsch Nielsen's avatar
      More efficient list encoding for Countable · 9b209c98
      Jakob Botsch Nielsen authored and Robbert Krebbers's avatar Robbert Krebbers committed
      This changes the encoding used for finite lists of values of countable
      types to be linear instead of exponential. The encoding works by
      duplicating bits of each element so that 0 -> 00 and 1 -> 11, and then
      separating each element with 10. The top 1-bits are not kept since we
      know a 10 is starting a new element which ends with a 1.
      
      Fix #28
      9b209c98
  15. Mar 01, 2019
  16. Feb 20, 2019
  17. Jan 29, 2019
  18. Jan 24, 2019
  19. Jan 19, 2019
  20. Nov 28, 2018
  21. Nov 09, 2018
  22. Nov 04, 2018
  23. Jun 10, 2018
  24. May 23, 2018
  25. Apr 27, 2018
  26. Apr 05, 2018
  27. Mar 08, 2018
  28. Nov 21, 2017
    • Robbert Krebbers's avatar
      Pattern matching notation for monadic binds. · dcd59f13
      Robbert Krebbers authored
      This gets rid of the old hack to have specific notations for pairs
      up to a fixed arity, and moreover allows to do fancy things like:
      
      ```
      Record test := Test { t1 : nat; t2 : nat }.
      
      Definition foo (x : option test) : option nat :=
        ''(Test a1 a2) ← x;
        Some a1.
      ```
      dcd59f13
  29. Oct 31, 2017
  30. Sep 21, 2017
  31. Sep 08, 2017
  32. Mar 15, 2017
  33. Mar 11, 2017
  34. Mar 09, 2017
Loading