Skip to content
Snippets Groups Projects
  1. Feb 11, 2020
  2. Nov 07, 2019
  3. 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
  4. Aug 26, 2019
  5. Jun 26, 2019
  6. Jun 21, 2019
  7. Jun 20, 2019
  8. Jun 02, 2019
  9. May 10, 2019
  10. May 09, 2019
  11. Apr 26, 2019
  12. Apr 25, 2019
  13. Mar 04, 2019
  14. Mar 03, 2019
    • Robbert Krebbers's avatar
      Overhaul of the `Infinite`/`Fresh` infrastructure. · 3184ef61
      Robbert Krebbers authored
      - The class `Infinite A` is now defined as having a function
        `fresh : list A → A`, that given a list `xs`, gives an element `x ∉ xs`.
      - For most types this `fresh` function has a sensible computable behavior,
        for example:
        + For numbers, it yields one added to the maximal element in `xs`.
        + For strings, it yields the first string representation of a number that is
          not in `xs`.
      - For any type `C` of finite sets with elements of infinite type `A`, we lift
        the fresh function to `C → A`.
      
      As a consequence:
      
      - It is now possible to pick fresh elements from _any_ finite set and from
        _any_ list with elements of an infinite type. Before it was only possible
        for specific finite sets, e.g. `gset`, `pset`, ...
      - It makes the code more uniform. There was a lot of overlap between having a
        `Fresh` and an `Infinite` instance. This got unified.
      3184ef61
  15. Feb 23, 2019
  16. Feb 21, 2019
  17. Feb 20, 2019
    • Robbert Krebbers's avatar
      Comment about `Set_`. · e823cff6
      Robbert Krebbers authored
      e823cff6
    • Robbert Krebbers's avatar
      Consistently use `set` and `map` names. · b7e31ce2
      Robbert Krebbers authored
      Get rid of using `Collection` and favor `set` everywhere. Also, prefer conversion
      functions that are called `X_to_Y`.
      
      The following sed script performs most of the renaming, with the exception of:
      
      - `set`, which has been renamed into `propset`. I couldn't do this rename
        using `sed` since it's too context sensitive.
      - There was a spurious rename of `Vec.of_list`, which I correctly manually.
      - Updating some section names and comments.
      
      ```
      sed '
      s/SimpleCollection/SemiSet/g;
      s/FinCollection/FinSet/g;
      s/CollectionMonad/MonadSet/g;
      s/Collection/Set\_/g;
      s/collection\_simple/set\_semi\_set/g;
      s/fin\_collection/fin\_set/g;
      s/collection\_monad\_simple/monad\_set\_semi\_set/g;
      s/collection\_equiv/set\_equiv/g;
      s/\bbset/boolset/g;
      s/mkBSet/BoolSet/g;
      s/mkSet/PropSet/g;
      s/set\_equivalence/set\_equiv\_equivalence/g;
      s/collection\_subseteq/set\_subseteq/g;
      s/collection\_disjoint/set\_disjoint/g;
      s/collection\_fold/set\_fold/g;
      s/collection\_map/set\_map/g;
      s/collection\_size/set\_size/g;
      s/collection\_filter/set\_filter/g;
      s/collection\_guard/set\_guard/g;
      s/collection\_choose/set\_choose/g;
      s/collection\_ind/set\_ind/g;
      s/collection\_wf/set\_wf/g;
      s/map\_to\_collection/map\_to\_set/g;
      s/map\_of\_collection/set\_to\_map/g;
      s/map\_of\_list/list\_to\_map/g;
      s/map\_of\_to_list/list\_to\_map\_to\_list/g;
      s/map\_to\_of\_list/map\_to\_list\_to\_map/g;
      s/\bof\_list/list\_to\_set/g;
      s/\bof\_option/option\_to\_set/g;
      s/elem\_of\_of\_list/elem\_of\_list\_to\_set/g;
      s/elem\_of\_of\_option/elem\_of\_option\_to\_set/g;
      s/collection\_not\_subset\_inv/set\_not\_subset\_inv/g;
      s/seq\_set/set\_seq/g;
      s/collections/sets/g;
      s/collection/set/g;
      ' -i $(find -name "*.v")
      ```
      b7e31ce2
  18. Jan 29, 2019
  19. Jan 23, 2019
  20. Jan 11, 2019
  21. Nov 30, 2018
  22. Nov 28, 2018
  23. Jun 10, 2018
  24. Apr 27, 2018
  25. Apr 05, 2018
  26. Feb 23, 2018
  27. Feb 22, 2018
  28. Feb 19, 2018
  29. Feb 12, 2018
  30. Feb 08, 2018
  31. Feb 02, 2018
  32. Jan 10, 2018
  33. Dec 08, 2017
Loading