 13 Mar, 2020 24 commits


Robbert Krebbers authored
This follows iris!387 This closes issue #54.

 29 Jan, 2019 24 commits


Robbert Krebbers authored

 24 May, 2018 24 commits


Ralf Jung authored
The notation was parsingonly and all it did was reorder the arguments for from_option. This creates just a needless divergence between what is written and what is printed. Also, removing it frees the name for maybe introducing a function or notation `default` with a type like `T > option T > T`.

 12 Nov, 2017 24 commits


Robbert Krebbers authored
This follows the associativity in Haskell. So, something like f <$> g <$> h Is now parsed as: (f <$> g) <$> h Since the functor is a generalized form of function application, this also now also corresponds with the associativity of function application, which is also left associative.

 08 Sep, 2017 24 commits


Robbert Krebbers authored
See also Coq bug #5712.

 15 Mar, 2017 24 commits


Robbert Krebbers authored

 31 Jan, 2017 24 commits


Robbert Krebbers authored

Ralf Jung authored

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

 20 Sep, 2016 24 commits


Robbert Krebbers authored

 27 Jul, 2016 24 commits


Robbert Krebbers authored
This reverts commit 20b4ae55bdf00edb751ccdab3eb876cb9b13c99f, which does not seem to work with Coq 8.5pl2 (I accidentally tested with 8.5pl1).

Robbert Krebbers authored
This makes type checking more directed, and somewhat more predictable. On the downside, it makes it impossible to declare the singleton on lists as an instance of SingletonM and the insert and alter operations on functions as instances of Alter and Insert. However, these were not used often anyway.

 19 Feb, 2016 24 commits


Robbert Krebbers authored

 17 Feb, 2016 24 commits


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

 13 Feb, 2016 24 commits


Robbert Krebbers authored
Also, make our redefinition of done more robust under different orders of Importing modules.

 16 Nov, 2015 24 commits


Robbert Krebbers authored

 01 Feb, 2017 24 commits


Robbert Krebbers authored
The port makes the following notable changes: * The carrier types of separation algebras and integer environments are no longer in Set. Now they have a type at a fixed type level above Set. This both works better in 8.5 and makes the formalization more general. I have tried putting them at polymorphic type levels, but that increased the compilation time by an order of magnitude. * I am using a custom f_equal tactic written in Ltac to circumvent bug #4069. That bug has been fixed, so this custom tactic can be removed when the next beta of 8.5 is out.

 08 Feb, 2015 24 commits


Robbert Krebbers authored

 30 Sep, 2014 24 commits


Robbert Krebbers authored
Now it only performs injection on hypotheses of the shape f .. = f ..

 16 Jun, 2014 24 commits


Robbert Krebbers authored
Major changes: * Make void a base type, and include a proper void base value. This is necessary because expressions (free, functions without return value) can yield a void. We now also allow void casts conforming to the C standard. * Various missing lemmas about typing, weakening, decidability, ... * The operations "free" and "alloc" now operate on lvalues instead of rvalues. This removes some duplication. * Improve notations of expressions and statements. Change the presence of the operators conforming to the C standard. Small changes: * Use the classes "Typed" and "TypeCheck" for validity of indexes in memory. This gives more uniform notations. * New tactic "typed_inversion" performs inversion on an inductive predicate of type "Typed" and folds the premises. * Remove a horrible hack in the definitions of the classes "FMap", "MBind", "OMap", "Alter" that was used to let "simpl" behave better. Instead, we have defined a tactic "csimpl" that folds the results after performing an ordinary "simpl". * Fast operation to remove duplicates from lists using hashsets. * Make various type constructors (mainly finite map implementations) universe polymorphic by packing them into an inductive. This way, the whole C syntax can live in type, avoiding the need for (slow) universe checks.

 05 Jun, 2014 24 commits


Robbert Krebbers authored
Major changes: * A data structure to collect locked addresses in memory. * Operations to lock and unlock addresses. * Remove [ctree_Forall] and express it using [Forall] and [ctree_flatten]. This saves a lot of lines of code. * Add a [void] value. This value cannot be typed, but will be used as a dummy return value for functions with return type [void]. Minor changes: * Various deciders in preparation of the executable semantics. * Improve naming and notations. * Remove obsolete stuff.

 02 May, 2014 24 commits


Robbert Krebbers authored

Robbert Krebbers authored
