 20 Sep, 2016 2 commits


Robbert Krebbers authored
This also solves a name clash with the extension order of CMRAs.

Robbert Krebbers authored

 27 Jul, 2016 2 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.

 22 Jul, 2016 2 commits


Robbert Krebbers authored

Robbert Krebbers authored
There was not really a need for the lattice type classes, so I removed these.

 01 Jul, 2016 1 commit


JacquesHenri Jourdan authored

 14 Jun, 2016 1 commit


Robbert Krebbers authored

 30 May, 2016 2 commits


Robbert Krebbers authored

Robbert Krebbers authored

 27 May, 2016 1 commit


Robbert Krebbers authored

 21 Mar, 2016 1 commit


Robbert Krebbers authored

 21 Feb, 2016 1 commit


Ralf Jung authored

 20 Feb, 2016 1 commit


Ralf Jung authored

 19 Feb, 2016 1 commit


Robbert Krebbers authored

 17 Feb, 2016 3 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

Robbert Krebbers authored

 16 Feb, 2016 1 commit


Robbert Krebbers authored
The singleton maps notation is now also more consistent with the insert <[_ := _]> _ notation for maps.

 14 Feb, 2016 2 commits


Robbert Krebbers authored

Robbert Krebbers authored

 13 Feb, 2016 2 commits


Robbert Krebbers authored

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

 11 Feb, 2016 1 commit


Robbert Krebbers authored
Also do some minor clean up.

 16 Jan, 2016 1 commit


Robbert Krebbers authored

 14 Jan, 2016 1 commit


Robbert Krebbers authored

 12 Jan, 2016 1 commit


Robbert Krebbers authored

 21 Dec, 2015 1 commit


Robbert Krebbers authored

 15 Dec, 2015 2 commits


Robbert Krebbers authored

Robbert Krebbers authored

 18 Nov, 2015 1 commit


Robbert Krebbers authored

 16 Nov, 2015 1 commit


Robbert Krebbers authored

 11 Nov, 2015 1 commit


Robbert Krebbers authored

 03 Feb, 2017 1 commit


Robbert Krebbers authored

 01 Feb, 2017 1 commit


Robbert Krebbers authored

 04 Jun, 2015 1 commit


Robbert Krebbers authored

 22 Apr, 2015 1 commit


Robbert Krebbers authored

 25 Feb, 2015 1 commit


Robbert Krebbers authored

 08 Feb, 2015 2 commits


Robbert Krebbers authored

Robbert Krebbers authored
Important changes in the core semantics: * Types extended with function types. Since function types are a special kind of pointer types, types now have an additional mutual part called "ptr_type". * Pointers extended with function pointers. Theses are just names that refer to an actual function in the function environment. * Typing environments extended to assign argument and return types to function names. Before we used a separate environment for these, but since the argument and return types are already needed to type function pointers, this environment would appear in pretty much every typing judgment. As a sideeffect, the frontend has been rewritten entirely. The important changes are: * Type checking of expressions is more involved: there is a special kind of expression type corresponding to a function designator. * To handle things like block scoped extern function, more statefullness was needed. To prepare for future extensions, the entire frontend now uses a state monad.
