- Feb 01, 2017
-
-
Robbert Krebbers authored
It no longer requires the functions on both sides of the relation to be syntactically the same.
-
- Jan 24, 2017
-
-
Robbert Krebbers authored
-
- Jan 05, 2017
-
-
Ralf Jung authored
-
- Jan 03, 2017
-
-
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
-
- Dec 09, 2016
-
-
Ralf Jung authored
-
- Dec 08, 2016
-
-
Robbert Krebbers authored
case H; clear H would fail when H is dependent whereas destruct H would succeed on that, but just not clear it.
-
Robbert Krebbers authored
The case tactic is faster than destruct.
-
Robbert Krebbers authored
Example: Goal ¬False → ¬False → ¬False → ¬False → ¬False → ¬False → ¬False → False. Proof. intros. done. (* takes very long *)
-
- Dec 05, 2016
-
-
Robbert Krebbers authored
Using this new definition we can express being contractive using a Proper. This has the following advantages: - It makes it easier to state that a function with multiple arguments is contractive (in all or some arguments). - A solve_contractive tactic can be implemented by extending the solve_proper tactic.
-
- Nov 23, 2016
-
-
Robbert Krebbers authored
-
- Nov 22, 2016
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- Nov 21, 2016
-
-
Ralf Jung authored
In particular, make sure we always try eassumption before reflexivity.
-
- Nov 17, 2016
-
-
Ralf Jung authored
This has bothered me repeatedly in proofs, now I finally got around to fix it at the source
-
- Nov 16, 2016
-
-
Robbert Krebbers authored
-
- Oct 27, 2016
- Aug 29, 2016
-
-
Ralf Jung authored
-
- Aug 22, 2016
-
-
Ralf Jung authored
-
- Aug 19, 2016
-
-
Robbert Krebbers authored
There is still the reals stuff, which is caused by importint Psatz (needed for lia) and eq_rect_eq which is caused by importint Eqdep_dec.
-
- Jul 01, 2016
-
-
Robbert Krebbers authored
-
- Jun 26, 2016
-
-
Robbert Krebbers authored
This is very experimental. It should now deal better with stuff like: match x with .. end = match y with .. end In case there is a hypothesis H : R x y, it will try to destruct it.
-
- May 31, 2016
-
-
Ralf Jung authored
-
Robbert Krebbers authored
-
Robbert Krebbers authored
Now, for example, when having equiv (Some x) (Some y) it will try to find a Proper whose range is an equiv before hitting the eq instance. My hack is general enough that it works for Forall2, dist, and so on, too.
-
- Apr 11, 2016
-
-
Robbert Krebbers authored
-
- Mar 10, 2016
-
-
Robbert Krebbers authored
Thanks to Amin Timany for the suggestion.
-
- Mar 05, 2016
-
-
Ralf Jung authored
-
- Mar 04, 2016
-
-
Robbert Krebbers authored
-
- Mar 03, 2016
-
-
Robbert Krebbers authored
Contrary to destruct_conj from Program.
-
Robbert Krebbers authored
-
- Feb 25, 2016
-
-
Ralf Jung authored
-
Robbert Krebbers authored
It now turns setoid equalities into Leibniz equalities when possible, and substitutes those.
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
Ralf Jung authored
In principle, we could now un-seal heap_mapsto, saved_prop_own etc., and mark them as "Typeclass Opaque", and ecancel would still work just as fast as it does now. Thanks to Matthieu for pointing me to this unify feature.
-
Ralf Jung authored
-
Ralf Jung authored
-
Robbert Krebbers authored
-
Ralf Jung authored
This replaces f_equiv and solve_proper with our own, hopefully better, versions
-