 06 Feb, 2017 1 commit


Ralf Jung authored

 11 Jan, 2017 1 commit


Ralf Jung authored
This approach is originally by Robbert

 05 Jan, 2017 1 commit


Ralf Jung authored

 03 Jan, 2017 1 commit


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

 16 Dec, 2016 2 commits
 09 Dec, 2016 1 commit


Ralf Jung authored

 24 Nov, 2016 1 commit


Robbert Krebbers authored

 22 Nov, 2016 2 commits


Robbert Krebbers authored

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 illtyped.

 17 Nov, 2016 1 commit


Robbert Krebbers authored

 28 Oct, 2016 1 commit


Robbert Krebbers authored

 13 Oct, 2016 1 commit


Ralf Jung authored

 20 Sep, 2016 1 commit


Robbert Krebbers authored

 07 Sep, 2016 1 commit


JacquesHenri Jourdan authored
Define disjointness of namespaces in terms of masks.\n\nThe proofs are made simpler and some lemmas get more general.

 29 Aug, 2016 1 commit


Robbert Krebbers authored
This way we ensure that Coq gives an error message when one accidentially writes "N ⊆ E" instead of "nclose N ⊆ E". Before, it used the ⊆ instance of lists.

 22 Jul, 2016 1 commit


Robbert Krebbers authored
Similar files (gmap, listset, ...) were already in singular form and matched the name of the set/map data type.

 20 Jul, 2016 2 commits


Robbert Krebbers authored

Robbert Krebbers authored
Both ndot and nclose involve encodings of countable types, and conversion should thus never unfold these definitions.

 04 Jul, 2016 1 commit


Robbert Krebbers authored

 02 Jul, 2016 1 commit


Robbert Krebbers authored

 01 Jul, 2016 1 commit


Robbert Krebbers authored

 30 Jun, 2016 2 commits


Robbert Krebbers authored

Robbert Krebbers authored
In particular, it no longer uses set_solver (which made it often slow or diverge) but a more specific lemma about subseteq.

 23 Mar, 2016 1 commit


Robbert Krebbers authored

 10 Mar, 2016 1 commit


Robbert Krebbers authored
Thanks to Amin Timany for the suggestion.

 24 Feb, 2016 1 commit


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.

 23 Feb, 2016 2 commits
 22 Feb, 2016 2 commits


Robbert Krebbers authored
The non applied one should be only parsing.

Ralf Jung authored

 19 Feb, 2016 1 commit


Robbert Krebbers authored

 18 Feb, 2016 1 commit


Ralf Jung authored

 17 Feb, 2016 3 commits


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.

Ralf Jung authored

 16 Feb, 2016 2 commits


Robbert Krebbers authored

Robbert Krebbers authored
Now that there is more of it, it deserves its own place :).
