 02 Mar, 2016 1 commit


Ralf Jung authored

 27 Feb, 2016 1 commit


Robbert Krebbers authored

 26 Feb, 2016 1 commit


Robbert Krebbers authored

 25 Feb, 2016 11 commits


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 unseal 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

Ralf Jung authored

Robbert Krebbers authored
Conflicts: prelude/tactics.v

Robbert Krebbers authored

Ralf Jung authored
This replaces f_equiv and solve_proper with our own, hopefully better, versions

 24 Feb, 2016 5 commits


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

Ralf Jung authored

Robbert Krebbers authored
Also, use "set_solver by tac" to specify a tactic.

 23 Feb, 2016 1 commit


Ralf Jung authored

 22 Feb, 2016 9 commits


Robbert Krebbers authored
And now the part that I forgot to commit.

Robbert Krebbers authored

Robbert Krebbers authored
In most cases there is a lot of duplicate proof search performed by both naive_solver and eauto. Especially since naive_solver calls its tactic (in the case of set_solver this used to be eauto) quite eagerly this made it very slow. Note that set_solver is this too slow and should be improved.

Robbert Krebbers authored
In most cases there is a lot of duplicate proof search performed by both naive_solver and eauto. Especially since naive_solver calls its tactic (in the case of set_solver this used to be eauto) quite eagerly this made it very slow. Note that set_solver is this too slow and should be improved.

Robbert Krebbers authored

Robbert Krebbers authored

Ralf Jung authored

Ralf Jung authored

Ralf Jung authored

 21 Feb, 2016 1 commit


Ralf Jung authored

 20 Feb, 2016 2 commits
 19 Feb, 2016 1 commit


Robbert Krebbers authored

 17 Feb, 2016 7 commits


Robbert Krebbers authored

Robbert Krebbers authored
It is doing much more than just dealing with ∈, it solves all kinds of goals involving set operations (including ≡ and ⊆).

Robbert Krebbers authored
simplify_equality => simplify_eq simplify_equality' => simplify_eq/= simplify_map_equality => simplify_map_eq simplify_map_equality' => simplify_map_eq/= simplify_option_equality => simplify_option_eq simplify_list_equality => simplify_list_eq f_equal' => f_equal/= The /= suffixes (meaning: do simpl) are inspired by ssreflect.

Robbert Krebbers authored
The tactic injection H as H is doing exactly that.

Robbert Krebbers authored

Robbert Krebbers authored

Robbert Krebbers authored
