swh:1:snp:0e3a7a90b5b85feca1ee6285ebc0301d2b85deae
Revision 3f4a0bd5596888cd8d28b97687d477942187aa5f authored by Pierre-Yves Strub on 11 June 2022, 06:10:21 UTC, committed by Adrien Koutsos on 13 June 2022, 09:22:31 UTC
Loops' epilogs must now be deterministic and loop/calls-free. This forbids the following unsoundness: ``` require import AllCore DBool. module E = { var i,j : int proc foo () = { var c; i <- 0; j <- 0; c <- false; while (!c) { i <- i + 1; j <- j + 1; c <$ {0,1}; } return i = j; } proc bar () = { var c; i <- 0; j <- 0; c <- false; while (!c) { i <- i + 1; c <$ {0,1}; } c <- false; while (!c) { j <- j + 1; c <$ {0,1}; } return i = j; } }. equiv bad : E.foo ~ E.bar : true ==> ={res}. proof. proc. fission{1} 4!1 @1,2. by sim. qed. ``` Fix #210
1 parent b9af81d
Tip revision: ba37062b0bcf587228febfb01e728f5ceb6d4aba authored by Pierre-Yves Strub on 05 January 2023, 13:05:38 UTC
runtest: ECRJOBS env. variable
runtest: ECRJOBS env. variable
Tip revision: ba37062
File | Mode | Size |
---|---|---|
.github | ||
config | ||
examples | ||
lint | ||
scripts | ||
src | ||
theories | ||
.dir-locals.el | -rw-r--r-- | 285 bytes |
.gitignore | -rw-r--r-- | 118 bytes |
AUTHORS | -rw-r--r-- | 543 bytes |
LICENSE | -rw-r--r-- | 1.2 KB |
Makefile | -rw-r--r-- | 1.2 KB |
README.md | -rw-r--r-- | 7.7 KB |
default.nix | -rw-r--r-- | 855 bytes |
dune | -rw-r--r-- | 116 bytes |
dune-project | -rw-r--r-- | 388 bytes |
easycrypt.opam | -rw-r--r-- | 1.2 KB |
easycrypt.opam.template | -rw-r--r-- | 915 bytes |
easycrypt.png | -rw-r--r-- | 182.6 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...