- Feb 28, 2016
-
-
Ralf Jung authored
-
- Feb 27, 2016
-
-
Robbert Krebbers authored
-
- Feb 26, 2016
-
-
Robbert Krebbers authored
It is based on type classes and can it be tuned by providing instances, for example, instances can be provided to mark that certain expressions are closed.
-
- Feb 25, 2016
-
-
Robbert Krebbers authored
-
Ralf Jung authored
This replaces f_equiv and solve_proper with our own, hopefully better, versions
-
Ralf Jung authored
-
Robbert Krebbers authored
-
- Feb 24, 2016
-
-
Robbert Krebbers authored
It now traverses terms at most once, whereas the setoid_rewrite approach was travering terms many times. Also, the tactic can now be extended by defining type class instances.
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Ralf Jung authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
Also, use "set_solver by tac" to specify a tactic.
-
Ralf Jung authored
-
- Feb 23, 2016
-
-
Ralf Jung authored
-
Ralf Jung authored
-
Robbert Krebbers authored
I am now also using reification to obtain the indexes corresponding to the stuff we want to cancel instead of relying on matching using Ltac.
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
barrier: strive for consistency between barrierGF and the inGF assumptions; also change some instance names
-
Robbert Krebbers authored
-
- Feb 22, 2016
-
-
Robbert Krebbers authored
And now the part that I forgot to commit.
-
Robbert Krebbers authored
Also, give all these global functors the suffix GF to avoid shadowing such as we had with authF. And add some type annotations for clarity.
-
Robbert Krebbers authored
-
Robbert Krebbers authored
The non applied one should be only parsing.
-
Robbert Krebbers authored
due to an accidental git commit --amend after a git push.
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
I added a new typeclass "inGF" to witness that a particular *functor* is part of \Sigma. inG, in contrast, witnesses a particular *CMRA* to be in there, after applying the functor to "\later iProp". inGF can be inferred if that functor is consed to the head of \Sigma, and it is preserved by consing a new functor to \Sigma. This is not the case for inG since the recursive occurence of \Sigma also changes. For evry construction (auth, sts, saved_prop), there is an instance infering the respective authG, stsG, savedPropG from an inGF. There is also a global inG_inGF, but Coq is unable to use it. I tried to instead have *only* inGF, since having both typeclasses seemed weird. However, then the actual type that e.g. "own" is about is the result of applying a functor, and Coq entirely fails to infer anything. I had to add a few type annotations in heap.v, because Coq tried to use the "authG_inGF" instance before the A got fixed, and ended up looping and expanding endlessly on that proof of timelessness. This does not seem entirely unreasonable, I was honestly surprised Coq was able to infer the types previously.
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
-
- Feb 21, 2016
-
-
Ralf Jung authored
This strengthens some lemmas that are written using the notion of closednes, shortening some proofs all the way up to barrier.v
-