https://github.com/EasyCrypt/easycrypt
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
History
Tip revision: ba545a9c82d684be976cec846ab5359fabbcd4dd authored by Benjamin Grégoire on 12 June 2018, 05:31:11 UTC
New tactic for static unrolling of "for-loops"
Tip revision: ba545a9
File Mode Size
phl
system
ec.ml -rw-r--r-- 11.1 KB
ecAlgTactic.ml -rw-r--r-- 8.5 KB
ecAlgTactic.mli -rw-r--r-- 1.5 KB
ecAlgebra.ml -rw-r--r-- 13.7 KB
ecAlgebra.mli -rw-r--r-- 4.9 KB
ecBaseLogic.ml -rw-r--r-- 842 bytes
ecBigInt.ml -rw-r--r-- 4.9 KB
ecBigInt.mli -rw-r--r-- 390 bytes
ecBigIntCore.ml -rw-r--r-- 2.0 KB
ecCommands.ml -rw-r--r-- 29.2 KB
ecCommands.mli -rw-r--r-- 1.9 KB
ecCoreFol.ml -rw-r--r-- 52.8 KB
ecCoreFol.mli -rw-r--r-- 13.7 KB
ecCoreGoal.ml -rw-r--r-- 35.9 KB
ecCoreGoal.mli -rw-r--r-- 16.5 KB
ecCoreHiPhl.ml -rw-r--r-- 2.6 KB
ecCoreHiPhl.mli -rw-r--r-- 985 bytes
ecCoreLib.ml -rw-r--r-- 5.9 KB
ecCoreLib.mli -rw-r--r-- 4.3 KB
ecDecl.ml -rw-r--r-- 8.6 KB
ecDecl.mli -rw-r--r-- 4.8 KB
ecEnv.ml -rw-r--r-- 104.8 KB
ecEnv.mli -rw-r--r-- 14.5 KB
ecField.ml -rw-r--r-- 6.3 KB
ecField.mli -rw-r--r-- 882 bytes
ecFol.ml -rw-r--r-- 24.3 KB
ecFol.mli -rw-r--r-- 5.9 KB
ecFortune.ml -rw-r--r-- 1.8 KB
ecFortune.mli -rw-r--r-- 488 bytes
ecGState.ml -rw-r--r-- 3.5 KB
ecGState.mli -rw-r--r-- 1.6 KB
ecGenRegexp.ml -rw-r--r-- 10.5 KB
ecHiGoal.ml -rw-r--r-- 59.0 KB
ecHiGoal.mli -rw-r--r-- 4.2 KB
ecHiInductive.ml -rw-r--r-- 12.9 KB
ecHiInductive.mli -rw-r--r-- 2.3 KB
ecHiNotations.ml -rw-r--r-- 3.8 KB
ecHiNotations.mli -rw-r--r-- 1022 bytes
ecHiPredicates.ml -rw-r--r-- 3.3 KB
ecHiPredicates.mli -rw-r--r-- 924 bytes
ecHiTacticals.ml -rw-r--r-- 14.5 KB
ecHiTacticals.mli -rw-r--r-- 683 bytes
ecIdent.ml -rw-r--r-- 2.0 KB
ecIdent.mli -rw-r--r-- 1.5 KB
ecInductive.ml -rw-r--r-- 9.5 KB
ecInductive.mli -rw-r--r-- 2.7 KB
ecIo.ml -rw-r--r-- 6.9 KB
ecIo.mli -rw-r--r-- 1.3 KB
ecLexer.mll -rw-r--r-- 18.1 KB
ecLoader.ml -rw-r--r-- 4.7 KB
ecLoader.mli -rw-r--r-- 868 bytes
ecLocation.ml -rw-r--r-- 2.9 KB
ecLocation.mli -rw-r--r-- 1.6 KB
ecLowGoal.ml -rw-r--r-- 71.6 KB
ecLowGoal.mli -rw-r--r-- 10.6 KB
ecLowPhlGoal.ml -rw-r--r-- 21.6 KB
ecMaps.ml -rw-r--r-- 4.1 KB
ecMatching.ml -rw-r--r-- 33.3 KB
ecMatching.mli -rw-r--r-- 5.9 KB
ecMemory.ml -rw-r--r-- 3.8 KB
ecMemory.mli -rw-r--r-- 2.7 KB
ecModules.ml -rw-r--r-- 20.4 KB
ecModules.mli -rw-r--r-- 6.8 KB
ecOptions.ml -rw-r--r-- 13.4 KB
ecOptions.mli -rw-r--r-- 1.7 KB
ecPException.ml -rw-r--r-- 1.7 KB
ecPException.mli -rw-r--r-- 583 bytes
ecPV.ml -rw-r--r-- 33.4 KB
ecPV.mli -rw-r--r-- 6.2 KB
ecParser.mly -rw-r--r-- 82.0 KB
ecParsetree.ml -rw-r--r-- 29.9 KB
ecPath.ml -rw-r--r-- 10.9 KB
ecPath.mli -rw-r--r-- 4.4 KB
ecPrinting.ml -rw-r--r-- 92.5 KB
ecPrinting.mli -rw-r--r-- 3.6 KB
ecProofTerm.ml -rw-r--r-- 29.4 KB
ecProofTerm.mli -rw-r--r-- 6.2 KB
ecProofTyping.ml -rw-r--r-- 7.7 KB
ecProofTyping.mli -rw-r--r-- 3.6 KB
ecProvers.ml -rw-r--r-- 16.1 KB
ecProvers.mli -rw-r--r-- 2.1 KB
ecReduction.ml -rw-r--r-- 27.4 KB
ecReduction.mli -rw-r--r-- 2.4 KB
ecRegexp.ml -rw-r--r-- 4.3 KB
ecRegexp.mli -rw-r--r-- 1.5 KB
ecRing.ml -rw-r--r-- 13.6 KB
ecRing.mli -rw-r--r-- 2.4 KB
ecScope.ml -rw-r--r-- 77.4 KB
ecScope.mli -rw-r--r-- 7.4 KB
ecSearch.ml -rw-r--r-- 3.4 KB
ecSearch.mli -rw-r--r-- 806 bytes
ecSection.ml -rw-r--r-- 15.0 KB
ecSection.mli -rw-r--r-- 1.8 KB
ecSmt.ml -rw-r--r-- 49.2 KB
ecSmt.mli -rw-r--r-- 1.2 KB
ecStrongRing.ml -rw-r--r-- 11.0 KB
ecSubst.ml -rw-r--r-- 20.3 KB
ecSubst.mli -rw-r--r-- 2.5 KB
ecSymbols.ml -rw-r--r-- 2.7 KB
ecSymbols.mli -rw-r--r-- 1.6 KB
ecTerminal.ml -rw-r--r-- 7.1 KB
ecTerminal.mli -rw-r--r-- 1.0 KB
ecThCloning.ml -rw-r--r-- 17.6 KB
ecThCloning.mli -rw-r--r-- 2.6 KB
ecTheory.ml -rw-r--r-- 2.9 KB
ecTheory.mli -rw-r--r-- 2.4 KB
ecTheoryReplay.ml -rw-r--r-- 21.0 KB
ecTheoryReplay.mli -rw-r--r-- 2.0 KB
ecTransMatching.ml -rw-r--r-- 4.1 KB
ecTransMatching.mli -rw-r--r-- 802 bytes
ecTypeClass.ml -rw-r--r-- 2.5 KB
ecTypeClass.mli -rw-r--r-- 841 bytes
ecTypes.ml -rw-r--r-- 29.1 KB
ecTypes.mli -rw-r--r-- 8.2 KB
ecTyping.ml -rw-r--r-- 82.8 KB
ecTyping.mli -rw-r--r-- 6.8 KB
ecUFind.ml -rw-r--r-- 5.6 KB
ecUFind.mli -rw-r--r-- 1.8 KB
ecUid.ml -rw-r--r-- 2.2 KB
ecUid.mli -rw-r--r-- 1.2 KB
ecUnify.ml -rw-r--r-- 14.0 KB
ecUnify.mli -rw-r--r-- 1.9 KB
ecUserMessages.ml -rw-r--r-- 24.9 KB
ecUserMessages.mli -rw-r--r-- 2.5 KB
ecUtils.ml -rw-r--r-- 20.0 KB
ecUtils.mli -rw-r--r-- 10.7 KB
ecVersion.ml.in -rw-r--r-- 801 bytes
ecVersion.mli -rw-r--r-- 598 bytes
ecWhy3Conv.ml -rw-r--r-- 6.2 KB
ecWhy3Conv.mli -rw-r--r-- 645 bytes

back to top