Changes in preparation of the C type system and C front-end language
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 l-values instead of r-values. 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.
Showing
- theories/assoc.v 1 addition, 1 deletiontheories/assoc.v
- theories/base.v 18 additions, 33 deletionstheories/base.v
- theories/countable.v 3 additions, 3 deletionstheories/countable.v
- theories/fin_maps.v 14 additions, 7 deletionstheories/fin_maps.v
- theories/finite.v 1 addition, 1 deletiontheories/finite.v
- theories/hashset.v 22 additions, 3 deletionstheories/hashset.v
- theories/list.v 31 additions, 30 deletionstheories/list.v
- theories/map.v 0 additions, 144 deletionstheories/map.v
- theories/mapset.v 22 additions, 18 deletionstheories/mapset.v
- theories/natmap.v 36 additions, 17 deletionstheories/natmap.v
- theories/nmap.v 1 addition, 1 deletiontheories/nmap.v
- theories/numbers.v 2 additions, 1 deletiontheories/numbers.v
- theories/option.v 6 additions, 6 deletionstheories/option.v
- theories/orders.v 1 addition, 1 deletiontheories/orders.v
- theories/pmap.v 45 additions, 32 deletionstheories/pmap.v
- theories/tactics.v 46 additions, 2 deletionstheories/tactics.v
- theories/zmap.v 3 additions, 2 deletionstheories/zmap.v
Loading
Please register or sign in to comment