- 05 Jan, 2013 1 commit
-
-
Robbert Krebbers authored
* Define the standard strict order on pre orders. * Prove that this strict order is well founded for finite sets and finite maps. We also provide some utilities to compute with well founded recursion. * Improve the "simplify_option_equality" tactic to handle more cases. * Axiomatize finiteness of finite maps by translation to lists, instead of by them having a finite domain. * Prove many additional properties of finite maps. * Add many functions and theorems on lists, including: permutations, resize, filter, ...
-
- 12 Nov, 2012 1 commit
-
-
Robbert Krebbers authored
Most interestingly: * Use [lia] instead of [omega] everywhere * More many generic lemmas on the memory to the theory on finite maps. * Many additional list lemmas. * A new interface for a monad for collections, which is now also used by the collection tactics. * Provide an additional finite collection implementation using unordered lists without duplicates removed. This implementation forms a monad (just the list monad in disguise).
-
- 19 Oct, 2012 1 commit
-
-
Robbert Krebbers authored
The following things have been changed in this revision: * We now give a small step semantics for expressions. The denotational semantics only works for side-effect free expressions. * Dynamically allocated memory through alloc and free is now supported. * The following expressions are added: assignment, function call, unary operators, conditional, alloc, and free. * Some customary induction schemes for expressions are proven. * The axiomatic semantics (and its interpretation) have been changed in order to deal with non-deterministic expressions. * We have added inversion schemes based on small inversions for the operational semantics. Inversions using these schemes are much faster. * We improved the statement preservation proof of the operational semantics. * We now use a variant of SsReflect's [by] and [done], instead of Coq's [now] and [easy]. The [done] tactic is much faster as it does not perform inversions. * Add theory, definitions and notations on vectors. * Separate theory on contexts. * Change [Arguments] declarations to ensure better unfolding.
-
- 10 Oct, 2012 1 commit
-
-
Robbert Krebbers authored
* Introduce a type class and notation for disjointness. * Define unions of finite maps (a lot of theory has still to be moved from memory to fin_maps). * Prove the Hoare rule for function calls with arguments. * Prove the Hoare rule to add sets of functions. * Some additional theory on lifting of assertions.
-
- 04 Sep, 2012 1 commit
-
-
Robbert Krebbers authored
-
- 30 Aug, 2012 1 commit
-
-
Robbert Krebbers authored
-
- 29 Aug, 2012 1 commit
-
-
Robbert Krebbers authored
improve some definitions, simplify some proofs.
-
- 21 Aug, 2012 1 commit
-
-
Robbert Krebbers authored
The main changes are: * Function calls in the operational semantics * Mutually recursive function calls in the axiomatic semantics * A general definition of the interpretation of the axiomatic semantics so as to improve reusability (useful for function calls, and also for expressions in future versions) * Type classes for stack independent, memory independent, and memory extensible assertions, and a lot of instances to automatically derive these properties. * Many additional lemmas on the memory and more robust tactics to simplify goals involving is_free and mem_disjoint * Proof of preservation of statements in the smallstep semantics * Some new tactics: feed, feed destruct, feed inversion, etc... * More robust tactic scripts using bullets and structured scripts * Truncate most lines at 80 characters
-
- 21 Jun, 2012 1 commit
-
-
Robbert Krebbers authored
-
- 11 Jun, 2012 1 commit
-
-
Robbert Krebbers authored
-