Skip to content
Snippets Groups Projects
  1. Feb 17, 2020
  2. Nov 21, 2019
  3. Apr 25, 2019
  4. Feb 20, 2019
    • Robbert Krebbers's avatar
      Better names for convertion functions from `gset` and `coPset`. · 31e0d1f6
      Robbert Krebbers authored
      - Rename `gmap.to_gmap` into `gset_to_gmap`.
      - Rename `gmap.of_gset` into `gset_to_propset`.
      - Rename `coPset.to_Pset` into `coPset_to_Pset`.
      - Rename `coPset.of_Pset` into `coPset_to_gset`.
      - Rename `coPset.to_gset` into `coPset_to_gset`.
      - Rename `coPset.of_gset` into `gset_to_coPset`.
      
      The following `sed` script can be used for the first rename:
      
      ```
      sed -i 's/to\_gmap/gset\_to\_gmap/g' $(find ./theories -name \*.v)
      ```
      
      The latter is context sensitive, so was done manually.
      31e0d1f6
    • 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
  5. Jan 29, 2019
  6. Nov 28, 2018
  7. May 28, 2018
  8. Apr 05, 2018
  9. Sep 21, 2017
  10. Sep 17, 2017
    • Robbert Krebbers's avatar
      Set Hint Mode for all classes in `base.v`. · 7d7c9871
      Robbert Krebbers authored
      This provides significant robustness against looping type class search.
      
      As a consequence, at many places throughout the library we had to add
      additional typing information to lemmas. This was to be expected, since
      most of the old lemmas were ambiguous. For example:
      
        Section fin_collection.
          Context `{FinCollection A C}.
      
          size_singleton (x : A) : size {[ x ]} = 1.
      
      In this case, the lemma does not tell us which `FinCollection` with
      elements `A` we are talking about. So, `{[ x ]}` could not only refer to
      the singleton operation of the `FinCollection A C` in the section, but
      also to any other `FinCollection` in the development. To make this lemma
      unambigious, it should be written as:
      
        Lemma size_singleton (x : A) : size ({[ x ]} : C) = 1.
      
      In similar spirit, lemmas like the one below were also ambiguous:
      
        Lemma lookup_alter_None {A} (f : A → A) m i j :
          alter f i m !! j = None :left_right_arrow: m !! j = None.
      
      It is not clear which finite map implementation we are talking about.
      To make this lemma unambigious, it should be written as:
      
        Lemma lookup_alter_None {A} (f : A → A) (m : M A) i j :
          alter f i m !! j = None :left_right_arrow: m !! j = None.
      
      That is, we have to specify the type of `m`.
      7d7c9871
  11. Sep 08, 2017
  12. Mar 15, 2017
  13. Feb 10, 2017
  14. Jan 31, 2017
  15. Sep 20, 2016
  16. Aug 01, 2016
  17. Jul 27, 2016
  18. Jul 25, 2016
  19. Jul 22, 2016
  20. May 27, 2016
  21. Feb 27, 2016
  22. Feb 17, 2016
  23. Feb 16, 2016
  24. Feb 13, 2016
  25. Feb 09, 2016
  26. Jan 16, 2016
  27. Dec 15, 2015
  28. Dec 11, 2015
  29. Nov 18, 2015
Loading