Skip to content
Snippets Groups Projects
  1. Feb 24, 2020
  2. Feb 11, 2020
  3. Nov 07, 2019
  4. Sep 11, 2019
  5. Jun 20, 2019
  6. Apr 25, 2019
  7. Feb 20, 2019
    • Robbert Krebbers's avatar
      5f1da4ec
    • 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
  8. Jan 29, 2019
  9. Oct 27, 2017
  10. Sep 29, 2017
  11. Sep 20, 2017
  12. 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
  13. Mar 15, 2017
  14. Jan 31, 2017
  15. Sep 20, 2016
  16. Jul 27, 2016
  17. Jul 22, 2016
  18. Mar 23, 2016
  19. Feb 20, 2016
  20. Feb 17, 2016
    • Robbert Krebbers's avatar
      Rename solve_elem_of into set_solver. · 37e95231
      Robbert Krebbers authored
      It is doing much more than just dealing with ∈, it solves all kinds
      of goals involving set operations (including ≡ and ⊆).
      37e95231
    • Robbert Krebbers's avatar
      Rename simplify_equality like tactics. · 20690605
      Robbert Krebbers authored
      simplify_equality        => simplify_eq
      simplify_equality'       => simplify_eq/=
      simplify_map_equality    => simplify_map_eq
      simplify_map_equality'   => simplify_map_eq/=
      simplify_option_equality => simplify_option_eq
      simplify_list_equality   => simplify_list_eq
      f_equal'                 => f_equal/=
      
      The /= suffixes (meaning: do simpl) are inspired by ssreflect.
      20690605
  21. Feb 16, 2016
  22. Feb 13, 2016
  23. Jan 16, 2016
  24. Dec 21, 2015
  25. Nov 16, 2015
  26. Feb 03, 2017
  27. Jun 04, 2015
  28. Apr 22, 2015
  29. Mar 02, 2015
  30. Feb 08, 2015
  31. May 02, 2014
  32. May 15, 2013
  33. May 07, 2013
    • Robbert Krebbers's avatar
      Lots of refactoring. and new results on permutations and list containment. · 361308c7
      Robbert Krebbers authored
      The refactoring includes:
      * Use infix notations for the various list relations
      * More consistent naming
      * Put lemmas on one line whenever possible
      * Change proofs into one-liners when possible
      * Make better use of the "Implicit Types" command
      * Improve the order of the list module by placing all definitions at the start,
        then the proofs, and finally the tactics.
      
      Besides, there is some new machinery for proofs by reflection on lists. It is
      used for a decision procedure for permutations and list containment.
      361308c7
  34. Feb 19, 2013
    • Robbert Krebbers's avatar
      Support sequence point, add permissions, and update prelude. · 415a4f1c
      Robbert Krebbers authored
      Both the operational and axiomatic semantics are extended with sequence points
      and a permission system based on fractional permissions. In order to achieve
      this, the memory model has been completely revised, and is now built on top
      of an abstract interface for permissions.
      
      Apart from these changed, the library on lists and sets has been heavily
      extended, and minor changed have been made to other parts of the prelude.
      415a4f1c
Loading