Skip to content
Snippets Groups Projects
  1. May 17, 2019
  2. May 10, 2019
  3. May 09, 2019
  4. May 08, 2019
  5. May 03, 2019
  6. Apr 30, 2019
  7. Apr 26, 2019
  8. Apr 25, 2019
  9. Apr 24, 2019
  10. Apr 19, 2019
  11. Mar 26, 2019
  12. Mar 16, 2019
  13. Mar 15, 2019
  14. Mar 14, 2019
  15. Mar 06, 2019
  16. Mar 04, 2019
  17. Mar 03, 2019
    • Robbert Krebbers's avatar
    • 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
  18. Mar 01, 2019
  19. Feb 23, 2019
  20. Feb 22, 2019
  21. Feb 21, 2019
Loading