- 01 Nov, 2017 4 commits
-
-
Johannes Kloos authored
We prove that various types are infinite, notably: - nat, N, positive and Z; - string (using pretty-printing of nat); - option, with an infinite element type; - list, with an inhabited element type. Furthermore, we instantiate Fresh for strings.
-
Johannes Kloos authored
This implements a simple linear search for fresh elements.
-
Johannes Kloos authored
This generalizes Fix_unfold to a setoid setting. In particular, we can use this to unfold multi-argument fixpoints without requiring functional extensionality.
-
Johannes Kloos authored
Infinity is described by having an injection from nat.
-
- 31 Oct, 2017 3 commits
-
-
Johannes Kloos authored
-
Johannes Kloos authored
-
Johannes Kloos authored
The documentation for some typeclasses used the wrong names for these typeclasses.
-
- 28 Oct, 2017 5 commits
-
-
Ralf Jung authored
-
Robbert Krebbers authored
This addresses some concerns in !5.
-
Robbert Krebbers authored
This way, we will be compabile with Iris's heap_lang, which puts ;; at level 100.
-
Robbert Krebbers authored
-
Ralf Jung authored
-
- 27 Oct, 2017 3 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Jacques-Henri Jourdan authored
-
- 20 Oct, 2017 1 commit
-
-
Hai Dang authored
-
- 16 Oct, 2017 1 commit
-
-
Jacques-Henri Jourdan authored
-
- 13 Oct, 2017 1 commit
-
-
Ralf Jung authored
-
- 10 Oct, 2017 1 commit
-
-
Ralf Jung authored
-
- 09 Oct, 2017 1 commit
-
-
Ralf Jung authored
-
- 06 Oct, 2017 2 commits
-
-
Hai Dang authored
-
Robbert Krebbers authored
-
- 29 Sep, 2017 5 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
This fixes the issue of Hai in !6.
-
Hai Dang authored
-
Hai Dang authored
-
Hai Dang authored
-
- 24 Sep, 2017 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- 21 Sep, 2017 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
This allows for more control over `Hint Mode`.
-
- 20 Sep, 2017 1 commit
-
-
Robbert Krebbers authored
This way, type class search will fail immediately on first type class constraint of any of the `fin_map_dom` lemmas if no `Dom` can be found.
-
- 18 Sep, 2017 4 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
This instance leads to exponential failing searches.
-
Robbert Krebbers authored
These trees are useful to show that other types are countable.
-
- 17 Sep, 2017 1 commit
-
-
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
↔ 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↔ m !! j = None. That is, we have to specify the type of `m`.
-
- 08 Sep, 2017 1 commit
-
-
Robbert Krebbers authored
See also Coq bug #5712.
-
- 06 Sep, 2017 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-