Revision ba545a9c82d684be976cec846ab5359fabbcd4dd authored by Benjamin Grégoire on 12 June 2018, 05:31:11 UTC, committed by Pierre-Yves Strub on 12 June 2018, 05:34:41 UTC
The tactic statically unroll while loops of the form

  x <- int-constant
  while (guard) {
    body (does not write x);
    x <- f(x);
  }

where "guard" and "f" can be statically evaluated at each
iteration. The code is then replaced by the while loop
fully unrolled.

The tactic does not terminate if the unrolling leads to
a infinite process.
1 parent 43fd7aa
Raw File
_tags
# --------------------------------------------------------------------
true : use_menhir, menhir_explain, menhir_table
true : debug
true : warn_Z, warn_Y, warn_+28, warn_-23, warn_+33, warn_-58, warn_-3
true : -traverse
true : bin_annot
# true : menhir_trace
# true : bisect

# --------------------------------------------------------------------
<src>            : include
<src/why3>       : include
<src/phl>        : include
<src/extraction> : include
<src/system>     : include

# --------------------------------------------------------------------
<src/*.{ml,mli}>      : package(batteries,menhirLib,why3,inifiles,zarith,pcre)
<src/*/*.{ml,mli}>    : package(batteries,menhirLib,why3,inifiles,zarith,pcre)
<src/*.{native,byte}> : package(batteries,menhirLib,why3,inifiles,zarith,pcre)
back to top