https://github.com/EasyCrypt/easycrypt
Raw File
Tip revision: abd5db46c3efaa828477c1d93f273a4e16d5ad59 authored by Antoine Séré on 09 September 2021, 15:27:29 UTC
For loop temporarly removed
Tip revision: abd5db4
while_free.ec
require import AllCore Int StdOrder.
import IntOrder.

module MAIN = {
  proc id_while (n : int) : int = {
    var i, one;
    i <- 0;
    one <- 1;
    while (i < n) {
      i <- i + one;
    }
    return i;
  }
}.

lemma id_while_free m :
  hoare [MAIN.id_while : (n = m) /\ (0 <= n) ==> res = m].
proof.
  proc.
  sp.
  while(i <= n).
  + by sp; skip => /> /#.
  by skip => /> /#.
qed.
back to top