"git@ic-gitlab.epfl.ch:ahoffman/gyacomo.git" did not exist on "6ea9166a3fdc98b331a6264aa675462000790e41"
Implement a new XlangAnalysisPhase
This commit introduces a new XlangAnalysisPhase that run all the xlang phase as well as the AnalysisPhase. It updates the Main accordingly. The reason for this change is to be able to correctly control the --functions option as well as transforming each VerificationCondition about function postcondition into loop invariant. The previous solution was to use some mutable states inside the FunDef object. Those are cleaned by this commit. To do so, it was necessary to change the transformation phases signature in order to return along with the modified program a Set or Map (depending on which phase) of freshly introduced functions and their correspondance in the original program. One small change that was necessary was to not print the verification report in the analysis phase but only in the Main. This allows the XlangAnalysisPhase to update correctly the verification conditions in the report before it gets printed. This is also arguably a better design decision to have it printed in the Main since it was returned by the AnalysisPhase.
Showing
- src/main/scala/leon/LeonOption.scala 1 addition, 0 deletionssrc/main/scala/leon/LeonOption.scala
- src/main/scala/leon/Main.scala 8 additions, 13 deletionssrc/main/scala/leon/Main.scala
- src/main/scala/leon/TypeChecking.scala 0 additions, 2 deletionssrc/main/scala/leon/TypeChecking.scala
- src/main/scala/leon/UnitElimination.scala 0 additions, 4 deletionssrc/main/scala/leon/UnitElimination.scala
- src/main/scala/leon/purescala/Definitions.scala 0 additions, 5 deletionssrc/main/scala/leon/purescala/Definitions.scala
- src/main/scala/leon/verification/AnalysisPhase.scala 0 additions, 1 deletionsrc/main/scala/leon/verification/AnalysisPhase.scala
- src/main/scala/leon/verification/DefaultTactic.scala 11 additions, 14 deletionssrc/main/scala/leon/verification/DefaultTactic.scala
- src/main/scala/leon/verification/VerificationCondition.scala 1 addition, 0 deletionssrc/main/scala/leon/verification/VerificationCondition.scala
- src/main/scala/leon/xlang/ArrayTransformation.scala 0 additions, 4 deletionssrc/main/scala/leon/xlang/ArrayTransformation.scala
- src/main/scala/leon/xlang/FunctionClosure.scala 19 additions, 8 deletionssrc/main/scala/leon/xlang/FunctionClosure.scala
- src/main/scala/leon/xlang/ImperativeCodeElimination.scala 9 additions, 7 deletionssrc/main/scala/leon/xlang/ImperativeCodeElimination.scala
- src/main/scala/leon/xlang/Trees.scala 0 additions, 16 deletionssrc/main/scala/leon/xlang/Trees.scala
- src/main/scala/leon/xlang/XlangAnalysisPhase.scala 80 additions, 0 deletionssrc/main/scala/leon/xlang/XlangAnalysisPhase.scala
- src/test/scala/leon/test/verification/XLangVerificationRegression.scala 1 addition, 6 deletions.../leon/test/verification/XLangVerificationRegression.scala
Loading
Please register or sign in to comment