- Mar 15, 2016
-
-
Ralf Jung authored
-
- Mar 12, 2016
-
-
Ralf Jung authored
-
- Mar 10, 2016
-
-
Robbert Krebbers authored
Thanks to Amin Timany for the suggestion.
-
- Mar 07, 2016
-
-
Ralf Jung authored
-
- Mar 05, 2016
-
-
Robbert Krebbers authored
-
Ralf Jung authored
-
Ralf Jung authored
-
Ralf Jung authored
-
- Mar 04, 2016
-
-
Ralf Jung authored
-
Robbert Krebbers authored
-
- Mar 03, 2016
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- Mar 02, 2016
-
-
Robbert Krebbers authored
For consistency's sake.
-
Ralf Jung authored
-
Ralf Jung authored
get rid of substitution in Case (use lambdas); introduce Match as derived form that involves binders
-
Robbert Krebbers authored
We no longer abuse empty strings for anonymous binders. Instead, we now have a data type for binders: a binder is either named or anonymous.
-
Robbert Krebbers authored
-
- Feb 27, 2016
-
-
Robbert Krebbers authored
-
- Feb 23, 2016
-
-
Robbert Krebbers authored
-
Ralf Jung authored
-
- Feb 22, 2016
-
-
Robbert Krebbers authored
-
- Feb 21, 2016
-
-
Ralf Jung authored
-
- Feb 18, 2016
-
-
Ralf Jung authored
-
- Feb 17, 2016
-
-
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
-
- Feb 13, 2016
-
-
Robbert Krebbers authored
Also, make our redefinition of done more robust under different orders of Importing modules.
-
- Feb 12, 2016
-
-
Ralf Jung authored
-
- Feb 11, 2016
-
-
Robbert Krebbers authored
Also do some minor clean up.
-
Ralf Jung authored
tests.v is temporarily broken
-
Ralf Jung authored
-
- Feb 10, 2016
-
-
Robbert Krebbers authored
-
Ralf Jung authored
-
Robbert Krebbers authored
Now notations are pretty printed in the same way as they are parsed. Before "let x := e1 in e2" was notation for "(fun x => e2) e1", resulting in overlapping notations for the same thing.
-
- Feb 09, 2016
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
We can use a named representation because we only substitute closed values. This idea is borrowed from Pierce's Software Foundations. The named representation has the following advantages: * Programs are much better readable than those using De Bruijn indexes. * Substitutions on closed terms (where all variables are explicit strings) can be performed by a mere simpl instead of Autosubst's asimpl. The performance of simpl seems better than asimpl. * Syntactic sugar refolds better.
-
Robbert Krebbers authored
-
Ralf Jung authored
add basic notions of literals, unary operators and binary operators, and use them to define +, -, <=, ...
-
- Feb 04, 2016
-
-
Robbert Krebbers authored
-
- Feb 03, 2016