- May 03, 2021
-
-
Robbert Krebbers authored
-
- Jan 07, 2021
-
-
Ralf Jung authored
-
- Nov 20, 2020
-
-
Tej Chajed authored
Fixes new Coq master warning deprecated-hint-without-locality.
-
- Sep 16, 2020
-
-
Ralf Jung authored
-
- Sep 15, 2020
-
-
Set Default Goal Selector "!" makes it illegal to ever apply a tactic with more than one goal (instead, must focus with bullets or braces).
-
- Mar 13, 2020
-
-
Robbert Krebbers authored
This follows iris!387 This closes issue #54.
-
- Aug 26, 2019
-
-
Ralf Jung authored
-
- Jul 13, 2019
-
-
Ralf Jung authored
-
- Jun 30, 2019
-
-
- Jun 18, 2019
-
-
Ralf Jung authored
-
- May 10, 2019
-
-
Robbert Krebbers authored
Now we follow Coq's stdlib and declare this instance using a `Hint Extern`; this avoids making `flip` type class opaque.
-
Robbert Krebbers authored
Revert "`RelDecision` instance for `flip`, and make `flip` tc opaque to avoid loops due to eager unification." This reverts commit b81aa3aa.
-
- May 09, 2019
-
-
Robbert Krebbers authored
`RelDecision` instance for `flip`, and make `flip` tc opaque to avoid loops due to eager unification.
-
- Jan 29, 2019
-
-
Robbert Krebbers authored
-
- Nov 28, 2018
-
-
Tej Chajed authored
Adding a hint without a database now triggers a deprecation warning in Coq master (https://github.com/coq/coq/pull/8987).
-
- Sep 21, 2017
-
-
Robbert Krebbers authored
This allows for more control over `Hint Mode`.
-
- Aug 02, 2017
-
-
Robbert Krebbers authored
-
- Jul 05, 2017
-
-
Hai Dang authored
-
- May 30, 2017
-
-
Robbert Krebbers authored
-
- Mar 15, 2017
-
-
Robbert Krebbers authored
-
- Jan 31, 2017
-
-
Robbert Krebbers 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
-
Ralf Jung authored
-
- Sep 20, 2016
-
-
Robbert Krebbers authored
-
- Sep 14, 2016
-
-
Jacques-Henri Jourdan authored
This makes the typeclass mechanism able to use instances like [Is_true X -> Blah], where X reduces to X.
-
- May 04, 2016
-
-
Janno authored
-
- Apr 07, 2016
-
-
Robbert Krebbers authored
-
- Mar 03, 2016
-
-
Robbert Krebbers authored
-
- Feb 13, 2016
-
-
Robbert Krebbers authored
Also, make our redefinition of done more robust under different orders of Importing modules.
-
- Feb 11, 2016
-
-
Robbert Krebbers authored
Also do some minor clean up.
-
- Nov 16, 2015
-
-
Robbert Krebbers authored
-
- Feb 01, 2017
-
-
Robbert Krebbers authored
The port makes the following notable changes: * The carrier types of separation algebras and integer environments are no longer in Set. Now they have a type at a fixed type level above Set. This both works better in 8.5 and makes the formalization more general. I have tried putting them at polymorphic type levels, but that increased the compilation time by an order of magnitude. * I am using a custom f_equal tactic written in Ltac to circumvent bug #4069. That bug has been fixed, so this custom tactic can be removed when the next beta of 8.5 is out.
-
- Feb 08, 2015
-
-
Robbert Krebbers authored
-
- Dec 23, 2014
-
-
Robbert Krebbers authored
Pointer equality is now defined using absolute object offsets. The treatment is similar to CompCert: * Equality of pointers in the same object is defined provided the object has not been deallocated. * Equality of pointers in different objects is defined provided both pointers have not been deallocated and both are strict (i.e. not end-of-array). Thus, pointer equality is defined for all pointers that are not-end-of-array and have not been deallocated. The following examples have defined behavior: int x, y; printf("%d\n", &x == &y); int *p = malloc(sizeof(int)), *q = malloc(sizeof(int)); printf("%d\n", p == q); struct S { int a; int b; } s, *r = &s; printf("%d\n", &s.a + 1 == &(r->b)); The following not: int x, y; printf("%d\n", &x + 1 == &y);
-
- Aug 22, 2014
-
-
Robbert Krebbers authored
memory instead of the whole memory itself. This has the following advantages: * Avoid parametrization in {addresses,pointers,pointer_bits,bits}.v * Make {base_values,values}.v independent of the memory, this makes better parallelized compilation possible. * Allow small memories (e.g. singletons as used in separation logic) with addresses to objects in another part to be typed. * Some proofs become easier, because the memory environments are preserved under many operations (insert, force, lock, unlock). It also as the following disadvantages: * At all kinds of places we now have explicit casts from memories to memory environments. This is kind of ugly. Note, we cannot declare memenv_of as a Coercion because it is non-uniform. * It is a bit inefficient with respect to the interpreter, because memory environments are finite functions instead of proper functions, so calling memenv_of often (which we do) is not too good.
-
- May 22, 2014
-
-
Robbert Krebbers authored
* Parametrize refinements with memories. This way, refinements imply typing, for example [w1 ⊑{Γ,f@m1↦m2} w2 : τ → (Γ,m1) ⊢ w1 : τ]. This relieves us from various hacks. * Use addresses instead of index/references pairs for lookup and alter operations on memories. * Prove various disjointness properties.
-
- May 02, 2014
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- Aug 21, 2013
-
-
Robbert Krebbers authored
-
- Jun 24, 2013
-
-
Robbert Krebbers authored
-