 16 Mar, 2019 3 commits


Robbert Krebbers authored

Jakob Botsch Nielsen authored
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 1bits are not kept since we know a 10 is starting a new element which ends with a 1. Fix #28

 15 Mar, 2019 5 commits


Robbert Krebbers authored

Ralf Jung authored

Ralf Jung authored

Robbert Krebbers authored
Hopefully this fixes iris#232

Robbert Krebbers authored

 14 Mar, 2019 6 commits


Ralf Jung authored

Ralf Jung authored

Robbert Krebbers authored

Robbert Krebbers authored

 06 Mar, 2019 1 commit


Robbert Krebbers authored

 04 Mar, 2019 1 commit


Robbert Krebbers authored
This fixes an issue in orc11.

 03 Mar, 2019 3 commits


Robbert Krebbers authored

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.
 01 Mar, 2019 4 commits


Robbert Krebbers authored

Robbert Krebbers authored

Robbert Krebbers authored

Robbert Krebbers authored

 28 Feb, 2019 2 commits
 23 Feb, 2019 4 commits


Robbert Krebbers authored

Robbert Krebbers authored

Robbert Krebbers authored

Ralf Jung authored

 22 Feb, 2019 1 commit


Ralf Jung authored

 21 Feb, 2019 10 commits


Hai Dang authored

Robbert Krebbers authored

Robbert Krebbers authored

Robbert Krebbers authored

Robbert Krebbers authored
Also, use the union name/class/symbol for what's usually the union, and define the intersection on multisets.

Robbert Krebbers authored

Ralf Jung authored