Revision 5796046f713e0800c387990f4183c64d2a1d9f23 authored by Raphaël Cauderlier on 31 May 2020, 13:08:41 UTC, committed by Arvid Jakobsson on 15 September 2020, 12:28:46 UTC
The following simplifications are applied: - eval_seq_precond immediately returns `False` on instruction sequences ending with a `FAILWITH` (it does so by looking at the tail-fail flag) - `match x with C1 y => phi y | C2 y => False` becomes `exists y, x = C1 y /\ phi y` - the code produced for `IF_ f` depends on the if-family `f` to avoid the previous double pattern matching: for example for options it produces `match o with | Some x -> ... | None -> ... end` instead of `match (match o with Some x -> inl x | None -> inr tt end) with inl x -> ... | inr y -> ... end`. Thanks to these simplifications, the proofs in the contract_coq directory are simpler.
1 parent 1f739de
File | Mode | Size |
---|---|---|
doc | ||
scripts | ||
src | ||
.gitignore | -rw-r--r-- | 329 bytes |
.gitlab-ci.yml | -rw-r--r-- | 920 bytes |
LICENSE | -rw-r--r-- | 1.1 KB |
Makefile.local | -rw-r--r-- | 379 bytes |
README.org | -rw-r--r-- | 8.5 KB |
_CoqProject | -rw-r--r-- | 4 bytes |
configure | -rwxr-xr-x | 1.6 KB |
coq-mi-cho-coq.install | -rw-r--r-- | 73 bytes |
coq-mi-cho-coq.opam | -rw-r--r-- | 1.4 KB |
Computing file changes ...