- 04 Dec, 2017 1 commit
-
-
Jacques-Henri Jourdan authored
-
- 29 Nov, 2017 1 commit
-
-
David Swasey authored
Enable one to import both stdpp's base and ssrfun. Note that (f x.1) now parses as (f (fst x)) rather than (fst (f x)). (This change affects one proof in Iris.)
-
- 21 Nov, 2017 1 commit
-
-
Robbert Krebbers authored
This gets rid of the old hack to have specific notations for pairs up to a fixed arity, and moreover allows to do fancy things like: ``` Record test := Test { t1 : nat; t2 : nat }. Definition foo (x : option test) : option nat := ''(Test a1 a2) ← x; Some a1. ```
-
- 12 Nov, 2017 1 commit
-
-
Robbert Krebbers authored
This follows the associativity in Haskell. So, something like f <$> g <$> h Is now parsed as: (f <$> g) <$> h Since the functor is a generalized form of function application, this also now also corresponds with the associativity of function application, which is also left associative.
-
- 09 Nov, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 01 Nov, 2017 2 commits
-
-
Johannes Kloos authored
-
Johannes Kloos authored
Infinity is described by having an injection from nat.
-
- 31 Oct, 2017 1 commit
-
-
Johannes Kloos authored
The documentation for some typeclasses used the wrong names for these typeclasses.
-
- 28 Oct, 2017 4 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.
-
Ralf Jung authored
-
- 27 Oct, 2017 1 commit
-
-
Jacques-Henri Jourdan authored
-
- 13 Oct, 2017 1 commit
-
-
Ralf Jung authored
-
- 10 Oct, 2017 1 commit
-
-
Ralf Jung authored
-
- 06 Oct, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 21 Sep, 2017 2 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
This allows for more control over `Hint Mode`.
-
- 18 Sep, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 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.
-
- 02 Sep, 2017 4 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
Before, we often had to insert awkward casts when using them. Also, the generality of also having them on Type, is probably not useful.
-
Robbert Krebbers authored
-
- 17 Aug, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 08 Aug, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 17 Mar, 2017 3 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Ralf Jung authored
-
- 15 Mar, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 09 Mar, 2017 1 commit
-
-
Robbert Krebbers authored
-
- 19 Feb, 2017 1 commit
-
-
Robbert Krebbers authored
For example, instead of: Notation "( X ⊆ )" We now use: Notation "( X ⊆)" We were already doing this for = and ≡. This solves some conflicts with the notations of MetaCoq.
-
- 10 Feb, 2017 1 commit
-
-
Robbert Krebbers authored
Some were already maximally implicit, some were not. Now it is consistent.
-
- 31 Jan, 2017 5 commits
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Ralf Jung authored
This approach is originally by Robbert
-
Ralf Jung authored
-
Ralf Jung authored
This patch was created using find -name *.v | xargs -L 1 awk -i inplace '{from = 0} /^From/{ from = 1; ever_from = 1} { if (from == 0 && seen == 0 && ever_from == 1) { print "Set Default Proof Using \"Type*\"."; seen = 1 } }1 ' and some minor manual editing
-
- 22 Nov, 2016 1 commit
-
-
Robbert Krebbers authored
We do this by introducing a type class UpClose with notation ↑. The reason for this change is as follows: since `nclose : namespace → coPset` is declared as a coercion, the notation `nclose N ⊆ E` was pretty printed as `N ⊆ E`. However, `N ⊆ E` could not be typechecked because type checking goes from left to right, and as such would look for an instance `SubsetEq namespace`, which causes the right hand side to be ill-typed.
-