diff --git a/.github/dependabot.yml b/.github/dependabot.yml index a35c2aa153c..bcab3352493 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,7 +5,19 @@ version: 2 updates: - - package-ecosystem: "gradle" # See documentation for possible values - directory: "/" # Location of package manifests + - package-ecosystem: "gradle" + directory: "/" schedule: - interval: "weekly" + interval: "monthly" + groups: + gradle-deps: + patterns: + - "*" + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" + groups: + github-actions-deps: + patterns: + - "*" diff --git a/.github/dlsmt.sh b/.github/dlsmt.sh index 049cb4a5261..3a3a7c1e7f4 100755 --- a/.github/dlsmt.sh +++ b/.github/dlsmt.sh @@ -1,6 +1,6 @@ # No shebang! -## Weigl's little helper to download SMT-solvers. +## Weigl's little helper to download SMT-solvers. # SPDX-License-Identifier: GPL-2.0-or-later # This script is meant to be executed inside an Github Action to download the SMT-solver. @@ -27,6 +27,7 @@ mkdir smt-solvers cd smt-solvers +set -x # exit on error ################################################# echo "::group::{install z3}" @@ -36,7 +37,10 @@ if readlink -f */bin/z3; then echo "::notice::{Z3 found. Caching works! Skip installation}" else echo "Download Z3" - gh release download --skip-existing -p 'z3-*-x64-glibc-*.zip' -R Z3Prover/z3 + rm z3-*.zip + # gh release download --skip-existing -p 'z3-*-x64-glibc-2.35.zip' -R Z3Prover/z3 + ## pin to a release + wget -q https://github.com/Z3Prover/z3/releases/download/z3-4.13.0/z3-4.13.0-x64-glibc-2.35.zip unzip -n z3*.zip rm z3-*-x64-glibc-*.zip fi @@ -51,14 +55,19 @@ echo "::endgroup::" ################################################# echo "::group::{install cvc5}" -if -f cvc5-Linux; then - echo "::notice::{Z3 found. Caching works! Skip installation}" +if -f cvc5-Linux-static/bin/cvc5; then + echo "::notice::{CVC5 found. Caching works! Skip installation}" else echo "Install CVC5" - gh release download --skip-existing -p 'cvc5-Linux' -R cvc5/cvc5 + # does not work anymore + # gh release download --skip-existing -p 'cvc5-Linux' -R cvc5/cvc5 + + wget -q https://github.com/cvc5/cvc5/releases/download/cvc5-1.1.2/cvc5-Linux-static.zip + unzip cvc5-Linux-static.zip + rm cvc5-Linux-static.zip fi -CVC5=$(readlink -f cvc5-Linux) +CVC5=$(readlink -f cvc5-Linux-static/bin/cvc5) echo "CVC5 installed and added to path: CVC5" chmod u+x $CVC5 echo $(dirname $CVC5) >> $GITHUB_PATH diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index c376da14301..9125d0b7a5c 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -2,8 +2,8 @@ Thanks for submitting this pull request for KeY. Since the project has a strict review policy, please make the reviewer's job easier by providing the necessary information -in the text below. The comments may remain since they will be -invisible when showing the PR. +in the text below. The comments can be deleted, but may also +remain since they will be invisible when showing the PR. --> ## Related Issue @@ -17,26 +17,48 @@ This pull request addresses #. +## Plan + + +* [ ] Implement feature 1 +* [ ] Implement feature 2 +* [ ] Code cleanup +* [ ] Document the changes + ## Type of pull request - + -- [ ] Bug fix (non-breaking change which fixes an issue) -- [ ] Refactoring (behaviour should not change or only minimally change) -- [ ] New feature (non-breaking change which adds functionality) -- [ ] Breaking change (fix or feature that would cause existing functionality to change) -- [ ] There are changes to the (Java) code -- [ ] There are changes to the taclet rule base -- [ ] There are changes to the deployment/CI infrastructure (gradle, github, ...) -- [ ] Other: +- Bug fix (non-breaking change which fixes an issue) +- Refactoring (behaviour should not change or only minimally change) +- New feature (non-breaking change which adds functionality) +- Breaking change (fix or feature that would cause existing functionality to change) +- There are changes to the (Java) code +- There are changes to the taclet rule base +- There are changes to the deployment/CI infrastructure (gradle, github, ...) +- Other: ## Ensuring quality + + -- [ ] I made sure that introduced/changed code is well documented (javadoc and inline comments). -- [ ] I made sure that new/changed end-user features are well documented (https://github.com/KeYProject/key-docs). -- [ ] I added new test case(s) for new functionality. -- [ ] I have tested the feature as follows: ... -- [ ] I have checked that runtime performance has not deteriorated. +- I made sure that introduced/changed code is well documented (javadoc and inline comments). +- I made sure that new/changed end-user features are well documented (https://github.com/KeYProject/key-docs). +- I added new test case(s) for new functionality. +- I have tested the feature as follows: ... +- I have checked that runtime performance has not deteriorated. ## Additional information and contact(s) diff --git a/.github/workflows/code_quality.yml b/.github/workflows/code_quality.yml index a3bd4d9a1b2..c3aecbc0256 100644 --- a/.github/workflows/code_quality.yml +++ b/.github/workflows/code_quality.yml @@ -9,6 +9,22 @@ on: - 'KeY-*' jobs: + checkerFramework: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 21 + uses: actions/setup-java@v3 + with: + java-version: 21 + distribution: 'corretto' + cache: 'gradle' + - name: Build with Gradle + uses: gradle/gradle-build-action@v2.4.2 + with: + arguments: -DENABLE_NULLNESS=true compileTest + + qodana: runs-on: ubuntu-latest steps: diff --git a/README.md b/README.md index 0d170796ae0..e9d834c472a 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ The current version of KeY is 2.12.2, licensed under GPL v2. Feel free to use the project templates to get started using KeY: * [For Verification Projects](https://github.com/KeYProject/verification-project-template) * [Using as a Library](https://github.com/KeYProject/key-java-example) -* [Using as a Symbolic Execution Backend](https://github.com/KeYProject/key-symbex-example) +* [Using as a Symbolic Execution Backend](https://github.com/KeYProject/symbex-java-example) ## Requirements diff --git a/build.gradle b/build.gradle index 0cace069f6c..31395c205f8 100644 --- a/build.gradle +++ b/build.gradle @@ -22,6 +22,9 @@ plugins { // Code formatting id "com.diffplug.spotless" version "6.25.0" + + // EISOP Checker Framework + id "org.checkerframework" version "0.6.28" } // Configure this project for use inside IntelliJ: @@ -53,6 +56,7 @@ subprojects { apply plugin: "com.diffplug.spotless" apply plugin: "checkstyle" apply plugin: "pmd" + apply plugin: "org.checkerframework" group = rootProject.group version = rootProject.version @@ -70,9 +74,22 @@ subprojects { } dependencies { + implementation("org.slf4j:slf4j-api:2.0.13") implementation("org.slf4j:slf4j-api:2.0.12") + testImplementation("ch.qos.logback:logback-classic:1.4.8") + + //compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.12.0' + //compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.12.0' + + compileOnly("org.jspecify:jspecify:0.3.0") + testCompileOnly("org.jspecify:jspecify:0.3.0") + def eisop_version = "3.42.0-eisop2" + compileOnly "io.github.eisop:checker-qual:$eisop_version" + compileOnly "io.github.eisop:checker-util:$eisop_version" + testCompileOnly "io.github.eisop:checker-qual:$eisop_version" + checkerFramework "io.github.eisop:checker:$eisop_version" - testImplementation("ch.qos.logback:logback-classic:1.5.3") + testImplementation("ch.qos.logback:logback-classic:1.5.6") testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2' testImplementation 'org.junit.jupiter:junit-jupiter-params:5.10.2' testImplementation project(':key.util') @@ -80,8 +97,6 @@ subprojects { testCompileOnly 'junit:junit:4.13.2' testRuntimeOnly 'org.junit.vintage:junit-vintage-engine:5.10.2' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.2' - - implementation("org.jspecify:jspecify:0.3.0") } tasks.withType(JavaCompile) { @@ -346,6 +361,19 @@ subprojects { } } +// checkerFramework { +// checkers = [ +// "org.checkerframework.checker.nullness.NullnessChecker", +// ] +// extraJavacArgs = [ +// "-AonlyDefs=^org\\.key_project\\.util", +// "-Xmaxerrs", "10000", +// "-Astubs=$projectDir/src/main/checkerframework", +// "-Werror", +// "-Aversion", +// ] +// } + afterEvaluate { // required so project.description is non-null as set by sub build.gradle publishing { publications { diff --git a/key.core.rifl/src/main/resources/de.uka.ilkd.key.util/rifl/blueprint_rifl.key b/key.core.rifl/src/main/resources/de.uka.ilkd.key.util/rifl/blueprint_rifl.key index 8a037c8ce28..23e944e4752 100644 --- a/key.core.rifl/src/main/resources/de.uka.ilkd.key.util/rifl/blueprint_rifl.key +++ b/key.core.rifl/src/main/resources/de.uka.ilkd.key.util/rifl/blueprint_rifl.key @@ -41,11 +41,11 @@ \javaSource "%%JAVA_SOURCE%%"; -\proofObligation "#Proof Obligation Settings -name=%%PO_NAME%% -contract=%%PO_NAME%% -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "%%PO_NAME%%", + "contract": "%%PO_NAME%%", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/rule/label/FormulaTermLabelRefactoring.java b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/rule/label/FormulaTermLabelRefactoring.java index 8773f536ec1..f55f6111dcc 100644 --- a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/rule/label/FormulaTermLabelRefactoring.java +++ b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/rule/label/FormulaTermLabelRefactoring.java @@ -384,7 +384,7 @@ public static boolean containsSequentFormulasToRefactor(TermLabelState state) { @SuppressWarnings("unchecked") Set sfSet = (Set) labelState.get(SEQUENT_FORMULA_REFACTORING_REQUIRED); - return !CollectionUtil.isEmpty(sfSet); + return sfSet != null && !sfSet.isEmpty(); } /** diff --git a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/po/ProgramMethodPO.java b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/po/ProgramMethodPO.java index a8e23732cb9..87dac759a1b 100644 --- a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/po/ProgramMethodPO.java +++ b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/po/ProgramMethodPO.java @@ -26,6 +26,7 @@ import de.uka.ilkd.key.pp.PrettyPrinter; import de.uka.ilkd.key.proof.init.AbstractOperationPO; import de.uka.ilkd.key.proof.init.InitConfig; +import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.speclang.PositionedString; import de.uka.ilkd.key.speclang.jml.translation.Context; import de.uka.ilkd.key.speclang.njml.JmlIO; @@ -263,14 +264,17 @@ public String getPrecondition() { /** * {@inheritDoc} + * + * @return */ @Override - public void fillSaveProperties(Properties properties) { - super.fillSaveProperties(properties); - properties.setProperty("method", getProgramMethodSignature(getProgramMethod(), true)); + public Configuration createLoaderConfig() { + var c = super.createLoaderConfig(); + c.set("method", getProgramMethodSignature(getProgramMethod(), true)); if (getPrecondition() != null && !getPrecondition().isEmpty()) { - properties.setProperty("precondition", getPrecondition()); + c.set("precondition", getPrecondition()); } + return c; } /** @@ -294,34 +298,19 @@ public static String getProgramMethodSignature(IProgramMethod pm, boolean includ return x.result(); } - /** - * Instantiates a new proof obligation with the given settings. - * - * @param initConfig The already load {@link InitConfig}. - * @param properties The settings of the proof obligation to instantiate. - * @return The instantiated proof obligation. - * @throws IOException Occurred Exception. - */ - public static LoadedPOContainer loadFrom(InitConfig initConfig, Properties properties) - throws IOException { - return new LoadedPOContainer(new ProgramMethodPO(initConfig, getName(properties), - getProgramMethod(initConfig, properties), getPrecondition(properties), - isAddUninterpretedPredicate(properties), isAddSymbolicExecutionLabel(properties))); - } - /** * Searches the {@link IProgramMethod} defined by the given {@link Properties}. * - * @param initConfig The already load {@link InitConfig}. + * @param initConfig The already loaded {@link InitConfig}. * @param properties The settings of the proof obligation to instantiate. * @return The found {@link IProgramMethod}. * @throws IOException Occurred Exception if it was not possible to find the * {@link IProgramMethod}. */ - public static IProgramMethod getProgramMethod(InitConfig initConfig, Properties properties) + public static IProgramMethod getProgramMethod(InitConfig initConfig, Configuration properties) throws IOException { // Get container class and method signature - String value = properties.getProperty("method"); + String value = properties.getString("method"); if (value == null) { throw new IOException("Property \"method\" is not defined."); } @@ -380,8 +369,8 @@ public static IProgramMethod getProgramMethod(InitConfig initConfig, Properties * @param properties The proof obligation settings to read from. * @return The precondition or {@code null} if not available. */ - public static String getPrecondition(Properties properties) { - return properties.getProperty("precondition"); + public static String getPrecondition(Configuration properties) { + return properties.getString("precondition"); } @Override diff --git a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/po/ProgramMethodPOLoader.java b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/po/ProgramMethodPOLoader.java new file mode 100644 index 00000000000..78f56ccec67 --- /dev/null +++ b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/po/ProgramMethodPOLoader.java @@ -0,0 +1,44 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.symbolic_execution.po; + +import java.io.IOException; + +import de.uka.ilkd.key.proof.init.IPersistablePO; +import de.uka.ilkd.key.proof.init.InitConfig; +import de.uka.ilkd.key.proof.init.loader.ProofObligationLoader; +import de.uka.ilkd.key.settings.Configuration; + +import org.jspecify.annotations.NullMarked; + +import static de.uka.ilkd.key.proof.init.AbstractPO.getName; +import static de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO.*; + +@NullMarked +public class ProgramMethodPOLoader implements ProofObligationLoader { + /** + * Instantiates a new proof obligation with the given settings. + * + * @param initConfig The already load {@link InitConfig}. + * @param properties The settings of the proof obligation to instantiate. + * @return The instantiated proof obligation. + */ + @Override + public IPersistablePO.LoadedPOContainer loadFrom(InitConfig initConfig, + Configuration properties) + throws IOException { + return new IPersistablePO.LoadedPOContainer(new ProgramMethodPO(initConfig, + getName(properties), + ProgramMethodPO.getProgramMethod(initConfig, properties), getPrecondition(properties), + isAddUninterpretedPredicate(properties), isAddSymbolicExecutionLabel(properties))); + } + + @Override + public boolean handles(String identifier) { + return ProgramMethodPOLoader.class.getSimpleName().equals(identifier) + || ProgramMethodPOLoader.class.getName().equals(identifier) + || ProgramMethodPO.class.getSimpleName().equals(identifier) + || ProgramMethodPO.class.getName().equals(identifier); + } +} diff --git a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/po/ProgramMethodSubsetPO.java b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/po/ProgramMethodSubsetPO.java index 1405ff15f6c..8dfc33c5a47 100644 --- a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/po/ProgramMethodSubsetPO.java +++ b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/po/ProgramMethodSubsetPO.java @@ -22,6 +22,7 @@ import de.uka.ilkd.key.logic.op.LocationVariable; import de.uka.ilkd.key.logic.op.ProgramVariable; import de.uka.ilkd.key.proof.init.InitConfig; +import de.uka.ilkd.key.settings.Configuration; import org.key_project.util.collection.ImmutableList; import org.key_project.util.collection.ImmutableSLList; @@ -82,6 +83,10 @@ */ //spotless:on public class ProgramMethodSubsetPO extends ProgramMethodPO { + public static final String START_LINE = "startLine"; + public static final String START_COLUMN = "startColumn"; + public static final String END_LINE = "endLine"; + public static final String END_COLUMN = "endColumn"; /** * Contains all undeclared variables used in the method part to execute. */ @@ -309,34 +314,21 @@ public Position getEndPosition() { /** * {@inheritDoc} + * + * @return */ @Override - public void fillSaveProperties(Properties properties) { - super.fillSaveProperties(properties); + public Configuration createLoaderConfig() { + var c = super.createLoaderConfig(); if (getStartPosition() != null) { - properties.setProperty("startLine", getStartPosition().line() + ""); - properties.setProperty("startColumn", getStartPosition().column() + ""); + c.set(START_LINE, getStartPosition().line() + ""); + c.set(START_COLUMN, getStartPosition().column() + ""); } if (getEndPosition() != null) { - properties.setProperty("endLine", getEndPosition().line() + ""); - properties.setProperty("endColumn", getEndPosition().column() + ""); + c.set(END_LINE, getEndPosition().line() + ""); + c.set(END_COLUMN, getEndPosition().column() + ""); } - } - - /** - * Instantiates a new proof obligation with the given settings. - * - * @param initConfig The already load {@link InitConfig}. - * @param properties The settings of the proof obligation to instantiate. - * @return The instantiated proof obligation. - * @throws IOException Occurred Exception. - */ - public static LoadedPOContainer loadFrom(InitConfig initConfig, Properties properties) - throws IOException { - return new LoadedPOContainer(new ProgramMethodSubsetPO(initConfig, getName(properties), - getProgramMethod(initConfig, properties), getPrecondition(properties), - getStartPosition(properties), getEndPosition(properties), - isAddUninterpretedPredicate(properties), isAddSymbolicExecutionLabel(properties))); + return c; } /** @@ -346,12 +338,12 @@ public static LoadedPOContainer loadFrom(InitConfig initConfig, Properties prope * @return The defined start {@link Position}. * @throws IOException Occurred Exception if it was not possible to read the start position. */ - protected static Position getStartPosition(Properties properties) throws IOException { - String line = properties.getProperty("startLine"); + protected static Position getStartPosition(Configuration properties) throws IOException { + String line = properties.getString(START_LINE); if (line == null || line.isEmpty()) { throw new IOException("Start line property \"startLine\" is not available or empty."); } - String column = properties.getProperty("startColumn"); + String column = properties.getString(START_COLUMN); if (column == null || column.isEmpty()) { throw new IOException( "Start column property \"startColumn\" is not available or empty."); @@ -384,12 +376,12 @@ protected static Position getStartPosition(Properties properties) throws IOExcep * @return The defined end {@link Position}. * @throws IOException Occurred Exception if it was not possible to read the end position. */ - protected static Position getEndPosition(Properties properties) throws IOException { - String line = properties.getProperty("endLine"); + protected static Position getEndPosition(Configuration properties) throws IOException { + String line = properties.getString(END_LINE); if (line == null || line.isEmpty()) { throw new IOException("End line property \"endLine\" is not available or empty."); } - String column = properties.getProperty("endColumn"); + String column = properties.getString(END_COLUMN); if (column == null || column.isEmpty()) { throw new IOException("End column property \"endColumn\" is not available or empty."); } diff --git a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/po/ProgramMethodSubsetPOLoader.java b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/po/ProgramMethodSubsetPOLoader.java new file mode 100644 index 00000000000..0ce8cb402c8 --- /dev/null +++ b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/po/ProgramMethodSubsetPOLoader.java @@ -0,0 +1,48 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.symbolic_execution.po; + +import java.io.IOException; + +import de.uka.ilkd.key.proof.init.*; +import de.uka.ilkd.key.proof.init.loader.ProofObligationLoader; +import de.uka.ilkd.key.settings.Configuration; + +import org.jspecify.annotations.NullMarked; + +/** + * @author Alexander Weigl + * @version 1 (28.12.23) + */ +@NullMarked +public class ProgramMethodSubsetPOLoader implements ProofObligationLoader { + /** + * Instantiates a new proof obligation with the given settings. + * + * @param initConfig The already loaded {@link InitConfig}. + * @param properties The settings of the proof obligation to instantiate. + * @return The instantiated proof obligation. + * @throws IOException Occurred Exception. + */ + @Override + public IPersistablePO.LoadedPOContainer loadFrom(InitConfig initConfig, + Configuration properties) throws IOException { + return new IPersistablePO.LoadedPOContainer( + new ProgramMethodSubsetPO(initConfig, AbstractPO.getName(properties), + ProgramMethodPO.getProgramMethod(initConfig, properties), + ProgramMethodPO.getPrecondition(properties), + ProgramMethodSubsetPO.getStartPosition(properties), + ProgramMethodSubsetPO.getEndPosition(properties), + AbstractOperationPO.isAddUninterpretedPredicate(properties), + AbstractOperationPO.isAddSymbolicExecutionLabel(properties))); + } + + @Override + public boolean handles(String identifier) { + return ProgramMethodSubsetPO.class.getName().equals(identifier) + || ProgramMethodSubsetPO.class.getSimpleName().equals(identifier) + || getClass().getName().equals(identifier) + || getClass().getSimpleName().equals(identifier); + } +} diff --git a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/rule/ModalitySideProofRule.java b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/rule/ModalitySideProofRule.java index 6c1a1fa4212..6c1fc13fb94 100644 --- a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/rule/ModalitySideProofRule.java +++ b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/rule/ModalitySideProofRule.java @@ -128,9 +128,8 @@ public IBuiltInRuleApp createApp(PosInOccurrence pos, TermServices services) { /** * {@inheritDoc} */ - @NonNull @Override - public ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) + public @NonNull ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) throws RuleAbortException { try { // Extract required Terms from goal diff --git a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/rule/QuerySideProofRule.java b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/rule/QuerySideProofRule.java index dc27a404782..2f00a4a8941 100644 --- a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/rule/QuerySideProofRule.java +++ b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/rule/QuerySideProofRule.java @@ -31,6 +31,8 @@ import org.key_project.logic.sort.Sort; import org.key_project.util.collection.ImmutableList; +import org.jspecify.annotations.NonNull; + /** *

* A {@link BuiltInRule} which evaluates a query in a side proof. @@ -188,7 +190,7 @@ public IBuiltInRuleApp createApp(PosInOccurrence pos, TermServices services) { * {@inheritDoc} */ @Override - public ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) + public @NonNull ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) throws RuleAbortException { try { // Extract required Terms from goal diff --git a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/strategy/breakpoint/AbstractConditionalBreakpoint.java b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/strategy/breakpoint/AbstractConditionalBreakpoint.java index d464c3701d8..639365d2b37 100644 --- a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/strategy/breakpoint/AbstractConditionalBreakpoint.java +++ b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/strategy/breakpoint/AbstractConditionalBreakpoint.java @@ -333,7 +333,7 @@ private Term computeTermForCondition(String condition) { PositionedString ps = new PositionedString(condition); var context = Context.inMethodWithSelfVar(pm, selfVar); - JmlIO io = new JmlIO().services(getProof().getServices()).context(context) + JmlIO io = new JmlIO(getProof().getServices()).context(context) .parameters(varsForCondition); return io.parseExpression(ps); diff --git a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/util/SymbolicExecutionUtil.java b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/util/SymbolicExecutionUtil.java index 64d688993cb..785b03e3d80 100644 --- a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/util/SymbolicExecutionUtil.java +++ b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/util/SymbolicExecutionUtil.java @@ -75,6 +75,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * Provides utility methods for symbolic execution with KeY. * @@ -391,7 +394,7 @@ else if (term.op() == Junctor.NOT) { * @return true if the term represents the one */ private static boolean isOne(Term subOne, IntegerLDT integerLDT) { - return subOne.equalsModIrrelevantTermLabels(integerLDT.one()); + return subOne.equalsModProperty(integerLDT.one(), IRRELEVANT_TERM_LABELS_PROPERTY); } /** @@ -1982,13 +1985,16 @@ private static void collectSpecifcationCasesPreconditions(Term normalExcDefiniti List exceptinalConditions) throws ProofInputException { if (term.op() == Junctor.AND) { Term lastChild = term.sub(term.arity() - 1); - if (lastChild.equalsModIrrelevantTermLabels(normalExcDefinition) - || lastChild.equalsModIrrelevantTermLabels(exceptionalExcDefinition)) { + if (lastChild.equalsModProperty(normalExcDefinition, IRRELEVANT_TERM_LABELS_PROPERTY) + || lastChild.equalsModProperty(exceptionalExcDefinition, + IRRELEVANT_TERM_LABELS_PROPERTY)) { // Nothing to do, condition is just true } else { Term firstChild = term.sub(0); - if (firstChild.equalsModIrrelevantTermLabels(normalExcDefinition) - || firstChild.equalsModIrrelevantTermLabels(exceptionalExcDefinition)) { + if (firstChild + .equalsModProperty(normalExcDefinition, IRRELEVANT_TERM_LABELS_PROPERTY) + || firstChild.equalsModProperty(exceptionalExcDefinition, + IRRELEVANT_TERM_LABELS_PROPERTY)) { // Nothing to do, condition is just true } else { for (int i = 0; i < term.arity(); i++) { @@ -2000,27 +2006,32 @@ private static void collectSpecifcationCasesPreconditions(Term normalExcDefiniti } } else if (term.op() == Junctor.IMP) { Term leftTerm = term.sub(0); - if (leftTerm.equalsModIrrelevantTermLabels(normalExcDefinition) - || leftTerm.equalsModIrrelevantTermLabels(exceptionalExcDefinition)) { + if (leftTerm.equalsModProperty(normalExcDefinition, IRRELEVANT_TERM_LABELS_PROPERTY) + || leftTerm.equalsModProperty(exceptionalExcDefinition, + IRRELEVANT_TERM_LABELS_PROPERTY)) { // Nothing to do, condition is just true } else { Term rightTerm = term.sub(1); // Deal with heavy weight specification cases if (rightTerm.op() == Junctor.AND && rightTerm.sub(0).op() == Junctor.IMP && rightTerm.sub(0).sub(0) - .equalsModIrrelevantTermLabels(normalExcDefinition)) { + .equalsModProperty(normalExcDefinition, + IRRELEVANT_TERM_LABELS_PROPERTY)) { normalConditions.add(leftTerm); } else if (rightTerm.op() == Junctor.AND && rightTerm.sub(1).op() == Junctor.IMP && rightTerm.sub(1).sub(0) - .equalsModIrrelevantTermLabels(exceptionalExcDefinition)) { + .equalsModProperty(exceptionalExcDefinition, + IRRELEVANT_TERM_LABELS_PROPERTY)) { exceptinalConditions.add(leftTerm); } // Deal with light weight specification cases else if (rightTerm.op() == Junctor.IMP - && rightTerm.sub(0).equalsModIrrelevantTermLabels(normalExcDefinition)) { + && rightTerm.sub(0).equalsModProperty(normalExcDefinition, + IRRELEVANT_TERM_LABELS_PROPERTY)) { normalConditions.add(leftTerm); } else if (rightTerm.op() == Junctor.IMP && rightTerm.sub(0) - .equalsModIrrelevantTermLabels(exceptionalExcDefinition)) { + .equalsModProperty(exceptionalExcDefinition, + IRRELEVANT_TERM_LABELS_PROPERTY)) { exceptinalConditions.add(leftTerm); } else { Term excCondition = rightTerm; @@ -2028,19 +2039,23 @@ else if (rightTerm.op() == Junctor.IMP if (excCondition.op() == Junctor.AND) { excCondition = excCondition.sub(excCondition.arity() - 1); } - if (excCondition.equalsModIrrelevantTermLabels(normalExcDefinition)) { + if (excCondition.equalsModProperty(normalExcDefinition, + IRRELEVANT_TERM_LABELS_PROPERTY)) { normalConditions.add(leftTerm); } else if (excCondition - .equalsModIrrelevantTermLabels(exceptionalExcDefinition)) { + .equalsModProperty(exceptionalExcDefinition, + IRRELEVANT_TERM_LABELS_PROPERTY)) { exceptinalConditions.add(leftTerm); } else { // Check if left child is exception definition if (rightTerm.op() == Junctor.AND) { excCondition = rightTerm.sub(0); - if (excCondition.equalsModIrrelevantTermLabels(normalExcDefinition)) { + if (excCondition.equalsModProperty(normalExcDefinition, + IRRELEVANT_TERM_LABELS_PROPERTY)) { normalConditions.add(leftTerm); } else if (excCondition - .equalsModIrrelevantTermLabels(exceptionalExcDefinition)) { + .equalsModProperty(exceptionalExcDefinition, + IRRELEVANT_TERM_LABELS_PROPERTY)) { exceptinalConditions.add(leftTerm); } else { throw new ProofInputException("Exeptional condition expected, " @@ -2671,7 +2686,7 @@ private static boolean checkReplaceTerm(Term toCheck, PosInOccurrence posInOccur Term replaceTerm) { Term termAtPio = followPosInOccurrence(posInOccurrence, toCheck); if (termAtPio != null) { - return termAtPio.equalsModRenaming(replaceTerm); + return termAtPio.equalsModProperty(replaceTerm, RENAMING_PROPERTY); } else { return false; } @@ -3417,11 +3432,13 @@ private static List findSkolemReplacements(Sequent sequent, Term skolemCon if (term != skolemEquality) { int skolemCheck = checkSkolemEquality(term); if (skolemCheck == -1) { - if (term.sub(0).equalsModIrrelevantTermLabels(skolemConstant)) { + if (term.sub(0).equalsModProperty(skolemConstant, + IRRELEVANT_TERM_LABELS_PROPERTY)) { result.add(term.sub(1)); } } else if (skolemCheck == 1) { - if (term.sub(1).equalsModIrrelevantTermLabels(skolemConstant)) { + if (term.sub(1).equalsModProperty(skolemConstant, + IRRELEVANT_TERM_LABELS_PROPERTY)) { result.add(term.sub(0)); } } @@ -3511,7 +3528,8 @@ public static Term computePathCondition(Node parentNode, Node childNode, boolean } childNode = parent; } - if (services.getTermBuilder().ff().equalsModIrrelevantTermLabels(pathCondition)) { + if (services.getTermBuilder().ff().equalsModProperty(pathCondition, + IRRELEVANT_TERM_LABELS_PROPERTY)) { throw new ProofInputException( "Path condition computation failed because the result is false."); } @@ -4123,7 +4141,7 @@ public static boolean lazyComputeIsAdditionalBranchVerified(Node node) { Set additinalPredicates = AbstractOperationPO.getAdditionalUninterpretedPredicates(node.proof()); // Check if node can be treated as verified/closed - if (!CollectionUtil.isEmpty(additinalPredicates)) { + if (additinalPredicates != null && !additinalPredicates.isEmpty()) { boolean verified = true; Iterator leafsIter = node.leavesIterator(); while (verified && leafsIter.hasNext()) { diff --git a/key.core.symbolic_execution/src/main/resources/META-INF/services/de.uka.ilkd.key.proof.init.loader.ProofObligationLoader b/key.core.symbolic_execution/src/main/resources/META-INF/services/de.uka.ilkd.key.proof.init.loader.ProofObligationLoader new file mode 100644 index 00000000000..3abacee7b1f --- /dev/null +++ b/key.core.symbolic_execution/src/main/resources/META-INF/services/de.uka.ilkd.key.proof.init.loader.ProofObligationLoader @@ -0,0 +1,2 @@ +de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPOLoader +de.uka.ilkd.key.symbolic_execution.po.ProgramMethodSubsetPOLoader \ No newline at end of file diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/allNodeTypesTest/test/AllNodeTypesTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/allNodeTypesTest/test/AllNodeTypesTest.proof index d4389eb8644..43750c5c0fc 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/allNodeTypesTest/test/AllNodeTypesTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/allNodeTypesTest/test/AllNodeTypesTest.proof @@ -44,14 +44,13 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -#Tue Jul 25 22:57:12 CEST 2023 -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -contract=AllNodeTypesTest[AllNodeTypesTest\\:\\:main(AllNodeTypesTest)].JML normal_behavior operation contract.0 -name=AllNodeTypesTest[AllNodeTypesTest\\:\\:main(AllNodeTypesTest)].JML normal_behavior operation contract.0 -"; +\proofObligation { + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + "contract": "AllNodeTypesTest[AllNodeTypesTest::main(AllNodeTypesTest)].JML normal_behavior operation contract.0", + "name": "AllNodeTypesTest[AllNodeTypesTest::main(AllNodeTypesTest)].JML normal_behavior operation contract.0", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/allNodeTypesTest/test/AllNodeTypesTest_VerificationProfile.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/allNodeTypesTest/test/AllNodeTypesTest_VerificationProfile.proof index 6b49f1d2097..154868d7e2c 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/allNodeTypesTest/test/AllNodeTypesTest_VerificationProfile.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/allNodeTypesTest/test/AllNodeTypesTest_VerificationProfile.proof @@ -44,13 +44,12 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -#Tue Jul 25 22:57:42 CEST 2023 -addSymbolicExecutionLabel=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -contract=AllNodeTypesTest[AllNodeTypesTest\\:\\:main(AllNodeTypesTest)].JML normal_behavior operation contract.0 -name=AllNodeTypesTest[AllNodeTypesTest\\:\\:main(AllNodeTypesTest)].JML normal_behavior operation contract.0 -"; +\proofObligation { + "addSymbolicExecutionLabel": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + "contract": "AllNodeTypesTest[AllNodeTypesTest::main(AllNodeTypesTest)].JML normal_behavior operation contract.0", + "name": "AllNodeTypesTest[AllNodeTypesTest::main(AllNodeTypesTest)].JML normal_behavior operation contract.0", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/allNodeTypesTest/test/AllNodeTypesTest_VerificationProfile_NoOneStepSimplification.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/allNodeTypesTest/test/AllNodeTypesTest_VerificationProfile_NoOneStepSimplification.proof index b86f011358b..e7857b0573a 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/allNodeTypesTest/test/AllNodeTypesTest_VerificationProfile_NoOneStepSimplification.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/allNodeTypesTest/test/AllNodeTypesTest_VerificationProfile_NoOneStepSimplification.proof @@ -42,13 +42,12 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -#Tue Jul 25 22:58:04 CEST 2023 -addSymbolicExecutionLabel=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -contract=AllNodeTypesTest[AllNodeTypesTest\\:\\:main(AllNodeTypesTest)].JML normal_behavior operation contract.0 -name=AllNodeTypesTest[AllNodeTypesTest\\:\\:main(AllNodeTypesTest)].JML normal_behavior operation contract.0 -"; +\proofObligation { + "addSymbolicExecutionLabel": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + "contract": "AllNodeTypesTest[AllNodeTypesTest::main(AllNodeTypesTest)].JML normal_behavior operation contract.0", + "name": "AllNodeTypesTest[AllNodeTypesTest::main(AllNodeTypesTest)].JML normal_behavior operation contract.0", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/assumesUserInputTest/test/AssumesUserInputTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/assumesUserInputTest/test/AssumesUserInputTest.proof index f457ccb5846..beaa3a48728 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/assumesUserInputTest/test/AssumesUserInputTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/assumesUserInputTest/test/AssumesUserInputTest.proof @@ -50,14 +50,13 @@ }; } -\proofObligation "#Proof Obligation Settings -#Thu Jan 22 14:33:50 CET 2015 -name=AssumesUserInputTest[AssumesUserInputTest\\:\\:min(int,int,int)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=AssumesUserInputTest[AssumesUserInputTest\\:\\:min(int,int,int)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AssumesUserInputTest[AssumesUserInputTest::min(int,int,int)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "AssumesUserInputTest[AssumesUserInputTest::min(int,int,int)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractAssignableEverything/test/BlockContractAssignableEverything.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractAssignableEverything/test/BlockContractAssignableEverything.proof index 6a45f67f7b0..a7d6685e106 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractAssignableEverything/test/BlockContractAssignableEverything.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractAssignableEverything/test/BlockContractAssignableEverything.proof @@ -41,13 +41,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Mar 30 16:07:42 CEST 2016 -name=BlockContractAssignableEverything[BlockContractAssignableEverything\\:\\:main()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=BlockContractAssignableEverything[BlockContractAssignableEverything\\:\\:main()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BlockContractAssignableEverything[BlockContractAssignableEverything::main()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "BlockContractAssignableEverything[BlockContractAssignableEverything::main()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractAssignableLocationNotRequested/test/BlockContractAssignableLocationNotRequested.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractAssignableLocationNotRequested/test/BlockContractAssignableLocationNotRequested.proof index 6592986d5af..c9dae84ca91 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractAssignableLocationNotRequested/test/BlockContractAssignableLocationNotRequested.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractAssignableLocationNotRequested/test/BlockContractAssignableLocationNotRequested.proof @@ -41,13 +41,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Mar 30 16:39:35 CEST 2016 -name=BlockContractAssignableLocationNotRequested[BlockContractAssignableLocationNotRequested\\:\\:main()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=BlockContractAssignableLocationNotRequested[BlockContractAssignableLocationNotRequested\\:\\:main()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BlockContractAssignableLocationNotRequested[BlockContractAssignableLocationNotRequested::main()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "BlockContractAssignableLocationNotRequested[BlockContractAssignableLocationNotRequested::main()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractAssignableRequestedLocation/test/BlockContractAssignableRequestedLocation.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractAssignableRequestedLocation/test/BlockContractAssignableRequestedLocation.proof index e8cd6d684ce..93c19bf9b10 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractAssignableRequestedLocation/test/BlockContractAssignableRequestedLocation.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractAssignableRequestedLocation/test/BlockContractAssignableRequestedLocation.proof @@ -41,13 +41,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Mar 30 16:36:39 CEST 2016 -name=BlockContractAssignableRequestedLocation[BlockContractAssignableRequestedLocation\\:\\:main()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=BlockContractAssignableRequestedLocation[BlockContractAssignableRequestedLocation\\:\\:main()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BlockContractAssignableRequestedLocation[BlockContractAssignableRequestedLocation::main()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "BlockContractAssignableRequestedLocation[BlockContractAssignableRequestedLocation::main()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractParamRemaned/test/BlockContractParamRemaned.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractParamRemaned/test/BlockContractParamRemaned.proof index 1ddd9b45976..c6b6189c84d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractParamRemaned/test/BlockContractParamRemaned.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractParamRemaned/test/BlockContractParamRemaned.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Mar 23 15:01:02 CET 2018 -name=BlockContractParamRemaned[BlockContractParamRemaned\\:\\:main(int,int)].JML normal_behavior operation contract.0 -contract=BlockContractParamRemaned[BlockContractParamRemaned\\:\\:main(int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BlockContractParamRemaned[BlockContractParamRemaned::main(int,int)].JML normal_behavior operation contract.0", + "contract": "BlockContractParamRemaned[BlockContractParamRemaned::main(int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractPreconditionNotVerified/test/BlockContractPreconditionNotVerified.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractPreconditionNotVerified/test/BlockContractPreconditionNotVerified.proof index a1059062509..9108a91bc3d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractPreconditionNotVerified/test/BlockContractPreconditionNotVerified.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractPreconditionNotVerified/test/BlockContractPreconditionNotVerified.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Mar 23 14:11:53 CET 2018 -name=BlockContractPreconditionNotVerified[BlockContractPreconditionNotVerified\\:\\:main(int)].JML normal_behavior operation contract.0 -contract=BlockContractPreconditionNotVerified[BlockContractPreconditionNotVerified\\:\\:main(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BlockContractPreconditionNotVerified[BlockContractPreconditionNotVerified::main(int)].JML normal_behavior operation contract.0", + "contract": "BlockContractPreconditionNotVerified[BlockContractPreconditionNotVerified::main(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractThisTest/test/BlockContractThisTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractThisTest/test/BlockContractThisTest.proof index f28a50c1ef3..3e5b62fdd6c 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractThisTest/test/BlockContractThisTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractThisTest/test/BlockContractThisTest.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Mar 23 14:11:48 CET 2018 -name=BlockContractThisTest[BlockContractThisTest\\:\\:magic()].JML normal_behavior operation contract.0 -contract=BlockContractThisTest[BlockContractThisTest\\:\\:magic()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BlockContractThisTest[BlockContractThisTest::magic()].JML normal_behavior operation contract.0", + "contract": "BlockContractThisTest[BlockContractThisTest::magic()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractVarRenamedLater/test/BlockContractVarRenamedLater.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractVarRenamedLater/test/BlockContractVarRenamedLater.proof index 03a944bec4b..5688f88d4ef 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractVarRenamedLater/test/BlockContractVarRenamedLater.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractVarRenamedLater/test/BlockContractVarRenamedLater.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Mar 23 14:11:43 CET 2018 -name=BlockContractVarRenamedLater[BlockContractVarRenamedLater\\:\\:main()].JML normal_behavior operation contract.0 -contract=BlockContractVarRenamedLater[BlockContractVarRenamedLater\\:\\:main()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BlockContractVarRenamedLater[BlockContractVarRenamedLater::main()].JML normal_behavior operation contract.0", + "contract": "BlockContractVarRenamedLater[BlockContractVarRenamedLater::main()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithException/test/BlockContractWithException.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithException/test/BlockContractWithException.proof index 316538faf05..d0364a64ea7 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithException/test/BlockContractWithException.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithException/test/BlockContractWithException.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Jul 18 10:58:28 CEST 2016 -name=BlockContractWithException[BlockContractWithException\\:\\:main(int)].JML exceptional_behavior operation contract.0 -contract=BlockContractWithException[BlockContractWithException\\:\\:main(int)].JML exceptional_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BlockContractWithException[BlockContractWithException::main(int)].JML exceptional_behavior operation contract.0", + "contract": "BlockContractWithException[BlockContractWithException::main(int)].JML exceptional_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithExceptionPostconditionNotVerified/test/BlockContractWithExceptionPostconditionNotVerified.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithExceptionPostconditionNotVerified/test/BlockContractWithExceptionPostconditionNotVerified.proof index d7fa0fe669e..020a5b07940 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithExceptionPostconditionNotVerified/test/BlockContractWithExceptionPostconditionNotVerified.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithExceptionPostconditionNotVerified/test/BlockContractWithExceptionPostconditionNotVerified.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Jul 18 10:58:31 CEST 2016 -name=BlockContractWithExceptionPostconditionNotVerified[BlockContractWithExceptionPostconditionNotVerified\\:\\:main(int)].JML exceptional_behavior operation contract.0 -contract=BlockContractWithExceptionPostconditionNotVerified[BlockContractWithExceptionPostconditionNotVerified\\:\\:main(int)].JML exceptional_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BlockContractWithExceptionPostconditionNotVerified[BlockContractWithExceptionPostconditionNotVerified::main(int)].JML exceptional_behavior operation contract.0", + "contract": "BlockContractWithExceptionPostconditionNotVerified[BlockContractWithExceptionPostconditionNotVerified::main(int)].JML exceptional_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturn/test/BlockContractWithReturn.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturn/test/BlockContractWithReturn.proof index fe8f6a0e33e..8f51c9285d4 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturn/test/BlockContractWithReturn.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturn/test/BlockContractWithReturn.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Mar 23 14:09:27 CET 2018 -name=BlockContractWithReturn[BlockContractWithReturn\\:\\:main(int)].JML normal_behavior operation contract.0 -contract=BlockContractWithReturn[BlockContractWithReturn\\:\\:main(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BlockContractWithReturn[BlockContractWithReturn::main(int)].JML normal_behavior operation contract.0", + "contract": "BlockContractWithReturn[BlockContractWithReturn::main(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturnPostconditionNotVerified/test/BlockContractWithReturnPostconditionNotVerified.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturnPostconditionNotVerified/test/BlockContractWithReturnPostconditionNotVerified.proof index 26ca7f9bfd6..949e03929fe 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturnPostconditionNotVerified/test/BlockContractWithReturnPostconditionNotVerified.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturnPostconditionNotVerified/test/BlockContractWithReturnPostconditionNotVerified.proof @@ -43,13 +43,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Mar 23 14:08:06 CET 2018 -name=BlockContractWithReturnPostconditionNotVerified[BlockContractWithReturnPostconditionNotVerified\\:\\:main(int)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=BlockContractWithReturnPostconditionNotVerified[BlockContractWithReturnPostconditionNotVerified\\:\\:main(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BlockContractWithReturnPostconditionNotVerified[BlockContractWithReturnPostconditionNotVerified::main(int)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "BlockContractWithReturnPostconditionNotVerified[BlockContractWithReturnPostconditionNotVerified::main(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/test/ExistsQuantifierTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/test/ExistsQuantifierTest.proof index 77b4ed8be80..5ada012d310 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/test/ExistsQuantifierTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/test/ExistsQuantifierTest.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Mar 18 11:12:58 CET 2016 -name=ExistsQuantifierTest[ExistsQuantifierTest\\:\\:compute()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=ExistsQuantifierTest[ExistsQuantifierTest\\:\\:compute()].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ExistsQuantifierTest[ExistsQuantifierTest::compute()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "ExistsQuantifierTest[ExistsQuantifierTest::compute()].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/fullqualifiedTypeNamesTest/test/my/packageName/TestProgramMethodSubsetPO9033468379300181045.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/fullqualifiedTypeNamesTest/test/my/packageName/TestProgramMethodSubsetPO9033468379300181045.proof index 16b60f8006e..63e5e21c560 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/fullqualifiedTypeNamesTest/test/my/packageName/TestProgramMethodSubsetPO9033468379300181045.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/fullqualifiedTypeNamesTest/test/my/packageName/TestProgramMethodSubsetPO9033468379300181045.proof @@ -45,13 +45,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Thu Oct 04 18:18:29 CEST 2012 -name=complicatedInnerMethod -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -method=my.packageName.TheClass.TheInnerClass\\#complicatedInnerMethod(my.packageName.TheClass, int, boolean, java.lang.String, java.lang.Object[], my.packageName.sub.AnotherClass) -"; +\proofObligation { + "name": "complicatedInnerMethod", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "method": "my.packageName.TheClass.TheInnerClass#complicatedInnerMethod(my.packageName.TheClass, int, boolean, java.lang.String, java.lang.Object[], my.packageName.sub.AnotherClass)", + } \proof { (keyLog "0" (keyUser "IStudent" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterAssignment.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterAssignment.proof index 3449c811022..fd5cb648b12 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterAssignment.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterAssignment.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Apr 07 16:04:13 CEST 2017 -name=JoinTest[JoinTest\\:\\:zero(int)].JML normal_behavior operation contract.0 -contract=JoinTest[JoinTest\\:\\:zero(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "JoinTest[JoinTest::zero(int)].JML normal_behavior operation contract.0", + "contract": "JoinTest[JoinTest::zero(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterBranchCondition.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterBranchCondition.proof index 972a9596247..d13ad1a0289 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterBranchCondition.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterBranchCondition.proof @@ -41,13 +41,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Apr 07 16:28:34 CEST 2017 -name=JoinTest[JoinTest\\:\\:zero(int)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=JoinTest[JoinTest\\:\\:zero(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "JoinTest[JoinTest::zero(int)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "JoinTest[JoinTest::zero(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterBranchConditionWithWeakeningGoal.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterBranchConditionWithWeakeningGoal.proof index 0343f322e96..82bc5ea2e6d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterBranchConditionWithWeakeningGoal.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterBranchConditionWithWeakeningGoal.proof @@ -41,13 +41,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Apr 07 16:37:34 CEST 2017 -name=JoinTest[JoinTest\\:\\:zero(int)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=JoinTest[JoinTest\\:\\:zero(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "JoinTest[JoinTest::zero(int)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "JoinTest[JoinTest::zero(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterBranchConditionWithWeakeningGoalAndSubgoals.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterBranchConditionWithWeakeningGoalAndSubgoals.proof index be86bed6eea..ec082093779 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterBranchConditionWithWeakeningGoalAndSubgoals.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterBranchConditionWithWeakeningGoalAndSubgoals.proof @@ -41,13 +41,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Apr 07 16:38:26 CEST 2017 -name=JoinTest[JoinTest\\:\\:zero(int)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=JoinTest[JoinTest\\:\\:zero(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "JoinTest[JoinTest::zero(int)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "JoinTest[JoinTest::zero(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterBranchConditionWithWeakeningGoalNotVerified.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterBranchConditionWithWeakeningGoalNotVerified.proof index 61e204a76b1..4cca643eea6 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterBranchConditionWithWeakeningGoalNotVerified.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/joinTest/test/JoinTestAfterBranchConditionWithWeakeningGoalNotVerified.proof @@ -41,13 +41,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Apr 07 16:42:20 CEST 2017 -name=JoinTest[JoinTest\\:\\:zero(int)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=JoinTest[JoinTest\\:\\:zero(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "JoinTest[JoinTest::zero(int)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "JoinTest[JoinTest::zero(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/magic42/test/Magic42.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/magic42/test/Magic42.proof index 0e24f7297bb..f109d8cb533 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/magic42/test/Magic42.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/magic42/test/Magic42.proof @@ -40,14 +40,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Jun 25 11:46:39 CEST 2014 -name=compute(int) -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -method=Magic42\\#compute(int) -"; +\proofObligation { + "name": "compute(int)", + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "method": "Magic42#compute(int)", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueAddingOfLabeledSubtree/test/ImmutableList.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueAddingOfLabeledSubtree/test/ImmutableList.proof index d24721f51e6..1982c79f45a 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueAddingOfLabeledSubtree/test/ImmutableList.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueAddingOfLabeledSubtree/test/ImmutableList.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Mar 23 14:12:50 CET 2016 -name=ImmutableList[ImmutableList\\:\\:down2()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=ImmutableList[ImmutableList\\:\\:down2()].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ImmutableList[ImmutableList::down2()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "ImmutableList[ImmutableList::down2()].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueAnd/test/And3_replaceKnown.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueAnd/test/And3_replaceKnown.proof index e439b8ec92e..4f7838e7f88 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueAnd/test/And3_replaceKnown.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueAnd/test/And3_replaceKnown.proof @@ -41,12 +41,11 @@ \javaSource ".."; -\proofObligation "#Proof Obligation Settings -#Mon Sep 14 10:33:14 CEST 2015 -name=truthValueEvaluation.And[truthValueEvaluation.And\\:\\:doNothing(boolean,boolean)].JML normal_behavior operation contract.0 -contract=truthValueEvaluation.And[truthValueEvaluation.And\\:\\:doNothing(boolean,boolean)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "truthValueEvaluation.And[truthValueEvaluation.And::doNothing(boolean,boolean)].JML normal_behavior operation contract.0", + "contract": "truthValueEvaluation.And[truthValueEvaluation.And::doNothing(boolean,boolean)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueArraySumWhile/test/ArraySumWhile.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueArraySumWhile/test/ArraySumWhile.proof index f3bf091481d..2ec885204f2 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueArraySumWhile/test/ArraySumWhile.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueArraySumWhile/test/ArraySumWhile.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Thu Jan 29 12:09:31 CET 2015 -name=ArraySumWhile[ArraySumWhile\\:\\:sum([I)].JML operation contract.0 -addSymbolicExecutionLabel=true -contract=ArraySumWhile[ArraySumWhile\\:\\:sum([I)].JML operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ArraySumWhile[ArraySumWhile::sum([I)].JML operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "ArraySumWhile[ArraySumWhile::sum([I)].JML operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueArraySumWhile/test/ArraySumWhileNoOneStepSimplification.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueArraySumWhile/test/ArraySumWhileNoOneStepSimplification.proof index a0645245a93..142d6dd31cb 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueArraySumWhile/test/ArraySumWhileNoOneStepSimplification.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueArraySumWhile/test/ArraySumWhileNoOneStepSimplification.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Thu Jan 29 12:09:59 CET 2015 -name=ArraySumWhile[ArraySumWhile\\:\\:sum([I)].JML operation contract.0 -addSymbolicExecutionLabel=true -contract=ArraySumWhile[ArraySumWhile\\:\\:sum([I)].JML operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ArraySumWhile[ArraySumWhile::sum([I)].JML operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "ArraySumWhile[ArraySumWhile::sum([I)].JML operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueArrayUtil/test/ArrayUtil.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueArrayUtil/test/ArrayUtil.proof index 65a2a51e323..eaf5b5b41fd 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueArrayUtil/test/ArrayUtil.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueArrayUtil/test/ArrayUtil.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jan 16 12:05:42 CET 2015 -name=ArrayUtil[ArrayUtil\\:\\:indexOf([Ljava.lang.Object,ArrayUtil.Filter)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=ArrayUtil[ArrayUtil\\:\\:indexOf([Ljava.lang.Object,ArrayUtil.Filter)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ArrayUtil[ArrayUtil::indexOf([Ljava.lang.Object,ArrayUtil.Filter)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "ArrayUtil[ArrayUtil::indexOf([Ljava.lang.Object,ArrayUtil.Filter)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueArrayUtil/test/ArrayUtilNoOneStepSimplification.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueArrayUtil/test/ArrayUtilNoOneStepSimplification.proof index 3b230790215..aaa681d4303 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueArrayUtil/test/ArrayUtilNoOneStepSimplification.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueArrayUtil/test/ArrayUtilNoOneStepSimplification.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jan 16 12:06:05 CET 2015 -name=ArrayUtil[ArrayUtil\\:\\:indexOf([Ljava.lang.Object,ArrayUtil.Filter)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=ArrayUtil[ArrayUtil\\:\\:indexOf([Ljava.lang.Object,ArrayUtil.Filter)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ArrayUtil[ArrayUtil::indexOf([Ljava.lang.Object,ArrayUtil.Filter)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "ArrayUtil[ArrayUtil::indexOf([Ljava.lang.Object,ArrayUtil.Filter)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueAssignableAndLoop/test/MagicProofNoOSS.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueAssignableAndLoop/test/MagicProofNoOSS.proof index e80979c8317..753c78225b9 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueAssignableAndLoop/test/MagicProofNoOSS.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueAssignableAndLoop/test/MagicProofNoOSS.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Jul 18 11:02:13 CEST 2016 -name=ExampleInstance[ExampleInstance\\:\\:magic()].JML normal_behavior operation contract.0 -contract=ExampleInstance[ExampleInstance\\:\\:magic()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ExampleInstance[ExampleInstance::magic()].JML normal_behavior operation contract.0", + "contract": "ExampleInstance[ExampleInstance::magic()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueBlockContractMagic42/test/BlockContractMagic42.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueBlockContractMagic42/test/BlockContractMagic42.proof index b3817e1cb88..9908b1fc393 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueBlockContractMagic42/test/BlockContractMagic42.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueBlockContractMagic42/test/BlockContractMagic42.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Thu May 19 14:52:54 CEST 2016 -name=BlockContractMagic42[BlockContractMagic42\\:\\:magic()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=BlockContractMagic42[BlockContractMagic42\\:\\:magic()].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BlockContractMagic42[BlockContractMagic42::magic()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "BlockContractMagic42[BlockContractMagic42::magic()].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueDifferentBranchesTest/test/DifferentBranchesTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueDifferentBranchesTest/test/DifferentBranchesTest.proof index 8cbba266612..7baf78c9ccb 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueDifferentBranchesTest/test/DifferentBranchesTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueDifferentBranchesTest/test/DifferentBranchesTest.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Jul 18 11:01:54 CEST 2016 -name=DifferentBranchesTest[DifferentBranchesTest\\:\\:main([I)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=DifferentBranchesTest[DifferentBranchesTest\\:\\:main([I)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "DifferentBranchesTest[DifferentBranchesTest::main([I)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "DifferentBranchesTest[DifferentBranchesTest::main([I)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueEquivExample/test/EquivExample.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueEquivExample/test/EquivExample.proof index bb022f736df..70e03743fe1 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueEquivExample/test/EquivExample.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueEquivExample/test/EquivExample.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Tue Jan 06 11:14:35 CET 2015 -name=EquivExample[EquivExample\\:\\:equivExample()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=EquivExample[EquivExample\\:\\:equivExample()].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "EquivExample[EquivExample::equivExample()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "EquivExample[EquivExample::equivExample()].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueEquivExample/test/EquivExampleNoOneStepSimplification.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueEquivExample/test/EquivExampleNoOneStepSimplification.proof index 8eaef0abfe4..4b287b00e23 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueEquivExample/test/EquivExampleNoOneStepSimplification.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueEquivExample/test/EquivExampleNoOneStepSimplification.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Dec 05 16:22:17 CET 2014 -name=EquivExample[EquivExample\\:\\:equivExample()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=EquivExample[EquivExample\\:\\:equivExample()].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "EquivExample[EquivExample::equivExample()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "EquivExample[EquivExample::equivExample()].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueExceptinalAssignableNothingTest/test/ExceptinalAssignableNothingTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueExceptinalAssignableNothingTest/test/ExceptinalAssignableNothingTest.proof index c21da623cbe..26ade9e2935 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueExceptinalAssignableNothingTest/test/ExceptinalAssignableNothingTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueExceptinalAssignableNothingTest/test/ExceptinalAssignableNothingTest.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Jul 18 11:01:14 CEST 2016 -name=ExceptinalAssignableNothingTest[ExceptinalAssignableNothingTest\\:\\:main()].JML exceptional_behavior operation contract.0 -contract=ExceptinalAssignableNothingTest[ExceptinalAssignableNothingTest\\:\\:main()].JML exceptional_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ExceptinalAssignableNothingTest[ExceptinalAssignableNothingTest::main()].JML exceptional_behavior operation contract.0", + "contract": "ExceptinalAssignableNothingTest[ExceptinalAssignableNothingTest::main()].JML exceptional_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueExceptinalAssignableNothingTest/test/ExceptinalAssignableNothingTest_OSS.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueExceptinalAssignableNothingTest/test/ExceptinalAssignableNothingTest_OSS.proof index 3d6ce6a6b6d..2b4a8ce0717 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueExceptinalAssignableNothingTest/test/ExceptinalAssignableNothingTest_OSS.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueExceptinalAssignableNothingTest/test/ExceptinalAssignableNothingTest_OSS.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Jul 18 11:01:31 CEST 2016 -name=ExceptinalAssignableNothingTest[ExceptinalAssignableNothingTest\\:\\:main()].JML exceptional_behavior operation contract.0 -contract=ExceptinalAssignableNothingTest[ExceptinalAssignableNothingTest\\:\\:main()].JML exceptional_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ExceptinalAssignableNothingTest[ExceptinalAssignableNothingTest::main()].JML exceptional_behavior operation contract.0", + "contract": "ExceptinalAssignableNothingTest[ExceptinalAssignableNothingTest::main()].JML exceptional_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueLabelBelowUpdatesDifferentToApplicationTerm/test/TwoBranch.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueLabelBelowUpdatesDifferentToApplicationTerm/test/TwoBranch.proof index bf7339ab1cf..2f250331bd7 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueLabelBelowUpdatesDifferentToApplicationTerm/test/TwoBranch.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueLabelBelowUpdatesDifferentToApplicationTerm/test/TwoBranch.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 08 11:07:54 CEST 2016 -name=OneBranch[OneBranch\\:\\:magic()].JML normal_behavior operation contract.0 -contract=OneBranch[OneBranch\\:\\:magic()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "OneBranch[OneBranch::magic()].JML normal_behavior operation contract.0", + "contract": "OneBranch[OneBranch::magic()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueMyInteger/test/MyInteger.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueMyInteger/test/MyInteger.proof index 2f8538773fe..2b6b2cd00bc 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueMyInteger/test/MyInteger.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueMyInteger/test/MyInteger.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 15 10:13:45 CEST 2016 -name=MyInteger[MyInteger\\:\\:add(MyInteger)].JML normal_behavior operation contract.0 -contract=MyInteger[MyInteger\\:\\:add(MyInteger)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "MyInteger[MyInteger::add(MyInteger)].JML normal_behavior operation contract.0", + "contract": "MyInteger[MyInteger::add(MyInteger)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueNotLastEvaluationGivesTruthValue/test/NotLastEvaluationGivesTruthValue.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueNotLastEvaluationGivesTruthValue/test/NotLastEvaluationGivesTruthValue.proof index 8bae39424f9..bd2de896b8f 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueNotLastEvaluationGivesTruthValue/test/NotLastEvaluationGivesTruthValue.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueNotLastEvaluationGivesTruthValue/test/NotLastEvaluationGivesTruthValue.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Nov 26 17:47:38 CET 2014 -name=PredicateEvaluationComposedTerms[PredicateEvaluationComposedTerms\\:\\:main()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=PredicateEvaluationComposedTerms[PredicateEvaluationComposedTerms\\:\\:main()].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "PredicateEvaluationComposedTerms[PredicateEvaluationComposedTerms::main()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "PredicateEvaluationComposedTerms[PredicateEvaluationComposedTerms::main()].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueRejectedFormula/test/LabelLostVerification.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueRejectedFormula/test/LabelLostVerification.proof index 8d18b23fab4..17489a504d5 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueRejectedFormula/test/LabelLostVerification.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueRejectedFormula/test/LabelLostVerification.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Mar 23 17:07:21 CET 2016 -name=LabelLost[LabelLost\\:\\:magic(boolean,boolean)].JML normal_behavior operation contract.0 -contract=LabelLost[LabelLost\\:\\:magic(boolean,boolean)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "LabelLost[LabelLost::magic(boolean,boolean)].JML normal_behavior operation contract.0", + "contract": "LabelLost[LabelLost::magic(boolean,boolean)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueSimpleInstanceMethodContractApplication/test/SimpleInstanceMethodContractApplication.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueSimpleInstanceMethodContractApplication/test/SimpleInstanceMethodContractApplication.proof index b77e36778a2..3c1c35f6a18 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueSimpleInstanceMethodContractApplication/test/SimpleInstanceMethodContractApplication.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueSimpleInstanceMethodContractApplication/test/SimpleInstanceMethodContractApplication.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Jan 05 12:08:43 CET 2015 -name=SimpleInstanceMethodContractApplication[SimpleInstanceMethodContractApplication\\:\\:main(SimpleInstanceMethodContractApplication)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=SimpleInstanceMethodContractApplication[SimpleInstanceMethodContractApplication\\:\\:main(SimpleInstanceMethodContractApplication)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "SimpleInstanceMethodContractApplication[SimpleInstanceMethodContractApplication::main(SimpleInstanceMethodContractApplication)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "SimpleInstanceMethodContractApplication[SimpleInstanceMethodContractApplication::main(SimpleInstanceMethodContractApplication)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueSimpleInstanceMethodContractApplication/test/SimpleInstanceMethodContractApplication_NoOneStepSimplification.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueSimpleInstanceMethodContractApplication/test/SimpleInstanceMethodContractApplication_NoOneStepSimplification.proof index c0cca39743d..a86276ba48a 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueSimpleInstanceMethodContractApplication/test/SimpleInstanceMethodContractApplication_NoOneStepSimplification.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueSimpleInstanceMethodContractApplication/test/SimpleInstanceMethodContractApplication_NoOneStepSimplification.proof @@ -44,14 +44,13 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -#Fri Oct 22 15:04:52 CEST 2021 -addSymbolicExecutionLabel=true -contract=SimpleInstanceMethodContractApplication[SimpleInstanceMethodContractApplication\\:\\:main(SimpleInstanceMethodContractApplication)].JML normal_behavior operation contract.0 -name=SimpleInstanceMethodContractApplication[SimpleInstanceMethodContractApplication\\:\\:main(SimpleInstanceMethodContractApplication)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -addUninterpretedPredicate=true -"; +\proofObligation { + "addSymbolicExecutionLabel": true, + "contract": "SimpleInstanceMethodContractApplication[SimpleInstanceMethodContractApplication::main(SimpleInstanceMethodContractApplication)].JML normal_behavior operation contract.0", + "name": "SimpleInstanceMethodContractApplication[SimpleInstanceMethodContractApplication::main(SimpleInstanceMethodContractApplication)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + "addUninterpretedPredicate": true, + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueSimpleMethodContractApplication/test/SimpleMethodContractApplication.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueSimpleMethodContractApplication/test/SimpleMethodContractApplication.proof index 7abeffd0447..adfa4c3cde8 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueSimpleMethodContractApplication/test/SimpleMethodContractApplication.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueSimpleMethodContractApplication/test/SimpleMethodContractApplication.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Jan 05 12:07:09 CET 2015 -name=SimpleMethodContractApplication[SimpleMethodContractApplication\\:\\:main()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=SimpleMethodContractApplication[SimpleMethodContractApplication\\:\\:main()].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "SimpleMethodContractApplication[SimpleMethodContractApplication::main()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "SimpleMethodContractApplication[SimpleMethodContractApplication::main()].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueSimpleMethodContractApplication/test/SimpleMethodContractApplication_NoOneStepSimplification.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueSimpleMethodContractApplication/test/SimpleMethodContractApplication_NoOneStepSimplification.proof index 237c227fe97..3e645a675d6 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueSimpleMethodContractApplication/test/SimpleMethodContractApplication_NoOneStepSimplification.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueSimpleMethodContractApplication/test/SimpleMethodContractApplication_NoOneStepSimplification.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Jan 05 11:50:17 CET 2015 -name=SimpleMethodContractApplication[SimpleMethodContractApplication\\:\\:main()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=SimpleMethodContractApplication[SimpleMethodContractApplication\\:\\:main()].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "SimpleMethodContractApplication[SimpleMethodContractApplication::main()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "SimpleMethodContractApplication[SimpleMethodContractApplication::main()].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsAccount/test/Account.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsAccount/test/Account.proof index 44c62813a4c..45f65e1a1ac 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsAccount/test/Account.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsAccount/test/Account.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Jun 15 15:52:36 CEST 2015 -name=Account[Account\\:\\:checkAndWithdraw(int)].JML normal_behavior operation contract.0 -contract=Account[Account\\:\\:checkAndWithdraw(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Account[Account::checkAndWithdraw(int)].JML normal_behavior operation contract.0", + "contract": "Account[Account::checkAndWithdraw(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsArrayUtil/test/ArrayUtil.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsArrayUtil/test/ArrayUtil.proof index cbaa90eb89e..25578e560d4 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsArrayUtil/test/ArrayUtil.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsArrayUtil/test/ArrayUtil.proof @@ -43,13 +43,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Mar 23 14:47:12 CET 2018 -name=ArrayUtil[ArrayUtil\\:\\:minIndex([I)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=ArrayUtil[ArrayUtil\\:\\:minIndex([I)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ArrayUtil[ArrayUtil::minIndex([I)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "ArrayUtil[ArrayUtil::minIndex([I)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsCalendar/test/Calendar.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsCalendar/test/Calendar.proof index 6cbe5c68a39..55402cddab6 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsCalendar/test/Calendar.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsCalendar/test/Calendar.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Jul 18 10:59:15 CEST 2016 -name=Calendar[Calendar\\:\\:addEntry(Calendar.Entry)].JML normal_behavior operation contract.0 -contract=Calendar[Calendar\\:\\:addEntry(Calendar.Entry)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Calendar[Calendar::addEntry(Calendar.Entry)].JML normal_behavior operation contract.0", + "contract": "Calendar[Calendar::addEntry(Calendar.Entry)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsMyInteger/test/MyInteger.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsMyInteger/test/MyInteger.proof index e5db90a7fdb..d4e4e924833 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsMyInteger/test/MyInteger.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsMyInteger/test/MyInteger.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 15 10:15:42 CEST 2016 -name=MyInteger[MyInteger\\:\\:add(MyInteger)].JML normal_behavior operation contract.0 -contract=MyInteger[MyInteger\\:\\:add(MyInteger)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "MyInteger[MyInteger::add(MyInteger)].JML normal_behavior operation contract.0", + "contract": "MyInteger[MyInteger::add(MyInteger)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueWeakeningTest/test/JoinTestAfterBranchConditionWithWeakeningGoal.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueWeakeningTest/test/JoinTestAfterBranchConditionWithWeakeningGoal.proof index 68b7591be42..c22993d69fc 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueWeakeningTest/test/JoinTestAfterBranchConditionWithWeakeningGoal.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueWeakeningTest/test/JoinTestAfterBranchConditionWithWeakeningGoal.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Apr 10 16:43:30 CEST 2017 -name=JoinTest[JoinTest\\:\\:zero(int)].JML normal_behavior operation contract.0 -contract=JoinTest[JoinTest\\:\\:zero(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "JoinTest[JoinTest::zero(int)].JML normal_behavior operation contract.0", + "contract": "JoinTest[JoinTest::zero(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantWithoutDecreasing/test/LoopInvArrayExample.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantWithoutDecreasing/test/LoopInvArrayExample.proof index f29091f8cb3..7757ffb1e98 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantWithoutDecreasing/test/LoopInvArrayExample.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantWithoutDecreasing/test/LoopInvArrayExample.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Jul 18 10:57:38 CEST 2016 -name=LoopInvArrayExample[LoopInvArrayExample\\:\\:setAllToOne()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=LoopInvArrayExample[LoopInvArrayExample\\:\\:setAllToOne()].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "LoopInvArrayExample[LoopInvArrayExample::setAllToOne()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "LoopInvArrayExample[LoopInvArrayExample::setAllToOne()].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/useOperationContractStatementsInImpliciteConstructor/oracle/UseOperationContractStatementsInImpliciteConstructor.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/useOperationContractStatementsInImpliciteConstructor/oracle/UseOperationContractStatementsInImpliciteConstructor.xml index 5c9678ed01b..458af701a2f 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/useOperationContractStatementsInImpliciteConstructor/oracle/UseOperationContractStatementsInImpliciteConstructor.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/useOperationContractStatementsInImpliciteConstructor/oracle/UseOperationContractStatementsInImpliciteConstructor.xml @@ -360,62 +360,13 @@ new IllegalArgumentException("Array can't be null.");" pathCondit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/verificationProofFile_VerifyMin/test/VerifyMin.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/verificationProofFile_VerifyMin/test/VerifyMin.proof index 5c1d89624dd..3c894fb050d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/verificationProofFile_VerifyMin/test/VerifyMin.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/verificationProofFile_VerifyMin/test/VerifyMin.proof @@ -40,12 +40,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Aug 01 11:46:32 CEST 2014 -name=VerifyMin[VerifyMin\\:\\:min(int,int)].JML normal_behavior operation contract.0 -contract=VerifyMin[VerifyMin\\:\\:min(int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "VerifyMin[VerifyMin::min(int,int)].JML normal_behavior operation contract.0", + "contract": "VerifyMin[VerifyMin::min(int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/verificationProofFile_VerifyMin/test/VerifyMinTrueBranch.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/verificationProofFile_VerifyMin/test/VerifyMinTrueBranch.proof index 541dd7aa08b..c6184db908f 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/verificationProofFile_VerifyMin/test/VerifyMinTrueBranch.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/verificationProofFile_VerifyMin/test/VerifyMinTrueBranch.proof @@ -40,12 +40,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Aug 01 12:24:02 CEST 2014 -name=VerifyMin[VerifyMin\\:\\:min(int,int)].JML normal_behavior operation contract.0 -contract=VerifyMin[VerifyMin\\:\\:min(int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "VerifyMin[VerifyMin::min(int,int)].JML normal_behavior operation contract.0", + "contract": "VerifyMin[VerifyMin::min(int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/verificationProofFile_VerifyNumber/test/VerifyNumberNormal.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/verificationProofFile_VerifyNumber/test/VerifyNumberNormal.proof index e19bcb46af9..cd6829db36c 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/verificationProofFile_VerifyNumber/test/VerifyNumberNormal.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/verificationProofFile_VerifyNumber/test/VerifyNumberNormal.proof @@ -40,12 +40,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Aug 01 12:30:09 CEST 2014 -name=VerifyNumber[VerifyNumber\\:\\:equals(VerifyNumber)].JML normal_behavior operation contract.0 -contract=VerifyNumber[VerifyNumber\\:\\:equals(VerifyNumber)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "VerifyNumber[VerifyNumber::equals(VerifyNumber)].JML normal_behavior operation contract.0", + "contract": "VerifyNumber[VerifyNumber::equals(VerifyNumber)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/aliasChanged/AliasChanged.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/aliasChanged/AliasChanged.proof index 691bb4d580e..4250bd840af 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/aliasChanged/AliasChanged.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/aliasChanged/AliasChanged.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 15 10:18:57 CEST 2016 -name=AliasChanged[AliasChanged\\:\\:main(AliasChanged,AliasChanged)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=AliasChanged[AliasChanged\\:\\:main(AliasChanged,AliasChanged)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AliasChanged[AliasChanged::main(AliasChanged,AliasChanged)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "AliasChanged[AliasChanged::main(AliasChanged,AliasChanged)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/aliasNotAvailable/AliasNotAvailable.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/aliasNotAvailable/AliasNotAvailable.proof index a1f1865b2ab..b7df477bdbf 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/aliasNotAvailable/AliasNotAvailable.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/aliasNotAvailable/AliasNotAvailable.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 15 10:19:25 CEST 2016 -name=AliasNotAvailable[AliasNotAvailable\\:\\:main(AliasNotAvailable,AliasNotAvailable)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=AliasNotAvailable[AliasNotAvailable\\:\\:main(AliasNotAvailable,AliasNotAvailable)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AliasNotAvailable[AliasNotAvailable::main(AliasNotAvailable,AliasNotAvailable)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "AliasNotAvailable[AliasNotAvailable::main(AliasNotAvailable,AliasNotAvailable)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/aliasedByExecutionTest/AliasedByExecution.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/aliasedByExecutionTest/AliasedByExecution.proof index 1e935e882dc..b72665061e6 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/aliasedByExecutionTest/AliasedByExecution.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/aliasedByExecutionTest/AliasedByExecution.proof @@ -41,13 +41,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Tue Mar 29 14:36:15 CEST 2016 -name=AliasedByExecution[AliasedByExecution\\:\\:magic(AliasedByExecution,AliasedByExecution)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=AliasedByExecution[AliasedByExecution\\:\\:magic(AliasedByExecution,AliasedByExecution)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AliasedByExecution[AliasedByExecution::magic(AliasedByExecution,AliasedByExecution)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "AliasedByExecution[AliasedByExecution::magic(AliasedByExecution,AliasedByExecution)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/aliasing/Aliasing.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/aliasing/Aliasing.proof index f07f73b5a94..6d7c45a7306 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/aliasing/Aliasing.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/aliasing/Aliasing.proof @@ -41,15 +41,14 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Feb 02 13:11:32 CET 2015 -name=main(Aliasing, Aliasing) -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -precondition=a \\!\\= null && b \\!\\= null -method=Aliasing\\#main(Aliasing, Aliasing) -"; +\proofObligation { + "name": "main(Aliasing, Aliasing)", + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "precondition": "a != null && b != null", + "method": "Aliasing#main(Aliasing, Aliasing)", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/arrayIndexAsVariableFieldTest/ArrayIndexAsVariableFieldTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/arrayIndexAsVariableFieldTest/ArrayIndexAsVariableFieldTest.proof index be140c6d78b..b3275566e2d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/arrayIndexAsVariableFieldTest/ArrayIndexAsVariableFieldTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/arrayIndexAsVariableFieldTest/ArrayIndexAsVariableFieldTest.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Feb 20 14:12:10 CET 2015 -name=ArrayIndexAsVariableFieldTest[ArrayIndexAsVariableFieldTest\\:\\:main([LArrayIndexAsVariableFieldTest,ArrayIndexAsVariableFieldTest.Index)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=ArrayIndexAsVariableFieldTest[ArrayIndexAsVariableFieldTest\\:\\:main([LArrayIndexAsVariableFieldTest,ArrayIndexAsVariableFieldTest.Index)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ArrayIndexAsVariableFieldTest[ArrayIndexAsVariableFieldTest::main([LArrayIndexAsVariableFieldTest,ArrayIndexAsVariableFieldTest.Index)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "ArrayIndexAsVariableFieldTest[ArrayIndexAsVariableFieldTest::main([LArrayIndexAsVariableFieldTest,ArrayIndexAsVariableFieldTest.Index)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/arrayIndexSideeffectsAfter/ArrayIndexSideeffectsAfter.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/arrayIndexSideeffectsAfter/ArrayIndexSideeffectsAfter.proof index eba97ab0be7..54ecd6ac628 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/arrayIndexSideeffectsAfter/ArrayIndexSideeffectsAfter.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/arrayIndexSideeffectsAfter/ArrayIndexSideeffectsAfter.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Feb 20 14:04:28 CET 2015 -name=ArrayIndexSideeffectsAfter[ArrayIndexSideeffectsAfter\\:\\:mainAfter([I,int)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=ArrayIndexSideeffectsAfter[ArrayIndexSideeffectsAfter\\:\\:mainAfter([I,int)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ArrayIndexSideeffectsAfter[ArrayIndexSideeffectsAfter::mainAfter([I,int)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "ArrayIndexSideeffectsAfter[ArrayIndexSideeffectsAfter::mainAfter([I,int)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/arrayIndexSideeffectsBevore/ArrayIndexSideeffectsBevore.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/arrayIndexSideeffectsBevore/ArrayIndexSideeffectsBevore.proof index 9132158ab2d..e8e1b304ad1 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/arrayIndexSideeffectsBevore/ArrayIndexSideeffectsBevore.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/arrayIndexSideeffectsBevore/ArrayIndexSideeffectsBevore.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Feb 20 14:07:48 CET 2015 -name=ArrayIndexSideeffectsBevore[ArrayIndexSideeffectsBevore\\:\\:mainBevore([I,int)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=ArrayIndexSideeffectsBevore[ArrayIndexSideeffectsBevore\\:\\:mainBevore([I,int)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ArrayIndexSideeffectsBevore[ArrayIndexSideeffectsBevore::mainBevore([I,int)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "ArrayIndexSideeffectsBevore[ArrayIndexSideeffectsBevore::mainBevore([I,int)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/arrayIndexVariableTest/ArrayIndexVariableTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/arrayIndexVariableTest/ArrayIndexVariableTest.proof index ee590d876f8..f2dbcf64df7 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/arrayIndexVariableTest/ArrayIndexVariableTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/arrayIndexVariableTest/ArrayIndexVariableTest.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Feb 20 14:09:49 CET 2015 -name=ArrayIndexVariableTest[ArrayIndexVariableTest\\:\\:main([LArrayIndexVariableTest,int)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=ArrayIndexVariableTest[ArrayIndexVariableTest\\:\\:main([LArrayIndexVariableTest,int)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ArrayIndexVariableTest[ArrayIndexVariableTest::main([LArrayIndexVariableTest,int)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "ArrayIndexVariableTest[ArrayIndexVariableTest::main([LArrayIndexVariableTest,int)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/blockContractAssignableEverything/BlockContractAssignableEverything.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/blockContractAssignableEverything/BlockContractAssignableEverything.proof index 6a45f67f7b0..a7d6685e106 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/blockContractAssignableEverything/BlockContractAssignableEverything.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/blockContractAssignableEverything/BlockContractAssignableEverything.proof @@ -41,13 +41,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Mar 30 16:07:42 CEST 2016 -name=BlockContractAssignableEverything[BlockContractAssignableEverything\\:\\:main()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=BlockContractAssignableEverything[BlockContractAssignableEverything\\:\\:main()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BlockContractAssignableEverything[BlockContractAssignableEverything::main()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "BlockContractAssignableEverything[BlockContractAssignableEverything::main()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/blockContractAssignableLocationNotRequested/BlockContractAssignableLocationNotRequested.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/blockContractAssignableLocationNotRequested/BlockContractAssignableLocationNotRequested.proof index 6592986d5af..c9dae84ca91 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/blockContractAssignableLocationNotRequested/BlockContractAssignableLocationNotRequested.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/blockContractAssignableLocationNotRequested/BlockContractAssignableLocationNotRequested.proof @@ -41,13 +41,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Mar 30 16:39:35 CEST 2016 -name=BlockContractAssignableLocationNotRequested[BlockContractAssignableLocationNotRequested\\:\\:main()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=BlockContractAssignableLocationNotRequested[BlockContractAssignableLocationNotRequested\\:\\:main()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BlockContractAssignableLocationNotRequested[BlockContractAssignableLocationNotRequested::main()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "BlockContractAssignableLocationNotRequested[BlockContractAssignableLocationNotRequested::main()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/blockContractAssignableRequestedLocation/BlockContractAssignableRequestedLocation.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/blockContractAssignableRequestedLocation/BlockContractAssignableRequestedLocation.proof index e8cd6d684ce..93c19bf9b10 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/blockContractAssignableRequestedLocation/BlockContractAssignableRequestedLocation.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/blockContractAssignableRequestedLocation/BlockContractAssignableRequestedLocation.proof @@ -41,13 +41,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Mar 30 16:36:39 CEST 2016 -name=BlockContractAssignableRequestedLocation[BlockContractAssignableRequestedLocation\\:\\:main()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=BlockContractAssignableRequestedLocation[BlockContractAssignableRequestedLocation\\:\\:main()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BlockContractAssignableRequestedLocation[BlockContractAssignableRequestedLocation::main()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "BlockContractAssignableRequestedLocation[BlockContractAssignableRequestedLocation::main()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/equivalenceClassesTest/Example.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/equivalenceClassesTest/Example.proof index fa69f08b591..dc321749ffc 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/equivalenceClassesTest/Example.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/equivalenceClassesTest/Example.proof @@ -41,13 +41,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Tue Mar 29 14:23:08 CEST 2016 -name=Example[Example\\:\\:magic(Example,Example)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=Example[Example\\:\\:magic(Example,Example)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Example[Example::magic(Example,Example)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "Example[Example::magic(Example,Example)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/equivalenceClassesTest/Example_NoOSS.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/equivalenceClassesTest/Example_NoOSS.proof index 5f57780121c..6b7be1eeb09 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/equivalenceClassesTest/Example_NoOSS.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/equivalenceClassesTest/Example_NoOSS.proof @@ -41,13 +41,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Mar 30 13:40:52 CEST 2016 -name=Example[Example\\:\\:magic(Example,Example)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=Example[Example\\:\\:magic(Example,Example)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Example[Example::magic(Example,Example)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "Example[Example::magic(Example,Example)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/figure2/Figure2.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/figure2/Figure2.proof index 5a76b8d5631..eec4ac3be56 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/figure2/Figure2.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/figure2/Figure2.proof @@ -43,14 +43,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Mar 20 00:06:56 CET 2019 -name=main() -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -method=Figure2\\#main() -"; +\proofObligation { + "name": "main()", + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "method": "Figure2#main()", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/figure2Instance/Figure2Instance.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/figure2Instance/Figure2Instance.proof index 8770f00b94d..ad3364dbb35 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/figure2Instance/Figure2Instance.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/figure2Instance/Figure2Instance.proof @@ -43,14 +43,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Tue Mar 19 13:46:43 CET 2019 -name=main() -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -method=Figure2Instance\\#main() -"; +\proofObligation { + "name": "main()", + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "method": "Figure2Instance#main()", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/figure2Local/Figure2Local.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/figure2Local/Figure2Local.proof index 73b02eadc67..c91e4649451 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/figure2Local/Figure2Local.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/figure2Local/Figure2Local.proof @@ -43,14 +43,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Tue Mar 19 23:43:13 CET 2019 -name=main() -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -method=Figure2Local\\#main() -"; +\proofObligation { + "name": "main()", + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "method": "Figure2Local#main()", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/figure2Param/Figure2Param.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/figure2Param/Figure2Param.proof index 90239c90cbd..b90dc803d77 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/figure2Param/Figure2Param.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/figure2Param/Figure2Param.proof @@ -43,14 +43,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Mar 20 00:03:03 CET 2019 -name=main(Figure2Param.A, Figure2Param.A, Figure2Param.B, Figure2Param.A, Figure2Param.B) -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -method=Figure2Param\\#main(Figure2Param.A, Figure2Param.A, Figure2Param.B, Figure2Param.A, Figure2Param.B) -"; +\proofObligation { + "name": "main(Figure2Param.A, Figure2Param.A, Figure2Param.B, Figure2Param.A, Figure2Param.B)", + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "method": "Figure2Param#main(Figure2Param.A, Figure2Param.A, Figure2Param.B, Figure2Param.A, Figure2Param.B)", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/instanceFieldsAliased/InstanceFieldsAliased.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/instanceFieldsAliased/InstanceFieldsAliased.proof index e1233d8801c..25ef6b133d9 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/instanceFieldsAliased/InstanceFieldsAliased.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/instanceFieldsAliased/InstanceFieldsAliased.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 15 10:20:51 CEST 2016 -name=InstanceFieldsAliased[InstanceFieldsAliased\\:\\:main(InstanceFieldsAliased,InstanceFieldsAliased)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=InstanceFieldsAliased[InstanceFieldsAliased\\:\\:main(InstanceFieldsAliased,InstanceFieldsAliased)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "InstanceFieldsAliased[InstanceFieldsAliased::main(InstanceFieldsAliased,InstanceFieldsAliased)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "InstanceFieldsAliased[InstanceFieldsAliased::main(InstanceFieldsAliased,InstanceFieldsAliased)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/intEndTest/IntEndTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/intEndTest/IntEndTest.proof index 704ad58b78a..4cd94700bd2 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/intEndTest/IntEndTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/intEndTest/IntEndTest.proof @@ -43,14 +43,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Mar 26 14:08:49 CEST 2018 -name=main(int) -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -method=IntEndTest\\#main(int) -"; +\proofObligation { + "name": "main(int)", + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "method": "IntEndTest#main(int)", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/loopInvariantInListFieldsTest/LoopInvariantInListFieldsTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/loopInvariantInListFieldsTest/LoopInvariantInListFieldsTest.proof index 808669f884c..51939d92614 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/loopInvariantInListFieldsTest/LoopInvariantInListFieldsTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/loopInvariantInListFieldsTest/LoopInvariantInListFieldsTest.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 15 10:21:18 CEST 2016 -name=main() -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -method=LoopInvariantInListFieldsTest\\#main() -"; +\proofObligation { + "name": "main()", + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "method": "LoopInvariantInListFieldsTest#main()", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/loopInvariantNestedListFieldsTest/LoopInvariantNestedListFieldsTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/loopInvariantNestedListFieldsTest/LoopInvariantNestedListFieldsTest.proof index b470d648528..558eff78aa7 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/loopInvariantNestedListFieldsTest/LoopInvariantNestedListFieldsTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/loopInvariantNestedListFieldsTest/LoopInvariantNestedListFieldsTest.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 15 10:21:40 CEST 2016 -name=LoopInvariantNestedListFieldsTest[LoopInvariantNestedListFieldsTest\\:\\:main(LoopInvariantNestedListFieldsTest)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=LoopInvariantNestedListFieldsTest[LoopInvariantNestedListFieldsTest\\:\\:main(LoopInvariantNestedListFieldsTest)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "LoopInvariantNestedListFieldsTest[LoopInvariantNestedListFieldsTest::main(LoopInvariantNestedListFieldsTest)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "LoopInvariantNestedListFieldsTest[LoopInvariantNestedListFieldsTest::main(LoopInvariantNestedListFieldsTest)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/loopInvariantNotInListFieldsTest/LoopInvariantNotInListFieldsTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/loopInvariantNotInListFieldsTest/LoopInvariantNotInListFieldsTest.proof index 01bb8ec35eb..6a728032079 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/loopInvariantNotInListFieldsTest/LoopInvariantNotInListFieldsTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/loopInvariantNotInListFieldsTest/LoopInvariantNotInListFieldsTest.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 15 10:22:07 CEST 2016 -name=main() -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -method=LoopInvariantNotInListFieldsTest\\#main() -"; +\proofObligation { + "name": "main()", + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "method": "LoopInvariantNotInListFieldsTest#main()", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/loopInvariantStarFieldsTest/LoopInvariantStarFieldsTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/loopInvariantStarFieldsTest/LoopInvariantStarFieldsTest.proof index aac9e88434a..0e1b71de2ff 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/loopInvariantStarFieldsTest/LoopInvariantStarFieldsTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/loopInvariantStarFieldsTest/LoopInvariantStarFieldsTest.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 15 10:22:27 CEST 2016 -name=main() -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -method=LoopInvariantStarFieldsTest\\#main() -"; +\proofObligation { + "name": "main()", + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "method": "LoopInvariantStarFieldsTest#main()", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/methodCallTest/MethodCallTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/methodCallTest/MethodCallTest.proof index f2a79560285..77d6b3bb2ca 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/methodCallTest/MethodCallTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/methodCallTest/MethodCallTest.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 15 10:22:46 CEST 2016 -name=MethodCallTest[MethodCallTest\\:\\:main(MethodCallTest)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=MethodCallTest[MethodCallTest\\:\\:main(MethodCallTest)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "MethodCallTest[MethodCallTest::main(MethodCallTest)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "MethodCallTest[MethodCallTest::main(MethodCallTest)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/methodContractAssignableEverything/MethodContractAssignableExample.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/methodContractAssignableEverything/MethodContractAssignableExample.proof index a314cb43731..eade3909e84 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/methodContractAssignableEverything/MethodContractAssignableExample.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/methodContractAssignableEverything/MethodContractAssignableExample.proof @@ -41,13 +41,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Mar 30 14:05:35 CEST 2016 -name=MethodContractAssignableExample[MethodContractAssignableExample\\:\\:main()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=MethodContractAssignableExample[MethodContractAssignableExample\\:\\:main()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "MethodContractAssignableExample[MethodContractAssignableExample::main()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "MethodContractAssignableExample[MethodContractAssignableExample::main()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/methodContractAssignableLocationNotRequested/MethodContractAssignableLocationNotRequested.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/methodContractAssignableLocationNotRequested/MethodContractAssignableLocationNotRequested.proof index 18027688b66..824dad10a31 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/methodContractAssignableLocationNotRequested/MethodContractAssignableLocationNotRequested.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/methodContractAssignableLocationNotRequested/MethodContractAssignableLocationNotRequested.proof @@ -41,13 +41,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Mar 30 15:55:42 CEST 2016 -name=MethodContractAssignableLocationNotRequested[MethodContractAssignableLocationNotRequested\\:\\:main()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=MethodContractAssignableLocationNotRequested[MethodContractAssignableLocationNotRequested\\:\\:main()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "MethodContractAssignableLocationNotRequested[MethodContractAssignableLocationNotRequested::main()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "MethodContractAssignableLocationNotRequested[MethodContractAssignableLocationNotRequested::main()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/methodContractAssignableRequestedLocation/MethodContractAssignableRequestedLocation.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/methodContractAssignableRequestedLocation/MethodContractAssignableRequestedLocation.proof index 67204e6e644..6f408b3ada6 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/methodContractAssignableRequestedLocation/MethodContractAssignableRequestedLocation.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/methodContractAssignableRequestedLocation/MethodContractAssignableRequestedLocation.proof @@ -41,13 +41,12 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Mar 30 15:53:10 CEST 2016 -name=MethodContractAssignableRequestedLocation[MethodContractAssignableRequestedLocation\\:\\:main()].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=MethodContractAssignableRequestedLocation[MethodContractAssignableRequestedLocation\\:\\:main()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "MethodContractAssignableRequestedLocation[MethodContractAssignableRequestedLocation::main()].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "MethodContractAssignableRequestedLocation[MethodContractAssignableRequestedLocation::main()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "marti" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/nestedInstanceAccess/NestedInstanceAccess.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/nestedInstanceAccess/NestedInstanceAccess.proof index 08428502461..a15a516850d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/nestedInstanceAccess/NestedInstanceAccess.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/nestedInstanceAccess/NestedInstanceAccess.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Feb 02 13:28:41 CET 2015 -name=NestedInstanceAccess[NestedInstanceAccess\\:\\:main(NestedInstanceAccess.A,NestedInstanceAccess.A)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=NestedInstanceAccess[NestedInstanceAccess\\:\\:main(NestedInstanceAccess.A,NestedInstanceAccess.A)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "NestedInstanceAccess[NestedInstanceAccess::main(NestedInstanceAccess.A,NestedInstanceAccess.A)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "NestedInstanceAccess[NestedInstanceAccess::main(NestedInstanceAccess.A,NestedInstanceAccess.A)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/nestedInstanceFields/NestedInstanceFields.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/nestedInstanceFields/NestedInstanceFields.proof index b0425841e39..c5af37e85f1 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/nestedInstanceFields/NestedInstanceFields.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/nestedInstanceFields/NestedInstanceFields.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 15 10:23:10 CEST 2016 -name=NestedInstanceFields[NestedInstanceFields\\:\\:main(NestedInstanceFields)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=NestedInstanceFields[NestedInstanceFields\\:\\:main(NestedInstanceFields)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "NestedInstanceFields[NestedInstanceFields::main(NestedInstanceFields)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "NestedInstanceFields[NestedInstanceFields::main(NestedInstanceFields)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/readWriteTest/ReadWriteTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/readWriteTest/ReadWriteTest.proof index 461ed95af0d..4c91922a998 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/readWriteTest/ReadWriteTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/readWriteTest/ReadWriteTest.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Feb 04 10:23:47 CET 2015 -name=main(int) -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -method=ReadWriteTest\\#main(int) -"; +\proofObligation { + "name": "main(int)", + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "method": "ReadWriteTest#main(int)", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleAliasChanged/SimpleAliasChanged.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleAliasChanged/SimpleAliasChanged.proof index 2a50098640c..f91d89790b4 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleAliasChanged/SimpleAliasChanged.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleAliasChanged/SimpleAliasChanged.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Tue Feb 03 14:53:39 CET 2015 -name=SimpleAliasChanged[SimpleAliasChanged\\:\\:main(SimpleAliasChanged,SimpleAliasChanged)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=SimpleAliasChanged[SimpleAliasChanged\\:\\:main(SimpleAliasChanged,SimpleAliasChanged)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "SimpleAliasChanged[SimpleAliasChanged::main(SimpleAliasChanged,SimpleAliasChanged)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "SimpleAliasChanged[SimpleAliasChanged::main(SimpleAliasChanged,SimpleAliasChanged)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleArrayTest/SimpleArrayTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleArrayTest/SimpleArrayTest.proof index 3bd66f5ea1c..a509d590fcf 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleArrayTest/SimpleArrayTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleArrayTest/SimpleArrayTest.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 15 10:23:31 CEST 2016 -name=SimpleArrayTest[SimpleArrayTest\\:\\:main([I)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=SimpleArrayTest[SimpleArrayTest\\:\\:main([I)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "SimpleArrayTest[SimpleArrayTest::main([I)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "SimpleArrayTest[SimpleArrayTest::main([I)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleInstanceFields/SimpleInstanceFields.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleInstanceFields/SimpleInstanceFields.proof index 2b4c2900c53..bd9a5105e9a 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleInstanceFields/SimpleInstanceFields.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleInstanceFields/SimpleInstanceFields.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 15 10:23:50 CEST 2016 -name=SimpleInstanceFields[SimpleInstanceFields\\:\\:main(SimpleInstanceFields)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=SimpleInstanceFields[SimpleInstanceFields\\:\\:main(SimpleInstanceFields)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "SimpleInstanceFields[SimpleInstanceFields::main(SimpleInstanceFields)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "SimpleInstanceFields[SimpleInstanceFields::main(SimpleInstanceFields)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleLocalVariables/SimpleLocalVariables.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleLocalVariables/SimpleLocalVariables.proof index 2e66afadf67..570dbf0c42e 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleLocalVariables/SimpleLocalVariables.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleLocalVariables/SimpleLocalVariables.proof @@ -43,14 +43,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Mar 26 14:14:07 CEST 2018 -name=main() -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -method=SimpleLocalVariables\\#main() -"; +\proofObligation { + "name": "main()", + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "method": "SimpleLocalVariables#main()", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleLoopInvariantTest/SimpleLoopInvariantTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleLoopInvariantTest/SimpleLoopInvariantTest.proof index 3c9795e5b57..a9905cbfa91 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleLoopInvariantTest/SimpleLoopInvariantTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleLoopInvariantTest/SimpleLoopInvariantTest.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Feb 18 16:54:18 CET 2015 -name=main() -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -method=SimpleLoopInvariantTest\\#main() -"; +\proofObligation { + "name": "main()", + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "method": "SimpleLoopInvariantTest#main()", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleMultidimensionArrayTest/SimpleMultidimensionArrayTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleMultidimensionArrayTest/SimpleMultidimensionArrayTest.proof index 650c683a440..5fc8f2aa46d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleMultidimensionArrayTest/SimpleMultidimensionArrayTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleMultidimensionArrayTest/SimpleMultidimensionArrayTest.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 15 10:24:10 CEST 2016 -name=SimpleMultidimensionArrayTest[SimpleMultidimensionArrayTest\\:\\:main([[I)].JML normal_behavior operation contract.0 -addSymbolicExecutionLabel=true -contract=SimpleMultidimensionArrayTest[SimpleMultidimensionArrayTest\\:\\:main([[I)].JML normal_behavior operation contract.0 -addUninterpretedPredicate=true -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "SimpleMultidimensionArrayTest[SimpleMultidimensionArrayTest::main([[I)].JML normal_behavior operation contract.0", + "addSymbolicExecutionLabel": true, + "contract": "SimpleMultidimensionArrayTest[SimpleMultidimensionArrayTest::main([[I)].JML normal_behavior operation contract.0", + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleStaticFields/SimpleStaticFields.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleStaticFields/SimpleStaticFields.proof index 24158603859..f99c36df83d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleStaticFields/SimpleStaticFields.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleStaticFields/SimpleStaticFields.proof @@ -43,14 +43,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Mar 26 14:55:30 CEST 2018 -name=main() -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -method=SimpleStaticFields\\#main() -"; +\proofObligation { + "name": "main()", + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "method": "SimpleStaticFields#main()", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleStaticLoopInvariantTest/SimpleStatiLoopInvariantTest.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleStaticLoopInvariantTest/SimpleStatiLoopInvariantTest.proof index da924d8337a..f060b77f162 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleStaticLoopInvariantTest/SimpleStatiLoopInvariantTest.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleStaticLoopInvariantTest/SimpleStatiLoopInvariantTest.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Feb 18 16:56:09 CET 2015 -name=main() -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -method=SimpleStatiLoopInvariantTest\\#main() -"; +\proofObligation { + "name": "main()", + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "method": "SimpleStatiLoopInvariantTest#main()", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleThisInstanceFields/SimpleThisInstanceFields.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleThisInstanceFields/SimpleThisInstanceFields.proof index e6759f9f172..9e9ac8003d6 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleThisInstanceFields/SimpleThisInstanceFields.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/simpleThisInstanceFields/SimpleThisInstanceFields.proof @@ -41,14 +41,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jan 30 14:53:56 CET 2015 -name=main() -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -method=SimpleThisInstanceFields\\#main() -"; +\proofObligation { + "name": "main()", + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "method": "SimpleThisInstanceFields#main()", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/slicing/valueChange/ValueChange.proof b/key.core.symbolic_execution/src/test/resources/testcase/slicing/valueChange/ValueChange.proof index 0950c31ad5d..8925596df5a 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/slicing/valueChange/ValueChange.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/slicing/valueChange/ValueChange.proof @@ -43,14 +43,13 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Mar 26 14:38:35 CEST 2018 -name=main() -addSymbolicExecutionLabel=true -addUninterpretedPredicate=true -class=de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO -method=ValueChange\\#main() -"; +\proofObligation { + "name": "main()", + "addSymbolicExecutionLabel": true, + "addUninterpretedPredicate": true, + "class": "de.uka.ilkd.key.symbolic_execution.po.ProgramMethodPO", + "method": "ValueChange#main()", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.testgen/src/main/java/de/uka/ilkd/key/settings/TestGenerationSettings.java b/key.core.testgen/src/main/java/de/uka/ilkd/key/settings/TestGenerationSettings.java index 96d99994211..00f24ad3c1f 100644 --- a/key.core.testgen/src/main/java/de/uka/ilkd/key/settings/TestGenerationSettings.java +++ b/key.core.testgen/src/main/java/de/uka/ilkd/key/settings/TestGenerationSettings.java @@ -296,8 +296,7 @@ public void set(TestGenerationSettings settings) { } - @Nullable - private static TestGenerationSettings instance; + private static @Nullable TestGenerationSettings instance; public static @NonNull TestGenerationSettings getInstance() { if (instance == null) { diff --git a/key.core.testgen/src/test/resources/testcase/smt/ce/middle.key b/key.core.testgen/src/test/resources/testcase/smt/ce/middle.key index 5c8f265c960..6a8593b88e4 100644 --- a/key.core.testgen/src/test/resources/testcase/smt/ce/middle.key +++ b/key.core.testgen/src/test/resources/testcase/smt/ce/middle.key @@ -40,12 +40,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Fri Jun 06 15:00:21 CEST 2014 -name=Middle[Middle\\:\\:middle(int,int,int)].JML normal_behavior operation contract.0 -contract=Middle[Middle\\:\\:middle(int,int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Middle[Middle::middle(int,int,int)].JML normal_behavior operation contract.0", + "contract": "Middle[Middle::middle(int,int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "mihai" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core.testgen/src/test/resources/testcase/smt/tg/middle.key b/key.core.testgen/src/test/resources/testcase/smt/tg/middle.key index 5c8f265c960..6a8593b88e4 100644 --- a/key.core.testgen/src/test/resources/testcase/smt/tg/middle.key +++ b/key.core.testgen/src/test/resources/testcase/smt/tg/middle.key @@ -40,12 +40,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Fri Jun 06 15:00:21 CEST 2014 -name=Middle[Middle\\:\\:middle(int,int,int)].JML normal_behavior operation contract.0 -contract=Middle[Middle\\:\\:middle(int,int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Middle[Middle::middle(int,int,int)].JML normal_behavior operation contract.0", + "contract": "Middle[Middle::middle(int,int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "mihai" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/src/main/antlr4/JmlLexer.g4 b/key.core/src/main/antlr4/JmlLexer.g4 index f1a67a2afd5..03b7d3ce068 100644 --- a/key.core/src/main/antlr4/JmlLexer.g4 +++ b/key.core/src/main/antlr4/JmlLexer.g4 @@ -280,7 +280,7 @@ SEQCONCAT: '\\seq_concat'; //KeY extension, not official JML SEQDEF: '\\seq_def'; //KeY extension, not official JML SEQEMPTY: '\\seq_empty'; //KeY extension, not official JML SEQGET: '\\seq_get'; //KeY extension, not official JML -SEQREPLACE: '\\seq_put'; //KeY extension, not official JML +SEQREPLACE: '\\seq_upd'; //KeY extension, not official JML SEQREVERSE: '\\seq_reverse'; //KeY extension, not official JML SEQSINGLETON: '\\seq_singleton'; //KeY extension, not official JML SEQSUB: '\\seq_sub'; //KeY extension, not official JML diff --git a/key.core/src/main/antlr4/JmlParser.g4 b/key.core/src/main/antlr4/JmlParser.g4 index a66965df0fd..34819e845af 100644 --- a/key.core/src/main/antlr4/JmlParser.g4 +++ b/key.core/src/main/antlr4/JmlParser.g4 @@ -161,7 +161,7 @@ in_group_clause: IN expression; maps_into_clause: MAPS expression; nowarn_pragma: NOWARN expression; debug_statement: DEBUG expression; -set_statement: SET expression EQUAL_SINGLE expression SEMI_TOPLEVEL; +set_statement: SET (assignee=expression) EQUAL_SINGLE (value=expression) SEMI_TOPLEVEL; merge_point_statement: MERGE_POINT (MERGE_PROC (proc=STRING_LITERAL))? @@ -347,8 +347,7 @@ jmlprimary | VALUES #primaryValues | STRING_EQUAL LPAREN expression COMMA expression RPAREN #primaryStringEq | EMPTYSET #primaryEmptySet - | STOREREF LPAREN storeRefUnion RPAREN #primaryStoreRef - | LOCSET LPAREN fieldarrayaccess (COMMA fieldarrayaccess)* RPAREN #primaryCreateLocset + | (LOCSET|STOREREF) LPAREN storeRefUnion RPAREN #primaryStoreRef | SINGLETON LPAREN expression RPAREN #primaryCreateLocsetSingleton | UNION LPAREN storeRefUnion RPAREN #primaryUnion | INTERSECT LPAREN storeRefIntersect RPAREN #primaryIntersect @@ -363,14 +362,6 @@ jmlprimary | sequence #primaryignore10 ; -fieldarrayaccess: (ident|this_|super_) (fieldarrayaccess_suffix)*; -fieldarrayaccess_suffix - : DOT (ident | inv | inv_free | this_ | super_ | TRANSIENT | INV | INV_FREE) - | LBRACKET (expression) RBRACKET -; - -super_: SUPER; - sequence : SEQEMPTY #sequenceEmpty | seqdefterm #sequenceIgnore1 diff --git a/key.core/src/main/antlr4/KeYParser.g4 b/key.core/src/main/antlr4/KeYParser.g4 index 2a2926ea015..ce0c5819c70 100644 --- a/key.core/src/main/antlr4/KeYParser.g4 +++ b/key.core/src/main/antlr4/KeYParser.g4 @@ -39,7 +39,7 @@ problem : ( PROBLEM LBRACE ( t=termorseq ) RBRACE | CHOOSECONTRACT (chooseContract=string_value SEMI)? - | PROOFOBLIGATION (proofObligation=string_value SEMI)? + | PROOFOBLIGATION (proofObligation=cvalue)? SEMI? ) proofScript? ; diff --git a/key.core/src/main/java/de/uka/ilkd/key/informationflow/macros/StartAuxiliaryBlockComputationMacro.java b/key.core/src/main/java/de/uka/ilkd/key/informationflow/macros/StartAuxiliaryBlockComputationMacro.java index 5438464d94c..65d08de9837 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/informationflow/macros/StartAuxiliaryBlockComputationMacro.java +++ b/key.core/src/main/java/de/uka/ilkd/key/informationflow/macros/StartAuxiliaryBlockComputationMacro.java @@ -24,6 +24,8 @@ import org.key_project.util.collection.ImmutableList; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * @@ -53,7 +55,7 @@ public String getDescription() { @Override public boolean canApplyTo(Proof proof, ImmutableList goals, PosInOccurrence posInOcc) { - if (goals == null || goals.head() == null || goals.head().node() == null + if (goals == null || goals.isEmpty() || goals.head().node() == null || goals.head().node().parent() == null) { return false; } @@ -78,7 +80,7 @@ public boolean canApplyTo(Proof proof, ImmutableList goals, PosInOccurrenc final Term selfComposedExec = f.create(InfFlowPOSnippetFactory.Snippet.SELFCOMPOSED_BLOCK_WITH_PRE_RELATION); - return posInOcc.subTerm().equalsModRenaming(selfComposedExec); + return posInOcc.subTerm().equalsModProperty(selfComposedExec, RENAMING_PROPERTY); } @Override diff --git a/key.core/src/main/java/de/uka/ilkd/key/informationflow/macros/StartAuxiliaryLoopComputationMacro.java b/key.core/src/main/java/de/uka/ilkd/key/informationflow/macros/StartAuxiliaryLoopComputationMacro.java index 2d8087f9aee..e37ab3aefe9 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/informationflow/macros/StartAuxiliaryLoopComputationMacro.java +++ b/key.core/src/main/java/de/uka/ilkd/key/informationflow/macros/StartAuxiliaryLoopComputationMacro.java @@ -25,6 +25,8 @@ import org.key_project.util.collection.ImmutableList; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + public class StartAuxiliaryLoopComputationMacro extends AbstractProofMacro implements StartSideProofMacro { @@ -49,7 +51,7 @@ public String getDescription() { @Override public boolean canApplyTo(Proof proof, ImmutableList goals, PosInOccurrence posInOcc) { - if (goals == null || goals.head() == null || goals.head().node() == null + if (goals == null || goals.isEmpty() || goals.head().node() == null || goals.head().node().parent() == null) { return false; } @@ -75,7 +77,7 @@ public boolean canApplyTo(Proof proof, ImmutableList goals, PosInOccurrenc final Term selfComposedExec = f.create(InfFlowPOSnippetFactory.Snippet.SELFCOMPOSED_LOOP_WITH_INV_RELATION); - return posInOcc.subTerm().equalsModRenaming(selfComposedExec); + return posInOcc.subTerm().equalsModProperty(selfComposedExec, RENAMING_PROPERTY); } @Override diff --git a/key.core/src/main/java/de/uka/ilkd/key/informationflow/macros/StartAuxiliaryMethodComputationMacro.java b/key.core/src/main/java/de/uka/ilkd/key/informationflow/macros/StartAuxiliaryMethodComputationMacro.java index bac101e8534..c04e45bebe2 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/informationflow/macros/StartAuxiliaryMethodComputationMacro.java +++ b/key.core/src/main/java/de/uka/ilkd/key/informationflow/macros/StartAuxiliaryMethodComputationMacro.java @@ -22,6 +22,8 @@ import org.key_project.util.collection.ImmutableList; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * * @author christoph @@ -50,7 +52,7 @@ public String getDescription() { @Override public boolean canApplyTo(Proof proof, ImmutableList goals, PosInOccurrence posInOcc) { - if (goals == null || goals.head() == null) { + if (goals == null || goals.isEmpty()) { return false; } if (posInOcc == null || posInOcc.subTerm() == null) { @@ -67,7 +69,7 @@ public boolean canApplyTo(Proof proof, ImmutableList goals, PosInOccurrenc final Term selfComposedExec = f.create(InfFlowPOSnippetFactory.Snippet.SELFCOMPOSED_EXECUTION_WITH_PRE_RELATION); - return posInOcc.subTerm().equalsModRenaming(selfComposedExec); + return posInOcc.subTerm().equalsModProperty(selfComposedExec, RENAMING_PROPERTY); } @Override diff --git a/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/BlockExecutionPO.java b/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/BlockExecutionPO.java index 89f769146f5..61ce8ed878e 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/BlockExecutionPO.java +++ b/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/BlockExecutionPO.java @@ -5,7 +5,6 @@ import java.util.List; import java.util.Map; -import java.util.Properties; import de.uka.ilkd.key.informationflow.po.snippet.BasicPOSnippetFactory; import de.uka.ilkd.key.informationflow.po.snippet.POSnippetFactory; @@ -21,6 +20,7 @@ import de.uka.ilkd.key.proof.Goal; import de.uka.ilkd.key.proof.Proof; import de.uka.ilkd.key.proof.init.*; +import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.speclang.BlockContract; import de.uka.ilkd.key.speclang.ContractFactory; @@ -166,11 +166,14 @@ public ExecutionContext getExecutionContext() { /** * {@inheritDoc} + * + * @return */ @Override - public void fillSaveProperties(Properties properties) { - super.fillSaveProperties(properties); - properties.setProperty("Non-interference contract", contract.getUniqueName()); + public Configuration createLoaderConfig() { + var c = super.createLoaderConfig(); + c.set("Non-interference contract", contract.getUniqueName()); + return c; } @Override diff --git a/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/IFProofObligationVars.java b/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/IFProofObligationVars.java index 217093da97a..dc0912874df 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/IFProofObligationVars.java +++ b/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/IFProofObligationVars.java @@ -66,7 +66,12 @@ private void linkSymbExecVarsToCopies() { private void linkStateVarsToCopies(StateVars ifVars, StateVars seVars, Map map) { final Iterator ifVarsIt = ifVars.termList.iterator(); for (final Term symbTerm : seVars.termList) { - final Term ifTerm = ifVarsIt.next(); + final Term ifTerm; + if (ifVarsIt.hasNext()) { + ifTerm = ifVarsIt.next(); + } else { + ifTerm = null; + } if (symbTerm != null) { map.put(symbTerm, ifTerm); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/InfFlowContractPO.java b/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/InfFlowContractPO.java index d531f2271bc..bb3053c9aad 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/InfFlowContractPO.java +++ b/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/InfFlowContractPO.java @@ -5,7 +5,6 @@ import java.util.List; import java.util.Map; -import java.util.Properties; import de.uka.ilkd.key.informationflow.po.snippet.InfFlowPOSnippetFactory; import de.uka.ilkd.key.informationflow.po.snippet.POSnippetFactory; @@ -19,7 +18,7 @@ import de.uka.ilkd.key.logic.op.ProgramVariable; import de.uka.ilkd.key.proof.init.*; import de.uka.ilkd.key.rule.NoPosTacletApp; -import de.uka.ilkd.key.speclang.Contract; +import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.speclang.InformationFlowContract; import org.key_project.logic.Named; @@ -171,30 +170,14 @@ public IFProofObligationVars getIFVars() { /** * {@inheritDoc} - */ - @Override - public void fillSaveProperties(Properties properties) { - super.fillSaveProperties(properties); - properties.setProperty("contract", contract.getName()); - } - - - /** - * Instantiates a new proof obligation with the given settings. * - * @param initConfig The already load {@link InitConfig}. - * @param properties The settings of the proof obligation to instantiate. - * @return The instantiated proof obligation. + * @return */ - public static LoadedPOContainer loadFrom(InitConfig initConfig, Properties properties) { - final String contractName = properties.getProperty("contract"); - final Contract contract = - initConfig.getServices().getSpecificationRepository().getContractByName(contractName); - if (contract == null) { - throw new RuntimeException("Contract not found: " + contractName); - } else { - return new LoadedPOContainer(contract.createProofObl(initConfig), 0); - } + @Override + public Configuration createLoaderConfig() { + var c = super.createLoaderConfig(); + c.set("contract", contract.getName()); + return c; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/InfFlowContractPOLoader.java b/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/InfFlowContractPOLoader.java new file mode 100644 index 00000000000..63fedab22bd --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/InfFlowContractPOLoader.java @@ -0,0 +1,49 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.informationflow.po; + +import de.uka.ilkd.key.proof.init.IPersistablePO; +import de.uka.ilkd.key.proof.init.InitConfig; +import de.uka.ilkd.key.proof.init.loader.ProofObligationLoader; +import de.uka.ilkd.key.settings.Configuration; +import de.uka.ilkd.key.speclang.Contract; + +import org.jspecify.annotations.NullMarked; + +/** + * Loader for information flow proof obligations. + * + * @author Alexander Weigl + * @version 1 (28.12.23) + */ +@NullMarked +public class InfFlowContractPOLoader implements ProofObligationLoader { + + /** + * Instantiates a new proof obligation with the given settings. + * + * @param initConfig The already loaded {@link InitConfig}. + * @param properties The settings of the proof obligation to instantiate. + * @return The instantiated proof obligation. + */ + public IPersistablePO.LoadedPOContainer loadFrom(InitConfig initConfig, + Configuration properties) { + final String contractName = properties.getString("contract"); + final Contract contract = + initConfig.getServices().getSpecificationRepository().getContractByName(contractName); + if (contract == null) { + throw new RuntimeException("Contract not found: " + contractName); + } else { + return new IPersistablePO.LoadedPOContainer(contract.createProofObl(initConfig), 0); + } + } + + @Override + public boolean handles(String identifier) { + return InfFlowContractPO.class.getName().equals(identifier) + || InfFlowContractPO.class.getSimpleName().equals(identifier) + || InfFlowContractPOLoader.class.getName().equals(identifier) + || InfFlowContractPOLoader.class.getSimpleName().equals(identifier); + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/LoopInvExecutionPO.java b/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/LoopInvExecutionPO.java index 30a1e893a65..0910cd04283 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/LoopInvExecutionPO.java +++ b/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/LoopInvExecutionPO.java @@ -5,7 +5,6 @@ import java.util.List; import java.util.Map; -import java.util.Properties; import de.uka.ilkd.key.informationflow.po.snippet.BasicPOSnippetFactory; import de.uka.ilkd.key.informationflow.po.snippet.POSnippetFactory; @@ -21,6 +20,7 @@ import de.uka.ilkd.key.proof.Goal; import de.uka.ilkd.key.proof.Proof; import de.uka.ilkd.key.proof.init.*; +import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.speclang.ContractFactory; import de.uka.ilkd.key.speclang.LoopSpecification; import de.uka.ilkd.key.util.InfFlowSpec; @@ -167,11 +167,14 @@ protected String buildPOName(boolean transactionFlag) { /** * {@inheritDoc} + * + * @return */ @Override - public void fillSaveProperties(Properties properties) { - super.fillSaveProperties(properties); - properties.setProperty("Non-interference contract", loopInvariant.getUniqueName()); + public Configuration createLoaderConfig() { + var c = super.createLoaderConfig(); + c.set("Non-interference contract", loopInvariant.getUniqueName()); + return c; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/SymbolicExecutionPO.java b/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/SymbolicExecutionPO.java index 9432fcae9c8..44c0b766d42 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/SymbolicExecutionPO.java +++ b/key.core/src/main/java/de/uka/ilkd/key/informationflow/po/SymbolicExecutionPO.java @@ -5,7 +5,6 @@ import java.util.List; import java.util.Map; -import java.util.Properties; import de.uka.ilkd.key.informationflow.po.snippet.BasicPOSnippetFactory; import de.uka.ilkd.key.informationflow.po.snippet.POSnippetFactory; @@ -20,6 +19,7 @@ import de.uka.ilkd.key.proof.Goal; import de.uka.ilkd.key.proof.Proof; import de.uka.ilkd.key.proof.init.*; +import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.speclang.ContractFactory; import de.uka.ilkd.key.speclang.InformationFlowContract; @@ -170,11 +170,14 @@ public Goal getInitiatingGoal() { /** * {@inheritDoc} + * + * @return */ @Override - public void fillSaveProperties(Properties properties) { - super.fillSaveProperties(properties); - properties.setProperty("Non-interference contract", contract.getName()); + public Configuration createLoaderConfig() { + var c = super.createLoaderConfig(); + c.set("Non-interference contract", contract.getName()); + return c; } @Override diff --git a/key.core/src/main/java/de/uka/ilkd/key/informationflow/proof/init/StateVars.java b/key.core/src/main/java/de/uka/ilkd/key/informationflow/proof/init/StateVars.java index 689c815dfaa..7730ddabc9d 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/informationflow/proof/init/StateVars.java +++ b/key.core/src/main/java/de/uka/ilkd/key/informationflow/proof/init/StateVars.java @@ -176,8 +176,7 @@ private static Term newVariable(Term t, String name, Services services) { String newName = tb.newName(name); ProgramElementName pen = new ProgramElementName(newName); ProgramVariable progVar = (ProgramVariable) t.op(); - LocationVariable newVar = new LocationVariable(pen, progVar.getKeYJavaType(), - progVar.getContainerType(), progVar.isStatic(), progVar.isModel()); + LocationVariable newVar = LocationVariable.fromProgramVariable(progVar, pen); register(newVar, services); return tb.var(newVar); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/JavaInfo.java b/key.core/src/main/java/de/uka/ilkd/key/java/JavaInfo.java index 3e03d7b704c..3df934302d5 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/JavaInfo.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/JavaInfo.java @@ -1061,7 +1061,9 @@ public ProgramVariable getAttribute(final String attributeName, Sort s) { */ public ProgramVariable getCanonicalFieldProgramVariable(String fieldName, KeYJavaType kjt) { ImmutableList allAttributes = getAllAttributes(fieldName, kjt, false); - if (kjt.getJavaType() instanceof ArrayType) { + if (allAttributes.isEmpty()) { + return null; + } else if (kjt.getJavaType() instanceof ArrayType) { return allAttributes.head(); } else { return allAttributes.reverse().head(); diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/JavaTools.java b/key.core/src/main/java/de/uka/ilkd/key/java/JavaTools.java index 0d3b0f3f3e0..76c98009b85 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/JavaTools.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/JavaTools.java @@ -3,6 +3,7 @@ * SPDX-License-Identifier: GPL-2.0-only */ package de.uka.ilkd.key.java; + import de.uka.ilkd.key.java.reference.ExecutionContext; import de.uka.ilkd.key.java.statement.CatchAllStatement; import de.uka.ilkd.key.java.statement.LabeledStatement; @@ -14,12 +15,13 @@ import org.key_project.util.ExtList; +import org.jspecify.annotations.Nullable; + /** * Miscellaneous static methods related to Java blocks or statements in KeY. Mostly moved from * key.util.MiscTools here. * * @author bruns - * */ public final class JavaTools { @@ -49,6 +51,20 @@ public static SourceElement getActiveStatement(JavaBlock jb) { public static JavaBlock removeActiveStatement(JavaBlock jb, Services services) { assert jb.program() != null; final SourceElement activeStatement = JavaTools.getActiveStatement(jb); + return replaceStatement(jb, services, activeStatement, null); + } + + /** + * Returns the passed java block with `statement` replaced with `with`. + * + * @param jb the block + * @param statement the statement to replace + * @param with what to replace with. If this is null, the statement will be removed + * @return the modified block + */ + public static JavaBlock replaceStatement(JavaBlock jb, Services services, + SourceElement statement, @Nullable SourceElement with) { + assert jb.program() != null; Statement newProg = (Statement) (new CreatingASTVisitor(jb.program(), false, services) { private boolean done = false; @@ -61,9 +77,12 @@ public ProgramElement go() { @Override public void doAction(ProgramElement node) { - if (!done && node == activeStatement) { + if (!done && node == statement) { done = true; stack.pop(); + if (with != null) { + addToTopOfStack(with); + } changed(); } else { super.doAction(node); diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/KeYJavaASTFactory.java b/key.core/src/main/java/de/uka/ilkd/key/java/KeYJavaASTFactory.java index 2473def2307..ca4ca1e0227 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/KeYJavaASTFactory.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/KeYJavaASTFactory.java @@ -31,43 +31,16 @@ import de.uka.ilkd.key.java.reference.ThisReference; import de.uka.ilkd.key.java.reference.TypeRef; import de.uka.ilkd.key.java.reference.TypeReference; -import de.uka.ilkd.key.java.statement.Branch; -import de.uka.ilkd.key.java.statement.Break; -import de.uka.ilkd.key.java.statement.Case; -import de.uka.ilkd.key.java.statement.Catch; -import de.uka.ilkd.key.java.statement.Continue; -import de.uka.ilkd.key.java.statement.Default; -import de.uka.ilkd.key.java.statement.Do; -import de.uka.ilkd.key.java.statement.Else; -import de.uka.ilkd.key.java.statement.EmptyStatement; -import de.uka.ilkd.key.java.statement.EnhancedFor; -import de.uka.ilkd.key.java.statement.Finally; -import de.uka.ilkd.key.java.statement.For; -import de.uka.ilkd.key.java.statement.ForUpdates; -import de.uka.ilkd.key.java.statement.Guard; -import de.uka.ilkd.key.java.statement.IForUpdates; -import de.uka.ilkd.key.java.statement.IGuard; -import de.uka.ilkd.key.java.statement.ILoopInit; -import de.uka.ilkd.key.java.statement.If; -import de.uka.ilkd.key.java.statement.LabeledStatement; -import de.uka.ilkd.key.java.statement.LoopInit; -import de.uka.ilkd.key.java.statement.MethodBodyStatement; -import de.uka.ilkd.key.java.statement.MethodFrame; -import de.uka.ilkd.key.java.statement.Return; -import de.uka.ilkd.key.java.statement.Switch; -import de.uka.ilkd.key.java.statement.SynchronizedBlock; -import de.uka.ilkd.key.java.statement.Then; -import de.uka.ilkd.key.java.statement.Throw; -import de.uka.ilkd.key.java.statement.TransactionStatement; -import de.uka.ilkd.key.java.statement.Try; -import de.uka.ilkd.key.java.statement.While; +import de.uka.ilkd.key.java.statement.*; import de.uka.ilkd.key.logic.ProgramElementName; import de.uka.ilkd.key.logic.VariableNamer; import de.uka.ilkd.key.logic.op.IProgramMethod; import de.uka.ilkd.key.logic.op.IProgramVariable; import de.uka.ilkd.key.logic.op.LocationVariable; import de.uka.ilkd.key.logic.op.ProgramVariable; +import de.uka.ilkd.key.proof.NameRecorder; +import org.key_project.logic.Name; import org.key_project.util.ExtList; import org.key_project.util.collection.ImmutableArray; @@ -302,8 +275,17 @@ public static ProgramVariable localVariable(ProgramElementName name, KeYJavaType */ public static ProgramVariable localVariable(final Services services, final String name, final KeYJavaType type) { + // first check for a saved name for this variable + final NameRecorder nameRecorder = services.getNameRecorder(); + for (var prop : nameRecorder.getSetProposals()) { + if (prop.toString().startsWith(name + VariableNamer.TEMP_INDEX_SEPARATOR)) { + return KeYJavaASTFactory.localVariable(new ProgramElementName(prop.toString()), + type); + } + } final ProgramElementName uniqueName = services.getVariableNamer().getTemporaryNameProposal(name); + nameRecorder.addProposal(new Name(uniqueName.getProgramName())); final ProgramVariable variable = KeYJavaASTFactory.localVariable(uniqueName, type); return variable; diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/ParseExceptionInFile.java b/key.core/src/main/java/de/uka/ilkd/key/java/ParseExceptionInFile.java index 94b3c1c5709..14238bd8085 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/ParseExceptionInFile.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/ParseExceptionInFile.java @@ -38,18 +38,17 @@ public String getFilename() { return filename; } - @Nullable @Override - public Location getLocation() throws MalformedURLException { + public @Nullable Location getLocation() throws MalformedURLException { // This kind of exception has a filename but no line/col information // Retrieve the latter from the cause. location remains null if // no line/col is available in cause. if (getCause() != null) { var location = ExceptionTools.getLocation(getCause()); - if (location.isEmpty()) { + if (location == null) { return null; } - return Location.fromFileName(getFilename(), location.get().getPosition()); + return Location.fromFileName(getFilename(), location.getPosition()); } return null; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/PosConvertException.java b/key.core/src/main/java/de/uka/ilkd/key/java/PosConvertException.java index 7c91a7785e8..febd7cd4aa6 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/PosConvertException.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/PosConvertException.java @@ -67,9 +67,8 @@ public Position getPosition() { return position; } - @Nullable @Override - public Location getLocation() throws MalformedURLException { + public @Nullable Location getLocation() throws MalformedURLException { Throwable cause = getCause(); if (this.file == null) { if (cause instanceof UnresolvedReferenceException ure) { diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/PositionInfo.java b/key.core/src/main/java/de/uka/ilkd/key/java/PositionInfo.java index 54950af23f2..92bb56e5858 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/PositionInfo.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/PositionInfo.java @@ -35,15 +35,13 @@ public class PositionInfo { /** * The URI of the resource this location refers to. Either a meaningful value or null. */ - @Nullable - private final URI fileURI; + private final @Nullable URI fileURI; /** * The URI of the parent class of this location (the class the statement originates from). May * be null. */ - @Nullable - private URI parentClassURI; + private @Nullable URI parentClassURI; private PositionInfo() { this.relPos = SourceElement.Position.UNDEFINED; @@ -111,8 +109,7 @@ public String getFileName() { return null; } - @Nullable - public URI getParentClassURI() { + public @Nullable URI getParentClassURI() { return parentClassURI; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/Recoder2KeY.java b/key.core/src/main/java/de/uka/ilkd/key/java/Recoder2KeY.java index 04f81ecef57..3f0335fa237 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/Recoder2KeY.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/Recoder2KeY.java @@ -1206,8 +1206,7 @@ private static String trim(String s, int length) { /** * tries to parse recoders exception position information */ - @Nullable - private static Pair extractPositionInfo(String errorMessage) { + private static @Nullable Pair extractPositionInfo(String errorMessage) { if (errorMessage == null || errorMessage.indexOf('@') == -1) { return null; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/Recoder2KeYConverter.java b/key.core/src/main/java/de/uka/ilkd/key/java/Recoder2KeYConverter.java index 6da669c3ea4..322cc07a03a 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/Recoder2KeYConverter.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/Recoder2KeYConverter.java @@ -50,6 +50,7 @@ import recoder.abstraction.Type; import recoder.io.DataLocation; import recoder.java.NonTerminalProgramElement; +import recoder.java.declaration.DeclarationSpecifier; import recoder.java.declaration.TypeDeclaration; import recoder.list.generic.ASTList; @@ -717,6 +718,11 @@ public SeqReverse convert(de.uka.ilkd.key.java.recoderext.adt.SeqReverse e) { return new SeqReverse(children); } + public SeqPut convert(de.uka.ilkd.key.java.recoderext.adt.SeqPut e) { + ExtList children = collectChildren(e); + return new SeqPut(children); + } + public EmptyMapLiteral convert(de.uka.ilkd.key.java.recoderext.adt.EmptyMapLiteral e) { return EmptyMapLiteral.INSTANCE; } @@ -941,7 +947,7 @@ public CatchAllStatement convert(de.uka.ilkd.key.java.recoderext.CatchAllStateme * @return the converted statement */ public JmlAssert convert(de.uka.ilkd.key.java.recoderext.JmlAssert ja) { - return new JmlAssert(ja.getKind(), ja.getCondition(), positionInfo(ja), services); + return new JmlAssert(ja.getKind(), ja.getCondition(), positionInfo(ja)); } // ------------------- declaration --------------------- @@ -1120,8 +1126,12 @@ public VariableSpecification convert( final ProgramElementName name = VariableNamer.parseName(makeAdmissibleName(recoderVarSpec.getName())); + var isGhost = containsModifier(recoderVarSpec.getParent(), + de.uka.ilkd.key.java.recoderext.Ghost.class); + var isFinal = recoderVarSpec.isFinal(); + final ProgramVariable pv = - new LocationVariable(name, getKeYJavaType(recoderType), recoderVarSpec.isFinal()); + new LocationVariable(name, getKeYJavaType(recoderType), isGhost, isFinal); varSpec = new VariableSpecification(collectChildren(recoderVarSpec), pv, recoderVarSpec.getDimensions(), pv.getKeYJavaType()); @@ -1223,6 +1233,18 @@ public FieldSpecification convert(recoder.java.declaration.FieldSpecification re return varSpec; } + private static boolean containsModifier(recoder.java.declaration.JavaDeclaration fs, + Class cls) { + ASTList specifiers = fs.getDeclarationSpecifiers(); + int s = (specifiers == null) ? 0 : specifiers.size(); + for (int i = 0; i < s; i += 1) { + if (cls.isInstance(specifiers.get(i))) { + return true; + } + } + return false; + } + /** * this is needed by #convert(FieldSpecification). */ @@ -1249,20 +1271,16 @@ private ProgramVariable getProgramVariableForFieldSpecification( final Literal compileTimeConstant = getCompileTimeConstantInitializer(recoderVarSpec); - boolean isModel = false; + boolean isModel = containsModifier(recoderVarSpec.getParent(), + de.uka.ilkd.key.java.recoderext.Model.class); boolean isFinal = recoderVarSpec.isFinal(); - for (recoder.java.declaration.Modifier mod : recoderVarSpec.getParent() - .getModifiers()) { - if (mod instanceof de.uka.ilkd.key.java.recoderext.Model) { - isModel = true; - break; - } - } + boolean isGhost = containsModifier(recoderVarSpec.getParent(), + de.uka.ilkd.key.java.recoderext.Ghost.class); if (compileTimeConstant == null) { pv = new LocationVariable(pen, getKeYJavaType(recoderType), getKeYJavaType(recContainingClassType), recoderVarSpec.isStatic(), isModel, - false, isFinal); + isGhost, isFinal); } else { pv = new ProgramConstant(pen, getKeYJavaType(recoderType), getKeYJavaType(recContainingClassType), recoderVarSpec.isStatic(), @@ -1766,6 +1784,11 @@ public CopyAssignment convert(recoder.java.expression.operator.CopyAssignment ar return new CopyAssignment(collectChildrenAndComments(arg)); } + public SetStatement convert( + de.uka.ilkd.key.java.recoderext.SetStatement arg) { + return new SetStatement(arg.getParserContext(), positionInfo(arg)); + } + public TransactionStatement convert(de.uka.ilkd.key.java.recoderext.TransactionStatement tr) { return new TransactionStatement(tr.getType()); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/TypeConverter.java b/key.core/src/main/java/de/uka/ilkd/key/java/TypeConverter.java index 9a173eeac0a..f3f2c6aacb7 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/TypeConverter.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/TypeConverter.java @@ -111,6 +111,10 @@ public SeqLDT getSeqLDT() { return (SeqLDT) getLDT(SeqLDT.NAME); } + public SortLDT getSortLDT() { + return (SortLDT) getLDT(SortLDT.NAME); + } + public MapLDT getMapLDT() { return (MapLDT) getLDT(MapLDT.NAME); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/abstraction/PrimitiveType.java b/key.core/src/main/java/de/uka/ilkd/key/java/abstraction/PrimitiveType.java index bbfde153e2c..3e4eca762ef 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/abstraction/PrimitiveType.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/abstraction/PrimitiveType.java @@ -55,6 +55,8 @@ public final class PrimitiveType implements Type { new PrimitiveType("\\free", FreeLiteral.INSTANCE, FreeLDT.NAME); public static final PrimitiveType JAVA_MAP = new PrimitiveType("\\map", EmptyMapLiteral.INSTANCE, MapLDT.NAME); + public static final PrimitiveType JAVA_TYPE = + new PrimitiveType("\\TYPE", NullLiteral.NULL, SortLDT.NAME); public static final PrimitiveType PROGRAM_SV = new PrimitiveType("SV", null, null); diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/Subtype.java b/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/Subtype.java new file mode 100644 index 00000000000..b3cbbf3920b --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/Subtype.java @@ -0,0 +1,54 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.java.expression.operator; + +import de.uka.ilkd.key.java.Expression; +import de.uka.ilkd.key.java.visitor.Visitor; + +import org.key_project.util.ExtList; + +/** + * Subtype + */ +public class Subtype extends BinaryOperator { + + public Subtype(ExtList children) { + super(children); + } + + public Subtype(Expression lhs, Expression rhs) { + super(lhs, rhs); + } + + + /** + * Get precedence. + * + * @return the int value. + */ + + public int getPrecedence() { + return 3; + } + + /** + * Get notation. + * + * @return the int value. + */ + + public int getNotation() { + return INFIX; + } + + /** + * calls the corresponding method of a visitor in order to perform some action/transformation on + * this element + * + * @param v the Visitor + */ + public void visit(Visitor v) { + v.performActionOnSubtype(this); + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/adt/SeqPut.java b/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/adt/SeqPut.java new file mode 100644 index 00000000000..92a912b9c75 --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/adt/SeqPut.java @@ -0,0 +1,50 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.java.expression.operator.adt; + +import de.uka.ilkd.key.java.Services; +import de.uka.ilkd.key.java.abstraction.KeYJavaType; +import de.uka.ilkd.key.java.abstraction.PrimitiveType; +import de.uka.ilkd.key.java.expression.Operator; +import de.uka.ilkd.key.java.reference.ExecutionContext; +import de.uka.ilkd.key.java.visitor.Visitor; + +import org.key_project.util.ExtList; + +public class SeqPut extends Operator { + + public SeqPut(ExtList children) { + super(children); + } + + + @Override + public int getPrecedence() { + return 0; + } + + + @Override + public int getNotation() { + return PREFIX; + } + + + @Override + public void visit(Visitor v) { + v.performActionOnSeqPut(this); + } + + + @Override + public int getArity() { + return 3; + } + + + @Override + public KeYJavaType getKeYJavaType(Services javaServ, ExecutionContext ec) { + return javaServ.getJavaInfo().getKeYJavaType(PrimitiveType.JAVA_SEQ); + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/JMLTransformer.java b/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/JMLTransformer.java index f36df966a19..a44be55c0b6 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/JMLTransformer.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/JMLTransformer.java @@ -6,6 +6,7 @@ import java.net.URI; import java.util.*; +import de.uka.ilkd.key.nparser.KeyAst; import de.uka.ilkd.key.parser.Location; import de.uka.ilkd.key.settings.ProofIndependentSettings; import de.uka.ilkd.key.speclang.PositionedString; @@ -29,7 +30,6 @@ import recoder.java.*; import recoder.java.SourceElement.Position; import recoder.java.declaration.*; -import recoder.java.expression.operator.CopyAssignment; import recoder.java.statement.EmptyStatement; import recoder.kit.ProblemReport; import recoder.list.generic.ASTArrayList; @@ -92,13 +92,32 @@ private String concatenate(Comment[] comments) { StringBuilder sb = new StringBuilder(comments[0].getText()); for (int i = 1; i < comments.length; i++) { - Position relativePos = comments[i].getRelativePosition(); - for (int j = 0; j < relativePos.getLine(); j++) { - sb.append("\n"); - } - for (int j = 0; j < relativePos.getColumn(); j++) { - sb.append(" "); - } + Position previousStart = comments[i - 1].getStartPosition(); + + // this also includes // or /* ... */ + String previousText = comments[i - 1].getText(); + + int previousEndLine = previousStart.getLine() + + (int) previousText.chars().filter(x -> x == '\n').count(); + + // /*ab*/ => length: 6, lastIndex: -1, so we get 6 + // /*\nb*/ => length: 6, lastIndex: 2, so we get 3 + int previousEndColumn = previousStart.getColumn() - 1 + + previousText.length() - (previousText.lastIndexOf('\n') + 1); + + Position currentStart = comments[i].getStartPosition(); + + int insertRows = currentStart.getLine() - previousEndLine; + + // the columns are starting at 1 and not at 0 + int insertColumns = insertRows > 0 ? // line break between the comments + currentStart.getColumn() - 1 + : (currentStart.getColumn() - 1) - previousEndColumn; + + assert insertRows >= 0 && insertColumns >= 0; + + sb.append("\n".repeat(insertRows)); + sb.append(" ".repeat(insertColumns)); sb.append(comments[i].getText()); } @@ -407,18 +426,18 @@ private void transformAssertStatement(TextualJMLAssertStatement stat, StatementBlock astParent = (StatementBlock) originalComments[0].getParent().getASTParent(); int childIndex = astParent.getIndexOfChild(originalComments[0].getParent()); - ParserRuleContext ctx = stat.getContext().first; + var ctx = stat.getContext(); - de.uka.ilkd.key.java.Position pos = de.uka.ilkd.key.java.Position.fromToken(ctx.start); + de.uka.ilkd.key.java.Position pos = ctx.getStartLocation().getPosition(); final Kind kind = stat.getKind(); - JmlAssert jmlAssert = new JmlAssert(kind, stat.getContext()); + JmlAssert jmlAssert = new JmlAssert(kind, ctx); try { updatePositionInformation(jmlAssert, pos); doAttach(jmlAssert, astParent, childIndex); } catch (Throwable e) { throw new SLTranslationException( String.format("%s (%s)", e.getMessage(), e.getClass().getName()), - Location.fromToken(ctx.start), e); + ctx.getStartLocation(), e); } } @@ -430,16 +449,15 @@ private void transformSetStatement(TextualJMLSetStatement stat, Comment[] origin StatementBlock astParent = (StatementBlock) originalComments[0].getParent().getASTParent(); int childIndex = astParent.getIndexOfChild(originalComments[0].getParent()); + var statement = new KeyAst.SetStatementContext(stat.getAssignment()); + // parse statement, attach to AST de.uka.ilkd.key.java.Position pos = de.uka.ilkd.key.java.Position.fromToken(stat.getAssignment().start); try { - String assignment = getFullText(stat.getAssignment()).substring(3); - List stmtList = services.getProgramFactory().parseStatements(assignment); - assert stmtList.size() == 1; - CopyAssignment assignStmt = (CopyAssignment) stmtList.get(0); - updatePositionInformation(assignStmt, pos); - doAttach(assignStmt, astParent, childIndex); + var set = new SetStatement(statement); + updatePositionInformation(set, pos); + doAttach(set, astParent, childIndex); } catch (Throwable e) { throw new SLTranslationException(e.getMessage() + " (" + e.getClass().getName() + ")", Location.fromToken(stat.getAssignment().start), e); diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/JmlAssert.java b/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/JmlAssert.java index 5b7062f2e92..bfbd83712f1 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/JmlAssert.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/JmlAssert.java @@ -3,8 +3,8 @@ * SPDX-License-Identifier: GPL-2.0-only */ package de.uka.ilkd.key.java.recoderext; +import de.uka.ilkd.key.nparser.KeyAst; import de.uka.ilkd.key.speclang.jml.pretranslation.TextualJMLAssertStatement; -import de.uka.ilkd.key.speclang.njml.LabeledParserRuleContext; import recoder.java.ProgramElement; import recoder.java.SourceVisitor; @@ -19,27 +19,22 @@ public class JmlAssert extends JavaStatement { /** - * The kind of this statment either ASSERT or ASSUME + * The kind of this statement either ASSERT or ASSUME */ private final TextualJMLAssertStatement.Kind kind; - /* - * condition should be an Expression, but as KeY doesn't support some jml Expressions as - * Expression Objects e.g. \forall keep this as the parse tree for now (blockcontracts seem to - * handle this similar) - */ + /** * The condition of this statement in parse tree form */ // this isn't serializable, but that shouldn't be a problem for KeY - private final LabeledParserRuleContext condition; + private final KeyAst.Expression condition; /** - * - * @param kind the kind of this statment + * @param kind the kind of this statement * @param condition the condition for this statement */ - public JmlAssert(TextualJMLAssertStatement.Kind kind, LabeledParserRuleContext condition) { + public JmlAssert(TextualJMLAssertStatement.Kind kind, KeyAst.Expression condition) { this.kind = kind; this.condition = condition; } @@ -47,7 +42,7 @@ public JmlAssert(TextualJMLAssertStatement.Kind kind, LabeledParserRuleContext c /** * copy constructor * - * @param proto the orginal JML assert statement to copy + * @param proto the original JML assert a statement to copy */ public JmlAssert(JmlAssert proto) { super(proto); @@ -59,7 +54,7 @@ public TextualJMLAssertStatement.Kind getKind() { return kind; } - public LabeledParserRuleContext getCondition() { + public KeyAst.Expression getCondition() { return condition; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/RecoderModelTransformer.java b/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/RecoderModelTransformer.java index 87c826ea835..f87a70c23df 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/RecoderModelTransformer.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/RecoderModelTransformer.java @@ -78,6 +78,7 @@ public Expression getDefaultValue(Type type) { case "\\locset" -> EmptySetLiteral.INSTANCE; case "\\seq" -> EmptySeqLiteral.INSTANCE; case "\\set" -> new DLEmbeddedExpression("emptySet", Collections.emptyList()); + case "\\TYPE" -> new DLEmbeddedExpression("any::ssort", Collections.emptyList()); case "\\free" -> new DLEmbeddedExpression("atom", Collections.emptyList()); case "\\map" -> EmptyMapLiteral.INSTANCE; default -> { diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/SetStatement.java b/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/SetStatement.java new file mode 100644 index 00000000000..2f509951666 --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/SetStatement.java @@ -0,0 +1,93 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.java.recoderext; + +import de.uka.ilkd.key.nparser.KeyAst.SetStatementContext; + +import recoder.java.ProgramElement; +import recoder.java.SourceVisitor; +import recoder.java.statement.JavaStatement; + +/** + * Wrapper for JML set statements which lifts the contained parse tree to the Translator. + * + * @author Julian Wiesler + */ +public class SetStatement extends JavaStatement { + /** + * Parser context of the assignment + */ + private final SetStatementContext context; + + /** + * Primary constructor + * + * @param context the context of the assignment + */ + public SetStatement(SetStatementContext context) { + this.context = context; + } + + /** + * copy constructor + * + * @param proto the orginal JML set statement to copy + */ + public SetStatement(SetStatement proto) { + super(proto); + this.context = proto.context; + } + + /** + * {@inheritDoc} + */ + @Override + public SetStatement deepClone() { + return new SetStatement(this); + } + + /** + * Gets the contained parser context + * + * @return the parser context + */ + public SetStatementContext getParserContext() { + return context; + } + + /** + * A set statement has no recorder AST children + */ + @Override + public int getChildCount() { + return 0; + } + + /** + * {@inheritDoc} + * + * There are no recorder AST children. + * + * @throws IndexOutOfBoundsException always + */ + @Override + public ProgramElement getChildAt(int index) { + throw new IndexOutOfBoundsException("JmlAssert has no program children"); + } + + @Override + public int getChildPositionCode(ProgramElement child) { + return -1; + } + + @Override + public boolean replaceChild(ProgramElement p, ProgramElement q) { + return false; + } + + @Override + public void accept(SourceVisitor v) { + // should be fine to leave blank + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/adt/SeqPut.java b/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/adt/SeqPut.java new file mode 100644 index 00000000000..579f1355bdb --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/adt/SeqPut.java @@ -0,0 +1,49 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.java.recoderext.adt; + +import recoder.java.Expression; +import recoder.list.generic.ASTArrayList; + + +public class SeqPut extends ADTPrefixConstruct { + + private static final long serialVersionUID = -4836079248155746383L; + + public SeqPut(Expression seq, Expression idx, Expression val) { + children = new ASTArrayList<>(getArity()); + children.add(seq); + children.add(idx); + children.add(val); + makeParentRoleValid(); + } + + protected SeqPut(SeqPut proto) { + super(proto); + makeParentRoleValid(); + } + + @Override + public SeqPut deepClone() { + return new SeqPut(this); + } + + + @Override + public int getArity() { + return 3; + } + + + @Override + public int getNotation() { + return PREFIX; + } + + @Override + public String toSource() { + return "\\seq_upd(" + children.get(0).toSource() + ", " + children.get(1).toSource() + ", " + + children.get(2).toSource() + ")"; + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/statement/JmlAssert.java b/key.core/src/main/java/de/uka/ilkd/key/java/statement/JmlAssert.java index ef8b0e3966f..732174aa2fd 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/statement/JmlAssert.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/statement/JmlAssert.java @@ -3,23 +3,13 @@ * SPDX-License-Identifier: GPL-2.0-only */ package de.uka.ilkd.key.java.statement; -import java.util.Map; import java.util.Objects; import de.uka.ilkd.key.java.PositionInfo; import de.uka.ilkd.key.java.ProgramElement; -import de.uka.ilkd.key.java.Services; import de.uka.ilkd.key.java.visitor.Visitor; -import de.uka.ilkd.key.logic.Term; -import de.uka.ilkd.key.logic.TermFactory; -import de.uka.ilkd.key.logic.op.LocationVariable; -import de.uka.ilkd.key.pp.LogicPrinter; -import de.uka.ilkd.key.proof.OpReplacer; -import de.uka.ilkd.key.speclang.TermReplacementMap; +import de.uka.ilkd.key.nparser.KeyAst; import de.uka.ilkd.key.speclang.jml.pretranslation.TextualJMLAssertStatement; -import de.uka.ilkd.key.speclang.jml.translation.ProgramVariableCollection; -import de.uka.ilkd.key.speclang.njml.JmlIO; -import de.uka.ilkd.key.speclang.njml.LabeledParserRuleContext; import org.key_project.util.ExtList; @@ -29,130 +19,114 @@ * @author Benjamin Takacs */ public class JmlAssert extends JavaStatement { - + /** + * Index in the list of terms of + * {@link de.uka.ilkd.key.proof.mgt.SpecificationRepository.JmlStatementSpec} + */ + public static final int INDEX_CONDITION = 0; /** * the kind of the statement, assert or assume */ private final TextualJMLAssertStatement.Kind kind; + /** * the condition in parse tree form */ - private LabeledParserRuleContext condition; - /** - * the condition in Term form - */ - private Term cond; - /** - * the program variables used to create the Term form of the condition - */ - private ProgramVariableCollection vars; - /** - * services (needed for pretty printing) - */ - private final Services services; + private KeyAst.Expression condition; /** - * * @param kind assert or assume * @param condition the condition of this statement * @param positionInfo the position information for this statement - * @param services needed for pretty printing (not pretty when null) */ - public JmlAssert(TextualJMLAssertStatement.Kind kind, LabeledParserRuleContext condition, - PositionInfo positionInfo, Services services) { + public JmlAssert(TextualJMLAssertStatement.Kind kind, KeyAst.Expression condition, + PositionInfo positionInfo) { super(positionInfo); this.kind = kind; this.condition = condition; - this.services = services; } /** - * * @param children the children of this element - * @param services needed for pretty printing (not pretty when null) */ - public JmlAssert(ExtList children, Services services) { + public JmlAssert(ExtList children) { super(children); - this.kind = children.get(TextualJMLAssertStatement.Kind.class); - this.condition = children.get(LabeledParserRuleContext.class); - this.cond = children.get(Term.class); - this.vars = children.get(ProgramVariableCollection.class); - this.services = services; - if ((cond == null) == (condition == null)) { - throw new IllegalArgumentException("exactly one of cond and condition has to be null"); - } + this.kind = Objects.requireNonNull(children.get(TextualJMLAssertStatement.Kind.class)); + this.condition = Objects.requireNonNull(children.get(KeyAst.Expression.class)); + } + + public JmlAssert(JmlAssert other) { + this(other.kind, other.condition, other.getPositionInfo()); } public TextualJMLAssertStatement.Kind getKind() { return kind; } - /** + /* * @return the condition in String form + * public String getConditionText() { + * if (cond != null) { + * return LogicPrinter.quickPrintTerm(cond, services); + * } + * // this will lose whitespace, so e.g. \forall will not be printed correctly + * // but normally the term form should get printed. + * return condition.first.getText().substring(kind.name().length()); + * } */ - public String getConditionText() { - if (cond != null) { - return LogicPrinter.quickPrintTerm(cond, services); - } - // this will lose whitespace, so e.g. \forall will not be printed correctly - // but normally the term form should get printed. - return condition.first.getText().substring(kind.name().length()); - } - /** - * Returns the condition in Term form. - * - * You have to call translateCondition(JmlIO) before getting useful values. - * - * @return the condition in Term form if it was already translated else null - */ - public Term getCond() { - return cond; + /** Returns the condition as an encapsulated {@link org.antlr.v4.runtime.ParserRuleContext} */ + public KeyAst.Expression getCondition() { + return condition; } - /** + /* * Returns the condition in Term form. * * You have to call translateCondition(JmlIO) before getting useful values. * * @return the condition in Term form if it was already translated else null + * * @param self the Term for {@code this} in the current context + * * @param services services + * public Term getCond(final Term self, final Services services) { + * final TermFactory termFactory = services.getTermFactory(); + * final TermReplacementMap replacementMap = new TermReplacementMap(termFactory); + * if (self != null) { + * replacementMap.replaceSelf(vars.selfVar, self, services); + * } + * replacementMap.replaceRemembranceLocalVariables(vars.atPreVars, vars.atPres, services); + * replacementMap.replaceRemembranceLocalVariables(vars.atBeforeVars, vars.atBefores, + * services); + * final OpReplacer replacer = + * new OpReplacer(replacementMap, termFactory, services.getProof()); + * return replacer.replace(cond); + * } */ - public Term getCond(final Term self, final Services services) { - final TermFactory termFactory = services.getTermFactory(); - final TermReplacementMap replacementMap = new TermReplacementMap(termFactory); - if (self != null) { - replacementMap.replaceSelf(vars.selfVar, self, services); - } - replacementMap.replaceRemembranceLocalVariables(vars.atPreVars, vars.atPres, services); - replacementMap.replaceRemembranceLocalVariables(vars.atBeforeVars, vars.atBefores, - services); - final OpReplacer replacer = - new OpReplacer(replacementMap, termFactory, services.getProof()); - return replacer.replace(cond); - } - /** + /* * Translates the condition of this JML assert statement to a Term. * * Use as soon as possible, but can only be called once. * * @param jmlIo the JmlIO to use to translate the condition + * * @param pv the program variables to use for the translation + * * @throws IllegalStateException if this JmlAssert already has a condition in Term form + * public void translateCondition(final JmlIO jmlIo, final ProgramVariableCollection pv) { + * if (cond != null) { + * throw new IllegalStateException("condition can only be set once"); + * } + * this.vars = pv; + * jmlIo.selfVar(pv.selfVar).parameters(pv.paramVars).resultVariable(pv.resultVar) + * .exceptionVariable(pv.excVar).atPres(pv.atPres).atBefore(pv.atBefores); + * this.cond = jmlIo.translateTermAsFormula(condition); + * condition = null; + * } */ - public void translateCondition(final JmlIO jmlIo, final ProgramVariableCollection pv) { - if (cond != null) { - throw new IllegalStateException("condition can only be set once"); - } - this.vars = pv; - jmlIo.selfVar(pv.selfVar).parameters(pv.paramVars).resultVariable(pv.resultVar) - .exceptionVariable(pv.excVar).atPres(pv.atPres).atBefore(pv.atBefores); - this.cond = jmlIo.translateTermAsFormula(condition); - condition = null; - } @Override public boolean equals(final Object o) { @@ -164,15 +138,14 @@ public boolean equals(final Object o) { } // super.equals() check classes final JmlAssert jmlAssert = (JmlAssert) o; - return kind == jmlAssert.kind && Objects.equals(condition, jmlAssert.condition) - && Objects.equals(cond, jmlAssert.cond); + return kind == jmlAssert.kind && Objects.equals(condition, jmlAssert.condition); } // hashCode() caches the result of computeHashCode() // so override that instead of hashCode which is final @Override protected int computeHashCode() { - return Objects.hash(super.computeHashCode(), kind, condition, cond); + return System.identityHashCode(this); } @Override @@ -189,25 +162,4 @@ public ProgramElement getChildAt(int index) { public void visit(Visitor v) { v.performActionOnJmlAssert(this); } - - public ProgramVariableCollection getVars() { - return vars; - } - - /** - * updates this statement with prestate renaming - * - * @param atPres prestate renaming - * @param services services - */ - public void updateVars(final Map atPres, final Services services) { - final TermFactory termFactory = services.getTermFactory(); - final TermReplacementMap replacementMap = new TermReplacementMap(termFactory); - replacementMap.replaceRemembranceLocalVariables(vars.atPreVars, atPres, services); - final OpReplacer replacer = - new OpReplacer(replacementMap, termFactory, services.getProof()); - cond = replacer.replace(cond); - vars.atPres = atPres; - - } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/statement/SetStatement.java b/key.core/src/main/java/de/uka/ilkd/key/java/statement/SetStatement.java new file mode 100644 index 00000000000..0ece40806f5 --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/java/statement/SetStatement.java @@ -0,0 +1,78 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.java.statement; + +import de.uka.ilkd.key.java.PositionInfo; +import de.uka.ilkd.key.java.ProgramElement; +import de.uka.ilkd.key.java.visitor.Visitor; +import de.uka.ilkd.key.nparser.KeyAst.SetStatementContext; + + + +/** + * JML set statement + * + * @author Julian Wiesler + */ +public class SetStatement extends JavaStatement { + + /** + * The target of the assignment as a term. Either a heap access for a ghost field + * or a ghost variable. + */ + public static int INDEX_TARGET = 0; + + /** + * The value of the assignment as a term. + */ + public static int INDEX_VALUE = 1; + + /** + * The parser context of the statement produced during parsing. + */ + private final SetStatementContext context; + + /** Constructor used in recoderext */ + public SetStatement(SetStatementContext context, PositionInfo positionInfo) { + super(positionInfo); + this.context = context; + } + + /** Constructor used when cloning */ + public SetStatement(SetStatement copyFrom) { + this(copyFrom.context, copyFrom.getPositionInfo()); + } + + + /** + * Removes the attached parser context from this set statement + * + * @return the parser context that was attached + */ + public SetStatementContext getParserContext() { + return context; + } + + + /** {@inheritDoc} */ + @Override + public void visit(Visitor v) { + v.performActionOnSetStatement(this); + } + + @Override + public int getChildCount() { + return 0; + } + + @Override + public ProgramElement getChildAt(int index) { + throw new IndexOutOfBoundsException("SetStatement has no program children"); + } + + @Override + protected int computeHashCode() { + return System.identityHashCode(this); + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/visitor/CreatingASTVisitor.java b/key.core/src/main/java/de/uka/ilkd/key/java/visitor/CreatingASTVisitor.java index 65b0d55d833..31bb841ed14 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/visitor/CreatingASTVisitor.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/visitor/CreatingASTVisitor.java @@ -18,7 +18,6 @@ import de.uka.ilkd.key.java.expression.operator.adt.*; import de.uka.ilkd.key.java.reference.*; import de.uka.ilkd.key.java.statement.*; -import de.uka.ilkd.key.logic.Term; import de.uka.ilkd.key.logic.op.IProgramVariable; import de.uka.ilkd.key.logic.op.ProgramVariable; @@ -604,6 +603,19 @@ ProgramElement createNewElement(ExtList changeList) { def.doAction(x); } + @Override + public void performActionOnSetStatement(SetStatement x) { + DefaultAction def = new DefaultAction(x) { + @Override + ProgramElement createNewElement(ExtList changeList) { + // there are no AST elements below the set statement, so we can use the copy + // constructor. + return new SetStatement(x); + } + }; + def.doAction(x); + } + @Override public void performActionOnPreIncrement(PreIncrement x) { DefaultAction def = new DefaultAction(x) { @@ -1450,6 +1462,17 @@ ProgramElement createNewElement(ExtList changeList) { def.doAction(x); } + @Override + public void performActionOnSeqPut(SeqPut x) { + DefaultAction def = new DefaultAction(x) { + @Override + ProgramElement createNewElement(ExtList changeList) { + return new SeqPut(changeList); + } + }; + def.doAction(x); + } + @Override public void performActionOnDLEmbeddedExpression(final DLEmbeddedExpression x) { DefaultAction def = new DefaultAction(x) { @@ -1489,20 +1512,13 @@ public void performActionOnJmlAssert(JmlAssert x) { @Override ProgramElement createNewElement(ExtList changeList) { changeList.add(x.getKind()); - changeList.add(x.getVars()); - return new JmlAssert(changeList, services); + changeList.add(x.getCondition()); + return new JmlAssert(changeList); } }; def.doAction(x); } - @Override - public void performActionOnJmlAssertCondition(final Term cond) { - // should only be called by walk(), which puts an ExtList on the stack - assert stack.peek() != null; - stack.peek().add(cond); - } - /** * returns the position of pe2 in the virtual child array of pe1 * diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/visitor/JavaASTVisitor.java b/key.core/src/main/java/de/uka/ilkd/key/java/visitor/JavaASTVisitor.java index ea6541b536f..3486003abe5 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/visitor/JavaASTVisitor.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/visitor/JavaASTVisitor.java @@ -14,7 +14,6 @@ import de.uka.ilkd.key.java.reference.*; import de.uka.ilkd.key.java.statement.*; import de.uka.ilkd.key.logic.ProgramElementName; -import de.uka.ilkd.key.logic.Term; import de.uka.ilkd.key.logic.op.IProgramMethod; import de.uka.ilkd.key.logic.op.IProgramVariable; import de.uka.ilkd.key.logic.op.LocationVariable; @@ -55,9 +54,6 @@ public JavaASTVisitor(ProgramElement root, Services services) { @Override protected void walk(ProgramElement node) { - if (node instanceof JmlAssert) { - performActionOnJmlAssertCondition(((JmlAssert) node).getCond()); - } super.walk(node); if (node instanceof LoopStatement && services != null) { LoopSpecification li = @@ -230,6 +226,11 @@ public void performActionOnSeqReverse(SeqReverse x) { doDefaultAction(x); } + @Override + public void performActionOnSeqPut(SeqPut x) { + doDefaultAction(x); + } + @Override public void performActionOnDLEmbeddedExpression(DLEmbeddedExpression x) { doDefaultAction(x); @@ -321,6 +322,11 @@ public void performActionOnCopyAssignment(CopyAssignment x) { doDefaultAction(x); } + @Override + public void performActionOnSetStatement(SetStatement x) { + doDefaultAction(x); + } + @Override public void performActionOnDefault(Default x) { doDefaultAction(x); @@ -737,6 +743,11 @@ public void performActionOnStringLiteral(StringLiteral x) { doDefaultAction(x); } + @Override + public void performActionOnSubtype(Subtype x) { + doDefaultAction(x); + } + @Override public void performActionOnSuperArrayDeclaration(SuperArrayDeclaration x) { doDefaultAction(x); @@ -961,9 +972,4 @@ public void performActionOnCcatchContinueWildcardParameterDeclaration( public void performActionOnJmlAssert(JmlAssert x) { doDefaultAction(x); } - - @Override - public void performActionOnJmlAssertCondition(final Term cond) { - // empty - } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/visitor/ProgVarReplaceVisitor.java b/key.core/src/main/java/de/uka/ilkd/key/java/visitor/ProgVarReplaceVisitor.java index 27fa077572b..98e10957003 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/visitor/ProgVarReplaceVisitor.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/visitor/ProgVarReplaceVisitor.java @@ -3,37 +3,24 @@ * SPDX-License-Identifier: GPL-2.0-only */ package de.uka.ilkd.key.java.visitor; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; +import java.util.*; import java.util.Map.Entry; +import java.util.function.Function; import java.util.stream.Collectors; import de.uka.ilkd.key.axiom_abstraction.predicateabstraction.AbstractionPredicate; -import de.uka.ilkd.key.java.Label; -import de.uka.ilkd.key.java.ProgramElement; -import de.uka.ilkd.key.java.Services; -import de.uka.ilkd.key.java.StatementBlock; +import de.uka.ilkd.key.java.*; import de.uka.ilkd.key.java.declaration.LocalVariableDeclaration; import de.uka.ilkd.key.java.declaration.VariableSpecification; -import de.uka.ilkd.key.java.statement.JavaStatement; -import de.uka.ilkd.key.java.statement.JmlAssert; -import de.uka.ilkd.key.java.statement.LoopStatement; -import de.uka.ilkd.key.java.statement.MergePointStatement; +import de.uka.ilkd.key.java.statement.*; import de.uka.ilkd.key.logic.ProgramElementName; import de.uka.ilkd.key.logic.Term; import de.uka.ilkd.key.logic.TermBuilder; import de.uka.ilkd.key.logic.VariableNamer; import de.uka.ilkd.key.logic.op.*; import de.uka.ilkd.key.proof.OpReplacer; -import de.uka.ilkd.key.speclang.AuxiliaryContract; -import de.uka.ilkd.key.speclang.BlockContract; -import de.uka.ilkd.key.speclang.LoopContract; -import de.uka.ilkd.key.speclang.LoopSpecification; -import de.uka.ilkd.key.speclang.MergeContract; -import de.uka.ilkd.key.speclang.PredicateAbstractionMergeContract; -import de.uka.ilkd.key.speclang.UnparameterizedMergeContract; +import de.uka.ilkd.key.proof.mgt.SpecificationRepository; +import de.uka.ilkd.key.speclang.*; import de.uka.ilkd.key.speclang.jml.translation.ProgramVariableCollection; import de.uka.ilkd.key.util.InfFlowSpec; import de.uka.ilkd.key.util.MiscTools; @@ -108,9 +95,8 @@ public static LocationVariable copy(ProgramVariable pv, String postFix) { /* * if(pv.isFinal()){ return pv; } */ - return new LocationVariable( - VariableNamer.parseName(name.toString() + postFix, name.getCreationInfo()), - pv.getKeYJavaType(), pv.isFinal()); + return LocationVariable.fromProgramVariable(pv, + VariableNamer.parseName(name.toString() + postFix, name.getCreationInfo())); } @Override @@ -610,30 +596,70 @@ public void performActionOnLoopInvariant(LoopStatement oldLoop, LoopStatement ne } @Override - public void performActionOnJmlAssertCondition(final Term x) { - if (x == null) { - throw new IllegalStateException("JML assert is incomplete"); - } - Term newCond = replaceVariablesInTerm(x); - stack.peek().add(newCond); - if (!x.equals(newCond)) { - changed(); - } + public void performActionOnJmlAssert(final JmlAssert x) { + handleJmlStatements(x, JmlAssert::new); } @Override - public void performActionOnJmlAssert(final JmlAssert x) { - final ProgramVariableCollection vars = x.getVars(); - final Map atPres = vars.atPres; - final Map newAtPres = new LinkedHashMap<>(atPres); - final Map atPreVars = vars.atPreVars; - final Map newAtPreVars = new LinkedHashMap<>(atPreVars); + public void performActionOnSetStatement(final SetStatement x) { + /* + * var spec = + * Objects.requireNonNull(services.getSpecificationRepository().getStatementSpec(x)); + * ProgramVariableCollection vars = spec.vars(); + * Map atPres = vars.atPres; + * Map newAtPres = new LinkedHashMap<>(atPres); + * Map atPreVars = vars.atPreVars; + * Map newAtPreVars = new LinkedHashMap<>(atPreVars); + * + * for (Entry e : atPres.entrySet()) { + * LocationVariable pv = e.getKey(); + * final Term t = e.getValue(); + * if (t == null) { + * continue; + * } + * if (replaceMap.containsKey(pv)) { + * newAtPres.remove(pv); + * pv = (LocationVariable) replaceMap.get(pv); + * newAtPreVars.put(pv, atPreVars.get(e.getKey())); + * } + * newAtPres.put(pv, replaceVariablesInTerm(t)); + * } + * final ProgramVariableCollection newVars = + * new ProgramVariableCollection(vars.selfVar, vars.paramVars, vars.resultVar, vars.excVar, + * newAtPreVars, newAtPres, vars.atBeforeVars, vars.atBefores); + * + * + * var newTerms = spec.terms().map(this::replaceVariablesInTerm); + * var newSpec = new SpecificationRepository.JmlStatementSpec(newVars, newTerms); + * + * services.getSpecificationRepository().addStatementSpec(x, newSpec); + * + * /* + * if (!newAtPres.equals(vars.atPres)) { + * changed(); + * } + * doDefaultAction(x); + */ + handleJmlStatements(x, SetStatement::new); + } + + public void handleJmlStatements(T x, Function cloner) { + var spec = Objects.requireNonNull( + services.getSpecificationRepository().getStatementSpec(x)); + + ProgramVariableCollection vars = spec.vars(); + Map atPres = vars.atPres; + Map newAtPres = new LinkedHashMap<>(atPres); + Map atPreVars = vars.atPreVars; + Map newAtPreVars = new LinkedHashMap<>(atPreVars); + for (Entry e : atPres.entrySet()) { LocationVariable pv = e.getKey(); final Term t = e.getValue(); if (t == null) { continue; } + if (replaceMap.containsKey(pv)) { newAtPres.remove(pv); pv = (LocationVariable) replaceMap.get(pv); @@ -644,10 +670,21 @@ public void performActionOnJmlAssert(final JmlAssert x) { final ProgramVariableCollection newVars = new ProgramVariableCollection(vars.selfVar, vars.paramVars, vars.resultVar, vars.excVar, newAtPreVars, newAtPres, vars.atBeforeVars, vars.atBefores); - stack.peek().add(newVars); - if (!newAtPres.equals(vars.atPres)) { - changed(); - } - super.performActionOnJmlAssert(x); + + + var newTerms = spec.terms().map(this::replaceVariablesInTerm); + var newSpec = new SpecificationRepository.JmlStatementSpec(newVars, newTerms); + + var c = cloner.apply(x); + services.getSpecificationRepository().addStatementSpec(c, newSpec); + + /* + * if (!newAtPres.equals(vars.atPres)) { + * changed(); + * } + */ + doDefaultAction(c); + changed(); } + } diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/visitor/ProgramVariableCollector.java b/key.core/src/main/java/de/uka/ilkd/key/java/visitor/ProgramVariableCollector.java index 3adb161f7f6..29e288c73a1 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/visitor/ProgramVariableCollector.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/visitor/ProgramVariableCollector.java @@ -6,12 +6,15 @@ import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.Map; +import java.util.Objects; import de.uka.ilkd.key.axiom_abstraction.predicateabstraction.AbstractionPredicate; import de.uka.ilkd.key.java.ProgramElement; import de.uka.ilkd.key.java.Services; import de.uka.ilkd.key.java.SourceElement; +import de.uka.ilkd.key.java.Statement; import de.uka.ilkd.key.java.statement.JmlAssert; +import de.uka.ilkd.key.java.statement.SetStatement; import de.uka.ilkd.key.ldt.HeapLDT; import de.uka.ilkd.key.logic.Term; import de.uka.ilkd.key.logic.op.LocationVariable; @@ -260,26 +263,33 @@ public void performActionOnLoopContract(LoopContract x) { result.addAll(collector.result()); } + @Override - public void performActionOnJmlAssertCondition(final Term x) { - if (x == null) { - throw new IllegalStateException("JML assert is incomplete"); - } - TermProgramVariableCollector tpvc = services.getFactory().create(services); - x.execPostOrder(tpvc); - result.addAll(tpvc.result()); + public void performActionOnJmlAssert(final JmlAssert x) { + handleJmlStatement(x); } @Override - public void performActionOnJmlAssert(final JmlAssert x) { + public void performActionOnSetStatement(SetStatement x) { + handleJmlStatement(x); + } + + private void handleJmlStatement(Statement x) { TermProgramVariableCollector tpvc = services.getFactory().create(services); - for (Term v : x.getVars().atPres.values()) { + var spec = + Objects.requireNonNull(services.getSpecificationRepository().getStatementSpec(x)); + for (Term v : spec.vars().atPres.values()) { v.execPostOrder(tpvc); } - for (Term v : x.getVars().atBefores.values()) { + for (Term v : spec.vars().atBefores.values()) { v.execPostOrder(tpvc); } - result.addAll(tpvc.result()); + for (Term term : spec.terms()) { + term.execPostOrder(tpvc); + } + result.addAll(tpvc.result()); } + + } diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/visitor/Visitor.java b/key.core/src/main/java/de/uka/ilkd/key/java/visitor/Visitor.java index c6c6af93afa..d06e16af955 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/visitor/Visitor.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/visitor/Visitor.java @@ -13,8 +13,8 @@ import de.uka.ilkd.key.java.expression.operator.adt.*; import de.uka.ilkd.key.java.reference.*; import de.uka.ilkd.key.java.statement.*; +import de.uka.ilkd.key.java.statement.SetStatement; import de.uka.ilkd.key.logic.ProgramElementName; -import de.uka.ilkd.key.logic.Term; import de.uka.ilkd.key.logic.op.IProgramMethod; import de.uka.ilkd.key.logic.op.IProgramVariable; import de.uka.ilkd.key.logic.op.LocationVariable; @@ -80,6 +80,8 @@ public interface Visitor { void performActionOnSeqReverse(SeqReverse x); + void performActionOnSeqPut(SeqPut seqPut); + void performActionOnDLEmbeddedExpression(DLEmbeddedExpression x); void performActionOnStringLiteral(StringLiteral x); @@ -184,6 +186,8 @@ public interface Visitor { void performActionOnCopyAssignment(CopyAssignment x); + void performActionOnSetStatement(SetStatement x); + void performActionOnDivideAssignment(DivideAssignment x); void performActionOnMinusAssignment(MinusAssignment x); @@ -403,14 +407,5 @@ void performActionOnCcatchBreakWildcardParameterDeclaration( */ void performActionOnJmlAssert(JmlAssert jmlAssert); - /** - * Performs action on the condition of a JML assert statement. - * - * Note: if you don't extend JavaASTVisitor or something else that calls this methode for you, - * you have to call it yourself, e.g. in {@link #performActionOnJmlAssert} if needed. - * - * @param cond the condition to perform an action on (may be {@code null} if the JML assert - * wasn't finished) - */ - void performActionOnJmlAssertCondition(final Term cond); + void performActionOnSubtype(Subtype subtype); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/ldt/CharListLDT.java b/key.core/src/main/java/de/uka/ilkd/key/ldt/CharListLDT.java index 19f537f4601..68b579f8310 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/ldt/CharListLDT.java +++ b/key.core/src/main/java/de/uka/ilkd/key/ldt/CharListLDT.java @@ -248,9 +248,8 @@ public Type getType(Term t) { return null; } - @Nullable @Override - public JFunction getFunctionFor(String operationName, Services services) { + public @Nullable JFunction getFunctionFor(String operationName, Services services) { // This is not very elegant; but seqConcat is actually in the SeqLDT. if (operationName.equals("add")) { return services.getNamespaces().functions().lookup("seqConcat"); diff --git a/key.core/src/main/java/de/uka/ilkd/key/ldt/HeapLDT.java b/key.core/src/main/java/de/uka/ilkd/key/ldt/HeapLDT.java index b8f727e4f91..1e93af66fc3 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/ldt/HeapLDT.java +++ b/key.core/src/main/java/de/uka/ilkd/key/ldt/HeapLDT.java @@ -27,6 +27,8 @@ import org.key_project.util.collection.ImmutableList; import org.key_project.util.collection.ImmutableSLList; +import org.jspecify.annotations.Nullable; + /** * LDT responsible for the "Heap" sort, and the associated "Field" sort. Besides offering the usual @@ -145,6 +147,43 @@ private String getFieldSymbolName(LocationVariable fieldPV) { // public interface // ------------------------------------------------------------------------- + /** + * Wrapper class + * + * @param className the class name + * @param attributeName the attribute name + */ + public record SplitFieldName(String className, String attributeName) {} + + /** + * Splits a field name. + * + * @param symbol the field name to split. + * @return the split field name + */ + public static @Nullable SplitFieldName trySplitFieldName(Named symbol) { + var name = symbol.name().toString(); + // check for normal attribute + int endOfClassName = name.indexOf("::$"); + + int startAttributeName = endOfClassName + 3; + + + if (endOfClassName < 0) { + // not a normal attribute, maybe an implicit attribute like ? + endOfClassName = name.indexOf("::<"); + startAttributeName = endOfClassName + 2; + } + + if (endOfClassName < 0) { + return null; + } + + String className = name.substring(0, endOfClassName); + String attributeName = name.substring(startAttributeName); + return new SplitFieldName(className, attributeName); + } + /** * Given a constant symbol representing a field, this method returns a simplified name of the * constant symbol to be used for pretty printing. diff --git a/key.core/src/main/java/de/uka/ilkd/key/ldt/IntegerLDT.java b/key.core/src/main/java/de/uka/ilkd/key/ldt/IntegerLDT.java index a8a37770859..f569e5128cd 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/ldt/IntegerLDT.java +++ b/key.core/src/main/java/de/uka/ilkd/key/ldt/IntegerLDT.java @@ -715,9 +715,8 @@ public JFunction getFunctionFor(de.uka.ilkd.key.java.expression.Operator op, Ser return null; } - @Nullable @Override - public JFunction getFunctionFor(String op, Services services) { + public @Nullable JFunction getFunctionFor(String op, Services services) { return switch (op) { case "gt" -> getGreaterThan(); case "geq" -> getGreaterOrEquals(); diff --git a/key.core/src/main/java/de/uka/ilkd/key/ldt/LDT.java b/key.core/src/main/java/de/uka/ilkd/key/ldt/LDT.java index c548f878582..f6c8e741ca6 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/ldt/LDT.java +++ b/key.core/src/main/java/de/uka/ilkd/key/ldt/LDT.java @@ -135,6 +135,7 @@ public static Map getNewLDTInstances(Services s) { ret.put(HeapLDT.NAME, new HeapLDT(s)); ret.put(PermissionLDT.NAME, new PermissionLDT(s)); ret.put(SeqLDT.NAME, new SeqLDT(s)); + ret.put(SortLDT.NAME, new SortLDT(s)); ret.put(FreeLDT.NAME, new FreeLDT(s)); ret.put(MapLDT.NAME, new MapLDT(s)); ret.put(FloatLDT.NAME, new FloatLDT(s)); diff --git a/key.core/src/main/java/de/uka/ilkd/key/ldt/LocSetLDT.java b/key.core/src/main/java/de/uka/ilkd/key/ldt/LocSetLDT.java index 5b309635ec6..5bf5bd3e349 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/ldt/LocSetLDT.java +++ b/key.core/src/main/java/de/uka/ilkd/key/ldt/LocSetLDT.java @@ -210,9 +210,8 @@ public Type getType(Term t) { return null; } - @Nullable @Override - public JFunction getFunctionFor(String operationName, Services services) { + public @Nullable JFunction getFunctionFor(String operationName, Services services) { return switch (operationName) { case "add" -> getUnion(); case "sub" -> getSetMinus(); diff --git a/key.core/src/main/java/de/uka/ilkd/key/ldt/SeqLDT.java b/key.core/src/main/java/de/uka/ilkd/key/ldt/SeqLDT.java index fc7e57737e5..8104a20086f 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/ldt/SeqLDT.java +++ b/key.core/src/main/java/de/uka/ilkd/key/ldt/SeqLDT.java @@ -12,6 +12,7 @@ import de.uka.ilkd.key.java.expression.operator.adt.SeqGet; import de.uka.ilkd.key.java.expression.operator.adt.SeqIndexOf; import de.uka.ilkd.key.java.expression.operator.adt.SeqLength; +import de.uka.ilkd.key.java.expression.operator.adt.SeqPut; import de.uka.ilkd.key.java.expression.operator.adt.SeqReverse; import de.uka.ilkd.key.java.expression.operator.adt.SeqSingleton; import de.uka.ilkd.key.java.expression.operator.adt.SeqSub; @@ -44,6 +45,7 @@ public final class SeqLDT extends LDT { private final JFunction seqConcat; private final JFunction seqSub; private final JFunction seqReverse; + private final JFunction seqUpd; private final JFunction seqDef; private final JFunction values; @@ -56,6 +58,7 @@ public SeqLDT(TermServices services) { seqConcat = addFunction(services, "seqConcat"); seqSub = addFunction(services, "seqSub"); seqReverse = addFunction(services, "seqReverse"); + seqUpd = addFunction(services, "seqUpd"); seqIndexOf = addFunction(services, "seqIndexOf"); seqDef = addFunction(services, "seqDef"); values = addFunction(services, "values"); @@ -91,6 +94,9 @@ public JFunction getSeqSub() { return seqSub; } + public JFunction getSeqUpd() { + return seqUpd; + } public JFunction getSeqReverse() { return seqReverse; @@ -129,7 +135,7 @@ public boolean isResponsible(de.uka.ilkd.key.java.expression.Operator op, Term s TermServices services, ExecutionContext ec) { return op instanceof SeqSingleton || op instanceof SeqConcat || op instanceof SeqSub || op instanceof SeqReverse || op instanceof SeqIndexOf || op instanceof SeqGet - || op instanceof SeqLength; + || op instanceof SeqLength || op instanceof SeqPut; } @@ -151,6 +157,8 @@ public JFunction getFunctionFor(de.uka.ilkd.key.java.expression.Operator op, Ser return seqSub; } else if (op instanceof SeqReverse) { return seqReverse; + } else if (op instanceof SeqPut) { + return seqUpd; } else if (op instanceof SeqIndexOf) { return seqIndexOf; } else if (op instanceof SeqGet) { @@ -162,9 +170,8 @@ public JFunction getFunctionFor(de.uka.ilkd.key.java.expression.Operator op, Ser return null; } - @Nullable @Override - public JFunction getFunctionFor(String operationName, Services services) { + public @Nullable JFunction getFunctionFor(String operationName, Services services) { if (operationName.equals("add")) { return getSeqConcat(); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/ldt/SortLDT.java b/key.core/src/main/java/de/uka/ilkd/key/ldt/SortLDT.java new file mode 100644 index 00000000000..734625993e4 --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/ldt/SortLDT.java @@ -0,0 +1,98 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.ldt; + +import de.uka.ilkd.key.java.Expression; +import de.uka.ilkd.key.java.Services; +import de.uka.ilkd.key.java.abstraction.Type; +import de.uka.ilkd.key.java.expression.Literal; +import de.uka.ilkd.key.java.expression.Operator; +import de.uka.ilkd.key.java.expression.operator.Subtype; +import de.uka.ilkd.key.java.reference.ExecutionContext; +import de.uka.ilkd.key.logic.Term; +import de.uka.ilkd.key.logic.TermServices; +import de.uka.ilkd.key.logic.op.JFunction; +import de.uka.ilkd.key.logic.op.SortDependingFunction; +import de.uka.ilkd.key.proof.io.ProofSaver; + +import org.key_project.logic.Name; +import org.key_project.logic.sort.Sort; +import org.key_project.util.ExtList; + + +public final class SortLDT extends LDT { + + public static final Name NAME = new Name("SORT"); + + private final SortDependingFunction ssort; + private final JFunction ssubsort; + + public SortLDT(TermServices services) { + super(NAME, services); + ssort = addSortDependingFunction(services, "ssort"); + ssubsort = addFunction(services, "ssubsort"); + } + + public SortDependingFunction getSsort(Sort instanceSort, TermServices services) { + return ssort.getInstanceFor(instanceSort, services); + } + + public JFunction getSsubsort() { + return ssubsort; + } + + @Override + public boolean isResponsible(Operator op, Term[] subs, Services services, ExecutionContext ec) { + return op instanceof Subtype; + } + + @Override + public boolean isResponsible(Operator op, Term left, Term right, Services services, + ExecutionContext ec) { + return op instanceof Subtype; + } + + @Override + public boolean isResponsible(Operator op, Term sub, TermServices services, + ExecutionContext ec) { + return op instanceof Subtype; + } + + @Override + public Term translateLiteral(Literal lit, Services services) { + assert false; + return null; + } + + @Override + public JFunction getFunctionFor(Operator op, Services services, ExecutionContext ec) { + if (op instanceof Subtype) { + return ssubsort; + } + + assert false; + return null; + } + + @Override + public boolean hasLiteralFunction(JFunction f) { + return f instanceof SortDependingFunction sf && sf.isSimilar(ssort); + } + + @Override + public Expression translateTerm(Term t, ExtList children, Services services) { + if (t.op() instanceof SortDependingFunction sf && sf.isSimilar(ssort)) { + // TODO + } + + throw new IllegalArgumentException( + "Could not translate " + ProofSaver.printTerm(t, null) + " to program."); + } + + @Override + public Type getType(Term t) { + assert false; + return null; + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/BoundVariableTools.java b/key.core/src/main/java/de/uka/ilkd/key/logic/BoundVariableTools.java index b985dcdf7a7..d1e930e93a0 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/BoundVariableTools.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/BoundVariableTools.java @@ -13,6 +13,8 @@ import org.key_project.util.collection.ImmutableArray; import org.key_project.util.collection.ImmutableSet; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * Some generally useful tools for dealing with arrays of bound variables @@ -206,7 +208,7 @@ public boolean equalsModRenaming(ImmutableArray vars0, Ter return false; } if (vars0.size() == 0) { - return term0.equalsModRenaming(term1); + return term0.equalsModProperty(term1, RENAMING_PROPERTY); } final ImmutableArray unifiedVars = unifyVariableArrays(vars0, vars1, @@ -215,7 +217,7 @@ public boolean equalsModRenaming(ImmutableArray vars0, Ter final Term renamedTerm0 = renameVariables(term0, vars0, unifiedVars, services); final Term renamedTerm1 = renameVariables(term1, vars1, unifiedVars, services); - return renamedTerm0.equalsModRenaming(renamedTerm1); + return renamedTerm0.equalsModProperty(renamedTerm1, RENAMING_PROPERTY); } /** diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/Choice.java b/key.core/src/main/java/de/uka/ilkd/key/logic/Choice.java index b9efbd2dcb4..56ba6bdd40e 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/Choice.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/Choice.java @@ -3,7 +3,6 @@ * SPDX-License-Identifier: GPL-2.0-only */ package de.uka.ilkd.key.logic; - import java.util.List; import java.util.Objects; diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/JavaBlock.java b/key.core/src/main/java/de/uka/ilkd/key/logic/JavaBlock.java index 130b2c47d65..b7d72e26382 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/JavaBlock.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/JavaBlock.java @@ -4,7 +4,6 @@ package de.uka.ilkd.key.logic; import de.uka.ilkd.key.java.JavaProgramElement; -import de.uka.ilkd.key.java.NameAbstractionTable; import de.uka.ilkd.key.java.StatementBlock; import de.uka.ilkd.key.pp.PrettyPrinter; @@ -91,31 +90,6 @@ public boolean equals(Object o) { } } - /** - * returns true if the given ProgramElement is equal to the one of the JavaBlock modulo renaming - * (see comment in SourceElement) - */ - public boolean equalsModRenaming(Object o, NameAbstractionTable nat) { - if (!(o instanceof JavaBlock)) { - return false; - } - return equalsModRenaming(((JavaBlock) o).program(), nat); - } - - - /** - * returns true if the given ProgramElement is equal to the one of the JavaBlock modulo renaming - * (see comment in SourceElement) - */ - private boolean equalsModRenaming(JavaProgramElement pe, NameAbstractionTable nat) { - if (pe == null && program() == null) { - return true; - } else if (pe != null && program() != null) { - return program().equalsModRenaming(pe, nat); - } - return false; - } - /** * returns the java program * diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/LabeledTermImpl.java b/key.core/src/main/java/de/uka/ilkd/key/logic/LabeledTermImpl.java index f55f8e221eb..b17717cb9dd 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/LabeledTermImpl.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/LabeledTermImpl.java @@ -6,6 +6,10 @@ import java.util.Objects; import java.util.stream.Collectors; +import de.uka.ilkd.key.logic.equality.ProofIrrelevancyProperty; +import de.uka.ilkd.key.logic.equality.RenamingProperty; +import de.uka.ilkd.key.logic.equality.TermEqualsModProperty; +import de.uka.ilkd.key.logic.equality.TermProperty; import de.uka.ilkd.key.logic.label.TermLabel; import de.uka.ilkd.key.logic.op.Operator; import de.uka.ilkd.key.logic.op.QuantifiableVariable; @@ -16,16 +20,25 @@ import org.key_project.util.java.CollectionUtil; /** + *

* The labeled term class is used for terms that have a label attached. + *

+ * + * Two labeled terms are equal if they have equal term structure and equal annotations. In contrast, + * the method {@link TermEqualsModProperty#equalsModProperty(Object, TermProperty)} can be used to + * compare terms while ignoring certain given properties. E.g. by using + * {@link RenamingProperty#RENAMING_PROPERTY}, just the term structures modulo renaming are compared + * whilst ignoring annotations. + *

+ * Prior implementations of {@link EqualsModProofIrrelevancy} are now in + * {@link ProofIrrelevancyProperty}. + *

* - * Two labeled terms are equal if they have equal term structure and equal annotations. In contrast - * the method {@link Term#equalsModRenaming(Term)} does not care about annotations and will just - * compare the term structure alone modula renaming. * * @see Term * @see TermImpl */ -class LabeledTermImpl extends TermImpl implements EqualsModProofIrrelevancy { +class LabeledTermImpl extends TermImpl { /** * @see #getLabels() @@ -38,7 +51,7 @@ class LabeledTermImpl extends TermImpl implements EqualsModProofIrrelevancy { * @param op the top level operator * @param subs the Term that are the subterms of this term * @param boundVars logic variables bound by the operator - * @param labels the terms labels (must not be null or empty) + * @param labels the term's labels (must not be null or empty) * @param origin a String with origin information */ public LabeledTermImpl(Operator op, ImmutableArray subs, @@ -143,43 +156,6 @@ public int computeHashCode() { return hash; } - @Override - public boolean equalsModProofIrrelevancy(Object o) { - if (!super.equalsModProofIrrelevancy(o)) { - return false; - } - - if (o instanceof LabeledTermImpl cmp) { - if (labels.size() == cmp.labels.size()) { - for (int i = 0, sz = labels.size(); i < sz; i++) { - // skip irrelevant (origin) labels that differ for no real reason - if (!labels.get(i).isProofRelevant()) { - continue; - } - // this is not optimal, but as long as number of labels limited ok - if (!cmp.labels.contains(labels.get(i))) { - return false; - } - } - return true; - } - return false; - } else { - return o.getClass() == TermImpl.class; - } - } - - @Override - public int hashCodeModProofIrrelevancy() { - int hash = super.hashCodeModProofIrrelevancy(); - for (int i = 0, sz = labels.size(); i < sz; i++) { - if (labels.get(i).isProofRelevant()) { - hash += 7 * labels.get(i).hashCode(); - } - } - return hash; - } - @Override public String toString() { StringBuilder result = new StringBuilder(super.toString()); diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/Semisequent.java b/key.core/src/main/java/de/uka/ilkd/key/logic/Semisequent.java index d813f591bec..a8ce511c4fb 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/Semisequent.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/Semisequent.java @@ -9,6 +9,8 @@ import org.key_project.util.collection.ImmutableList; import org.key_project.util.collection.ImmutableSLList; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * This class represents the succedent or antecendent part of a sequent. It is more or less a list @@ -184,7 +186,8 @@ private SemisequentChangeInfo insertAndRemoveRedundancyHelper(int idx, searchList = searchList.tail(); if (sequentFormula != null - && cf.formula().equalsModRenaming(sequentFormula.formula())) { + && cf.formula().equalsModProperty(sequentFormula.formula(), + RENAMING_PROPERTY)) { semiCI.rejectedFormula(sequentFormula); return semiCI; // semisequent already contains formula diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/SequentFormula.java b/key.core/src/main/java/de/uka/ilkd/key/logic/SequentFormula.java index cbaf19aa5f8..38325df369f 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/SequentFormula.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/SequentFormula.java @@ -8,6 +8,8 @@ import org.key_project.util.EqualsModProofIrrelevancy; +import static de.uka.ilkd.key.logic.equality.ProofIrrelevancyProperty.PROOF_IRRELEVANCY_PROPERTY; + /** * A sequent formula is a wrapper around a formula that occurs as top level formula in a sequent. @@ -42,7 +44,7 @@ public SequentFormula(Term term) { } this.term = term; this.hashCode = term.hashCode() * 13; - this.hashCode2 = term.hashCodeModProofIrrelevancy(); + this.hashCode2 = term.hashCodeModProperty(PROOF_IRRELEVANCY_PROPERTY); } /** @return the stored Term */ @@ -76,7 +78,7 @@ public boolean equalsModProofIrrelevancy(Object obj) { return true; } if (obj instanceof SequentFormula cmp) { - return term.equalsModProofIrrelevancy(cmp.formula()); + return term.equalsModProperty(cmp.formula(), PROOF_IRRELEVANCY_PROPERTY); } return false; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/Term.java b/key.core/src/main/java/de/uka/ilkd/key/logic/Term.java index 7407730b734..60c03e6fdae 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/Term.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/Term.java @@ -4,6 +4,7 @@ package de.uka.ilkd.key.logic; import de.uka.ilkd.key.ldt.JavaDLTheory; +import de.uka.ilkd.key.logic.equality.TermEqualsModProperty; import de.uka.ilkd.key.logic.label.TermLabel; import de.uka.ilkd.key.logic.op.Operator; import de.uka.ilkd.key.logic.op.QuantifiableVariable; @@ -11,7 +12,6 @@ import org.key_project.logic.Name; import org.key_project.logic.Visitor; -import org.key_project.util.EqualsModProofIrrelevancy; import org.key_project.util.collection.ImmutableArray; import org.key_project.util.collection.ImmutableSet; @@ -43,7 +43,7 @@ * supported: {@link Term#execPostOrder(Visitor)} and {@link Term#execPreOrder(Visitor)}. */ public interface Term - extends SVSubstitute, Sorted, EqualsModProofIrrelevancy, org.key_project.logic.Term { + extends SVSubstitute, Sorted, TermEqualsModProperty, org.key_project.logic.Term { @Override Operator op(); @@ -83,15 +83,6 @@ public interface Term @NonNull JavaBlock javaBlock(); - /** - * Compares if two terms are equal modulo bound renaming - * - * @param o another term, - * @return true iff the given term has the same values in operator, sort, arity, varsBoundHere - * and javaBlock as this object modulo bound renaming - */ - boolean equalsModRenaming(Term o); - /** * returns true if the term is labeled */ @@ -128,26 +119,6 @@ public interface Term */ boolean containsJavaBlockRecursive(); - /** - * Checks if {@code o} is a term syntactically equal to this one, except for some irrelevant - * labels. - * - * @param o an object - * @return {@code true} iff {@code o} is a term syntactically equal to this one, except for - * their labels. - * @see TermLabel#isProofRelevant() isStrategyRelevant - */ - boolean equalsModIrrelevantTermLabels(Object o); - - /** - * Checks if {@code o} is a term syntactically equal to this one, ignoring all term - * labels. - * - * @param o an object - * @return {@code true} iff {@code o} is a term syntactically equal to this ignoring term labels - */ - boolean equalsModTermLabels(Object o); - /** * Returns a human-readable source of this term. For example the filename with line and offset. */ diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/TermBuilder.java b/key.core/src/main/java/de/uka/ilkd/key/logic/TermBuilder.java index e2546204e7b..aff2452a420 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/TermBuilder.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/TermBuilder.java @@ -2051,6 +2051,11 @@ public Term seqSub(Term s, Term from, Term to) { return func(services.getTypeConverter().getSeqLDT().getSeqSub(), s, from, to); } + public Term seqUpd(Term seq, Term idx, Term value) { + return func(services.getTypeConverter().getSeqLDT().getSeqUpd(), seq, idx, value); + } + + public Term seqReverse(Term s) { return func(services.getTypeConverter().getSeqLDT().getSeqReverse(), s); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/TermImpl.java b/key.core/src/main/java/de/uka/ilkd/key/logic/TermImpl.java index 9b9f2d6d9b7..3a49c3002b9 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/TermImpl.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/TermImpl.java @@ -3,24 +3,19 @@ * SPDX-License-Identifier: GPL-2.0-only */ package de.uka.ilkd.key.logic; -import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; -import de.uka.ilkd.key.java.NameAbstractionTable; import de.uka.ilkd.key.java.PositionInfo; +import de.uka.ilkd.key.logic.equality.TermProperty; import de.uka.ilkd.key.logic.label.TermLabel; import de.uka.ilkd.key.logic.op.*; import org.key_project.logic.Name; import org.key_project.logic.Visitor; import org.key_project.logic.sort.Sort; -import org.key_project.util.EqualsModProofIrrelevancy; -import org.key_project.util.EqualsModProofIrrelevancyUtil; import org.key_project.util.Strings; import org.key_project.util.collection.DefaultImmutableSet; import org.key_project.util.collection.ImmutableArray; -import org.key_project.util.collection.ImmutableList; -import org.key_project.util.collection.ImmutableSLList; import org.key_project.util.collection.ImmutableSet; import org.jspecify.annotations.NonNull; @@ -31,7 +26,7 @@ * The currently only class implementing the Term interface. TermFactory should be the only class * dealing directly with the TermImpl class. */ -class TermImpl implements Term, EqualsModProofIrrelevancy { +class TermImpl implements Term { /** * A static empty list of terms used for memory reasons. @@ -73,10 +68,6 @@ private enum ThreeValuedTruth { * Cached {@link #hashCode()} value. */ private int hashcode = -1; - /** - * Cached {@link #hashCodeModProofIrrelevancy()} value. - */ - private int hashcode2 = -1; private Sort sort; @@ -308,184 +299,6 @@ public void execPreOrder(Visitor visitor) { visitor.subtreeLeft(this); } - - @Override - public final boolean equalsModRenaming(Term o) { - if (o == this) { - return true; - } - return unifyHelp(this, o, ImmutableSLList.nil(), - ImmutableSLList.nil(), null); - } - - // - // equals modulo renaming logic - - - /** - * compare two quantifiable variables if they are equal modulo renaming - * - * @param ownVar first QuantifiableVariable to be compared - * @param cmpVar second QuantifiableVariable to be compared - * @param ownBoundVars variables bound above the current position - * @param cmpBoundVars variables bound above the current position - */ - private static boolean compareBoundVariables(QuantifiableVariable ownVar, - QuantifiableVariable cmpVar, ImmutableList ownBoundVars, - ImmutableList cmpBoundVars) { - - final int ownNum = indexOf(ownVar, ownBoundVars); - final int cmpNum = indexOf(cmpVar, cmpBoundVars); - - if (ownNum == -1 && cmpNum == -1) { - // if both variables are not bound the variables have to be the - // same object - return ownVar == cmpVar; - } - - // otherwise the variables have to be bound at the same point (and both - // be bound) - return ownNum == cmpNum; - } - - /** - * @return the index of the first occurrence of var in list, or - * -1 if the variable is not an element of the list - */ - private static int indexOf(QuantifiableVariable var, ImmutableList list) { - int res = 0; - while (!list.isEmpty()) { - if (list.head() == var) { - return res; - } - ++res; - list = list.tail(); - } - return -1; - } - - /** - * Compares two terms modulo bound renaming - * - * @param t0 the first term - * @param t1 the second term - * @param ownBoundVars variables bound above the current position - * @param cmpBoundVars variables bound above the current position - * @return true is returned iff the terms are equal modulo bound renaming - */ - private boolean unifyHelp(Term t0, Term t1, ImmutableList ownBoundVars, - ImmutableList cmpBoundVars, NameAbstractionTable nat) { - - if (t0 == t1 && ownBoundVars.equals(cmpBoundVars)) { - return true; - } - - if (t0.sort() != t1.sort() || t0.arity() != t1.arity()) { - return false; - } - - final Operator op0 = t0.op(); - - if (op0 instanceof QuantifiableVariable) { - return handleQuantifiableVariable(t0, t1, ownBoundVars, cmpBoundVars); - } - - final Operator op1 = t1.op(); - - if (op0 instanceof Modality mod0 && op1 instanceof Modality mod1) { - if (mod0.kind() != mod1.kind()) { - return false; - } - nat = handleJava(mod0.program(), mod1.program(), nat); - if (nat == FAILED) { - return false; - } - } else if (!(op0 instanceof ProgramVariable) && op0 != op1) { - return false; - } - - if (!(op0 instanceof SchemaVariable) && op0 instanceof ProgramVariable pv0) { - if (op1 instanceof ProgramVariable pv1) { - nat = checkNat(nat); - if (!pv0.equalsModRenaming(pv1, nat)) { - return false; - } - } else { - return false; - } - } - - return descendRecursively(t0, t1, ownBoundVars, cmpBoundVars, nat); - } - - private boolean handleQuantifiableVariable(Term t0, Term t1, - ImmutableList ownBoundVars, - ImmutableList cmpBoundVars) { - return (t1.op() instanceof QuantifiableVariable) - && compareBoundVariables((QuantifiableVariable) t0.op(), - (QuantifiableVariable) t1.op(), ownBoundVars, cmpBoundVars); - } - - /** - * used to encode that handleJava results in an unsatisfiable constraint (faster than - * using exceptions) - */ - private static final NameAbstractionTable FAILED = new NameAbstractionTable(); - - private static NameAbstractionTable handleJava(JavaBlock jb0, JavaBlock jb1, - NameAbstractionTable nat) { - if (!jb0.isEmpty() || !jb1.isEmpty()) { - nat = checkNat(nat); - if (!jb0.equalsModRenaming(jb1, nat)) { - return FAILED; - } - } - return nat; - } - - private boolean descendRecursively(Term t0, Term t1, - ImmutableList ownBoundVars, - ImmutableList cmpBoundVars, NameAbstractionTable nat) { - - for (int i = 0; i < t0.arity(); i++) { - ImmutableList subOwnBoundVars = ownBoundVars; - ImmutableList subCmpBoundVars = cmpBoundVars; - - if (t0.varsBoundHere(i).size() != t1.varsBoundHere(i).size()) { - return false; - } - for (int j = 0; j < t0.varsBoundHere(i).size(); j++) { - final QuantifiableVariable ownVar = t0.varsBoundHere(i).get(j); - final QuantifiableVariable cmpVar = t1.varsBoundHere(i).get(j); - if (ownVar.sort() != cmpVar.sort()) { - return false; - } - - subOwnBoundVars = subOwnBoundVars.prepend(ownVar); - subCmpBoundVars = subCmpBoundVars.prepend(cmpVar); - } - - boolean newConstraint = - unifyHelp(t0.sub(i), t1.sub(i), subOwnBoundVars, subCmpBoundVars, nat); - - if (!newConstraint) { - return false; - } - } - - return true; - } - - private static NameAbstractionTable checkNat(NameAbstractionTable nat) { - if (nat == null) { - return new NameAbstractionTable(); - } - return nat; - } - - // end of equals modulo renaming logic - - /** * true iff o is syntactically equal to this term */ @@ -507,122 +320,6 @@ public boolean equals(Object o) { && javaBlock().equals(t.javaBlock()); } - @Override - public boolean equalsModIrrelevantTermLabels(Object o) { - if (o == this) { - return true; - } - - if (!(o instanceof TermImpl t)) { - return false; - } - - if (!(op.equals(t.op) && boundVars.equals(t.boundVars) - && javaBlock().equals(t.javaBlock()))) { - return false; - } - - Term other = (Term) o; - - for (TermLabel label : getLabels()) { - if (label.isProofRelevant() && !other.getLabels().contains(label)) { - return false; - } - } - - for (TermLabel label : other.getLabels()) { - if (label.isProofRelevant() && !getLabels().contains(label)) { - return false; - } - } - - for (int i = 0; i < subs.size(); ++i) { - if (!subs.get(i).equalsModIrrelevantTermLabels(t.subs.get(i))) { - return false; - } - } - - return true; - } - - @Override - public boolean equalsModTermLabels(Object o) { - if (o == this) { - return true; - } - - if (!(o instanceof TermImpl t)) { - return false; - } - - if (!(op.equals(t.op) && boundVars.equals(t.boundVars) - && javaBlock().equals(t.javaBlock()))) { - return false; - } - - for (int i = 0; i < subs.size(); ++i) { - if (!subs.get(i).equalsModTermLabels(t.subs.get(i))) { - return false; - } - } - return true; - } - - @Override - public boolean equalsModProofIrrelevancy(Object o) { - if (o == this) { - return true; - } - - if (!(o instanceof TermImpl t)) { - return false; - } - - boolean opResult = op.equalsModProofIrrelevancy(t.op); - if (!(opResult - && EqualsModProofIrrelevancyUtil.compareImmutableArrays(boundVars, t.boundVars) - && javaBlock().equalsModProofIrrelevancy(t.javaBlock()))) { - return false; - } - - Term other = (Term) o; - - for (TermLabel label : getLabels()) { - if (label.isProofRelevant() && !other.getLabels().contains(label)) { - return false; - } - } - - for (TermLabel label : other.getLabels()) { - if (label.isProofRelevant() && !getLabels().contains(label)) { - return false; - } - } - - for (int i = 0; i < subs.size(); ++i) { - if (!subs.get(i).equalsModProofIrrelevancy(t.subs.get(i))) { - return false; - } - } - - return true; - } - - @Override - public int hashCodeModProofIrrelevancy() { - if (hashcode2 == -1) { - // compute into local variable first to be thread-safe. - this.hashcode2 = Objects.hash(op(), - EqualsModProofIrrelevancyUtil - .hashCodeIterable(subs()), - EqualsModProofIrrelevancyUtil.hashCodeIterable(boundVars()), javaBlock()); - if (hashcode2 == -1) { - hashcode2 = 0; - } - } - return hashcode2; - } - @Override public final int hashCode() { if (hashcode == -1) { @@ -632,7 +329,6 @@ public final int hashCode() { return hashcode; } - /** * Performs the actual computation of the hashcode and can be overwritten by subclasses if * necessary @@ -650,6 +346,19 @@ protected int computeHashCode() { return hashcode; } + @Override + public boolean equalsModProperty(Object o, TermProperty property) { + if (!(o instanceof Term other)) { + return false; + } + return property.equalsModThisProperty(this, other); + } + + @Override + public int hashCodeModProperty(TermProperty property) { + return property.hashCodeModThisProperty(this); + } + /** * returns a linearized textual representation of this term diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/VariableNamer.java b/key.core/src/main/java/de/uka/ilkd/key/logic/VariableNamer.java index 101bad74ced..256710c7613 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/VariableNamer.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/VariableNamer.java @@ -46,6 +46,13 @@ * Responsible for program variable naming issues. */ public abstract class VariableNamer implements InstantiationProposer { + /** + * Separator used for {@link TempIndProgramElementName} instances. + * This will separate the name and the index of the "temporary" + * program element name. + */ + public static final char TEMP_INDEX_SEPARATOR = '#'; + private static final Logger LOGGER = LoggerFactory.getLogger(VariableNamer.class); // ------------------------------------------------------------------------- @@ -507,7 +514,7 @@ public static ProgramElementName parseName(String name, NameCreationInfo creatio Comment[] comments) { ProgramElementName result; - int sepPos = name.lastIndexOf(TempIndProgramElementName.SEPARATOR); + int sepPos = name.lastIndexOf(TEMP_INDEX_SEPARATOR); if (sepPos > 0) { String basename = name.substring(0, sepPos); int index = Integer.parseInt(name.substring(sepPos + 1)); @@ -663,15 +670,14 @@ public int getIndex() { * temporary indexed ProgramElementName */ private static class TempIndProgramElementName extends IndProgramElementName { - static final char SEPARATOR = '#'; - TempIndProgramElementName(String basename, int index, NameCreationInfo creationInfo) { - super(basename + SEPARATOR + index, basename, index, creationInfo); + super(basename + TEMP_INDEX_SEPARATOR + index, basename, index, creationInfo); } TempIndProgramElementName(String basename, int index, NameCreationInfo creationInfo, Comment[] comments) { - super(basename + SEPARATOR + index, basename, index, creationInfo, comments); + super(basename + TEMP_INDEX_SEPARATOR + index, basename, index, creationInfo, + comments); } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/equality/IrrelevantTermLabelsProperty.java b/key.core/src/main/java/de/uka/ilkd/key/logic/equality/IrrelevantTermLabelsProperty.java new file mode 100644 index 00000000000..0909c508423 --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/equality/IrrelevantTermLabelsProperty.java @@ -0,0 +1,86 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.logic.equality; + +import de.uka.ilkd.key.logic.Term; +import de.uka.ilkd.key.logic.label.TermLabel; + +import org.key_project.util.collection.ImmutableArray; + +/** + * A property that can be used in + * {@link TermEqualsModProperty#equalsModProperty(Object, TermProperty)}. + * All irrelevant term labels are ignored in this equality check. + */ +public class IrrelevantTermLabelsProperty implements TermProperty { + /** + * The single instance of this property. + */ + public static final IrrelevantTermLabelsProperty IRRELEVANT_TERM_LABELS_PROPERTY = + new IrrelevantTermLabelsProperty(); + + /** + * This constructor is private as a single instance of this class should be shared. The instance + * can be accessed + * through {@link IrrelevantTermLabelsProperty#IRRELEVANT_TERM_LABELS_PROPERTY} and is used as a + * parameter for + * {@link TermProperty#equalsModThisProperty(Term, Term)}. + */ + private IrrelevantTermLabelsProperty() {} + + /** + * Checks if {@code term2} is a term syntactically equal to {@code term1}, except for some + * irrelevant + * labels. + * + * @param term1 a term + * @param term2 the term compared to {@code term1} + * @return {@code true} iff {@code term2} is a term syntactically equal to {@code term1}, except + * for + * their irrelevant labels. + * @see TermLabel#isProofRelevant() isStrategyRelevant + */ + @Override + public Boolean equalsModThisProperty(Term term1, Term term2) { + if (term2 == term1) { + return true; + } + + if (!(term1.op().equals(term2.op()) && term1.boundVars().equals(term2.boundVars()) + && term1.javaBlock().equals(term2.javaBlock()))) { + return false; + } + + final ImmutableArray term1Labels = term1.getLabels(); + final ImmutableArray term2Labels = term2.getLabels(); + for (TermLabel label : term1Labels) { + if (label.isProofRelevant() && !term2Labels.contains(label)) { + return false; + } + } + for (TermLabel label : term2Labels) { + if (label.isProofRelevant() && !term1Labels.contains(label)) { + return false; + } + } + + final ImmutableArray termSubs = term1.subs(); + final ImmutableArray term2Subs = term2.subs(); + final int numOfSubs = termSubs.size(); + for (int i = 0; i < numOfSubs; ++i) { + if (!termSubs.get(i).equalsModProperty(term2Subs.get(i), + IRRELEVANT_TERM_LABELS_PROPERTY)) { + return false; + } + } + + return true; + } + + @Override + public int hashCodeModThisProperty(Term term) { + throw new UnsupportedOperationException( + "Hashing of terms modulo irrelevant term labels not yet implemented!"); + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/equality/ProofIrrelevancyProperty.java b/key.core/src/main/java/de/uka/ilkd/key/logic/equality/ProofIrrelevancyProperty.java new file mode 100644 index 00000000000..72aa7b28310 --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/equality/ProofIrrelevancyProperty.java @@ -0,0 +1,140 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.logic.equality; + + +import java.util.Objects; + +import de.uka.ilkd.key.logic.Term; +import de.uka.ilkd.key.logic.label.TermLabel; + +import org.key_project.util.EqualsModProofIrrelevancy; +import org.key_project.util.EqualsModProofIrrelevancyUtil; +import org.key_project.util.collection.ImmutableArray; + +/** + * A property that can be used in + * {@link TermEqualsModProperty#equalsModProperty(Object, TermProperty)}. + * All proof irrelevant attributes are ignored in this equality check. + */ +public class ProofIrrelevancyProperty implements TermProperty { + /** + * The single instance of this property. + */ + public static final ProofIrrelevancyProperty PROOF_IRRELEVANCY_PROPERTY = + new ProofIrrelevancyProperty(); + + /** + * This constructor is private as a single instance of this class should be shared. The instance + * can be accessed + * through {@link ProofIrrelevancyProperty#PROOF_IRRELEVANCY_PROPERTY} and is used as a + * parameter for + * {@link TermProperty#equalsModThisProperty(Term, Term)}. + */ + private ProofIrrelevancyProperty() {} + + /** + * Checks if {@code term2} is a term syntactically equal to {@code term1}, except for attributes + * that + * are not relevant for the purpose of these terms in the proof. + *

+ * Combines the prior implementations of {@link EqualsModProofIrrelevancy} in TermImpl and + * LabeledTermImpl. + *

+ * + * @param term1 a term + * @param term2 the term compared to {@code term1} + * @return true iff {@code term2} is a term syntactically equal to {@code term1}, except for + * proof-irrelevant attributes. + */ + @Override + public Boolean equalsModThisProperty(Term term1, Term term2) { + if (term2 == term1) { + return true; + } + + final boolean opResult = term1.op().equalsModProofIrrelevancy(term2.op()); + if (!(opResult + && EqualsModProofIrrelevancyUtil.compareImmutableArrays(term1.boundVars(), + term2.boundVars()) + && term1.javaBlock().equalsModProofIrrelevancy(term2.javaBlock()))) { + return false; + } + + final ImmutableArray termLabels = term1.getLabels(); + final ImmutableArray term2Labels = term2.getLabels(); + for (TermLabel label : termLabels) { + if (label.isProofRelevant() && !term2Labels.contains(label)) { + return false; + } + } + for (TermLabel label : term2Labels) { + if (label.isProofRelevant() && !termLabels.contains(label)) { + return false; + } + } + + final ImmutableArray term1Subs = term1.subs(); + final ImmutableArray term2Subs = term2.subs(); + final int numOfSubs = term1Subs.size(); + for (int i = 0; i < numOfSubs; ++i) { + if (!term1Subs.get(i).equalsModProperty(term2Subs.get(i), PROOF_IRRELEVANCY_PROPERTY)) { + return false; + } + } + + return true; + } + + /** + *

+ * Computes a hashcode that represents the proof-relevant fields of {@code term}. + *

+ * Combines the prior implementations of {@link EqualsModProofIrrelevancy} in TermImpl and + * LabeledTermImpl. + * + * @param term the term to compute the hashcode for + * @return the hashcode + */ + @Override + public int hashCodeModThisProperty(Term term) { + int hashcode = Objects.hash(term.op(), hashCodeIterable(term.subs()), + EqualsModProofIrrelevancyUtil.hashCodeIterable(term.boundVars()), term.javaBlock()); + + // part from LabeledTermImpl + final ImmutableArray labels = term.getLabels(); + for (int i = 0, sz = labels.size(); i < sz; i++) { + final TermLabel currentLabel = labels.get(i); + if (currentLabel.isProofRelevant()) { + hashcode += 7 * currentLabel.hashCode(); + } + } + return hashcode; + } + + // -------------------------- Utility methods --------------------------------- // + + /** + * Compute the hashcode mod proof irrelevancy of an iterable of terms using the elements' + * {@link TermEqualsModProperty} implementation. + * + * @param iter iterable of terms + * @return combined hashcode + */ + public static int hashCodeIterable(Iterable iter) { + // adapted from Arrays.hashCode + if (iter == null) { + return 0; + } + + int result = 1; + + for (Term element : iter) { + result = 31 * result + (element == null ? 0 + : element.hashCodeModProperty(PROOF_IRRELEVANCY_PROPERTY)); + } + + return result; + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/equality/RenamingProperty.java b/key.core/src/main/java/de/uka/ilkd/key/logic/equality/RenamingProperty.java new file mode 100644 index 00000000000..4e2c9488dc4 --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/equality/RenamingProperty.java @@ -0,0 +1,247 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.logic.equality; + +import de.uka.ilkd.key.java.JavaProgramElement; +import de.uka.ilkd.key.java.NameAbstractionTable; +import de.uka.ilkd.key.logic.JavaBlock; +import de.uka.ilkd.key.logic.Term; +import de.uka.ilkd.key.logic.op.*; + +import org.key_project.util.collection.ImmutableList; +import org.key_project.util.collection.ImmutableSLList; + +/** + * A property that can be used in + * {@link TermEqualsModProperty#equalsModProperty(Object, TermProperty)}. + * Renaming of variables is ignored in this equality check. + */ +public class RenamingProperty implements TermProperty { + /** + * The single instance of this property. + */ + public static final RenamingProperty RENAMING_PROPERTY = new RenamingProperty(); + + /** + * This constructor is private as a single instance of this class should be shared. The instance + * can be accessed + * through {@link RenamingProperty#RENAMING_PROPERTY} and is used as a parameter for + * {@link TermProperty#equalsModThisProperty(Term, Term)}. + */ + private RenamingProperty() {} + + /** + * Checks if {@code term2} is a term syntactically equal to {@code term1} modulo bound renaming. + * + * @param term1 a term + * @param term2 the term compared to {@code term1} + * @return true iff {@code term2} has the same values in operator, sort, arity, varsBoundHere + * and javaBlock as {@code term1} modulo bound renaming + */ + @Override + public Boolean equalsModThisProperty(Term term1, Term term2) { + if (term2 == term1) { + return true; + } + return unifyHelp(term1, term2, ImmutableSLList.nil(), + ImmutableSLList.nil(), null); + } + + @Override + public int hashCodeModThisProperty(Term term) { + throw new UnsupportedOperationException( + "Hashing of terms modulo renaming not yet implemented!"); + } + + // equals modulo renaming logic + + /** + * Compare two quantifiable variables if they are equal modulo renaming. + * + * @param ownVar first QuantifiableVariable to be compared + * @param cmpVar second QuantifiableVariable to be compared + * @param ownBoundVars variables bound above the current position + * @param cmpBoundVars variables bound above the current position + */ + private static boolean compareBoundVariables(QuantifiableVariable ownVar, + QuantifiableVariable cmpVar, ImmutableList ownBoundVars, + ImmutableList cmpBoundVars) { + + final int ownNum = indexOf(ownVar, ownBoundVars); + final int cmpNum = indexOf(cmpVar, cmpBoundVars); + + if (ownNum == -1 && cmpNum == -1) { + // if both variables are not bound the variables have to be the + // same object + return ownVar == cmpVar; + } + + // otherwise the variables have to be bound at the same point (and both + // be bound) + return ownNum == cmpNum; + } + + /** + * @return the index of the first occurrence of var in list, or + * -1 if the variable is not an element of the list + */ + private static int indexOf(QuantifiableVariable var, ImmutableList list) { + int res = 0; + while (!list.isEmpty()) { + if (list.head() == var) { + return res; + } + ++res; + list = list.tail(); + } + return -1; + } + + /** + * Compares two terms modulo bound renaming. + * + * @param t0 the first term + * @param t1 the second term + * @param ownBoundVars variables bound above the current position + * @param cmpBoundVars variables bound above the current position + * @return true is returned iff the terms are equal modulo bound renaming + */ + private boolean unifyHelp(Term t0, Term t1, ImmutableList ownBoundVars, + ImmutableList cmpBoundVars, NameAbstractionTable nat) { + + if (t0 == t1 && ownBoundVars.equals(cmpBoundVars)) { + return true; + } + + if (t0.sort() != t1.sort() || t0.arity() != t1.arity()) { + return false; + } + + final Operator op0 = t0.op(); + + if (op0 instanceof QuantifiableVariable) { + return handleQuantifiableVariable(t0, t1, ownBoundVars, cmpBoundVars); + } + + final Operator op1 = t1.op(); + + if (op0 instanceof Modality mod0 && op1 instanceof Modality mod1) { + if (mod0.kind() != mod1.kind()) { + return false; + } + nat = handleJava(mod0.program(), mod1.program(), nat); + if (nat == FAILED) { + return false; + } + } else if (!(op0 instanceof ProgramVariable) && op0 != op1) { + return false; + } + + if (!(op0 instanceof SchemaVariable) && op0 instanceof ProgramVariable pv0) { + if (op1 instanceof ProgramVariable pv1) { + nat = checkNat(nat); + if (!pv0.equalsModRenaming(pv1, nat)) { + return false; + } + } else { + return false; + } + } + + return descendRecursively(t0, t1, ownBoundVars, cmpBoundVars, nat); + } + + private boolean handleQuantifiableVariable(Term t0, Term t1, + ImmutableList ownBoundVars, + ImmutableList cmpBoundVars) { + return (t1.op() instanceof QuantifiableVariable) + && compareBoundVariables((QuantifiableVariable) t0.op(), + (QuantifiableVariable) t1.op(), ownBoundVars, cmpBoundVars); + } + + /** + * used to encode that handleJava results in an unsatisfiable constraint (faster than + * using exceptions) + */ + private static final NameAbstractionTable FAILED = new NameAbstractionTable(); + + private static NameAbstractionTable handleJava(JavaBlock jb0, JavaBlock jb1, + NameAbstractionTable nat) { + if (!jb0.isEmpty() || !jb1.isEmpty()) { + nat = checkNat(nat); + if (javaBlocksNotEqualModRenaming(jb0, jb1, nat)) { + return FAILED; + } + } + return nat; + } + + /** + * Returns true if the given {@link JavaBlock}s are not equal modulo renaming. + *

+ * Moved here from {@link JavaBlock} while refactoring equalsModRenaming in {@link Term}. + * As the implementation of equalsModRenaming in {@link JavaBlock} was only used in + * {@link RenamingProperty#handleJava(JavaBlock, JavaBlock, NameAbstractionTable)} + * and the deprecated class de.uka.ilkd.key.strategy.quantifierHeuristics.EqualityConstraint, + * it is now only a helper method in {@link RenamingProperty}. + * + * @param jb1 the first {@link JavaBlock} + * @param jb2 the second {@link JavaBlock} + * @param nat the {@link NameAbstractionTable} used for the comparison + * @return true if the given {@link JavaBlock}s are NOT equal modulo renaming + */ + public static boolean javaBlocksNotEqualModRenaming(JavaBlock jb1, JavaBlock jb2, + NameAbstractionTable nat) { + JavaProgramElement pe1 = jb1.program(); + JavaProgramElement pe2 = jb2.program(); + if (pe1 == null && pe2 == null) { + return false; + } else if (pe1 != null && pe2 != null) { + return !pe1.equalsModRenaming(pe2, nat); + } + return true; + } + + private boolean descendRecursively(Term t0, Term t1, + ImmutableList ownBoundVars, + ImmutableList cmpBoundVars, NameAbstractionTable nat) { + + for (int i = 0; i < t0.arity(); i++) { + ImmutableList subOwnBoundVars = ownBoundVars; + ImmutableList subCmpBoundVars = cmpBoundVars; + + if (t0.varsBoundHere(i).size() != t1.varsBoundHere(i).size()) { + return false; + } + for (int j = 0; j < t0.varsBoundHere(i).size(); j++) { + final QuantifiableVariable ownVar = t0.varsBoundHere(i).get(j); + final QuantifiableVariable cmpVar = t1.varsBoundHere(i).get(j); + if (ownVar.sort() != cmpVar.sort()) { + return false; + } + + subOwnBoundVars = subOwnBoundVars.prepend(ownVar); + subCmpBoundVars = subCmpBoundVars.prepend(cmpVar); + } + + boolean newConstraint = + unifyHelp(t0.sub(i), t1.sub(i), subOwnBoundVars, subCmpBoundVars, nat); + + if (!newConstraint) { + return false; + } + } + + return true; + } + + private static NameAbstractionTable checkNat(NameAbstractionTable nat) { + if (nat == null) { + return new NameAbstractionTable(); + } + return nat; + } + // end of equals modulo renaming logic + +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/equality/TermEqualsModProperty.java b/key.core/src/main/java/de/uka/ilkd/key/logic/equality/TermEqualsModProperty.java new file mode 100644 index 00000000000..6d541d2e72b --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/equality/TermEqualsModProperty.java @@ -0,0 +1,31 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.logic.equality; + +/** + * Interface to check for equality ignoring given properties and to compute according hash codes on + * terms. + * + * @author Tobias Reinhold + */ +public interface TermEqualsModProperty { + + /** + * Checks whether this object is equal to {@code o} modulo the property described by + * {@code property}. + * + * @param o the object that is checked for equality + * @param property the property to be ignored in the equality check + * @return whether this object is equal to o + */ + boolean equalsModProperty(Object o, TermProperty property); + + /** + * Computes the hash code according to the given ignored {@code property}. + * + * @param property the ignored property according to which the hash code is computed + * @return the hash code of this object + */ + int hashCodeModProperty(TermProperty property); +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/equality/TermLabelsProperty.java b/key.core/src/main/java/de/uka/ilkd/key/logic/equality/TermLabelsProperty.java new file mode 100644 index 00000000000..16e14dfc0f0 --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/equality/TermLabelsProperty.java @@ -0,0 +1,67 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.logic.equality; + +import de.uka.ilkd.key.logic.Term; + +import org.key_project.util.collection.ImmutableArray; + +/** + * A property that can be used in + * {@link TermEqualsModProperty#equalsModProperty(Object, TermProperty)}. + * All term labels are ignored in this equality check. + */ +public class TermLabelsProperty implements TermProperty { + /** + * The single instance of this property. + */ + public static final TermLabelsProperty TERM_LABELS_PROPERTY = new TermLabelsProperty(); + + /** + * This constructor is private as a single instance of this class should be shared. The instance + * can be accessed + * through {@link TermLabelsProperty#TERM_LABELS_PROPERTY} and is used as a parameter for + * {@link TermProperty#equalsModThisProperty(Term, Term)}. + */ + private TermLabelsProperty() {} + + /** + * Checks if {@code term2} is a term syntactically equal to {@code term1}, ignoring all + * term + * labels. + * + * @param term1 a term + * @param term2 the term compared to {@code term1} + * @return {@code true} iff {@code term2} is a term syntactically equal to {@code term1} + * ignoring all + * term labels + */ + @Override + public Boolean equalsModThisProperty(Term term1, Term term2) { + if (term2 == term1) { + return true; + } + + if (!(term1.op().equals(term2.op()) && term1.boundVars().equals(term2.boundVars()) + && term1.javaBlock().equals(term2.javaBlock()))) { + return false; + } + + final ImmutableArray term1Subs = term1.subs(); + final ImmutableArray term2Subs = term2.subs(); + final int numOfSubs = term1Subs.size(); + for (int i = 0; i < numOfSubs; ++i) { + if (!term1Subs.get(i).equalsModProperty(term2Subs.get(i), TERM_LABELS_PROPERTY)) { + return false; + } + } + return true; + } + + @Override + public int hashCodeModThisProperty(Term term) { + throw new UnsupportedOperationException( + "Hashing of terms modulo term labels not yet implemented!"); + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/equality/TermProperty.java b/key.core/src/main/java/de/uka/ilkd/key/logic/equality/TermProperty.java new file mode 100644 index 00000000000..2f6e41b3b6a --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/equality/TermProperty.java @@ -0,0 +1,37 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.logic.equality; + +import de.uka.ilkd.key.logic.Term; + +/** + *

+ * This interface is used for equality checks and hashing modulo a certain property on terms. + *

+ * Objects of classes implementing this interface are given to the methods in + * {@link TermEqualsModProperty} as parameters to unify equality checks and hashing modulo different + * properties. + * + * @author Tobias Reinhold + */ +public interface TermProperty { + /** + * Checks {@code term1} and {@code term2} for equality ignoring a certain property. + * + * @param term1 the first term to check for equality with {@code term2} + * @param term2 the second term to check for equality with {@code term1} + * @return whether {@code term1} and {@code term2} are equal ignoring a certain property + */ + Boolean equalsModThisProperty(Term term1, Term term2); + + /** + * Computes the hash code of the {@code term} in a context where + * {@link this#equalsModThisProperty(Term, Term)} is used as an equality check, so that it can + * be used in, e.g., a HashMap. + * + * @param term the term to compute the hash code for + * @return the hash code of {@code term} ignoring a certain property + */ + int hashCodeModThisProperty(Term term); +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/label/OriginTermLabel.java b/key.core/src/main/java/de/uka/ilkd/key/logic/label/OriginTermLabel.java index f2108e8d1f9..36136ad11f8 100755 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/label/OriginTermLabel.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/label/OriginTermLabel.java @@ -692,8 +692,7 @@ public static final class FileOrigin extends Origin { /** * The file the term originates from. */ - @Nullable - private final URI fileName; + private final @Nullable URI fileName; /** * The line in the file the term originates from. diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/label/TermLabelManager.java b/key.core/src/main/java/de/uka/ilkd/key/logic/label/TermLabelManager.java index 61c82475e69..6ac56f95a64 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/label/TermLabelManager.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/label/TermLabelManager.java @@ -30,6 +30,8 @@ import org.key_project.util.collection.Pair; import org.key_project.util.java.CollectionUtil; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** *

* This class provides access to the functionality of term labels. @@ -2011,7 +2013,8 @@ protected void mergeLabels(SequentChangeInfo currentSequent, Services services, // Search existing SequentFormula Semisequent s = currentSequent.getSemisequentChangeInfo(inAntecedent).semisequent(); SequentFormula existingSF = CollectionUtil.search(s, - element -> element.formula().equalsModRenaming(rejectedTerm)); + element -> element.formula().equalsModProperty(rejectedTerm, + RENAMING_PROPERTY)); if (existingSF != null) { // Create list of new labels Term existingTerm = existingSF.formula(); diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/op/AbstractSV.java b/key.core/src/main/java/de/uka/ilkd/key/logic/op/AbstractSV.java index f2866fb3dbf..84aeb8db320 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/op/AbstractSV.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/op/AbstractSV.java @@ -30,7 +30,7 @@ protected AbstractSV(Name name, Sort[] argSorts, Sort sort, boolean isRigid, boo protected AbstractSV(Name name, Sort sort, boolean isRigid, boolean isStrict) { - this(name, (ImmutableArray) null, sort, isRigid, isStrict); + this(name, new ImmutableArray<>(), sort, isRigid, isStrict); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/op/AbstractSortedOperator.java b/key.core/src/main/java/de/uka/ilkd/key/logic/op/AbstractSortedOperator.java index a21942dce61..dc075d1298a 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/op/AbstractSortedOperator.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/op/AbstractSortedOperator.java @@ -46,7 +46,7 @@ protected AbstractSortedOperator(Name name, Sort[] argSorts, Sort sort, boolean } protected AbstractSortedOperator(Name name, Sort sort, boolean isRigid) { - this(name, (ImmutableArray) null, sort, null, isRigid); + this(name, new ImmutableArray<>(), sort, null, isRigid); } /** diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/op/LocationVariable.java b/key.core/src/main/java/de/uka/ilkd/key/logic/op/LocationVariable.java index 2f1b9130881..433ba57c369 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/op/LocationVariable.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/op/LocationVariable.java @@ -76,4 +76,18 @@ public int hashCodeModProofIrrelevancy() { argSorts(), name().toString(), arity(), whereToBind(), isRigid()); } + + /** + * Constructs a location variable from a program variable. + * This should not be done manually since it is important to keep *all* modifiers. + * + * @param variable the variable + * @param name the name of the variable + * @return a new location variable + */ + public static LocationVariable fromProgramVariable(ProgramVariable variable, + ProgramElementName name) { + return new LocationVariable(name, variable.getKeYJavaType(), variable.getContainerType(), + variable.isStatic(), variable.isModel(), variable.isGhost(), variable.isFinal()); + } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/sort/ProgramSVSort.java b/key.core/src/main/java/de/uka/ilkd/key/logic/sort/ProgramSVSort.java index 3f1c22dbb25..24a67aaaa57 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/sort/ProgramSVSort.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/sort/ProgramSVSort.java @@ -483,7 +483,7 @@ protected boolean canStandFor(ProgramElement pe, Services services) { || pe instanceof SetMinus || pe instanceof AllFields || pe instanceof AllObjects || pe instanceof SeqSingleton || pe instanceof SeqConcat || pe instanceof SeqLength || pe instanceof SeqGet || pe instanceof SeqIndexOf - || pe instanceof SeqSub || pe instanceof SeqReverse) { + || pe instanceof SeqSub || pe instanceof SeqReverse || pe instanceof SeqPut) { if (pe instanceof NonTerminalProgramElement npe) { for (int i = 0, childCount = npe.getChildCount(); i < childCount; i++) { if (!canStandFor(npe.getChildAt(i), services)) { diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/sort/SortImpl.java b/key.core/src/main/java/de/uka/ilkd/key/logic/sort/SortImpl.java index cca1b854f1f..c34df7c9ded 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/sort/SortImpl.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/sort/SortImpl.java @@ -87,15 +87,13 @@ public String declarationString() { return name().toString(); } - @Nullable @Override - public String getDocumentation() { + public @Nullable String getDocumentation() { return documentation; } - @Nullable @Override - public String getOrigin() { + public @Nullable String getOrigin() { return origin; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/EngineState.java b/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/EngineState.java index 7437ebe7c4f..fc259f1cf23 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/EngineState.java +++ b/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/EngineState.java @@ -200,8 +200,7 @@ public Term toTerm(String string, Sort sort) throws ParserException, ScriptExcep "Unexpected sort for term: " + term + ". Expected: " + sort); } - @NonNull - private KeyIO getKeyIO() throws ScriptException { + private @NonNull KeyIO getKeyIO() throws ScriptException { Services services = proof.getServices(); KeyIO io = new KeyIO(services, getFirstOpenAutomaticGoal().getLocalNamespaces()); io.setAbbrevMap(abbrevMap); diff --git a/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/FocusCommand.java b/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/FocusCommand.java index 14d5fd39f6b..a27f4613191 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/FocusCommand.java +++ b/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/FocusCommand.java @@ -19,6 +19,8 @@ import org.key_project.logic.Name; import org.key_project.util.collection.ImmutableList; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * The command "focus" allows you to select formulas from the current sequent * to focus verification on. This means that all other formulas are discarded @@ -76,7 +78,8 @@ private void hideAll(Sequent toKeep) throws ScriptException { for (SequentFormula seqFormula : ante) { // This means "!keepAnte.contains(seqFormula.formula)" but with equality mod renaming! - if (!keepAnte.exists(it -> it.equalsModRenaming(seqFormula.formula()))) { + if (!keepAnte.exists( + it -> it.equalsModProperty(seqFormula.formula(), RENAMING_PROPERTY))) { Taclet tac = getHideTaclet("left"); makeTacletApp(goal, seqFormula, tac, true); } @@ -85,7 +88,8 @@ private void hideAll(Sequent toKeep) throws ScriptException { ImmutableList keepSucc = toKeep.succedent().asList().map(SequentFormula::formula); ImmutableList succ = goal.sequent().succedent().asList(); for (SequentFormula seqFormula : succ) { - if (!keepSucc.exists(it -> it.equalsModRenaming(seqFormula.formula()))) { + if (!keepSucc.exists( + it -> it.equalsModProperty(seqFormula.formula(), RENAMING_PROPERTY))) { Taclet tac = getHideTaclet("right"); makeTacletApp(goal, seqFormula, tac, false); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/HideCommand.java b/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/HideCommand.java index acd9c61592c..85edd078c0b 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/HideCommand.java +++ b/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/HideCommand.java @@ -19,6 +19,8 @@ import org.key_project.logic.Name; +import static de.uka.ilkd.key.logic.equality.TermLabelsProperty.TERM_LABELS_PROPERTY; + /** * Proof script command to hide a formula from the sequent. * @@ -79,7 +81,7 @@ public void execute(Parameters args) throws ScriptException, InterruptedExceptio private SequentFormula find(SequentFormula sf, Semisequent semiseq) throws ScriptException { for (SequentFormula s : semiseq) { - if (s.formula().equalsModTermLabels(sf.formula())) { + if (s.formula().equalsModProperty(sf.formula(), TERM_LABELS_PROPERTY)) { return s; } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/InstantiateCommand.java b/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/InstantiateCommand.java index c3d3ec0c762..41ee9436a12 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/InstantiateCommand.java +++ b/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/InstantiateCommand.java @@ -25,6 +25,8 @@ import org.key_project.util.collection.ImmutableList; import org.key_project.util.collection.ImmutableSLList; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * instantiate var=a occ=2 with="a_8" hide *

@@ -108,7 +110,8 @@ private ImmutableList findAllTacletApps(Parameters p, EngineState sta ImmutableList allApps = ImmutableSLList.nil(); for (SequentFormula sf : g.node().sequent().antecedent()) { - if (p.formula != null && !sf.formula().equalsModRenaming(p.formula)) { + if (p.formula != null + && !sf.formula().equalsModProperty(p.formula, RENAMING_PROPERTY)) { continue; } allApps = allApps.append(index.getTacletAppAtAndBelow(filter, @@ -116,7 +119,8 @@ private ImmutableList findAllTacletApps(Parameters p, EngineState sta } for (SequentFormula sf : g.node().sequent().succedent()) { - if (p.formula != null && !sf.formula().equalsModRenaming(p.formula)) { + if (p.formula != null + && !sf.formula().equalsModProperty(p.formula, RENAMING_PROPERTY)) { continue; } allApps = allApps.append(index.getTacletAppAtAndBelow(filter, @@ -132,7 +136,8 @@ private ImmutableList findAllTacletApps(Parameters p, EngineState sta private TacletApp filterList(Parameters p, ImmutableList list) { for (TacletApp tacletApp : list) { if (tacletApp instanceof PosTacletApp pta) { - if (pta.posInOccurrence().subTerm().equalsModRenaming(p.formula)) { + if (pta.posInOccurrence().subTerm().equalsModProperty(p.formula, + RENAMING_PROPERTY)) { return pta; } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/RewriteCommand.java b/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/RewriteCommand.java index 24a820da811..4c15504162b 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/RewriteCommand.java +++ b/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/RewriteCommand.java @@ -22,6 +22,8 @@ import org.key_project.util.collection.ImmutableList; import org.key_project.util.collection.ImmutableSLList; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * This class provides the command rewrite. *

@@ -111,7 +113,8 @@ private ImmutableList findAllTacletApps(Parameters p, EngineState sta // filter taclets that are applicable on the given formula in the antecedent for (SequentFormula sf : g.node().sequent().antecedent()) { - if (p.formula != null && !sf.formula().equalsModRenaming(p.formula)) { + if (p.formula != null + && !sf.formula().equalsModProperty(p.formula, RENAMING_PROPERTY)) { continue; } allApps = allApps.append(index.getTacletAppAtAndBelow(filter, @@ -120,7 +123,8 @@ private ImmutableList findAllTacletApps(Parameters p, EngineState sta // filter taclets that are applicable on the given formula in the succedent for (SequentFormula sf : g.node().sequent().succedent()) { - if (p.formula != null && !sf.formula().equalsModRenaming(p.formula)) { + if (p.formula != null + && !sf.formula().equalsModProperty(p.formula, RENAMING_PROPERTY)) { continue; } allApps = allApps.append(index.getTacletAppAtAndBelow(filter, diff --git a/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/RuleCommand.java b/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/RuleCommand.java index afdf580128d..a107e4c8c96 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/RuleCommand.java +++ b/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/RuleCommand.java @@ -23,6 +23,9 @@ import org.key_project.util.collection.ImmutableList; import org.key_project.util.collection.ImmutableSLList; +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * Command that applies a calculus rule All parameters are passed as strings and converted by the * command. The parameters are: @@ -315,7 +318,7 @@ private ImmutableList findAllTacletApps(Parameters p, EngineState sta private boolean isFormulaSearchedFor(Parameters p, SequentFormula sf, Services services) throws ScriptException { final boolean satisfiesFormulaParameter = - p.formula != null && sf.formula().equalsModRenaming(p.formula); + p.formula != null && sf.formula().equalsModProperty(p.formula, RENAMING_PROPERTY); final boolean satisfiesMatchesParameter = p.matches != null && formatTermString(LogicPrinter.quickPrintTerm(sf.formula(), services)) @@ -345,7 +348,8 @@ private List filterList(Parameters p, ImmutableList list) for (TacletApp tacletApp : list) { if (tacletApp instanceof PosTacletApp pta) { boolean add = - p.on == null || pta.posInOccurrence().subTerm().equalsModRenaming(p.on); + p.on == null || pta.posInOccurrence().subTerm() + .equalsModProperty(p.on, RENAMING_PROPERTY); Iterator it = pta.instantiations().svIterator(); while (it.hasNext()) { @@ -354,7 +358,8 @@ private List filterList(Parameters p, ImmutableList list) Object ptaInst = pta.instantiations().getInstantiationEntry(sv).getInstantiation(); - add &= userInst == null || userInst.equalsModIrrelevantTermLabels(ptaInst); + add &= userInst == null + || userInst.equalsModProperty(ptaInst, IRRELEVANT_TERM_LABELS_PROPERTY); } if (add) { diff --git a/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/ScriptException.java b/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/ScriptException.java index e941773551f..c5ff4d935f8 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/ScriptException.java +++ b/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/ScriptException.java @@ -45,9 +45,8 @@ public ScriptException(String message, Throwable cause) { this.location = null; } - @Nullable @Override - public Location getLocation() { + public @Nullable Location getLocation() { return location; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/SelectCommand.java b/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/SelectCommand.java index 0fb1b181bad..f43592bde92 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/SelectCommand.java +++ b/key.core/src/main/java/de/uka/ilkd/key/macros/scripts/SelectCommand.java @@ -20,6 +20,8 @@ import org.key_project.util.collection.ImmutableList; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + public class SelectCommand extends AbstractCommand { public SelectCommand() { super(Parameters.class); @@ -133,7 +135,7 @@ private boolean contains(Sequent seq, Term formula) { private boolean contains(Semisequent semiseq, Term formula) { for (SequentFormula sf : semiseq.asList()) { - if (sf.formula().equalsModRenaming(formula)) { + if (sf.formula().equalsModProperty(formula, RENAMING_PROPERTY)) { return true; } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/nparser/ConfigurationBuilder.java b/key.core/src/main/java/de/uka/ilkd/key/nparser/ConfigurationBuilder.java index b7702e848e9..146723fcf0d 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/nparser/ConfigurationBuilder.java +++ b/key.core/src/main/java/de/uka/ilkd/key/nparser/ConfigurationBuilder.java @@ -26,7 +26,7 @@ public List visitCfile(KeYParser.CfileContext ctx) { } @Override - public Object visitCkey(KeYParser.CkeyContext ctx) { + public String visitCkey(KeYParser.CkeyContext ctx) { if (ctx.STRING_LITERAL() != null) return sanitizeStringLiteral(ctx.STRING_LITERAL().getText()); return ctx.IDENT().getText(); @@ -44,25 +44,24 @@ public String visitCstring(KeYParser.CstringContext ctx) { return sanitizeStringLiteral(text); } - @NonNull - private static String sanitizeStringLiteral(String text) { + private static @NonNull String sanitizeStringLiteral(String text) { return text.substring(1, text.length() - 1) .replace("\\\"", "\"") .replace("\\\\", "\\"); } @Override - public Object visitCintb(KeYParser.CintbContext ctx) { + public Long visitCintb(KeYParser.CintbContext ctx) { return Long.parseLong(ctx.getText(), 2); } @Override - public Object visitCinth(KeYParser.CinthContext ctx) { + public Long visitCinth(KeYParser.CinthContext ctx) { return Long.parseLong(ctx.getText(), 16); } @Override - public Object visitCintd(KeYParser.CintdContext ctx) { + public Long visitCintd(KeYParser.CintdContext ctx) { final var text = ctx.getText(); if (text.endsWith("L") || text.endsWith("l")) { return Long.parseLong(text.substring(0, text.length() - 1), 10); @@ -72,27 +71,27 @@ public Object visitCintd(KeYParser.CintdContext ctx) { } @Override - public Object visitCfpf(KeYParser.CfpfContext ctx) { + public Double visitCfpf(KeYParser.CfpfContext ctx) { return Double.parseDouble(ctx.getText()); } @Override - public Object visitCfpd(KeYParser.CfpdContext ctx) { + public Double visitCfpd(KeYParser.CfpdContext ctx) { return Double.parseDouble(ctx.getText()); } @Override - public Object visitCfpr(KeYParser.CfprContext ctx) { + public Double visitCfpr(KeYParser.CfprContext ctx) { return Double.parseDouble(ctx.getText()); } @Override - public Object visitCbool(KeYParser.CboolContext ctx) { + public Boolean visitCbool(KeYParser.CboolContext ctx) { return Boolean.parseBoolean(ctx.getText()); } @Override - public Object visitTable(KeYParser.TableContext ctx) { + public Configuration visitTable(KeYParser.TableContext ctx) { final var data = new LinkedHashMap(); for (KeYParser.CkvContext context : ctx.ckv()) { var name = context.ckey().accept(this).toString(); @@ -103,7 +102,7 @@ public Object visitTable(KeYParser.TableContext ctx) { } @Override - public Object visitList(KeYParser.ListContext ctx) { + public List visitList(KeYParser.ListContext ctx) { var seq = new ArrayList<>(ctx.children.size()); for (KeYParser.CvalueContext context : ctx.cvalue()) { seq.add(context.accept(this)); diff --git a/key.core/src/main/java/de/uka/ilkd/key/nparser/KeyAst.java b/key.core/src/main/java/de/uka/ilkd/key/nparser/KeyAst.java index c5dc159aa8e..ca24ef495c8 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/nparser/KeyAst.java +++ b/key.core/src/main/java/de/uka/ilkd/key/nparser/KeyAst.java @@ -10,9 +10,11 @@ import de.uka.ilkd.key.nparser.builder.ChoiceFinder; import de.uka.ilkd.key.nparser.builder.FindProblemInformation; import de.uka.ilkd.key.nparser.builder.IncludeFinder; +import de.uka.ilkd.key.parser.Location; import de.uka.ilkd.key.proof.init.Includes; import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.settings.ProofSettings; +import de.uka.ilkd.key.speclang.njml.JmlParser; import de.uka.ilkd.key.util.Triple; import org.key_project.util.java.StringUtil; @@ -37,8 +39,8 @@ * @version 1 (5.12.19) */ public abstract class KeyAst { - @NonNull - final T ctx; + + final @NonNull T ctx; protected KeyAst(@NonNull T ctx) { this.ctx = ctx; @@ -53,6 +55,15 @@ public String toString() { return getClass().getName() + ": " + BuilderHelpers.getPosition(ctx); } + public Location getStartLocation() { + return Location.fromToken(ctx.start); + } + + public String getText() { + var interval = new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex() + 1); + return ctx.start.getInputStream().getText(interval); + } + public static class File extends KeyAst { File(KeYParser.FileContext ctx) { super(ctx); @@ -149,6 +160,26 @@ public Configuration asConfiguration() { } } + public static class SetStatementContext extends KeyAst { + public SetStatementContext(JmlParser.@NonNull Set_statementContext ctx) { + super(ctx); + } + + public Expression getAssignee() { + return new Expression(ctx.assignee); + } + + public Expression getValue() { + return new Expression(ctx.value); + } + } + + public static class Expression extends KeyAst { + public Expression(JmlParser.@NonNull ExpressionContext ctx) { + super(ctx); + } + } + public static class Term extends KeyAst { Term(KeYParser.TermContext ctx) { diff --git a/key.core/src/main/java/de/uka/ilkd/key/nparser/KeyIO.java b/key.core/src/main/java/de/uka/ilkd/key/nparser/KeyIO.java index b80e260b775..2dd0ad9f70d 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/nparser/KeyIO.java +++ b/key.core/src/main/java/de/uka/ilkd/key/nparser/KeyIO.java @@ -49,8 +49,7 @@ public class KeyIO { private final Services services; private final NamespaceSet nss; - @Nullable - private Namespace schemaNamespace; + private @Nullable Namespace schemaNamespace; private List warnings = new LinkedList<>(); private AbbrevMap abbrevMap; @@ -207,8 +206,7 @@ public List getWarnings() { return warnings; } - @Nullable - public List resetWarnings() { + public @Nullable List resetWarnings() { var w = warnings; warnings = new LinkedList<>(); return w; diff --git a/key.core/src/main/java/de/uka/ilkd/key/nparser/ParsingFacade.java b/key.core/src/main/java/de/uka/ilkd/key/nparser/ParsingFacade.java index e130885505f..9e458faddf0 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/nparser/ParsingFacade.java +++ b/key.core/src/main/java/de/uka/ilkd/key/nparser/ParsingFacade.java @@ -24,6 +24,7 @@ import org.antlr.v4.runtime.misc.ParseCancellationException; import org.antlr.v4.runtime.tree.TerminalNode; import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.NullMarked; import org.jspecify.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -37,6 +38,7 @@ * @author Alexander Weigl * @version 1 (19.08.19) */ +@NullMarked public final class ParsingFacade { private static final Logger LOGGER = LoggerFactory.getLogger(ParsingFacade.class); @@ -52,8 +54,8 @@ private ParsingFacade() { * @param parse tree type * @return the {@link ParserRuleContext} inside the given ast object. */ - @NonNull - public static T getParseRuleContext(@NonNull KeyAst ast) { + public static @NonNull T getParseRuleContext( + @NonNull KeyAst ast) { return ast.ctx; } @@ -130,7 +132,6 @@ public static KeyAst.File parseFile(CharStream stream) { KeYParser p = createParser(stream); p.getInterpreter().setPredictionMode(PredictionMode.SLL); - // we don't want error messages or recovery during first try p.removeErrorListeners(); p.setErrorHandler(new BailErrorStrategy()); KeYParser.FileContext ctx; @@ -138,8 +139,13 @@ public static KeyAst.File parseFile(CharStream stream) { ctx = p.file(); } catch (ParseCancellationException ex) { LOGGER.warn("SLL was not enough"); + stream.seek(0); p = createParser(stream); + p.setErrorHandler(new BailErrorStrategy()); ctx = p.file(); + if (p.getErrorReporter().hasErrors()) { + throw ex; + } } p.getErrorReporter().throwException(); @@ -186,8 +192,7 @@ public static KeYParser.Id_declarationContext parseIdDeclaration(CharStream stre return p.id_declaration(); } - @Nullable - public static String getValueDocumentation(@Nullable TerminalNode docComment) { + public static @Nullable String getValueDocumentation(@Nullable TerminalNode docComment) { if (docComment == null) { return null; } @@ -271,5 +276,10 @@ public static Configuration readConfigurationFile(Path file) throws IOException public static Configuration readConfigurationFile(File file) throws IOException { return readConfigurationFile(file.toPath()); } + + public static Configuration getConfiguration(KeYParser.TableContext ctx) { + final var cfg = new ConfigurationBuilder(); + return cfg.visitTable(ctx); + } // endregion } diff --git a/key.core/src/main/java/de/uka/ilkd/key/nparser/ProblemInformation.java b/key.core/src/main/java/de/uka/ilkd/key/nparser/ProblemInformation.java index a5753dfdfdf..b2b49a91a5c 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/nparser/ProblemInformation.java +++ b/key.core/src/main/java/de/uka/ilkd/key/nparser/ProblemInformation.java @@ -70,8 +70,7 @@ public ProblemInformation() { classpath = new LinkedList<>(); } - @Nullable - public String getChooseContract() { + public @Nullable String getChooseContract() { return chooseContract; } @@ -79,8 +78,7 @@ public void setChooseContract(@Nullable String chooseContract) { this.chooseContract = chooseContract; } - @Nullable - public String getProofObligation() { + public @Nullable String getProofObligation() { return proofObligation; } @@ -88,8 +86,7 @@ public void setProofObligation(@Nullable String proofObligation) { this.proofObligation = proofObligation; } - @Nullable - public String getProfile() { + public @Nullable String getProfile() { return profile; } @@ -97,8 +94,7 @@ public void setProfile(@Nullable String profile) { this.profile = profile; } - @Nullable - public String getPreferences() { + public @Nullable String getPreferences() { return preferences; } @@ -106,8 +102,7 @@ public void setPreferences(@Nullable String preferences) { this.preferences = preferences; } - @Nullable - public String getBootClassPath() { + public @Nullable String getBootClassPath() { return bootClassPath; } @@ -115,8 +110,7 @@ public void setBootClassPath(@Nullable String bootClassPath) { this.bootClassPath = bootClassPath; } - @Nullable - public String getJavaSource() { + public @Nullable String getJavaSource() { return javaSource; } @@ -124,8 +118,7 @@ public void setJavaSource(@Nullable String javaSource) { this.javaSource = javaSource; } - @NonNull - public List getClasspath() { + public @NonNull List getClasspath() { return classpath; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/AbstractBuilder.java b/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/AbstractBuilder.java index 5acde7d45f7..04d902005d0 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/AbstractBuilder.java +++ b/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/AbstractBuilder.java @@ -29,10 +29,9 @@ */ @SuppressWarnings("unchecked") abstract class AbstractBuilder extends KeYParserBaseVisitor { - @Nullable - private List buildingIssues = null; - @Nullable - private Stack parameters = null; + + private @Nullable List buildingIssues = null; + private @Nullable Stack parameters = null; /** * Helper function for avoiding cast. diff --git a/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/ChoiceFinder.java b/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/ChoiceFinder.java index 134f50cd209..35444e800bf 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/ChoiceFinder.java +++ b/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/ChoiceFinder.java @@ -23,8 +23,8 @@ * @see ChoiceInformation */ public class ChoiceFinder extends AbstractBuilder { - @NonNull - private final ChoiceInformation choiceInformation; + + private final @NonNull ChoiceInformation choiceInformation; public ChoiceFinder() { choiceInformation = new ChoiceInformation(); @@ -82,8 +82,7 @@ public Choice visitActivated_choice(KeYParser.Activated_choiceContext ctx) { return c; } - @NonNull - public ChoiceInformation getChoiceInformation() { + public @NonNull ChoiceInformation getChoiceInformation() { return choiceInformation; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/DeclarationBuilder.java b/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/DeclarationBuilder.java index 4b4ed97565f..048588c7717 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/DeclarationBuilder.java +++ b/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/DeclarationBuilder.java @@ -22,8 +22,8 @@ import org.key_project.logic.Name; import org.key_project.logic.Named; import org.key_project.logic.sort.Sort; -import org.key_project.util.collection.DefaultImmutableSet; import org.key_project.util.collection.ImmutableSet; +import org.key_project.util.collection.Immutables; import org.antlr.v4.runtime.Token; import org.slf4j.Logger; @@ -81,6 +81,10 @@ public Object visitProg_var_decls(KeYParser.Prog_var_declsContext ctx) { KeYJavaType kjt = accept(ctx.keyjavatype(i)); assert varNames != null; for (String varName : varNames) { + if (varName.equals("null")) { + semanticError(ctx.simple_ident_comma_list(i), + "Function '" + varName + "' is already defined!"); + } ProgramElementName pvName = new ProgramElementName(varName); Named name = lookup(pvName); if (name != null) { @@ -143,12 +147,13 @@ public Object visitOne_sort_decl(KeYParser.One_sort_declContext ctx) { Name sortName = new Name(sortId); ImmutableSet ext = sortExt == null ? ImmutableSet.empty() - : DefaultImmutableSet.fromCollection(sortExt); + : Immutables.createSetFrom(sortExt); ImmutableSet oneOf = sortOneOf == null ? ImmutableSet.empty() - : DefaultImmutableSet.fromCollection(sortOneOf); + : Immutables.createSetFrom(sortOneOf); // attention: no expand to java.lang here! - if (sorts().lookup(sortName) == null) { + Sort existingSort = sorts().lookup(sortName); + if (existingSort == null) { Sort s = null; if (isGenericSort) { try { @@ -176,11 +181,11 @@ public Object visitOne_sort_decl(KeYParser.One_sort_declContext ctx) { createdSorts.add(s); } else { // weigl: agreement on KaKeY meeting: this should be ignored until we finally have - // local namespaces - // for generic sorts + // local namespaces for generic sorts // addWarning(ctx, "Sort declaration is ignored, due to collision."); - LOGGER.info("Sort declaration is ignored, due to collision in {}", - BuilderHelpers.getPosition(ctx)); + LOGGER.info("Sort declaration of {} in {} is ignored due to collision (already " + + "present in {}).", sortName, BuilderHelpers.getPosition(ctx), + existingSort.getOrigin()); } } return createdSorts; diff --git a/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/DefaultBuilder.java b/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/DefaultBuilder.java index e4bafa128c1..2225ca78ddb 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/DefaultBuilder.java +++ b/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/DefaultBuilder.java @@ -173,6 +173,8 @@ protected Operator lookupVarfuncId(ParserRuleContext ctx, String varfuncName, St SortDependingFunction firstInstance = SortDependingFunction.getFirstInstance(new Name(varfuncName), getServices()); + if (sort == null) + semanticError(ctx, "Could not find sort: %s", sortName); if (firstInstance != null) { SortDependingFunction v = firstInstance.getInstanceFor(sort, getServices()); if (v != null) { diff --git a/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/ExpressionBuilder.java b/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/ExpressionBuilder.java index 2b5ce808052..c4395443d41 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/ExpressionBuilder.java +++ b/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/ExpressionBuilder.java @@ -1247,8 +1247,7 @@ private Term visitAccesstermAsJava(KeYParser.AccesstermContext ctx) { if (a.heap != null) { break; // No heap on java package allowed } - @Nullable - Object cur = accept(a.id); + @Nullable Object cur = accept(a.id); if (isPackage(javaPackage + "." + cur)) { javaPackage += "." + cur; currentSuffix++; diff --git a/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/ProblemFinder.java b/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/ProblemFinder.java index cce301be71d..02b4702e60d 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/ProblemFinder.java +++ b/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/ProblemFinder.java @@ -3,12 +3,19 @@ * SPDX-License-Identifier: GPL-2.0-only */ package de.uka.ilkd.key.nparser.builder; +import java.io.IOException; +import java.io.StringReader; +import java.util.Properties; + import de.uka.ilkd.key.java.Services; import de.uka.ilkd.key.java.abstraction.KeYJavaType; import de.uka.ilkd.key.logic.*; import de.uka.ilkd.key.nparser.KeYParser; import de.uka.ilkd.key.nparser.ParsingFacade; +import de.uka.ilkd.key.settings.Configuration; +import de.uka.ilkd.key.util.parsing.BuildingException; +import org.jspecify.annotations.NullMarked; import org.jspecify.annotations.Nullable; /** @@ -17,28 +24,42 @@ * * @author weigl */ +@NullMarked public class ProblemFinder extends ExpressionBuilder { private @Nullable Sequent problem; private @Nullable String chooseContract; - private @Nullable String proofObligation; + private @Nullable Configuration proofObligation; public ProblemFinder(Services services, NamespaceSet nss) { super(services, nss); } @Override - public Object visitFile(KeYParser.FileContext ctx) { + public @Nullable Object visitFile(KeYParser.FileContext ctx) { each(ctx.problem()); return null; } @Override - public KeYJavaType visitArrayopid(KeYParser.ArrayopidContext ctx) { + public @Nullable KeYJavaType visitArrayopid(KeYParser.ArrayopidContext ctx) { return accept(ctx.keyjavatype()); } + /** + * Try to find a problem defined in the {@link de.uka.ilkd.key.proof.init.KeYUserProblemFile} + * located in the + * given AST. + *

+ * After this method is called, you can retrieve the chosen contract via + * {@link #getChooseContract()} or the + * proof obligation information via {@link #getProofObligation()}. + * + * @param ctx the parse tree + * @return a term if {@code \problem} entry exists. + * @throws BuildingException if the + */ @Override - public Term visitProblem(KeYParser.ProblemContext ctx) { + public @Nullable Term visitProblem(KeYParser.ProblemContext ctx) { if (ctx.CHOOSECONTRACT() != null) { if (ctx.chooseContract != null) { chooseContract = ParsingFacade.getValueDocumentation(ctx.chooseContract); @@ -49,12 +70,26 @@ public Term visitProblem(KeYParser.ProblemContext ctx) { } } if (ctx.PROOFOBLIGATION() != null) { - if (ctx.proofObligation != null) { - proofObligation = ParsingFacade.getValueDocumentation(ctx.proofObligation); - } - // .replace("\\\\:", ":"); - else { - proofObligation = ""; + var obl = ctx.proofObligation; + if (obl instanceof KeYParser.CstringContext stringContext) { + try { + Properties p = new Properties(); + var value = stringContext.STRING_LITERAL().getText(); + value = value.substring(1, value.length() - 1).replace("\\\\", "\\"); + p.load(new StringReader(value)); + proofObligation = new Configuration(); + p.forEach((k, v) -> proofObligation.set(k.toString(), v.toString())); + } catch (IOException e) { + throw new BuildingException(ctx, + "Could not load the proof obligation given " + + "as a property file due to an error in the properties format", + e); + } + } else if (obl instanceof KeYParser.TableContext tbl) { + proofObligation = ParsingFacade.getConfiguration(tbl); + } else { + throw new BuildingException(ctx, + "Found a proof obligation entry, but the value is not a string or a JSON object"); } } if (ctx.PROBLEM() != null) { @@ -64,7 +99,7 @@ public Term visitProblem(KeYParser.ProblemContext ctx) { } @Override - public Sequent visitTermorseq(KeYParser.TermorseqContext ctx) { + public @Nullable Sequent visitTermorseq(KeYParser.TermorseqContext ctx) { var obj = super.visitTermorseq(ctx); if (obj instanceof Sequent s) return s; @@ -73,18 +108,15 @@ public Sequent visitTermorseq(KeYParser.TermorseqContext ctx) { return null; } - @Nullable - public String getChooseContract() { + public @Nullable String getChooseContract() { return chooseContract; } - @Nullable - public String getProofObligation() { + public @Nullable Configuration getProofObligation() { return proofObligation; } - @Nullable - public Sequent getProblem() { + public @Nullable Sequent getProblem() { return problem; } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/TacletPBuilder.java b/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/TacletPBuilder.java index a80a85e8728..a332724dce0 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/TacletPBuilder.java +++ b/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/TacletPBuilder.java @@ -27,11 +27,7 @@ import org.key_project.logic.Name; import org.key_project.logic.sort.Sort; -import org.key_project.util.collection.DefaultImmutableSet; -import org.key_project.util.collection.ImmutableList; -import org.key_project.util.collection.ImmutableSLList; -import org.key_project.util.collection.ImmutableSet; -import org.key_project.util.collection.Pair; +import org.key_project.util.collection.*; import antlr.RecognitionException; import org.antlr.v4.runtime.ParserRuleContext; @@ -740,7 +736,7 @@ public Object visitAddrules(KeYParser.AddrulesContext ctx) { @Override public ImmutableSet visitAddprogvar(KeYParser.AddprogvarContext ctx) { final Collection accept = accept(ctx.pvs); - return ImmutableSet.fromSet(new HashSet<>(Objects.requireNonNull(accept))); + return Immutables.createSetFrom(Objects.requireNonNull(accept)); } @Override @@ -749,8 +745,8 @@ public ImmutableList visitTacletlist(KeYParser.TacletlistContext ctx) { return ImmutableList.fromList(taclets); } - @NonNull - private TacletBuilder createTacletBuilderFor(Object find, int applicationRestriction, + private @NonNull TacletBuilder createTacletBuilderFor(Object find, + int applicationRestriction, ParserRuleContext ctx) { if (find == null) { return new NoFindTacletBuilder(); @@ -832,8 +828,7 @@ public Operator visitVarId(KeYParser.VarIdContext ctx) { return varId(ctx, id); } - @Nullable - private Operator varId(ParserRuleContext ctx, String id) { + private @Nullable Operator varId(ParserRuleContext ctx, String id) { Name name = new Name(id); Operator v = variables().lookup(name); if (v == null) { diff --git a/key.core/src/main/java/de/uka/ilkd/key/parser/ParserException.java b/key.core/src/main/java/de/uka/ilkd/key/parser/ParserException.java index 0de46fa6f2b..4e1fd921a34 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/parser/ParserException.java +++ b/key.core/src/main/java/de/uka/ilkd/key/parser/ParserException.java @@ -3,7 +3,6 @@ * SPDX-License-Identifier: GPL-2.0-only */ package de.uka.ilkd.key.parser; - import de.uka.ilkd.key.util.parsing.HasLocation; import org.jspecify.annotations.Nullable; @@ -33,9 +32,8 @@ public ParserException(String message, Location location) { /** * @return The location may be null. */ - @Nullable @Override - public Location getLocation() { + public @Nullable Location getLocation() { return location; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/pp/LogicPrinter.java b/key.core/src/main/java/de/uka/ilkd/key/pp/LogicPrinter.java index 64b7f7c32aa..356b3ed7cb5 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/pp/LogicPrinter.java +++ b/key.core/src/main/java/de/uka/ilkd/key/pp/LogicPrinter.java @@ -17,7 +17,6 @@ import de.uka.ilkd.key.logic.*; import de.uka.ilkd.key.logic.label.TermLabel; import de.uka.ilkd.key.logic.op.*; -import de.uka.ilkd.key.logic.op.QuantifiableVariable; import de.uka.ilkd.key.pp.Notation.HeapConstructorNotation; import de.uka.ilkd.key.pp.Notation.ObserverNotation; import de.uka.ilkd.key.rule.*; @@ -120,7 +119,7 @@ public PosTableLayouter layouter() { return layouter; } - private static SequentViewLogicPrinter quickPrinter(Services services, + public static SequentViewLogicPrinter quickPrinter(Services services, boolean usePrettyPrinting, boolean useUnicodeSymbols) { final NotationInfo ni = new NotationInfo(); if (services != null) { @@ -597,7 +596,9 @@ protected void printSchemaVariable(SchemaVariable sv) { } private void printSourceElement(SourceElement element) { - new PrettyPrinter(layouter, instantiations).print(element); + new PrettyPrinter(layouter, instantiations, services, + notationInfo.isPrettySyntax(), + notationInfo.isUnicodeEnabled()).print(element); } /** @@ -1668,9 +1669,9 @@ public void printModalityTerm(String left, JavaBlock jb, String right, Term phi, for (int i = 0; i < phi.arity(); i++) { ta[i] = phi.sub(i); } - JavaBlock jb1 = mod.program(); - Modality m = Modality.getModality(mod.kind(), jb1); - Term term = services.getTermFactory().createTerm(m, ta, + final Modality m = + Modality.getModality((Modality.JavaModalityKind) o, mod.program()); + final Term term = services.getTermFactory().createTerm(m, ta, phi.boundVars(), null); notationInfo.getNotation(m).print(term, this); return; diff --git a/key.core/src/main/java/de/uka/ilkd/key/pp/PrettyPrinter.java b/key.core/src/main/java/de/uka/ilkd/key/pp/PrettyPrinter.java index bcf1e0932ea..aa4d5c176c9 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/pp/PrettyPrinter.java +++ b/key.core/src/main/java/de/uka/ilkd/key/pp/PrettyPrinter.java @@ -3,12 +3,16 @@ * SPDX-License-Identifier: GPL-2.0-only */ package de.uka.ilkd.key.pp; +import java.util.Objects; + import de.uka.ilkd.key.java.*; import de.uka.ilkd.key.java.abstraction.KeYJavaType; import de.uka.ilkd.key.java.abstraction.Type; import de.uka.ilkd.key.java.declaration.*; -import de.uka.ilkd.key.java.expression.*; +import de.uka.ilkd.key.java.expression.ArrayInitializer; import de.uka.ilkd.key.java.expression.Operator; +import de.uka.ilkd.key.java.expression.ParenthesizedExpression; +import de.uka.ilkd.key.java.expression.PassiveExpression; import de.uka.ilkd.key.java.expression.literal.*; import de.uka.ilkd.key.java.expression.operator.*; import de.uka.ilkd.key.java.expression.operator.adt.SeqGet; @@ -30,9 +34,12 @@ import org.key_project.util.collection.ImmutableArray; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + /** * A configurable pretty printer for Java source elements originally from COMPOST. * @@ -40,25 +47,33 @@ * * CHANGED FOR KeY. Comments are not printed! */ +@NullMarked public class PrettyPrinter implements Visitor { private static final Logger LOGGER = LoggerFactory.getLogger(PrettyPrinter.class); - protected final PosTableLayouter l; + private final PosTableLayouter layouter; - protected boolean startAlreadyMarked = false; - protected Object firstStatement = null; - protected boolean endAlreadyMarked = false; + private boolean startAlreadyMarked; + private @Nullable Object firstStatement; + private boolean endAlreadyMarked; - protected SVInstantiations instantiations = SVInstantiations.EMPTY_SVINSTANTIATIONS; + private final SVInstantiations instantiations; + private final @Nullable Services services; + private boolean usePrettyPrinting; + private boolean useUnicodeSymbols; /** creates a new PrettyPrinter */ public PrettyPrinter(PosTableLayouter out) { - l = out; + this(out, SVInstantiations.EMPTY_SVINSTANTIATIONS, null, true, true); } - public PrettyPrinter(PosTableLayouter o, SVInstantiations svi) { - this(o); + public PrettyPrinter(PosTableLayouter o, SVInstantiations svi, @Nullable Services services, + boolean usePrettyPrinting, boolean useUnicodeSymbols) { + this.layouter = o; this.instantiations = svi; + this.services = services; + this.usePrettyPrinting = usePrettyPrinting; + this.useUnicodeSymbols = useUnicodeSymbols; } /** @@ -77,7 +92,7 @@ public static String getTypeNameForAccessMethods(String typeName) { * @return the result */ public String result() { - return l.result(); + return layouter.result(); } /** @@ -87,9 +102,9 @@ public String result() { * @param e what to print */ public void print(SourceElement e) { - l.beginRelativeC(0); + layouter.beginRelativeC(0); performActionOnStatement(e); - l.end(); + layouter.end(); } /** @@ -98,11 +113,11 @@ public void print(SourceElement e) { * @param s source element to print */ public void printFragment(SourceElement s) { - l.beginRelativeC(0); + layouter.beginRelativeC(0); markStart(s); s.visit(this); markEnd(s); - l.end(); + layouter.end(); } /** @@ -112,7 +127,7 @@ public void printFragment(SourceElement s) { */ protected void markStart(Object stmt) { if (!startAlreadyMarked) { - l.markStartFirstStatement(); + layouter.markStartFirstStatement(); firstStatement = stmt; startAlreadyMarked = true; } @@ -123,7 +138,7 @@ protected void markStart(Object stmt) { */ protected void markEnd(Object stmt) { if (!endAlreadyMarked && (firstStatement == stmt)) { - l.markEndFirstStatement(); + layouter.markEndFirstStatement(); endAlreadyMarked = true; } } @@ -160,7 +175,7 @@ protected static String encodeUnicodeChars(String str) { protected void writeKeywordList(ImmutableArray list) { for (int i = 0; i < list.size(); i++) { if (i != 0) { - l.brk(); + layouter.brk(); } performActionOnModifier(list.get(i)); } @@ -174,7 +189,7 @@ protected void writeKeywordList(ImmutableArray list) { protected void writeCommaList(ImmutableArray list) { for (int i = 0; i < list.size(); i++) { if (i != 0) { - l.print(",").brk(); + layouter.print(",").brk(); } list.get(i).visit(this); } @@ -183,47 +198,47 @@ protected void writeCommaList(ImmutableArray list) { protected void printOperator(Operator x, String symbol) { ImmutableArray children = x.getArguments(); if (children != null) { - l.beginC(); + layouter.beginC(); switch (x.getArity()) { case 2 -> { children.get(0).visit(this); - l.print(" "); - l.print(symbol); - l.brk(); + layouter.print(" "); + layouter.print(symbol); + layouter.brk(); children.get(1).visit(this); } case 1 -> { switch (x.getNotation()) { case Operator.PREFIX -> { - l.print(symbol); + layouter.print(symbol); children.get(0).visit(this); } case Operator.POSTFIX -> { children.get(0).visit(this); - l.print(symbol); + layouter.print(symbol); } default -> { } } } } - l.end(); + layouter.end(); } } private void beginMultilineBracket() { - l.print("(").beginRelativeC(0).beginRelativeC().brk(0); + layouter.print("(").beginRelativeC(0).beginRelativeC().brk(0); } private void endMultilineBracket() { - l.end().brk(0).end(); - l.print(")"); + layouter.end().brk(0).end(); + layouter.print(")"); } private void printReferencePrefix(ReferencePrefix p) { if (p != null) { p.visit(this); - l.print("."); + layouter.print("."); } } @@ -241,65 +256,65 @@ public void performActionOnProgramElementName(ProgramElementName x) { boolean isKey = (name.equals("int") || name.equals("float") || name.equals("char") || name.equals("short") || name.equals("long") || name.equals("boolean")); if (isKey) { - l.keyWord(name); + layouter.keyWord(name); } else { - l.print(name); + layouter.print(name); } } @Override public void performActionOnProgramVariable(ProgramVariable x) { - l.print(x.name().toString()); + layouter.print(x.name().toString()); } @Override public void performActionOnProgramMethod(IProgramMethod x) { - l.print(x.getMethodDeclaration().getProgramElementName().toString()); + layouter.print(x.getMethodDeclaration().getProgramElementName().toString()); } @Override public void performActionOnProgramMetaConstruct(ProgramTransformer x) { - l.print(x.name().toString()); - l.print("("); + layouter.print(x.name().toString()); + layouter.print("("); if (x.getChildAt(0) != null) { x.getChildAt(0).visit(this); } - l.print(")"); + layouter.print(")"); } @Override public void performActionOnContextStatementBlock(ContextStatementBlock x) { if (x.getStatementCount() > 0) { - l.beginRelativeC(); - l.print("{ .."); + layouter.beginRelativeC(); + layouter.print("{ .."); for (Statement statement : x.getBody()) { - l.nl(); + layouter.nl(); performActionOnStatement(statement); } - l.end().nl(); - l.print("... }"); + layouter.end().nl(); + layouter.print("... }"); } else { - l.print("{ .. ... }"); + layouter.print("{ .. ... }"); } } @Override public void performActionOnIntLiteral(IntLiteral x) { - l.print(x.getValueString()); + layouter.print(x.getValueString()); } @Override public void performActionOnBooleanLiteral(BooleanLiteral x) { - l.keyWord(x.getValue() ? "true" : "false"); + layouter.keyWord(x.getValue() ? "true" : "false"); } @Override public void performActionOnEmptySetLiteral(EmptySetLiteral x) { - l.keyWord("\\empty"); + layouter.keyWord("\\empty"); } private void printDLFunctionOperator(String name, Operator operator) { - l.keyWord(name); + layouter.keyWord(name); if (operator.getArity() > 0) { printArguments(operator.getArguments()); } @@ -339,21 +354,21 @@ public void performActionOnAllObjects( @Override public void performActionOnEmptySeqLiteral(EmptySeqLiteral x) { - l.print("\\seq_empty"); + layouter.print("\\seq_empty"); } @Override public void performActionOnSeqLength(SeqLength x) { x.getChildAt(0).visit(this); - l.print(".length"); + layouter.print(".length"); } @Override public void performActionOnSeqGet(SeqGet x) { x.getChildAt(0).visit(this); - l.print("["); + layouter.print("["); x.getChildAt(1).visit(this); - l.print("]"); + layouter.print("]"); } @Override @@ -384,76 +399,82 @@ public void performActionOnSeqReverse( printDLFunctionOperator("\\seq_reverse", x); } + @Override + public void performActionOnSeqPut( + de.uka.ilkd.key.java.expression.operator.adt.SeqPut x) { + printDLFunctionOperator("\\seq_upd", x); + } + @Override public void performActionOnDLEmbeddedExpression(DLEmbeddedExpression x) { - l.print("\\dl_" + x.getFunctionSymbol().name()); - l.print("("); + layouter.print("\\dl_" + x.getFunctionSymbol().name()); + layouter.print("("); for (int i = 0; i < x.getChildCount(); i++) { if (i != 0) { - l.print(",").brk(); + layouter.print(",").brk(); } x.getChildAt(i).visit(this); } - l.print(")"); + layouter.print(")"); } @Override public void performActionOnStringLiteral(StringLiteral x) { - l.print(encodeUnicodeChars(x.getValue())); + layouter.print(encodeUnicodeChars(x.getValue())); } @Override public void performActionOnNullLiteral(NullLiteral x) { - l.keyWord("null"); + layouter.keyWord("null"); } @Override public void performActionOnCharLiteral(CharLiteral x) { - l.print(encodeUnicodeChars(x.toString())); + layouter.print(encodeUnicodeChars(x.toString())); } @Override public void performActionOnDoubleLiteral(DoubleLiteral x) { - l.print(x.getValue()); + layouter.print(x.getValue()); } @Override public void performActionOnMergePointStatement(MergePointStatement x) { - l.beginC().print("//@ merge_point (").brk(0); + layouter.beginC().print("//@ merge_point (").brk(0); x.getExpression().visit(this); - l.brk(0).print(");"); + layouter.brk(0).print(");"); } @Override public void performActionOnLongLiteral(LongLiteral x) { - l.print(x.getValueString()); + layouter.print(x.getValueString()); } @Override public void performActionOnFloatLiteral(FloatLiteral x) { - l.print(x.getValue()); + layouter.print(x.getValue()); } @Override public void performActionOnPackageSpecification(PackageSpecification x) { - l.nl(); - l.keyWord("package"); - l.print(" "); + layouter.nl(); + layouter.keyWord("package"); + layouter.print(" "); performActionOnPackageReference(x.getPackageReference()); - l.print(";"); + layouter.print(";"); } @Override public void performActionOnAssert(Assert x) { - l.keyWord("assert"); - l.print(" "); + layouter.keyWord("assert"); + layouter.print(" "); x.getCondition().visit(this); if (x.getMessage() != null) { - l.print(" :"); - l.brk(); + layouter.print(" :"); + layouter.brk(); x.getMessage().visit(this); } } @@ -536,17 +557,17 @@ public void performActionOnLocationVariable(LocationVariable variable) { @Override public void performActionOnLoopInvariant(LoopSpecification x) { - l.print("//@ loop-invariant"); + layouter.print("//@ loop-invariant"); } @Override public void performActionOnBlockContract(BlockContract x) { - l.print("//@ block-contract"); + layouter.print("//@ block-contract"); } @Override public void performActionOnLoopContract(LoopContract x) { - l.print("//@ loop-contract"); + layouter.print("//@ loop-contract"); } @Override @@ -566,13 +587,12 @@ public void performActionOnLoopContract(LoopStatement oldLoop, LoopStatement new @Override public void performActionOnMergeContract(MergeContract x) { - l.print("//@ merge-contract"); + layouter.print("//@ merge-contract"); } @Override - public void performActionOnJmlAssertCondition(Term cond) { - // Should not be reached - throw new UnsupportedOperationException(); + public void performActionOnSubtype(Subtype x) { + printOperator(x, "<:"); } @Override @@ -582,9 +602,9 @@ public void performActionOnArrayDeclaration(ArrayDeclaration type) { if (baseType instanceof ArrayDeclaration) { performActionOnArrayDeclaration((ArrayDeclaration) baseType); } else { - l.print(baseType.getFullName()); + layouter.print(baseType.getFullName()); } - l.print("[]"); + layouter.print("[]"); } @Override @@ -606,7 +626,7 @@ private void printTypeReference(ReferencePrefix prefix, KeYJavaType type, ProgramElementName name, boolean fullTypeNames) { printReferencePrefix(prefix); if (fullTypeNames) { - l.print(type.getFullName()); + layouter.print(type.getFullName()); } else { performActionOnProgramElementName(name); } @@ -620,7 +640,7 @@ public void performActionOnSchemaTypeReference(SchemaTypeReference x) { public void performActionOnFieldReference(FieldReference x) { if (x.getName() != null && "javax.realtime.MemoryArea::currentMemoryArea".equals(x.getName())) { - l.print(""); + layouter.print(""); } else { printTypeReference(x.getReferencePrefix(), x.getKeYJavaType(), x.getProgramElementName(), false); @@ -635,18 +655,18 @@ public void performActionOnPackageReference(PackageReference x) { @Override public void performActionOnThrows(Throws x) { if (x.getExceptions() != null) { - l.keyWord("throws").print(" "); + layouter.keyWord("throws").print(" "); writeCommaList(x.getExceptions()); } } @Override public void performActionOnArrayInitializer(ArrayInitializer x) { - l.print("{"); + layouter.print("{"); if (x.getArguments() != null) { writeCommaList(x.getArguments()); } - l.print("}"); + layouter.print("}"); } @Override @@ -658,19 +678,19 @@ public void performActionOnCompilationUnit(CompilationUnit x) { boolean hasImports = (x.getImports() != null) && (!x.getImports().isEmpty()); if (hasImports) { if (hasPackageSpec) { - l.nl(); + layouter.nl(); } for (Import i : x.getImports()) { - l.nl(); + layouter.nl(); performActionOnImport(i); } } if (x.getDeclarations() != null) { if (hasImports || hasPackageSpec) { - l.nl(); + layouter.nl(); } for (TypeDeclaration td : x.getDeclarations()) { - l.nl(); + layouter.nl(); td.visit(this); } } @@ -678,7 +698,7 @@ public void performActionOnCompilationUnit(CompilationUnit x) { @Override public void performActionOnClassDeclaration(ClassDeclaration x) { - l.beginC(); + layouter.beginC(); ImmutableArray mods = x.getModifiers(); boolean hasMods = mods != null && !mods.isEmpty(); if (hasMods) { @@ -686,38 +706,38 @@ public void performActionOnClassDeclaration(ClassDeclaration x) { } if (x.getProgramElementName() != null) { if (hasMods) { - l.print(" "); + layouter.print(" "); } - l.keyWord("class").print(" "); + layouter.keyWord("class").print(" "); performActionOnProgramElementName(x.getProgramElementName()); } if (x.getExtendedTypes() != null) { - l.print(" "); + layouter.print(" "); performActionOnExtends(x.getExtendedTypes()); } if (x.getImplementedTypes() != null) { - l.print(" "); + layouter.print(" "); performActionOnImplements(x.getImplementedTypes()); } // not an anonymous class if (x.getProgramElementName() != null) { - l.print(" "); + layouter.print(" "); } if (x.getMembers() != null) { beginBlock(); for (MemberDeclaration m : x.getMembers()) { - l.nl(); + layouter.nl(); m.visit(this); } endBlock(); } else { - l.print("{}"); + layouter.print("{}"); } } @Override public void performActionOnInterfaceDeclaration(InterfaceDeclaration x) { - l.beginC(); + layouter.beginC(); ImmutableArray mods = x.getModifiers(); boolean hasMods = mods != null && !mods.isEmpty(); if (hasMods) { @@ -725,26 +745,26 @@ public void performActionOnInterfaceDeclaration(InterfaceDeclaration x) { } if (x.getProgramElementName() != null) { if (hasMods) { - l.print(" "); + layouter.print(" "); } - l.keyWord("interface").print(" "); + layouter.keyWord("interface").print(" "); performActionOnProgramElementName(x.getProgramElementName()); } if (x.getExtendedTypes() != null) { - l.print(" "); + layouter.print(" "); performActionOnExtends(x.getExtendedTypes()); } - l.print(" "); + layouter.print(" "); if (x.getMembers() != null) { beginBlock(); for (MemberDeclaration m : x.getMembers()) { - l.nl(); + layouter.nl(); m.visit(this); } endBlock(); } else { - l.print("{}"); + layouter.print("{}"); } } @@ -760,39 +780,39 @@ public void performActionOnLocalVariableDeclaration(LocalVariableDeclaration x) @Override public void performActionOnVariableDeclaration(VariableDeclaration x) { - l.beginI(); + layouter.beginI(); ImmutableArray modifiers = x.getModifiers(); if (modifiers != null && !modifiers.isEmpty()) { writeKeywordList(modifiers); - l.print(" "); + layouter.print(" "); } x.getTypeReference().visit(this); - l.print(" "); + layouter.print(" "); ImmutableArray varSpecs = x.getVariables(); if (varSpecs != null) { writeCommaList(varSpecs); } - l.end(); + layouter.end(); } @Override public void performActionOnMethodDeclaration(MethodDeclaration x) { - l.beginC(); + layouter.beginC(); ImmutableArray mods = x.getModifiers(); boolean hasMods = mods != null && !mods.isEmpty(); if (hasMods) { writeKeywordList(mods); - l.print(" "); + layouter.print(" "); } if (x.getTypeReference() != null) { x.getTypeReference().visit(this); - l.print(" "); + layouter.print(" "); } else if (x.getTypeReference() == null && !(x instanceof ConstructorDeclaration)) { - l.keyWord("void"); - l.print(" "); + layouter.keyWord("void"); + layouter.print(" "); } performActionOnProgramElementName(x.getProgramElementName()); - l.print(" "); + layouter.print(" "); beginMultilineBracket(); if (x.getParameters() != null) { @@ -805,25 +825,25 @@ public void performActionOnMethodDeclaration(MethodDeclaration x) { if (x.getBody() != null) { printStatementBlock(x.getBody()); } else { - l.print(";"); + layouter.print(";"); } } @Override public void performActionOnClassInitializer(ClassInitializer x) { - l.beginC(); + layouter.beginC(); if (x.getModifiers() != null) { writeKeywordList(x.getModifiers()); - l.print(" "); + layouter.print(" "); } - l.end(); + layouter.end(); if (x.getBody() != null) { printStatementBlock(x.getBody()); } } protected void performActionOnStatement(SourceElement s) { - l.beginRelativeC(0); + layouter.beginRelativeC(0); boolean validStatement = !(s instanceof CatchAllStatement || s instanceof ProgramPrefix); if (validStatement) { markStart(s); @@ -833,9 +853,9 @@ protected void performActionOnStatement(SourceElement s) { markEnd(s); } if (!(s instanceof BranchStatement) && !(s instanceof StatementContainer)) { - l.print(";"); + layouter.print(";"); } - l.end(); + layouter.end(); } @Override @@ -844,12 +864,12 @@ public void performActionOnStatementBlock(StatementBlock x) { } private void beginBlock() { - l.print("{"); - l.beginRelativeC(); + layouter.print("{"); + layouter.beginRelativeC(); } private void endBlock() { - l.end().nl().print("}"); + layouter.end().nl().print("}"); } public boolean printStatementBlock(StatementBlock x) { @@ -857,13 +877,13 @@ public boolean printStatementBlock(StatementBlock x) { if (emptyBlock) { // We have an empty statement block ... markStart(x); - l.print("{}"); + layouter.print("{}"); markEnd(x); return false; } else { beginBlock(); for (Statement statement : x.getBody()) { - l.nl(); + layouter.nl(); performActionOnStatement(statement); } endBlock(); @@ -873,36 +893,36 @@ public boolean printStatementBlock(StatementBlock x) { @Override public void performActionOnBreak(Break x) { - l.keyWord("break"); + layouter.keyWord("break"); if (x.getProgramElementName() != null) { - l.brk(); + layouter.brk(); x.getProgramElementName().visit(this); } } @Override public void performActionOnContinue(Continue x) { - l.keyWord("continue"); + layouter.keyWord("continue"); if (x.getProgramElementName() != null) { - l.brk(); + layouter.brk(); x.getProgramElementName().visit(this); } } @Override public void performActionOnReturn(Return x) { - l.keyWord("return"); + layouter.keyWord("return"); if (x.getExpression() != null) { - l.brk(); + layouter.brk(); x.getExpression().visit(this); } } @Override public void performActionOnThrow(Throw x) { - l.keyWord("throw"); + layouter.keyWord("throw"); if (x.getExpression() != null) { - l.brk(); + layouter.brk(); x.getExpression().visit(this); } } @@ -914,16 +934,16 @@ public void performActionOnDo(Do x) { private boolean handleBlockOrSingleStatement(Statement body) { if (body instanceof StatementBlock) { - l.print(" "); + layouter.print(" "); return printStatementBlock((StatementBlock) body); } else { - l.beginRelativeC(); - l.brk(); + layouter.beginRelativeC(); + layouter.brk(); body.visit(this); if (!(body instanceof BranchStatement) && !(body instanceof StatementContainer)) { - l.print(";"); + layouter.print(";"); } - l.end(); + layouter.end(); return false; } } @@ -931,31 +951,31 @@ private boolean handleBlockOrSingleStatement(Statement body) { private boolean handleBlockStatementOrEmpty(Statement body, boolean includeBody) { if (includeBody) { if (body == null || body instanceof EmptyStatement) { - l.print(";"); + layouter.print(";"); return false; } else { return handleBlockOrSingleStatement(body); } } else { - l.print(" ... "); + layouter.print(" ... "); return false; } } public void performActionOnDo(Do x, boolean includeBody) { - l.keyWord("do"); + layouter.keyWord("do"); boolean newBlock = handleBlockStatementOrEmpty(x.getBody(), includeBody); handleContinuationAfterNewBlock(newBlock); - l.keyWord("while"); - l.print(" "); + layouter.keyWord("while"); + layouter.print(" "); beginMultilineBracket(); if (x.getGuard() != null) { x.getGuard().visit(this); } endMultilineBracket(); - l.print(";"); + layouter.print(";"); } @Override @@ -964,8 +984,8 @@ public void performActionOnEnhancedFor(EnhancedFor x) { } public void performActionOnEnhancedFor(EnhancedFor x, boolean includeBody) { - l.keyWord("for"); - l.print(" "); + layouter.keyWord("for"); + layouter.print(" "); beginMultilineBracket(); ImmutableArray initializers = x.getInitializers(); @@ -973,8 +993,8 @@ public void performActionOnEnhancedFor(EnhancedFor x, boolean includeBody) { initializers.get(0).visit(this); } - l.print(" :"); - l.brk(); + layouter.print(" :"); + layouter.brk(); if (x.getGuard() != null) { x.getGuardExpression().visit(this); @@ -991,8 +1011,8 @@ public void performActionOnFor(For x) { } public void performActionOnFor(For x, boolean includeBody) { - l.keyWord("for"); - l.print(" "); + layouter.keyWord("for"); + layouter.print(" "); beginMultilineBracket(); // there is no "getLoopInit" method @@ -1002,11 +1022,11 @@ public void performActionOnFor(For x, boolean includeBody) { if (init != null) { init.visit(this); } - l.print(";").brk(); + layouter.print(";").brk(); if (x.getGuardExpression() != null) { x.getGuardExpression().visit(this); } - l.print(";").brk(); + layouter.print(";").brk(); IForUpdates upd = x.getIForUpdates(); if (upd != null) { @@ -1023,8 +1043,8 @@ public void performActionOnWhile(While x) { } public void performActionOnWhile(While x, boolean includeBody) { - l.keyWord("while"); - l.print(" "); + layouter.keyWord("while"); + layouter.print(" "); beginMultilineBracket(); if (x.getGuardExpression() != null) { x.getGuardExpression().visit(this); @@ -1041,15 +1061,15 @@ public void performActionOnIf(If x) { private void handleContinuationAfterNewBlock(boolean newBlock) { if (newBlock) { - l.print(" "); + layouter.print(" "); } else { - l.nl(); + layouter.nl(); } } public void performActionOnIf(If x, boolean includeBranches) { - l.keyWord("if"); - l.print(" "); + layouter.keyWord("if"); + layouter.print(" "); beginMultilineBracket(); if (x.getExpression() != null) { x.getExpression().visit(this); @@ -1074,8 +1094,8 @@ public void performActionOnSwitch(Switch x) { } public void performActionOnSwitch(Switch x, boolean includeBranches) { - l.keyWord("switch"); - l.print(" "); + layouter.keyWord("switch"); + layouter.print(" "); beginMultilineBracket(); if (x.getExpression() != null) { x.getExpression().visit(this); @@ -1083,10 +1103,10 @@ public void performActionOnSwitch(Switch x, boolean includeBranches) { endMultilineBracket(); if (includeBranches) { - l.print(" "); + layouter.print(" "); beginBlock(); for (Branch branch : x.getBranchList()) { - l.nl(); + layouter.nl(); branch.visit(this); } endBlock(); @@ -1094,8 +1114,8 @@ public void performActionOnSwitch(Switch x, boolean includeBranches) { } private void printTryLike(String name, StatementBlock body, ImmutableArray branches) { - l.keyWord(name); - l.print(" "); + layouter.keyWord(name); + layouter.print(" "); if (body != null) { printStatementBlock(body); } @@ -1115,32 +1135,32 @@ public void performActionOnTry(Try x) { public void performActionOnLabeledStatement(LabeledStatement x) { if (x.getLabel() != null) { x.getLabel().visit(this); - l.print(":"); + layouter.print(":"); } if (x.getBody() != null) { - l.nl(); + layouter.nl(); performActionOnStatement(x.getBody()); } } @Override public void performActionOnMethodFrame(MethodFrame x) { - l.keyWord("method-frame"); - l.print(" "); + layouter.keyWord("method-frame"); + layouter.print(" "); beginMultilineBracket(); IProgramVariable var = x.getProgramVariable(); var exec = x.getExecutionContext(); if (var != null) { - l.beginRelativeC().print("result->"); + layouter.beginRelativeC().print("result->"); var.visit(this); if (exec != null) { - l.print(","); + layouter.print(","); } - l.end(); + layouter.end(); if (exec != null) { - l.brk(); + layouter.brk(); } } @@ -1151,7 +1171,7 @@ public void performActionOnMethodFrame(MethodFrame x) { } endMultilineBracket(); - l.print(" "); + layouter.print(" "); if (x.getBody() != null) { printStatementBlock(x.getBody()); @@ -1160,7 +1180,7 @@ public void performActionOnMethodFrame(MethodFrame x) { @Override public void performActionOnCatchAllStatement(CatchAllStatement x) { - l.keyWord("#catchAll").print(" "); + layouter.keyWord("#catchAll").print(" "); beginMultilineBracket(); performActionOnLocationVariable(x.getParam()); endMultilineBracket(); @@ -1172,14 +1192,14 @@ public void performActionOnMethodBodyStatement(MethodBodyStatement x) { IProgramVariable pvar = x.getResultVariable(); if (pvar != null) { pvar.visit(this); - l.brk(1, 0); - l.print("="); - l.brk(1, 0); + layouter.brk(1, 0); + layouter.print("="); + layouter.brk(1, 0); } printMethodReference(x.getMethodReference()); // CHG: - l.print("@"); + layouter.print("@"); final TypeReference tr = x.getBodySourceAsTypeReference(); if (tr instanceof SchemaTypeReference) { performActionOnSchemaTypeReference((SchemaTypeReference) tr); @@ -1192,46 +1212,46 @@ public void performActionOnMethodBodyStatement(MethodBodyStatement x) { @Override public void performActionOnSynchronizedBlock(SynchronizedBlock x) { - l.print("synchronized"); + layouter.print("synchronized"); if (x.getExpression() != null) { beginMultilineBracket(); x.getExpression().visit(this); endMultilineBracket(); } if (x.getBody() != null) { - l.print(" "); + layouter.print(" "); printStatementBlock(x.getBody()); } } @Override public void performActionOnLoopScopeBlock(LoopScopeBlock x) { - l.keyWord("loop-scope"); - l.print(" "); + layouter.keyWord("loop-scope"); + layouter.print(" "); beginMultilineBracket(); if (x.getIndexPV() != null) { x.getIndexPV().visit(this); } endMultilineBracket(); - l.print(" "); + layouter.print(" "); printStatementBlock(x.getBody()); } @Override public void performActionOnImport(Import x) { - l.print("import "); + layouter.print("import "); x.getReference().visit(this); if (x.isMultiImport()) { - l.print(".*;"); + layouter.print(".*;"); } else { - l.print(";"); + layouter.print(";"); } } @Override public void performActionOnExtends(Extends x) { if (x.getSupertypes() != null) { - l.keyWord("extends").print(" "); + layouter.keyWord("extends").print(" "); writeCommaList(x.getSupertypes()); } } @@ -1239,7 +1259,7 @@ public void performActionOnExtends(Extends x) { @Override public void performActionOnImplements(Implements x) { if (x.getSupertypes() != null) { - l.keyWord("implements").print(" "); + layouter.keyWord("implements").print(" "); writeCommaList(x.getSupertypes()); } } @@ -1248,10 +1268,10 @@ public void performActionOnImplements(Implements x) { public void performActionOnVariableSpecification(VariableSpecification x) { x.getProgramVariable().visit(this); for (int i = 0; i < x.getDimensions(); i += 1) { - l.print("[]"); + layouter.print("[]"); } if (x.getInitializer() != null) { - l.print(" = "); + layouter.print(" = "); x.getInitializer().visit(this); } } @@ -1279,7 +1299,7 @@ public void performActionOnBinaryXOrAssignment(BinaryXOrAssignment x) { @Override public void performActionOnCopyAssignment(CopyAssignment x) { x.getArguments().get(0).visit(this); - l.print(" = "); + layouter.print(" = "); x.getArguments().get(1).visit(this); } @@ -1362,19 +1382,19 @@ public void performActionOnBinaryXOr(BinaryXOr x) { public void performActionOnConditional(Conditional x) { boolean addParentheses = x.isToBeParenthesized(); if (x.getArguments() != null) { - l.beginC(); + layouter.beginC(); if (addParentheses) { - l.print("("); + layouter.print("("); } x.getArguments().get(0).visit(this); - l.print(" ?").brk(); + layouter.print(" ?").brk(); x.getArguments().get(1).visit(this); - l.print(" :").brk(); + layouter.print(" :").brk(); x.getArguments().get(2).visit(this); if (addParentheses) { - l.print(")"); + layouter.print(")"); } - l.end(); + layouter.end(); } } @@ -1417,46 +1437,46 @@ public void performActionOnNotEquals(NotEquals x) { public void performActionOnNewArray(NewArray x) { boolean addParentheses = x.isToBeParenthesized(); if (addParentheses) { - l.print("("); + layouter.print("("); } - l.print("new "); + layouter.print("new "); x.getTypeReference().visit(this); int i = 0; if (x.getArguments() != null) { for (; i < x.getArguments().size(); i += 1) { - l.print("["); + layouter.print("["); x.getArguments().get(i).visit(this); - l.print("]"); + layouter.print("]"); } } for (; i < x.getDimensions(); i += 1) { - l.print("[]"); + layouter.print("[]"); } if (x.getArrayInitializer() != null) { performActionOnArrayInitializer(x.getArrayInitializer()); } if (addParentheses) { - l.print(")"); + layouter.print(")"); } } private void printInstanceOfLike(TypeOperator op, String kw) { boolean addParentheses = op.isToBeParenthesized(); if (addParentheses) { - l.print("("); + layouter.print("("); } if (op.getArguments() != null) { op.getExpressionAt(0).visit(this); } - l.print(" "); - l.keyWord(kw); - l.brk(); + layouter.print(" "); + layouter.keyWord(kw); + layouter.brk(); if (op.getTypeReference() != null) { op.getTypeReference().visit(this); } if (addParentheses) { - l.print(")"); + layouter.print(")"); } } @@ -1475,10 +1495,10 @@ public void performActionOnExactInstanceof(ExactInstanceof x) { public void performActionOnNew(New x) { boolean addParentheses = x.isToBeParenthesized(); if (addParentheses) { - l.print("("); + layouter.print("("); } printReferencePrefix(x.getReferencePrefix()); - l.keyWord("new").print(" "); + layouter.keyWord("new").print(" "); x.getTypeReference().visit(this); printArguments(x.getArguments()); @@ -1486,7 +1506,7 @@ public void performActionOnNew(New x) { performActionOnClassDeclaration(x.getClassDeclaration()); } if (addParentheses) { - l.print(")"); + layouter.print(")"); } } @@ -1494,18 +1514,18 @@ public void performActionOnNew(New x) { public void performActionOnTypeCast(TypeCast x) { boolean addParentheses = x.isToBeParenthesized(); if (addParentheses) { - l.print("("); + layouter.print("("); } - l.print("("); + layouter.print("("); if (x.getTypeReference() != null) { x.getTypeReference().visit(this); } - l.print(") "); + layouter.print(") "); if (x.getArguments() != null) { x.getArguments().get(0).visit(this); } if (addParentheses) { - l.print(")"); + layouter.print(")"); } } @@ -1574,9 +1594,9 @@ public void performActionOnArrayReference(ArrayReference x) { x.getReferencePrefix().visit(this); int s = x.getDimensionExpressions().size(); for (int i = 0; i < s; i += 1) { - l.print("["); + layouter.print("["); x.getDimensionExpressions().get(i).visit(this); - l.print("]"); + layouter.print("]"); } } @@ -1584,9 +1604,9 @@ public void performActionOnArrayReference(ArrayReference x) { public void performActionOnMetaClassReference(MetaClassReference x) { if (x.getTypeReference() != null) { x.getTypeReference().visit(this); - l.print("."); + layouter.print("."); } - l.print("class"); + layouter.print("class"); } @Override @@ -1605,69 +1625,69 @@ protected void printMethodReference(MethodReference x) { @Override public void performActionOnMethod(IProgramMethod x) { - l.print(x.name().toString()); + layouter.print(x.name().toString()); } public void writeFullMethodSignature(IProgramMethod x) { - l.print(x.getName()); - l.print("("); + layouter.print(x.getName()); + layouter.print("("); boolean afterFirst = false; for (ParameterDeclaration pd : x.getParameters()) { if (afterFirst) { - l.print(", "); + layouter.print(", "); } else { afterFirst = true; } performActionOnTypeReference(pd.getTypeReference(), true); } - l.print(")"); + layouter.print(")"); } @Override public void performActionOnExecutionContext(ExecutionContext x) { - l.beginRelativeC(); - l.print("source="); + layouter.beginRelativeC(); + layouter.print("source="); writeFullMethodSignature(x.getMethodContext()); - l.print("@"); + layouter.print("@"); x.getTypeReference().visit(this); if (x.getRuntimeInstance() != null) { - l.print(",").end().brk().beginRelativeC().print("this="); + layouter.print(",").end().brk().beginRelativeC().print("this="); x.getRuntimeInstance().visit(this); - l.end(); + layouter.end(); } else { - l.end(); + layouter.end(); } } @Override public void performActionOnSuperConstructorReference(SuperConstructorReference x) { printReferencePrefix(x.getReferencePrefix()); - l.keyWord("super"); + layouter.keyWord("super"); printArguments(x.getArguments()); } @Override public void performActionOnThisConstructorReference(ThisConstructorReference x) { - l.keyWord("this"); + layouter.keyWord("this"); printArguments(x.getArguments()); } @Override public void performActionOnSuperReference(SuperReference x) { printReferencePrefix(x.getReferencePrefix()); - l.keyWord("super"); + layouter.keyWord("super"); } @Override public void performActionOnThisReference(ThisReference x) { printReferencePrefix(x.getReferencePrefix()); - l.keyWord("this"); + layouter.keyWord("this"); } @Override public void performActionOnArrayLengthReference(ArrayLengthReference x) { printReferencePrefix(x.getReferencePrefix()); - l.print("length"); + layouter.print("length"); } @Override @@ -1677,10 +1697,10 @@ public void performActionOnThen(Then x) { @Override public void performActionOnElse(Else x) { - l.keyWord("else"); + layouter.keyWord("else"); Statement body = x.getBody(); if (body instanceof If) { - l.print(" "); + layouter.print(" "); performActionOnIf((If) body); } else { handleBlockOrSingleStatement(body); @@ -1693,16 +1713,16 @@ private void printCaseBody(ImmutableArray body) { Statement statement = body.get(i); if (statement instanceof StatementBlock) { if (i != 0) { - l.nl(); + layouter.nl(); } else { - l.print(" "); + layouter.print(" "); } printStatementBlock((StatementBlock) statement); } else { - l.nl(); - l.beginRelativeC(); + layouter.nl(); + layouter.beginRelativeC(); performActionOnStatement(statement); - l.end(); + layouter.end(); } } } @@ -1710,26 +1730,26 @@ private void printCaseBody(ImmutableArray body) { @Override public void performActionOnCase(Case x) { - l.beginRelativeC(); - l.keyWord("case").brk(); + layouter.beginRelativeC(); + layouter.keyWord("case").brk(); if (x.getExpression() != null) { x.getExpression().visit(this); } - l.print(":").end(); + layouter.print(":").end(); printCaseBody(x.getBody()); } @Override public void performActionOnCatch(Catch x) { - l.print(" "); - l.keyWord("catch"); - l.print(" "); + layouter.print(" "); + layouter.keyWord("catch"); + layouter.print(" "); beginMultilineBracket(); if (x.getParameterDeclaration() != null) { performActionOnParameterDeclaration(x.getParameterDeclaration()); } endMultilineBracket(); - l.print(" "); + layouter.print(" "); if (x.getBody() != null) { printStatementBlock(x.getBody()); } @@ -1737,15 +1757,15 @@ public void performActionOnCatch(Catch x) { @Override public void performActionOnDefault(Default x) { - l.keyWord("default").print(":"); + layouter.keyWord("default").print(":"); printCaseBody(x.getBody()); } @Override public void performActionOnFinally(Finally x) { - l.print(" "); - l.keyWord("finally"); - l.print(" "); + layouter.print(" "); + layouter.keyWord("finally"); + layouter.print(" "); if (x.getBody() != null) { printStatementBlock(x.getBody()); } @@ -1753,7 +1773,7 @@ public void performActionOnFinally(Finally x) { @Override public void performActionOnModifier(Modifier x) { - l.keyWord(x.getText()); + layouter.keyWord(x.getText()); } @SuppressWarnings("unchecked") @@ -1766,7 +1786,7 @@ public void performActionOnSchemaVariable(SchemaVariable x) { Object o = instantiations.getInstantiation(x); if (o == null) { - l.print(x.name().toString()); + layouter.print(x.name().toString()); } else { if (o instanceof ProgramElement) { ((ProgramElement) o).visit(this); @@ -1790,30 +1810,30 @@ public void performActionOnComment(Comment x) { @Override public void performActionOnParenthesizedExpression(ParenthesizedExpression x) { - l.print("("); + layouter.print("("); if (x.getArguments() != null) { x.getArguments().get(0).visit(this); } - l.print(")"); + layouter.print(")"); } @Override public void performActionOnPassiveExpression(PassiveExpression x) { - l.print("@("); + layouter.print("@("); if (x.getArguments() != null) { x.getArguments().get(0).visit(this); } - l.print(")"); + layouter.print(")"); } @Override public void performActionOnTransactionStatement(TransactionStatement x) { - l.print(x.toString()); + layouter.print(x.toString()); } @Override public void performActionOnEmptyMapLiteral(EmptyMapLiteral x) { - l.print("\\map_empty"); + layouter.print("\\map_empty"); } @Override @@ -1823,9 +1843,9 @@ public void performActionOnExec(Exec x) { @Override public void performActionOnCcatch(Ccatch x) { - l.print(" "); - l.keyWord("ccatch"); - l.print(" "); + layouter.print(" "); + layouter.keyWord("ccatch"); + layouter.print(" "); beginMultilineBracket(); if (x.hasParameterDeclaration()) { performActionOnParameterDeclaration(x.getParameterDeclaration()); @@ -1833,7 +1853,7 @@ public void performActionOnCcatch(Ccatch x) { x.getNonStdParameterDeclaration().visit(this); } endMultilineBracket(); - l.print(" "); + layouter.print(" "); if (x.getBody() != null) { printStatementBlock(x.getBody()); } @@ -1842,33 +1862,33 @@ public void performActionOnCcatch(Ccatch x) { @Override public void performActionOnCcatchReturnParameterDeclaration( CcatchReturnParameterDeclaration x) { - l.keyWord("\\Return"); + layouter.keyWord("\\Return"); } @Override public void performActionOnCcatchReturnValParameterDeclaration( CcatchReturnValParameterDeclaration x) { - l.keyWord("\\Return"); - l.print(" "); + layouter.keyWord("\\Return"); + layouter.print(" "); x.getDelegate().visit(this); } @Override public void performActionOnCcatchContinueParameterDeclaration( CcatchContinueParameterDeclaration x) { - l.keyWord("\\Continue"); + layouter.keyWord("\\Continue"); } @Override public void performActionOnCcatchBreakParameterDeclaration(CcatchBreakParameterDeclaration x) { - l.keyWord("\\Break"); + layouter.keyWord("\\Break"); } @Override public void performActionOnCcatchBreakLabelParameterDeclaration( CcatchBreakLabelParameterDeclaration x) { - l.keyWord("\\Break"); - l.print(" "); + layouter.keyWord("\\Break"); + layouter.print(" "); if (x.getLabel() != null) { x.getLabel().visit(this); } @@ -1877,8 +1897,8 @@ public void performActionOnCcatchBreakLabelParameterDeclaration( @Override public void performActionOnCCcatchContinueLabelParameterDeclaration( CcatchContinueLabelParameterDeclaration x) { - l.keyWord("\\Continue"); - l.print(" "); + layouter.keyWord("\\Continue"); + layouter.print(" "); if (x.getLabel() != null) { x.getLabel().visit(this); } @@ -1887,14 +1907,14 @@ public void performActionOnCCcatchContinueLabelParameterDeclaration( @Override public void performActionOnCcatchBreakWildcardParameterDeclaration( CcatchBreakWildcardParameterDeclaration x) { - l.keyWord("\\Break"); - l.print(" *"); + layouter.keyWord("\\Break"); + layouter.print(" *"); } @Override public void performActionOnCcatchContinueWildcardParameterDeclaration( CcatchContinueWildcardParameterDeclaration x) { - l.keyWord("\\Continue"); + layouter.keyWord("\\Continue"); } /** @@ -1904,13 +1924,64 @@ public void performActionOnCcatchContinueWildcardParameterDeclaration( */ @Override public void performActionOnJmlAssert(JmlAssert jmlAssert) { - l.print("//@ "); + layouter.print("//@ "); final String kind = jmlAssert.getKind().name().toLowerCase(); - l.keyWord(kind); + layouter.keyWord(kind); + + layouter.beginRelativeC(); + layouter.brk(); + + if (services == null) { + layouter.print(jmlAssert.getCondition().getText().trim()); + } else { + var spec = services.getSpecificationRepository().getStatementSpec(jmlAssert); + if (spec == null) { + layouter.print(jmlAssert.getCondition().getText().trim()); + } else { + Term t = spec.term(JmlAssert.INDEX_CONDITION); + String text = printInLogicPrinter(t); + layouter.print(text); + } + } + layouter.end(); + } - l.beginRelativeC(); - l.brk(); - l.print(jmlAssert.getConditionText().trim()); - l.end(); + /** + * Prints a JML set statement + * + * @param x the set statement + */ + public void performActionOnSetStatement(SetStatement x) { + layouter.print("//@ "); + layouter.keyWord("set"); + + layouter.beginRelativeC(); + layouter.brk(); + + if (services != null) { + var spec = + Objects.requireNonNull(services.getSpecificationRepository().getStatementSpec(x)); + Term target = spec.term(SetStatement.INDEX_TARGET); + Term value = spec.term(SetStatement.INDEX_VALUE); + layouter.print(printInLogicPrinter(target)); + layouter.print(" = "); + layouter.print(printInLogicPrinter(value)); + } else { + var context = x.getParserContext(); + if (context != null) { + // remove all whitespaces (\n\f\t...) with an empty space + var text = context.getText(); + text = text.substring(4, text.length() - 1); + layouter.print(text); + } + } + layouter.end(); } + + public String printInLogicPrinter(Term t) { + var lp = LogicPrinter.quickPrinter(services, usePrettyPrinting, useUnicodeSymbols); + lp.printTerm(t); + return lp.result(); + } + } diff --git a/key.core/src/main/java/de/uka/ilkd/key/pp/SequentViewLogicPrinter.java b/key.core/src/main/java/de/uka/ilkd/key/pp/SequentViewLogicPrinter.java index 09bbb7746a0..e426e15d987 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/pp/SequentViewLogicPrinter.java +++ b/key.core/src/main/java/de/uka/ilkd/key/pp/SequentViewLogicPrinter.java @@ -13,6 +13,7 @@ import org.key_project.util.collection.ImmutableArray; + /** * Subclass of {@link LogicPrinter} used in GUI. Any GUI-specific code for pretty-printing should be * put in here, so that code of {@link LogicPrinter} stays independent of GUI as much as possible. diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/Goal.java b/key.core/src/main/java/de/uka/ilkd/key/proof/Goal.java index b91e7f25808..9885acd6145 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/Goal.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/Goal.java @@ -524,8 +524,7 @@ public void removeLastAppliedRuleApp() { * @param n number of goals to create * @return the list of new created goals. */ - @NonNull - public ImmutableList split(int n) { + public @NonNull ImmutableList split(int n) { ImmutableList goalList = ImmutableSLList.nil(); final Node parent = node; // has to be stored because the node diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/NameRecorder.java b/key.core/src/main/java/de/uka/ilkd/key/proof/NameRecorder.java index 66ad5d6005b..03d4f5c0d1e 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/NameRecorder.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/NameRecorder.java @@ -14,17 +14,40 @@ public class NameRecorder { private ImmutableList post = ImmutableSLList.nil(); public void setProposals(ImmutableList proposals) { - pre = proposals; + if (proposals == null) { + pre = ImmutableSLList.nil(); + } else { + pre = proposals; + } } + /** + * Get the name proposals added using {@link #addProposal(Name)}. + * + * @return the name proposals + */ public ImmutableList getProposals() { return post; } + /** + * Get the name proposals previously set using {@link #setProposals(ImmutableList)}. + * + * @return the name proposals + */ + public ImmutableList getSetProposals() { + return pre; + } + public void addProposal(Name proposal) { post = post.append(proposal); } + /** + * Get a proposal and remove it from this recorder. + * + * @return the first proposal + */ public Name getProposal() { Name proposal = null; diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/Node.java b/key.core/src/main/java/de/uka/ilkd/key/proof/Node.java index aa62a4c7828..f06489f2d08 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/Node.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/Node.java @@ -53,7 +53,7 @@ public class Node implements Iterable { private final Proof proof; /** The parent node. **/ - private Node parent = null; + private @Nullable Node parent = null; /** * The branch location of this proof node. */ @@ -110,8 +110,7 @@ public class Node implements Iterable { private String cachedName = null; - @Nullable - private Lookup userData = null; + private @Nullable Lookup userData = null; /** @@ -232,10 +231,10 @@ public Iterable getLocalIntroducedRules() { /** * Returns the set of created program variables known in this node. - * + *

* In the resulting list, the newest additions come first. * - * @returns a non-null immutable list of program variables. + * @return a non-null immutable list of program variables. */ public ImmutableList getLocalProgVars() { return localProgVars; @@ -276,7 +275,7 @@ public void addNoPosTacletApp(NoPosTacletApp s) { /** * @return the parent node of this node. */ - public Node parent() { + public @Nullable Node parent() { return parent; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/OpReplacer.java b/key.core/src/main/java/de/uka/ilkd/key/proof/OpReplacer.java index 2463b3a6653..55a54a489f3 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/OpReplacer.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/OpReplacer.java @@ -19,6 +19,8 @@ import org.key_project.util.collection.ImmutableSLList; import org.key_project.util.collection.ImmutableSet; +import static de.uka.ilkd.key.logic.equality.TermLabelsProperty.TERM_LABELS_PROPERTY; + /** * Replaces operators in a term by other operators with the same signature, or subterms of the term @@ -233,7 +235,7 @@ public Term replace(Term term) { } for (SVSubstitute svs : map.keySet()) { - if (term.equalsModTermLabels(svs)) { + if (term.equalsModProperty(svs, TERM_LABELS_PROPERTY)) { return (Term) map.get(svs); } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/Proof.java b/key.core/src/main/java/de/uka/ilkd/key/proof/Proof.java index 0a1080a1a3b..1fb6157a6c0 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/Proof.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/Proof.java @@ -37,6 +37,7 @@ import org.key_project.util.lookup.Lookup; import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.NullMarked; import org.jspecify.annotations.Nullable; @@ -49,6 +50,7 @@ * information, and methods to apply rules. Furthermore, it offers services that deliver the open * goals, namespaces and several other information about the current state of the proof. */ +@NullMarked public class Proof implements Named { /** @@ -56,10 +58,14 @@ public class Proof implements Named { */ final long creationTime = System.currentTimeMillis(); - /** name of the proof */ + /** + * name of the proof + */ private final Name name; - /** the root of the proof */ + /** + * the root of the proof + */ private Node root; /** @@ -68,7 +74,9 @@ public class Proof implements Named { */ private final List listenerList = new LinkedList<>(); - /** list with the open goals of the proof */ + /** + * list with the open goals of the proof + */ private ImmutableList openGoals = ImmutableSLList.nil(); /** @@ -78,22 +86,34 @@ public class Proof implements Named { */ private ImmutableList closedGoals = ImmutableSLList.nil(); - /** declarations &c, read from a problem file or otherwise */ + /** + * declarations &c, read from a problem file or otherwise + */ private String problemHeader = ""; - /** the proof environment (optional) */ - private ProofEnvironment env; + /** + * the proof environment (optional) + */ + private @Nullable ProofEnvironment env; - /** maps the Abbreviations valid for this proof to their corresponding terms. */ + /** + * maps the Abbreviations valid for this proof to their corresponding terms. + */ private AbbrevMap abbreviations = new AbbrevMap(); - /** the logic configuration for this proof, i.e., logic signature, rules etc. */ + /** + * the logic configuration for this proof, i.e., logic signature, rules etc. + */ private InitConfig initConfig; - /** the environment of the proof with specs and java model */ + /** + * the environment of the proof with specs and java model + */ private ProofCorrectnessMgt localMgt; - /** settings valid independent of a proof */ + /** + * settings valid independent of a proof + */ private final ProofIndependentSettings pis; /** * when different users load and save a proof this vector fills up with Strings containing the @@ -109,7 +129,7 @@ public class Proof implements Named { private long autoModeTime = 0; - private Strategy activeStrategy; + private @Nullable Strategy activeStrategy; private PropertyChangeListener settingsListener; @@ -119,7 +139,9 @@ public class Proof implements Named { */ private boolean disposed = false; - /** list of rule app listeners */ + /** + * list of rule app listeners + */ private final List ruleAppListenerList = Collections.synchronizedList(new ArrayList<>(10)); /** @@ -131,10 +153,9 @@ public class Proof implements Named { * The {@link File} under which this {@link Proof} was saved the last time if available or * {@code null} otherwise. */ - private File proofFile; + private @Nullable File proofFile; - @Nullable - private Lookup userData; + private @Nullable Lookup userData; /** * Whether closing the proof should emit a {@link ProofEvent}. @@ -188,8 +209,9 @@ private void initStrategy() { } - - /** constructs a new empty proof with name */ + /** + * constructs a new empty proof with name + */ public Proof(String name, InitConfig initConfig) { this(new Name(name), initConfig); } @@ -199,7 +221,6 @@ private Proof(String name, Sequent problem, TacletIndex rules, BuiltInRuleIndex this(new Name(name), initConfig); final var rootNode = new Node(this, problem); - final var firstGoal = new Goal(rootNode, rules, new BuiltInRuleAppIndex(builtInRules), getServices()); openGoals = openGoals.prepend(firstGoal); @@ -251,7 +272,7 @@ public void dispose() { } if (localMgt != null) { localMgt.removeProofListener(); // This is strongly required because the listener is - // contained in a static List + // contained in a static List } // remove setting listener from settings initConfig.getSettings().getStrategySettings() @@ -312,12 +333,16 @@ public NamespaceSet getNamespaces() { return getServices().getNamespaces(); } - /** returns the JavaInfo with the java type information */ + /** + * returns the JavaInfo with the java type information + */ public JavaInfo getJavaInfo() { return getServices().getJavaInfo(); } - /** returns the Services with the java service classes */ + /** + * returns the Services with the java service classes + */ public Services getServices() { return initConfig.getServices(); } @@ -331,8 +356,9 @@ public void addAutoModeTime(long time) { } - - /** sets the variable, function, sort, heuristics namespaces */ + /** + * sets the variable, function, sort, heuristics namespaces + */ public void setNamespaces(NamespaceSet ns) { getServices().setNamespaces(ns); if (!root.leaf()) { @@ -401,7 +427,9 @@ public Node root() { } - /** sets the root of the proof */ + /** + * sets the root of the proof + */ public void setRoot(Node root) { if (this.root != null) { throw new IllegalStateException("Tried to reset the root of the proof."); @@ -444,7 +472,6 @@ public ImmutableList closedGoals() { * Returns the list of all, open and closed, goals. * * @return list with all goals. - * * @see #openGoals() * @see #closedGoals() */ @@ -469,8 +496,8 @@ public ImmutableList openEnabledGoals() { * * @param goals non-null list of goals * @return sublist such that every goal in the list is enabled - * @see Goal#isAutomatic() * @author mulbrich + * @see Goal#isAutomatic() */ private ImmutableList filterEnabledGoals(ImmutableList goals) { ImmutableList enabledGoals = ImmutableSLList.nil(); @@ -536,8 +563,8 @@ public void closeGoal(Goal goalToClose) { /** * Opens a previously closed node (the one corresponding to p_goal) and all its closed parents. - *

* + *

* This is, for instance, needed for the {@code MergeRule}: In a situation where a merge node * and its associated partners have been closed and the merge node is then pruned away, the * partners have to be reopened again. Otherwise, we have a soundness issue. @@ -748,7 +775,9 @@ public void traverseFromChildToParent(Node child, Node parent, ProofVisitor visi } while (child != parent); } - /** fires the event that the proof has been expanded at the given node */ + /** + * fires the event that the proof has been expanded at the given node + */ public void fireProofExpanded(Node node) { ProofTreeEvent e = new ProofTreeEvent(this, node); synchronized (listenerList) { @@ -758,7 +787,9 @@ public void fireProofExpanded(Node node) { } } - /** fires the event that the proof is being pruned at the given node */ + /** + * fires the event that the proof is being pruned at the given node + */ protected void fireProofIsBeingPruned(Node below) { ProofTreeEvent e = new ProofTreeEvent(this, below); synchronized (listenerList) { @@ -768,7 +799,9 @@ protected void fireProofIsBeingPruned(Node below) { } } - /** fires the event that the proof has been pruned at the given node */ + /** + * fires the event that the proof has been pruned at the given node + */ protected void fireProofPruned(Node below) { ProofTreeEvent e = new ProofTreeEvent(this, below); synchronized (listenerList) { @@ -779,7 +812,9 @@ protected void fireProofPruned(Node below) { } - /** fires the event that the proof has been restructured */ + /** + * fires the event that the proof has been restructured + */ public void fireProofStructureChanged() { ProofTreeEvent e = new ProofTreeEvent(this); synchronized (listenerList) { @@ -790,7 +825,9 @@ public void fireProofStructureChanged() { } - /** fires the event that a goal has been removed from the list of goals */ + /** + * fires the event that a goal has been removed from the list of goals + */ protected void fireProofGoalRemoved(Goal goal) { ProofTreeEvent e = new ProofTreeEvent(this, goal); synchronized (listenerList) { @@ -822,7 +859,9 @@ protected void fireProofGoalsAdded(Goal goal) { } - /** fires the event that the proof has been restructured */ + /** + * fires the event that the proof has been restructured + */ public void fireProofGoalsChanged() { ProofTreeEvent e = new ProofTreeEvent(this, openGoals()); synchronized (listenerList) { @@ -1051,7 +1090,9 @@ public Statistics getStatistics() { return new Statistics(this); } - /** toString */ + /** + * toString + */ @Override public String toString() { StringBuilder result = new StringBuilder(); @@ -1070,7 +1111,9 @@ public String toString() { return result.toString(); } - /** fires the event that a rule has been applied */ + /** + * fires the event that a rule has been applied + */ protected void fireRuleApplied(ProofEvent p_e) { synchronized (ruleAppListenerList) { for (RuleAppListener ral : ruleAppListenerList) { @@ -1188,7 +1231,6 @@ public void setProofFile(File proofFile) { } /** - * * @return the current profile's factory for the active strategy, or the default factory if * there is no active strategy. * @see Profile#getStrategyFactory(Name) diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/SVInstantiationExceptionWithPosition.java b/key.core/src/main/java/de/uka/ilkd/key/proof/SVInstantiationExceptionWithPosition.java index d717309e744..20cf136e940 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/SVInstantiationExceptionWithPosition.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/SVInstantiationExceptionWithPosition.java @@ -3,7 +3,6 @@ * SPDX-License-Identifier: GPL-2.0-only */ package de.uka.ilkd.key.proof; - import java.net.MalformedURLException; import de.uka.ilkd.key.java.Position; @@ -60,9 +59,8 @@ public String toString() { return getMessage(); } - @Nullable @Override - public Location getLocation() throws MalformedURLException { + public @Nullable Location getLocation() throws MalformedURLException { return new Location(null, position); } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/SemisequentTacletAppIndex.java b/key.core/src/main/java/de/uka/ilkd/key/proof/SemisequentTacletAppIndex.java index 4a1032d9175..f70243418f7 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/SemisequentTacletAppIndex.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/SemisequentTacletAppIndex.java @@ -191,7 +191,8 @@ private TermTacletAppIndex getTermIndex(PosInOccurrence pos) { * @return all taclet apps for the given position */ public ImmutableList getTacletAppAt(PosInOccurrence pos, RuleFilter filter) { - return getTermIndex(pos).getTacletAppAt(pos, filter); + TermTacletAppIndex termIndex = getTermIndex(pos); + return termIndex.getTacletAppAt(pos, filter); } /** diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/AbstractOperationPO.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/AbstractOperationPO.java index 49480a10bca..ae3e87fdbb2 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/init/AbstractOperationPO.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/AbstractOperationPO.java @@ -27,6 +27,7 @@ import de.uka.ilkd.key.logic.op.*; import de.uka.ilkd.key.proof.Proof; import de.uka.ilkd.key.rule.NoPosTacletApp; +import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.speclang.FunctionalOperationContract; import de.uka.ilkd.key.speclang.HeapContext; @@ -226,8 +227,8 @@ public static Term addAdditionalUninterpretedPredicateIfRequired(Services servic * @param properties The {@link Properties} to read value from. * @return {@code true} is set, {@code false} is not set. */ - protected static boolean isAddUninterpretedPredicate(Properties properties) { - String value = properties.getProperty(IPersistablePO.PROPERTY_ADD_UNINTERPRETED_PREDICATE); + public static boolean isAddUninterpretedPredicate(Configuration properties) { + String value = properties.getString(IPersistablePO.PROPERTY_ADD_UNINTERPRETED_PREDICATE); return value != null && !value.isEmpty() ? Boolean.parseBoolean(value) : false; } @@ -237,8 +238,8 @@ protected static boolean isAddUninterpretedPredicate(Properties properties) { * @param properties The {@link Properties} to read value from. * @return {@code true} is set, {@code false} is not set. */ - protected static boolean isAddSymbolicExecutionLabel(Properties properties) { - String value = properties.getProperty(IPersistablePO.PROPERTY_ADD_SYMBOLIC_EXECUTION_LABEL); + public static boolean isAddSymbolicExecutionLabel(Configuration properties) { + String value = properties.getString(IPersistablePO.PROPERTY_ADD_SYMBOLIC_EXECUTION_LABEL); return value != null && !value.isEmpty() ? Boolean.parseBoolean(value) : false; } @@ -487,18 +488,21 @@ public Set getAdditionalUninterpretedPredicates() { /** * {@inheritDoc} + * + * @return */ @Override - public void fillSaveProperties(Properties properties) { - super.fillSaveProperties(properties); + public Configuration createLoaderConfig() { + var c = super.createLoaderConfig(); if (isAddUninterpretedPredicate()) { - properties.setProperty(IPersistablePO.PROPERTY_ADD_UNINTERPRETED_PREDICATE, + c.set(IPersistablePO.PROPERTY_ADD_UNINTERPRETED_PREDICATE, String.valueOf(isAddUninterpretedPredicate())); } if (isAddSymbolicExecutionLabel()) { - properties.setProperty(IPersistablePO.PROPERTY_ADD_SYMBOLIC_EXECUTION_LABEL, + c.set(IPersistablePO.PROPERTY_ADD_SYMBOLIC_EXECUTION_LABEL, String.valueOf(isAddSymbolicExecutionLabel())); } + return c; } public ImmutableSet getInitialTaclets() { diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/AbstractPO.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/AbstractPO.java index b264e2b77f3..96dbb119483 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/init/AbstractPO.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/AbstractPO.java @@ -22,6 +22,7 @@ import de.uka.ilkd.key.rule.NoPosTacletApp; import de.uka.ilkd.key.rule.RewriteTaclet; import de.uka.ilkd.key.rule.Taclet; +import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.speclang.*; import org.key_project.logic.sort.Sort; @@ -525,11 +526,15 @@ protected void assignPOTerms(Term... poTerms) { /** * {@inheritDoc} + * + * @return */ @Override - public void fillSaveProperties(Properties properties) { - properties.setProperty(IPersistablePO.PROPERTY_CLASS, getClass().getCanonicalName()); - properties.setProperty(IPersistablePO.PROPERTY_NAME, name); + public Configuration createLoaderConfig() { + var c = new Configuration(); + c.set(IPersistablePO.PROPERTY_CLASS, getClass().getCanonicalName()); + c.set(IPersistablePO.PROPERTY_NAME, name); + return c; } /** @@ -538,8 +543,8 @@ public void fillSaveProperties(Properties properties) { * @param properties The properties to read from. * @return The name value. */ - public static String getName(Properties properties) { - return properties.getProperty(IPersistablePO.PROPERTY_NAME); + public static String getName(Configuration properties) { + return properties.getString(IPersistablePO.PROPERTY_NAME); } /** diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/DependencyContractPO.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/DependencyContractPO.java index bc9d8828aa0..02d47f9ead0 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/init/DependencyContractPO.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/DependencyContractPO.java @@ -11,7 +11,7 @@ import de.uka.ilkd.key.logic.TermBuilder; import de.uka.ilkd.key.logic.label.ParameterlessTermLabel; import de.uka.ilkd.key.logic.op.*; -import de.uka.ilkd.key.speclang.Contract; +import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.speclang.DependencyContract; import de.uka.ilkd.key.speclang.FunctionalOperationContract; import de.uka.ilkd.key.speclang.HeapContext; @@ -123,6 +123,10 @@ public void readProblem() throws ProofInputException { target = contract.getTarget(); } } + if (target.getType() == KeYJavaType.VOID_TYPE) { + throw new ProofInputException( + "Dependency contracts are currently not supported for void methods"); + } final Services proofServices = postInit(); @@ -289,45 +293,14 @@ public int hashCode() { /** * {@inheritDoc} - */ - @Override - public void fillSaveProperties(Properties properties) { - super.fillSaveProperties(properties); - properties.setProperty("contract", contract.getName()); - } - - /** - * Instantiates a new proof obligation with the given settings. * - * @param initConfig The already load {@link InitConfig}. - * @param properties The settings of the proof obligation to instantiate. - * @return The instantiated proof obligation. + * @return */ - public static LoadedPOContainer loadFrom(InitConfig initConfig, Properties properties) { - String contractName = properties.getProperty("contract"); - int proofNum = 0; - String baseContractName = null; - int ind = -1; - for (String tag : FunctionalOperationContractPO.TRANSACTION_TAGS.values()) { - ind = contractName.indexOf("." + tag); - if (ind > 0) { - break; - } - proofNum++; - } - if (ind == -1) { - baseContractName = contractName; - proofNum = 0; - } else { - baseContractName = contractName.substring(0, ind); - } - final Contract contract = initConfig.getServices().getSpecificationRepository() - .getContractByName(baseContractName); - if (contract == null) { - throw new RuntimeException("Contract not found: " + baseContractName); - } else { - return new LoadedPOContainer(contract.createProofObl(initConfig, contract), proofNum); - } + @Override + public Configuration createLoaderConfig() { + var c = super.createLoaderConfig(); + c.set("contract", contract.getName()); + return c; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/FunctionalBlockContractPO.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/FunctionalBlockContractPO.java index d0a2374c2ac..e2541fbb68b 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/init/FunctionalBlockContractPO.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/FunctionalBlockContractPO.java @@ -6,7 +6,6 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.Properties; import de.uka.ilkd.key.java.KeYJavaASTFactory; import de.uka.ilkd.key.java.Services; @@ -26,6 +25,7 @@ import de.uka.ilkd.key.rule.AuxiliaryContractBuilders.GoalsConfigurator; import de.uka.ilkd.key.rule.AuxiliaryContractBuilders.UpdatesBuilder; import de.uka.ilkd.key.rule.AuxiliaryContractBuilders.VariablesCreatorAndRegistrar; +import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.speclang.*; import de.uka.ilkd.key.util.MiscTools; @@ -43,7 +43,7 @@ public class FunctionalBlockContractPO extends AbstractPO implements ContractPO /** * Transaction tags. */ - private static final Map TRANSACTION_TAGS = + public static final Map TRANSACTION_TAGS = new LinkedHashMap<>(); static { @@ -71,41 +71,6 @@ public FunctionalBlockContractPO(InitConfig initConfig, FunctionalBlockContract this.contract = contract; } - /** - * Instantiates a new proof obligation with the given settings. - * - * @param initConfig The already load {@link InitConfig}. - * @param properties The settings of the proof obligation to instantiate. - * @return The instantiated proof obligation. - */ - public static LoadedPOContainer loadFrom(InitConfig initConfig, Properties properties) { - String contractName = properties.getProperty("contract"); - int proofNum = 0; - String baseContractName = null; - int ind = -1; - for (String tag : FunctionalBlockContractPO.TRANSACTION_TAGS.values()) { - ind = contractName.indexOf("." + tag); - if (ind > 0) { - break; - } - proofNum++; - } - if (ind == -1) { - baseContractName = contractName; - proofNum = 0; - } else { - baseContractName = contractName.substring(0, ind); - } - final Contract contract = initConfig.getServices().getSpecificationRepository() - .getContractByName(baseContractName); - if (contract == null) { - throw new RuntimeException("Contract not found: " + baseContractName); - } else { - ProofOblInput po = contract.createProofObl(initConfig); - return new LoadedPOContainer(po, proofNum); - } - } - /** * * @param localOutVariables a set of variables. @@ -287,9 +252,10 @@ private static Term addWdToValidityTerm(Term validity, final Term[] updates, } @Override - public void fillSaveProperties(Properties properties) { - super.fillSaveProperties(properties); - properties.setProperty("contract", contract.getName()); + public Configuration createLoaderConfig() { + var c = super.createLoaderConfig(); + c.set("contract", contract.getName()); + return c; } @Override diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/FunctionalLoopContractPO.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/FunctionalLoopContractPO.java index 18531a06602..d4cad4e97a2 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/init/FunctionalLoopContractPO.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/FunctionalLoopContractPO.java @@ -6,7 +6,6 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.Properties; import de.uka.ilkd.key.java.KeYJavaASTFactory; import de.uka.ilkd.key.java.Services; @@ -26,6 +25,7 @@ import de.uka.ilkd.key.rule.AuxiliaryContractBuilders.GoalsConfigurator; import de.uka.ilkd.key.rule.AuxiliaryContractBuilders.UpdatesBuilder; import de.uka.ilkd.key.rule.AuxiliaryContractBuilders.VariablesCreatorAndRegistrar; +import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.speclang.*; import de.uka.ilkd.key.util.MiscTools; @@ -43,7 +43,7 @@ public class FunctionalLoopContractPO extends AbstractPO implements ContractPO { /** * Transaction tags. */ - private static final Map TRANSACTION_TAGS = + public static final Map TRANSACTION_TAGS = new LinkedHashMap<>(); static { @@ -71,45 +71,11 @@ public FunctionalLoopContractPO(InitConfig initConfig, FunctionalLoopContract co this.contract = contract; } - /** - * Instantiates a new proof obligation with the given settings. - * - * @param initConfig The already load {@link InitConfig}. - * @param properties The settings of the proof obligation to instantiate. - * @return The instantiated proof obligation. - */ - public static LoadedPOContainer loadFrom(InitConfig initConfig, Properties properties) { - String contractName = properties.getProperty("contract"); - int proofNum = 0; - String baseContractName = null; - int ind = -1; - for (String tag : FunctionalLoopContractPO.TRANSACTION_TAGS.values()) { - ind = contractName.indexOf("." + tag); - if (ind > 0) { - break; - } - proofNum++; - } - if (ind == -1) { - baseContractName = contractName; - proofNum = 0; - } else { - baseContractName = contractName.substring(0, ind); - } - final Contract contract = initConfig.getServices().getSpecificationRepository() - .getContractByName(baseContractName); - if (contract == null) { - throw new RuntimeException("Contract not found: " + baseContractName); - } else { - ProofOblInput po = contract.createProofObl(initConfig); - return new LoadedPOContainer(po, proofNum); - } - } - @Override - public void fillSaveProperties(Properties properties) { - super.fillSaveProperties(properties); - properties.setProperty("contract", contract.getName()); + public Configuration createLoaderConfig() { + var c = super.createLoaderConfig(); + c.set("contract", contract.getName()); + return c; } @Override @@ -117,7 +83,6 @@ public boolean implies(ProofOblInput po) { if (!(po instanceof FunctionalLoopContractPO other)) { return false; } - return contract.equals(other.contract); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/FunctionalOperationContractPO.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/FunctionalOperationContractPO.java index 368031f550d..61e0f4c44bb 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/init/FunctionalOperationContractPO.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/FunctionalOperationContractPO.java @@ -3,7 +3,6 @@ * SPDX-License-Identifier: GPL-2.0-only */ package de.uka.ilkd.key.proof.init; -import java.io.IOException; import java.util.*; import java.util.Map.Entry; @@ -28,13 +27,15 @@ import de.uka.ilkd.key.rule.metaconstruct.ConstructorCall; import de.uka.ilkd.key.rule.metaconstruct.CreateObject; import de.uka.ilkd.key.rule.metaconstruct.PostWork; -import de.uka.ilkd.key.speclang.Contract; +import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.speclang.FunctionalOperationContract; import org.key_project.util.collection.ImmutableArray; import org.key_project.util.collection.ImmutableList; import org.key_project.util.collection.ImmutableSLList; +import org.jspecify.annotations.NonNull; + import static de.uka.ilkd.key.java.KeYJavaASTFactory.declare; /** @@ -60,7 +61,7 @@ *

*/ public class FunctionalOperationContractPO extends AbstractOperationPO implements ContractPO { - public static final Map TRANSACTION_TAGS = + public static final Map TRANSACTION_TAGS = new LinkedHashMap<>(); private final FunctionalOperationContract contract; @@ -349,62 +350,16 @@ public int hashCode() { /** * {@inheritDoc} + * + * @return */ @Override - public void fillSaveProperties(Properties properties) { - super.fillSaveProperties(properties); - properties.setProperty("contract", contract.getName()); + public Configuration createLoaderConfig() { + var c = super.createLoaderConfig(); + c.set("contract", contract.getName()); + return c; } - /** - * Instantiates a new proof obligation with the given settings. - * - * @param initConfig The already load {@link InitConfig}. - * @param properties The settings of the proof obligation to instantiate. - * @return The instantiated proof obligation. - * @throws IOException Occurred Exception. - */ - public static LoadedPOContainer loadFrom(InitConfig initConfig, Properties properties) - throws IOException { - String contractName = properties.getProperty("contract"); - int proofNum = 0; - String baseContractName = null; - int ind = -1; - for (String tag : FunctionalOperationContractPO.TRANSACTION_TAGS.values()) { - ind = contractName.indexOf("." + tag); - if (ind > 0) { - break; - } - proofNum++; - } - if (ind == -1) { - baseContractName = contractName; - proofNum = 0; - } else { - baseContractName = contractName.substring(0, ind); - } - final Contract contract = initConfig.getServices().getSpecificationRepository() - .getContractByName(baseContractName); - if (contract == null) { - throw new IOException("Contract not found: " + baseContractName); - } else { - ProofOblInput po; - boolean addUninterpretedPredicate = isAddUninterpretedPredicate(properties); - boolean addSymbolicExecutionLabel = isAddSymbolicExecutionLabel(properties); - if (addUninterpretedPredicate || addSymbolicExecutionLabel) { - if (!(contract instanceof FunctionalOperationContract)) { - throw new IOException( - "Found contract \"" + contract + "\" is no FunctionalOperationContract."); - } - po = new FunctionalOperationContractPO(initConfig, - (FunctionalOperationContract) contract, addUninterpretedPredicate, - addSymbolicExecutionLabel); - } else { - po = contract.createProofObl(initConfig); - } - return new LoadedPOContainer(po, proofNum); - } - } /** * {@inheritDoc} diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/IPersistablePO.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/IPersistablePO.java index 0f230624acb..ad71b26001c 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/init/IPersistablePO.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/IPersistablePO.java @@ -8,6 +8,7 @@ import de.uka.ilkd.key.logic.Sequent; import de.uka.ilkd.key.proof.io.ProofSaver; +import de.uka.ilkd.key.settings.Configuration; /** *

@@ -16,7 +17,7 @@ * files. *

*

- * During save process the {@link ProofSaver} calls method {@link #fillSaveProperties(Properties)}. + * During save process the {@link ProofSaver} calls method {@link #createLoaderConfig()}. * This proof obligation has to store all information in the given {@link Properties} which are * required to reconstruct it. The class ({@link Object#getClass()}) of this class must be stored in * the @@ -68,10 +69,10 @@ public interface IPersistablePO extends ProofOblInput { * instantiate the proof obligation again and this instance should create the same * {@link Sequent} (if code and specifications are unchanged). * - * @param properties The {@link Properties} to fill with the proof obligation specific settings. + * @return * @throws IOException Occurred Exception. */ - void fillSaveProperties(Properties properties) throws IOException; + Configuration createLoaderConfig() throws IOException; /** * The class stored in a {@link Properties} instance via key must provide the static method with diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/JavaProfile.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/JavaProfile.java index fa134a73016..36d560f9b91 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/init/JavaProfile.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/JavaProfile.java @@ -12,12 +12,12 @@ import de.uka.ilkd.key.proof.mgt.ComplexRuleJustificationBySpec; import de.uka.ilkd.key.proof.mgt.RuleJustification; import de.uka.ilkd.key.prover.impl.DepthFirstGoalChooserBuilder; +import de.uka.ilkd.key.rule.*; import de.uka.ilkd.key.rule.AbstractAuxiliaryContractBuiltInRuleApp; import de.uka.ilkd.key.rule.AbstractContractRuleApp; import de.uka.ilkd.key.rule.BlockContractExternalRule; import de.uka.ilkd.key.rule.BlockContractInternalRule; import de.uka.ilkd.key.rule.BuiltInRule; -import de.uka.ilkd.key.rule.JmlAssertRule; import de.uka.ilkd.key.rule.LoopApplyHeadRule; import de.uka.ilkd.key.rule.LoopContractExternalRule; import de.uka.ilkd.key.rule.LoopContractInternalRule; @@ -157,6 +157,7 @@ protected ImmutableList initBuiltInRules() { .prepend(QueryExpand.INSTANCE).prepend(MergeRule.INSTANCE) .prepend(LoopApplyHeadRule.INSTANCE).prepend(JmlAssertRule.ASSERT_INSTANCE) .prepend(JmlAssertRule.ASSUME_INSTANCE) + .prepend(SetStatementRule.INSTANCE) .prepend(ObserverToUpdateRule.INSTANCE); // contract insertion rule, ATTENTION: ProofMgt relies on the fact diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/KeYUserProblemFile.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/KeYUserProblemFile.java index af88fe91224..cd394dee308 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/init/KeYUserProblemFile.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/KeYUserProblemFile.java @@ -18,6 +18,7 @@ import de.uka.ilkd.key.proof.io.IProofFileParser; import de.uka.ilkd.key.proof.io.KeYFile; import de.uka.ilkd.key.proof.io.consistency.FileRepo; +import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.settings.ProofSettings; import de.uka.ilkd.key.speclang.PositionedString; import de.uka.ilkd.key.speclang.SLEnvInput; @@ -150,7 +151,7 @@ public String chooseContract() { } @Override - public String getProofObligation() { + public Configuration getProofObligation() { return getProblemFinder().getProofObligation(); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/WellDefinednessPO.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/WellDefinednessPO.java index 31fffe384d2..1760ec37337 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/init/WellDefinednessPO.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/WellDefinednessPO.java @@ -5,7 +5,6 @@ import java.util.LinkedHashMap; import java.util.Map; -import java.util.Properties; import de.uka.ilkd.key.java.Services; import de.uka.ilkd.key.java.abstraction.KeYJavaType; @@ -13,9 +12,9 @@ import de.uka.ilkd.key.logic.*; import de.uka.ilkd.key.logic.label.ParameterlessTermLabel; import de.uka.ilkd.key.logic.op.*; +import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.speclang.ClassAxiom; import de.uka.ilkd.key.speclang.ClassWellDefinedness; -import de.uka.ilkd.key.speclang.Contract; import de.uka.ilkd.key.speclang.Contract.OriginalVariables; import de.uka.ilkd.key.speclang.WellDefinednessCheck; import de.uka.ilkd.key.speclang.WellDefinednessCheck.POTerms; @@ -286,30 +285,14 @@ public Term getMbyAtPre() { /** * {@inheritDoc} - */ - @Override - public void fillSaveProperties(Properties properties) { - super.fillSaveProperties(properties); - properties.setProperty("wd check", check.getName()); - } - - /** - * Instantiates a new proof obligation with the given settings. * - * @param initConfig The already load {@link InitConfig}. - * @param properties The settings of the proof obligation to instantiate. - * @return The instantiated proof obligation. + * @return */ - public static LoadedPOContainer loadFrom(InitConfig initConfig, Properties properties) { - String contractName = properties.getProperty("wd check"); - final Contract contract = - initConfig.getServices().getSpecificationRepository().getContractByName(contractName); - if (contract == null) { - throw new RuntimeException("Contract not found: " + contractName); - } else { - final ProofOblInput po = contract.createProofObl(initConfig); - return new LoadedPOContainer(po); - } + @Override + public Configuration createLoaderConfig() { + var c = super.createLoaderConfig(); + c.set("wd check", check.getName()); + return c; } /** diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/WellDefinednessPOLoader.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/WellDefinednessPOLoader.java new file mode 100644 index 00000000000..08aca51e25b --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/WellDefinednessPOLoader.java @@ -0,0 +1,48 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.proof.init; + +import de.uka.ilkd.key.proof.init.loader.ProofObligationLoader; +import de.uka.ilkd.key.settings.Configuration; +import de.uka.ilkd.key.speclang.Contract; + +import org.jspecify.annotations.NullMarked; + +/** + * Loader for proof obligation arises from well definedness. + * + * @author Alexander Weigl + * @version 1 (29.12.23) + */ +@NullMarked +public class WellDefinednessPOLoader implements ProofObligationLoader { + /** + * Instantiates a new proof obligation with the given settings. + * + * @param initConfig The already loaded {@link InitConfig}. + * @param properties The settings of the proof obligation to instantiate. + * @return The instantiated proof obligation. + */ + @Override + public IPersistablePO.LoadedPOContainer loadFrom(InitConfig initConfig, + Configuration properties) { + String contractName = properties.getString("wd check"); + final Contract contract = + initConfig.getServices().getSpecificationRepository().getContractByName(contractName); + if (contract == null) { + throw new RuntimeException("Contract not found: " + contractName); + } else { + final ProofOblInput po = contract.createProofObl(initConfig); + return new IPersistablePO.LoadedPOContainer(po); + } + } + + @Override + public boolean handles(String identifier) { + return WellDefinednessPO.class.getSimpleName().equals(identifier) + || WellDefinednessPO.class.getName().equals(identifier) + || WellDefinednessPOLoader.class.getSimpleName().equals(identifier) + || WellDefinednessPOLoader.class.getName().equals(identifier); + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/loader/DependencyContractPOLoader.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/loader/DependencyContractPOLoader.java new file mode 100644 index 00000000000..989c84e73b0 --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/loader/DependencyContractPOLoader.java @@ -0,0 +1,67 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.proof.init.loader; + +import java.util.Objects; + +import de.uka.ilkd.key.proof.init.DependencyContractPO; +import de.uka.ilkd.key.proof.init.FunctionalOperationContractPO; +import de.uka.ilkd.key.proof.init.IPersistablePO; +import de.uka.ilkd.key.proof.init.InitConfig; +import de.uka.ilkd.key.settings.Configuration; +import de.uka.ilkd.key.speclang.Contract; + +import org.jspecify.annotations.NullMarked; + +/** + * Loader for proof obligation arises from dependency contracts. + * + * @author Alexander Weigl + */ +@NullMarked +public class DependencyContractPOLoader implements ProofObligationLoader { + /** + * Instantiates a new proof obligation with the given settings. + * + * @param initConfig The already load {@link de.uka.ilkd.key.proof.init.InitConfig}. + * @param properties The settings of the proof obligation to instantiate. + * @return The instantiated proof obligation. + */ + public IPersistablePO.LoadedPOContainer loadFrom(InitConfig initConfig, + Configuration properties) { + String contractName = Objects.requireNonNull(properties.getString("contract")); + int proofNum = 0; + String baseContractName; + int ind = -1; + for (String tag : FunctionalOperationContractPO.TRANSACTION_TAGS.values()) { + ind = contractName.indexOf("." + tag); + if (ind > 0) { + break; + } + proofNum++; + } + if (ind == -1) { + baseContractName = contractName; + proofNum = 0; + } else { + baseContractName = contractName.substring(0, ind); + } + final Contract contract = initConfig.getServices().getSpecificationRepository() + .getContractByName(baseContractName); + if (contract == null) { + throw new RuntimeException("Contract not found: " + baseContractName); + } else { + return new IPersistablePO.LoadedPOContainer( + contract.createProofObl(initConfig, contract), proofNum); + } + } + + @Override + public boolean handles(String identifier) { + return DependencyContractPO.class.getName().equals(identifier) + || DependencyContractPO.class.getSimpleName().equals(identifier) + || DependencyContractPOLoader.class.getName().equals(identifier) + || DependencyContractPOLoader.class.getSimpleName().equals(identifier); + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/loader/FunctionOperationContractPOLoader.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/loader/FunctionOperationContractPOLoader.java new file mode 100644 index 00000000000..a4a0324ecb8 --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/loader/FunctionOperationContractPOLoader.java @@ -0,0 +1,82 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.proof.init.loader; + +import java.io.IOException; + +import de.uka.ilkd.key.proof.init.*; +import de.uka.ilkd.key.settings.Configuration; +import de.uka.ilkd.key.speclang.Contract; +import de.uka.ilkd.key.speclang.FunctionalOperationContract; + +import org.jspecify.annotations.NullMarked; + +/** + * Loader for proof obligation arises by function operation contract. + * + * @author Alexander Weigl + * @version 1 (28.12.23) + */ +@NullMarked +public class FunctionOperationContractPOLoader implements ProofObligationLoader { + /** + * Instantiates a new proof obligation with the given settings. + * + * @param initConfig The already loaded {@link InitConfig}. + * @param properties The settings of the proof obligation to instantiate. + * @return The instantiated proof obligation. + * @throws IOException Occurred Exception. + */ + public IPersistablePO.LoadedPOContainer loadFrom(InitConfig initConfig, + Configuration properties) throws IOException { + String contractName = properties.getString("contract"); + int proofNum = 0; + String baseContractName; + int ind = -1; + for (String tag : FunctionalOperationContractPO.TRANSACTION_TAGS.values()) { + ind = contractName.indexOf("." + tag); + if (ind > 0) { + break; + } + proofNum++; + } + if (ind == -1) { + baseContractName = contractName; + proofNum = 0; + } else { + baseContractName = contractName.substring(0, ind); + } + final Contract contract = initConfig.getServices().getSpecificationRepository() + .getContractByName(baseContractName); + if (contract == null) { + throw new IllegalStateException("Contract not found: " + baseContractName); + } else { + ProofOblInput po; + boolean addUninterpretedPredicate = + AbstractOperationPO.isAddUninterpretedPredicate(properties); + boolean addSymbolicExecutionLabel = + AbstractOperationPO.isAddSymbolicExecutionLabel(properties); + if (addUninterpretedPredicate || addSymbolicExecutionLabel) { + if (!(contract instanceof FunctionalOperationContract)) { + throw new IOException( + "Found contract \"" + contract + "\" is no FunctionalOperationContract."); + } + po = new FunctionalOperationContractPO(initConfig, + (FunctionalOperationContract) contract, addUninterpretedPredicate, + addSymbolicExecutionLabel); + } else { + po = contract.createProofObl(initConfig); + } + return new IPersistablePO.LoadedPOContainer(po, proofNum); + } + } + + @Override + public boolean handles(String identifier) { + return FunctionalOperationContractPO.class.getName().equals(identifier) + || FunctionalOperationContractPO.class.getSimpleName().equals(identifier) + || getClass().getName().equals(identifier) + || getClass().getSimpleName().equals(identifier); + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/loader/FunctionalBlockContractPOLoader.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/loader/FunctionalBlockContractPOLoader.java new file mode 100644 index 00000000000..7a3ae748f9f --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/loader/FunctionalBlockContractPOLoader.java @@ -0,0 +1,64 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.proof.init.loader; + +import de.uka.ilkd.key.proof.init.*; +import de.uka.ilkd.key.settings.Configuration; +import de.uka.ilkd.key.speclang.Contract; + +import org.jspecify.annotations.NullMarked; + +/** + * Loader for proof obligation arises from functional block contracts. + * + * @author Alexander Weigl + * @version 1 (28.12.23) + */ +@NullMarked +public class FunctionalBlockContractPOLoader implements ProofObligationLoader { + /** + * Instantiates a new proof obligation with the given settings. + * + * @param initConfig The already load {@link InitConfig}. + * @param properties The settings of the proof obligation to instantiate. + * @return The instantiated proof obligation. + */ + @Override + public IPersistablePO.LoadedPOContainer loadFrom(InitConfig initConfig, + Configuration properties) { + String contractName = properties.getString("contract"); + int proofNum = 0; + String baseContractName; + int ind = -1; + for (String tag : FunctionalBlockContractPO.TRANSACTION_TAGS.values()) { + ind = contractName.indexOf("." + tag); + if (ind > 0) { + break; + } + proofNum++; + } + if (ind == -1) { + baseContractName = contractName; + proofNum = 0; + } else { + baseContractName = contractName.substring(0, ind); + } + final Contract contract = initConfig.getServices().getSpecificationRepository() + .getContractByName(baseContractName); + if (contract == null) { + throw new RuntimeException("Contract not found: " + baseContractName); + } else { + ProofOblInput po = contract.createProofObl(initConfig); + return new IPersistablePO.LoadedPOContainer(po, proofNum); + } + } + + @Override + public boolean handles(String identifier) { + return FunctionalBlockContractPO.class.getName().equals(identifier) + || FunctionalBlockContractPO.class.getSimpleName().equals(identifier) + || FunctionalBlockContractPOLoader.class.getSimpleName().equals(identifier) + || FunctionalBlockContractPOLoader.class.getName().equals(identifier); + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/loader/FunctionalLoopContractPOLoader.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/loader/FunctionalLoopContractPOLoader.java new file mode 100644 index 00000000000..54b50e49122 --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/loader/FunctionalLoopContractPOLoader.java @@ -0,0 +1,64 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.proof.init.loader; + +import de.uka.ilkd.key.proof.init.*; +import de.uka.ilkd.key.settings.Configuration; +import de.uka.ilkd.key.speclang.Contract; + +import org.jspecify.annotations.NullMarked; + +/** + * Loader for proof obligation arises from functional loop contracts. + * + * @author Alexander Weigl + * @version 1 (28.12.23) + */ +@NullMarked +public class FunctionalLoopContractPOLoader implements ProofObligationLoader { + /** + * Instantiates a new proof obligation with the given settings. + * + * @param initConfig The already load {@link InitConfig}. + * @param properties The settings of the proof obligation to instantiate. + * @return The instantiated proof obligation. + */ + @Override + public IPersistablePO.LoadedPOContainer loadFrom(InitConfig initConfig, + Configuration properties) { + String contractName = properties.getString("contract"); + int proofNum = 0; + String baseContractName; + int ind = -1; + for (String tag : FunctionalLoopContractPO.TRANSACTION_TAGS.values()) { + ind = contractName.indexOf("." + tag); + if (ind > 0) { + break; + } + proofNum++; + } + if (ind == -1) { + baseContractName = contractName; + proofNum = 0; + } else { + baseContractName = contractName.substring(0, ind); + } + final Contract contract = initConfig.getServices().getSpecificationRepository() + .getContractByName(baseContractName); + if (contract == null) { + throw new RuntimeException("Contract not found: " + baseContractName); + } else { + ProofOblInput po = contract.createProofObl(initConfig); + return new IPersistablePO.LoadedPOContainer(po, proofNum); + } + } + + @Override + public boolean handles(String identifier) { + return FunctionalLoopContractPO.class.getName().equals(identifier) + || FunctionalLoopContractPO.class.getSimpleName().equals(identifier) + || getClass().getName().equals(identifier) + || getClass().getSimpleName().equals(identifier); + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/loader/ProofObligationLoader.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/loader/ProofObligationLoader.java new file mode 100644 index 00000000000..1d2733e0be6 --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/loader/ProofObligationLoader.java @@ -0,0 +1,54 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.proof.init.loader; + +import de.uka.ilkd.key.proof.init.IPersistablePO; +import de.uka.ilkd.key.proof.init.InitConfig; +import de.uka.ilkd.key.settings.Configuration; + +import org.jspecify.annotations.NullMarked; + +/** + * Interface for writing the handling of the creation of proof obligations. + *

+ * A proof obligation load takes the environment loaded from a key file, and instantiates this into + * the + * initial sequent (called proof obligation). {@link ProofObligationLoader} are loaded with the help + * of the + * {@link java.util.ServiceLoader}, hence you need to register them into the {@code META-INF} + * folder. + *

+ * A {@link ProofObligationLoader} decides by itself whether it can handle a certain + * {@link de.uka.ilkd.key.proof.init.KeYUserProblemFile}, + * by given the {@code class} entry from the file's {@code \proofObligation} configuration object. + * + * @author Alexander Weigl + * @version 1 (28.12.23) + */ +@NullMarked +public interface ProofObligationLoader { + /** + * Builds the PO from the given environment and {@code \proofObligation} configuration. + * + * @param initConfig the key environment + * @param properties the {@code \proofObligation} configuration + * @return always a valid PO + * @throws Exception in case of an arbitrary exception, e.g., missing information + * {@code properties} + */ + IPersistablePO.LoadedPOContainer loadFrom(InitConfig initConfig, Configuration properties) + throws Exception; + + /** + * Receiving an identifier (traditionally the fully qualified class name), this method decides + * whether it can handle the current situation. + * Currently, the identifier corresponds to the {@code class} entry in the + * {@code \proofObligation} entry in the + * {@link de.uka.ilkd.key.proof.init.KeYUserProblemFile}. + * + * @param identifier non-null string + * @return true if this load handles this type of PO + */ + boolean handles(String identifier); +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/io/AbstractProblemLoader.java b/key.core/src/main/java/de/uka/ilkd/key/proof/io/AbstractProblemLoader.java index 8417e0fbbc3..84cdbaf5706 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/io/AbstractProblemLoader.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/io/AbstractProblemLoader.java @@ -3,14 +3,10 @@ * SPDX-License-Identifier: GPL-2.0-only */ package de.uka.ilkd.key.proof.io; -import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; import java.net.URI; -import java.nio.charset.StandardCharsets; import java.nio.file.*; import java.util.*; import java.util.function.Consumer; @@ -27,11 +23,13 @@ import de.uka.ilkd.key.proof.ProofAggregate; import de.uka.ilkd.key.proof.init.*; import de.uka.ilkd.key.proof.init.IPersistablePO.LoadedPOContainer; +import de.uka.ilkd.key.proof.init.loader.ProofObligationLoader; import de.uka.ilkd.key.proof.io.consistency.DiskFileRepo; import de.uka.ilkd.key.proof.io.consistency.FileRepo; import de.uka.ilkd.key.proof.io.consistency.SimpleFileRepo; import de.uka.ilkd.key.prover.impl.PerfScope; import de.uka.ilkd.key.rule.OneStepSimplifier; +import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.settings.ProofIndependentSettings; import de.uka.ilkd.key.speclang.Contract; import de.uka.ilkd.key.speclang.SLEnvInput; @@ -42,7 +40,6 @@ import org.key_project.util.collection.Pair; import org.key_project.util.java.IOUtil; -import org.key_project.util.reflection.ClassLoaderUtil; import org.antlr.runtime.MismatchedTokenException; import org.slf4j.Logger; @@ -255,7 +252,7 @@ protected void setProof(Proof proof) { * @throws IOException Occurred Exception. * @throws ProblemLoaderException Occurred Exception. */ - public final void load() throws ProofInputException, IOException, ProblemLoaderException { + public final void load() throws Exception { load(null); } @@ -271,12 +268,11 @@ public final void load() throws ProofInputException, IOException, ProblemLoaderE * @throws ProblemLoaderException Occurred Exception. */ public final void load(Consumer callbackProofLoaded) - throws ProofInputException, IOException, ProblemLoaderException { + throws Exception { control.loadingStarted(this); loadEnvironment(); - LoadedPOContainer poContainer = createProofObligationContainer(); ProofAggregate proofList = null; try { @@ -288,11 +284,6 @@ public final void load(Consumer callbackProofLoaded) proofList = createProof(poContainer); loadSelectedProof(poContainer, proofList, callbackProofLoaded); } - } catch (Throwable t) { - // Throw this exception; otherwise, it can for instance occur - // that "result" will be null (if replayProof(...) fails) and - // we get a NullPointerException that is hard to analyze. - throw t; } finally { control.loadingFinished(this, poContainer, proofList, result); } @@ -342,13 +333,10 @@ protected void selectAndLoadProof(ProblemLoaderControl control, InitConfig initC * @param poContainer the container created by {@link #createProofObligationContainer()}. * @param proofList the proof list containing the proof to load. * @param callbackProofLoaded optional callback, called before the proof is replayed - * @throws ProofInputException Occurred Exception. - * @throws ProblemLoaderException Occurred Exception. * @see AbstractProblemLoader#load() */ protected void loadSelectedProof(LoadedPOContainer poContainer, ProofAggregate proofList, - Consumer callbackProofLoaded) - throws ProofInputException, ProblemLoaderException { + Consumer callbackProofLoaded) { // try to replay first proof proof = proofList.getProof(poContainer.getProofNum()); @@ -383,9 +371,7 @@ protected ProblemLoaderException recoverParserErrorMessage(Exception e) { if (c0 instanceof org.antlr.runtime.RecognitionException re) { final org.antlr.runtime.Token occurrence = re.token; // may be null if (c0 instanceof org.antlr.runtime.MismatchedTokenException) { - if (c0 instanceof org.antlr.runtime.MissingTokenException) { - final org.antlr.runtime.MissingTokenException mte = - (org.antlr.runtime.MissingTokenException) c0; + if (c0 instanceof org.antlr.runtime.MissingTokenException mte) { // TODO: other commonly missed tokens final String readable = missedErrors.get(mte.expecting); final String token = readable == null ? "token id " + mte.expecting : readable; @@ -564,9 +550,10 @@ protected InitConfig createInitConfig() throws ProofInputException { * @return The {@link LoadedPOContainer} or {@code null} if not available. * @throws IOException Occurred Exception. */ - protected LoadedPOContainer createProofObligationContainer() throws IOException { + protected LoadedPOContainer createProofObligationContainer() throws Exception { final String chooseContract; - final String proofObligation; + final Configuration proofObligation; + if (envInput instanceof KeYFile keyFile) { chooseContract = keyFile.chooseContract(); proofObligation = keyFile.getProofObligation(); @@ -574,74 +561,68 @@ protected LoadedPOContainer createProofObligationContainer() throws IOException chooseContract = null; proofObligation = null; } + // Instantiate proof obligation if (envInput instanceof ProofOblInput && chooseContract == null && proofObligation == null) { return new LoadedPOContainer((ProofOblInput) envInput); - } else if (chooseContract != null && chooseContract.length() > 0) { - int proofNum = 0; - String baseContractName; - int ind = -1; - for (String tag : FunctionalOperationContractPO.TRANSACTION_TAGS.values()) { - ind = chooseContract.indexOf("." + tag); - if (ind > 0) { - break; - } - proofNum++; - } - if (ind == -1) { - baseContractName = chooseContract; - proofNum = 0; - } else { - baseContractName = chooseContract.substring(0, ind); - } - final Contract contract = initConfig.getServices().getSpecificationRepository() - .getContractByName(baseContractName); - if (contract == null) { - throw new RuntimeException("Contract not found: " + baseContractName); - } else { - return new LoadedPOContainer(contract.createProofObl(initConfig), proofNum); - } - } else if (proofObligation != null && proofObligation.length() > 0) { - // Load proof obligation settings - final Properties properties = new Properties(); - properties.load( - new ByteArrayInputStream(proofObligation.getBytes(StandardCharsets.UTF_8))); - properties.setProperty(IPersistablePO.PROPERTY_FILENAME, file.getAbsolutePath()); - if (poPropertiesToForce != null) { - properties.putAll(poPropertiesToForce); - } - String poClass = properties.getProperty(IPersistablePO.PROPERTY_CLASS); - if (poClass == null || poClass.isEmpty()) { - throw new IOException("Proof obligation class property \"" - + IPersistablePO.PROPERTY_CLASS + "\" is not defiend or empty."); + } else if (chooseContract != null && !chooseContract.isEmpty()) { + return loadByChosenContract(chooseContract); + } else if (proofObligation != null) { + return loadByProofObligation(proofObligation); + } else { + return null; + } + } + + private LoadedPOContainer loadByProofObligation(Configuration proofObligation) + throws Exception { + // Load proof obligation settings + proofObligation.set(IPersistablePO.PROPERTY_FILENAME, file.getAbsolutePath()); + + if (poPropertiesToForce != null) { + proofObligation.overwriteWith(proofObligation); + } + + String poClass = proofObligation.getString(IPersistablePO.PROPERTY_CLASS); + if (poClass == null || poClass.isEmpty()) { + throw new IOException("Proof obligation class property \"" + + IPersistablePO.PROPERTY_CLASS + "\" is not defiend or empty."); + } + ServiceLoader loader = + ServiceLoader.load(ProofObligationLoader.class); + for (ProofObligationLoader poloader : loader) { + if (poloader.handles(poClass)) { + return poloader.loadFrom(initConfig, proofObligation); } - try { - // Try to instantiate proof obligation by calling static method: public static - // LoadedPOContainer loadFrom(InitConfig initConfig, Properties properties) throws - // IOException - Class poClassInstance = ClassLoaderUtil.getClassforName(poClass); - Method loadMethod = - poClassInstance.getMethod("loadFrom", InitConfig.class, Properties.class); - return (LoadedPOContainer) loadMethod.invoke(null, initConfig, properties); - } catch (NoSuchMethodException | IllegalAccessException | IllegalArgumentException - | ClassNotFoundException e) { - throw new IOException( - "Can't call static factory method \"loadFrom\" on class \"" + poClass + "\".", - e); - } catch (InvocationTargetException e) { - // Try to unwrap the inner exception as good as possible - if (e.getCause() instanceof IOException) { - throw (IOException) e.getCause(); - } else if (e.getCause() instanceof RuntimeException) { - throw (RuntimeException) e.getCause(); - } else { - // Checked exception, just wrap it - throw new IOException(e); - } + } + throw new IllegalArgumentException( + "There is no builder that can build the PO for the id " + poClass); + } + + private LoadedPOContainer loadByChosenContract(String chooseContract) { + int proofNum = 0; + String baseContractName; + int ind = -1; + for (String tag : FunctionalOperationContractPO.TRANSACTION_TAGS.values()) { + ind = chooseContract.indexOf("." + tag); + if (ind > 0) { + break; } + proofNum++; + } + if (ind == -1) { + baseContractName = chooseContract; + proofNum = 0; } else { - return null; + baseContractName = chooseContract.substring(0, ind); + } + final Contract contract = initConfig.getServices().getSpecificationRepository() + .getContractByName(baseContractName); + if (contract == null) { + throw new RuntimeException("Contract not found: " + baseContractName); + } else { + return new LoadedPOContainer(contract.createProofObl(initConfig), proofNum); } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/io/KeYFile.java b/key.core/src/main/java/de/uka/ilkd/key/proof/io/KeYFile.java index 4ac93a95db9..63ebbb3a3f8 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/io/KeYFile.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/io/KeYFile.java @@ -28,6 +28,7 @@ import de.uka.ilkd.key.proof.io.consistency.FileRepo; import de.uka.ilkd.key.proof.mgt.SpecificationRepository; import de.uka.ilkd.key.rule.Taclet; +import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.settings.ProofSettings; import de.uka.ilkd.key.speclang.PositionedString; import de.uka.ilkd.key.util.ProgressMonitor; @@ -35,6 +36,7 @@ import org.key_project.util.collection.DefaultImmutableSet; import org.key_project.util.collection.ImmutableSet; +import org.key_project.util.collection.Immutables; import org.jspecify.annotations.NonNull; import org.jspecify.annotations.Nullable; @@ -60,10 +62,8 @@ public class KeYFile implements EnvInput { private final Profile profile; protected InitConfig initConfig; private KeyAst.File fileCtx = null; - @Nullable - private ProblemFinder problemFinder = null; - @Nullable - private ProblemInformation problemInformation = null; + private @Nullable ProblemFinder problemFinder = null; + private @Nullable ProblemInformation problemInformation = null; private Includes includes; /** @@ -251,9 +251,8 @@ public File readBootClassPath() { } - @NonNull @Override - public List readClassPath() { + public @NonNull List readClassPath() { @NonNull ProblemInformation pi = getProblemInformation(); String parentDirectory = file.file().getParent(); @@ -333,14 +332,13 @@ public ImmutableSet readContracts() { ContractsAndInvariantsFinder cinvs = new ContractsAndInvariantsFinder(initConfig.getServices(), initConfig.namespaces()); getParseContext().accept(cinvs); - specRepos.addContracts(ImmutableSet.fromCollection(cinvs.getContracts())); - specRepos.addClassInvariants(ImmutableSet.fromCollection(cinvs.getInvariants())); + specRepos.addContracts(Immutables.createSetFrom(cinvs.getContracts())); + specRepos.addClassInvariants(Immutables.createSetFrom(cinvs.getInvariants())); return DefaultImmutableSet.nil(); } - @NonNull - protected ProblemFinder getProblemFinder() { + protected @NonNull ProblemFinder getProblemFinder() { if (problemFinder == null) { problemFinder = new ProblemFinder(initConfig.getServices(), initConfig.namespaces()); getParseContext().accept(problemFinder); @@ -431,7 +429,7 @@ public String chooseContract() { return null; } - public String getProofObligation() { + public Configuration getProofObligation() { return null; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/io/OutputStreamProofSaver.java b/key.core/src/main/java/de/uka/ilkd/key/proof/io/OutputStreamProofSaver.java index 22fb1aba82c..9bfd785e9e4 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/io/OutputStreamProofSaver.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/io/OutputStreamProofSaver.java @@ -195,21 +195,16 @@ public void save(OutputStream out) throws IOException { ps.print(header); // \problem or \proofObligation - if (po instanceof IPersistablePO + if (po instanceof IPersistablePO ppo && (!(po instanceof AbstractInfFlowPO) || (!(po instanceof InfFlowCompositePO) && ((InfFlowProof) proof).getIFSymbols().isFreshContract()))) { - final Properties properties = new Properties(); - ((IPersistablePO) po).fillSaveProperties(properties); - try (StringWriter writer = new StringWriter()) { - properties.store(writer, "Proof Obligation Settings"); - ps.println( - "\\proofObligation \"" + escapeCharacters(writer.toString()) + "\";\n"); - } + var loadingConfig = ppo.createLoaderConfig(); + ps.println("\\proofObligation "); + loadingConfig.save(ps, "Proof-Obligation settings"); + ps.println("\n"); } else { if (po instanceof AbstractInfFlowPO && (po instanceof InfFlowCompositePO || !((InfFlowProof) proof).getIFSymbols().isFreshContract())) { - final Properties properties = new Properties(); - ((IPersistablePO) po).fillSaveProperties(properties); ps.print(((InfFlowProof) proof).printIFSymbols()); } final Sequent problemSeq = proof.root().sequent(); diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/join/JoinIsApplicable.java b/key.core/src/main/java/de/uka/ilkd/key/proof/join/JoinIsApplicable.java index 8cf5534c20c..2568f3fe8cd 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/join/JoinIsApplicable.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/join/JoinIsApplicable.java @@ -13,6 +13,8 @@ import de.uka.ilkd.key.logic.op.UpdateApplication; import de.uka.ilkd.key.proof.Goal; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * Methods for checking the applicability of a join for a given selection and thereby computing the * prospective join partners. @@ -89,13 +91,13 @@ private ProspectivePartner areProspectivePartners(Goal g1, PosInOccurrence pio, Term formula = sf.formula(); Term update2 = tb.skip(); if (formula.op() instanceof UpdateApplication - && !formula.equalsModRenaming(referenceFormula)) { + && !formula.equalsModProperty(referenceFormula, RENAMING_PROPERTY)) { update2 = formula.sub(0);// don't change the order of this and // the following line. formula = formula.sub(1); } - if (formula.equalsModRenaming(referenceFormula)) { + if (formula.equalsModProperty(referenceFormula, RENAMING_PROPERTY)) { return new ProspectivePartner(referenceFormula, g1.node(), pio.sequentFormula(), update1, g2.node(), sf, update2); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/mgt/RuleJustificationInfo.java b/key.core/src/main/java/de/uka/ilkd/key/proof/mgt/RuleJustificationInfo.java index 25420b0c14f..5ee80bc9470 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/mgt/RuleJustificationInfo.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/mgt/RuleJustificationInfo.java @@ -12,33 +12,35 @@ import de.uka.ilkd.key.rule.RuleApp; import de.uka.ilkd.key.rule.RuleKey; +import org.jspecify.annotations.Nullable; + public class RuleJustificationInfo { - private final Map rule2justif = new LinkedHashMap<>(); + private final Map rule2Justification = new LinkedHashMap<>(); public void addJustification(Rule r, RuleJustification j) { final RuleKey ruleKey = new RuleKey(r); - if (rule2justif.containsKey(ruleKey)) { + if (rule2Justification.containsKey(ruleKey)) { // TODO: avoid double registration of certain class axioms and remove then the below // check so that // always an exception will be thrown - for (RuleKey key : rule2justif.keySet()) { + for (RuleKey key : rule2Justification.keySet()) { if (key.equals(ruleKey) && r != key.r) { throw new IllegalArgumentException( "A rule named " + r.name() + "has already been registered."); } } } else { - rule2justif.put(ruleKey, j); + rule2Justification.put(ruleKey, j); } } - public RuleJustification getJustification(Rule r) { - return rule2justif.get(new RuleKey(r)); + public @Nullable RuleJustification getJustification(Rule r) { + return rule2Justification.get(new RuleKey(r)); } - public RuleJustification getJustification(RuleApp r, TermServices services) { + public @Nullable RuleJustification getJustification(RuleApp r, TermServices services) { RuleJustification just = getJustification(r.rule()); if (just instanceof ComplexRuleJustification) { return ((ComplexRuleJustification) just).getSpecificJustification(r, services); @@ -51,12 +53,12 @@ public void removeJustificationFor(Rule rule) { if (InfFlowContractAppTaclet.hasType(rule)) { InfFlowContractAppTaclet.unregister(rule.name()); } - rule2justif.remove(new RuleKey(rule)); + rule2Justification.remove(new RuleKey(rule)); } public RuleJustificationInfo copy() { RuleJustificationInfo info = new RuleJustificationInfo(); - info.rule2justif.putAll(rule2justif); + info.rule2Justification.putAll(rule2Justification); return info; } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/mgt/SpecificationRepository.java b/key.core/src/main/java/de/uka/ilkd/key/proof/mgt/SpecificationRepository.java index 59fbbf5b293..445192838d1 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/mgt/SpecificationRepository.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/mgt/SpecificationRepository.java @@ -10,6 +10,7 @@ import de.uka.ilkd.key.java.JavaInfo; import de.uka.ilkd.key.java.Services; +import de.uka.ilkd.key.java.Statement; import de.uka.ilkd.key.java.StatementBlock; import de.uka.ilkd.key.java.abstraction.KeYJavaType; import de.uka.ilkd.key.java.declaration.ClassDeclaration; @@ -19,6 +20,7 @@ import de.uka.ilkd.key.java.statement.MergePointStatement; import de.uka.ilkd.key.logic.*; import de.uka.ilkd.key.logic.op.*; +import de.uka.ilkd.key.proof.OpReplacer; import de.uka.ilkd.key.proof.Proof; import de.uka.ilkd.key.proof.init.ContractPO; import de.uka.ilkd.key.proof.init.ProofOblInput; @@ -29,6 +31,7 @@ import de.uka.ilkd.key.rule.tacletbuilder.RewriteTacletGoalTemplate; import de.uka.ilkd.key.speclang.*; import de.uka.ilkd.key.speclang.jml.JMLInfoExtractor; +import de.uka.ilkd.key.speclang.jml.translation.ProgramVariableCollection; import de.uka.ilkd.key.speclang.translation.SLTranslationException; import de.uka.ilkd.key.util.MiscTools; import de.uka.ilkd.key.util.Triple; @@ -41,6 +44,7 @@ import org.key_project.util.collection.ImmutableSet; import org.key_project.util.collection.Pair; +import org.jspecify.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -782,7 +786,7 @@ public ImmutableSet getOperationContracts(KeYJavaTy * null. */ public Contract getContractByName(String name) { - if (name == null || name.length() == 0) { + if (name == null || name.isEmpty()) { return null; } String[] baseNames = name.split(CONTRACT_COMBINATION_MARKER); @@ -881,7 +885,7 @@ public void addContracts(ImmutableSet toAdd) { */ public FunctionalOperationContract combineOperationContracts( ImmutableSet toCombine) { - assert toCombine != null && toCombine.size() > 0; + assert toCombine != null && !toCombine.isEmpty(); for (Contract contract : toCombine) { assert !contract.getName().contains(CONTRACT_COMBINATION_MARKER) : "Please combine only atomic contracts!"; @@ -1427,7 +1431,7 @@ public void removeProof(Proof proof) { ImmutableSet sop = entry.getValue(); if (sop.contains(proof)) { sop = sop.remove(proof); - if (sop.size() == 0) { + if (sop.isEmpty()) { proofs.remove(entry.getKey()); } else { proofs.put(entry.getKey(), sop); @@ -1546,7 +1550,6 @@ public ImmutableSet getMergeContracts(MergePointStatement mps) { * * @param block the given block. * @param modalityKind the given modality. - * @return */ public ImmutableSet getBlockContracts(final StatementBlock block, final Modality.JavaModalityKind modalityKind) { @@ -1852,4 +1855,93 @@ public ImmutableSet getAllWdChecks() { } return result; } + + + // region Support SetStatement and JmlAssert + private final Map statementMap = new IdentityHashMap<>(); + + public @Nullable JmlStatementSpec getStatementSpec(Statement statement) { + return statementMap.get(statement); + } + + public JmlStatementSpec addStatementSpec(Statement statement, JmlStatementSpec spec) { + return statementMap.put(statement, spec); + } + + /** + * This record represents information which are necessary to evaluate JML statements. + * JML statements need to maintain the current variable set as well as the updated information for the KeY terms + * they describe. This record represents this information, i.e., the scope of variables, and a list of terms, in + * an immutable fasion. Updates require to create instances. + *

+ * Note: There is a immutability hole in {@link ProgramVariableCollection} due to mutable {@link Map} + *

+ * For {@link de.uka.ilkd.key.java.statement.JmlAssert} this is the formula behind the assert. + * For {@link de.uka.ilkd.key.java.statement.SetStatement} this is the target and the value terms. + * You may want to use the index constant for accessing them: + * {@link de.uka.ilkd.key.java.statement.SetStatement#INDEX_TARGET}, + * {@link de.uka.ilkd.key.java.statement.SetStatement#INDEX_VALUE}, + * {@link de.uka.ilkd.key.java.statement.JmlAssert#INDEX_CONDITION} + * + * @param vars + * @param terms + */ + public record JmlStatementSpec( + ProgramVariableCollection vars, + ImmutableList terms + ){ + /** + * Retrieve a term + * @param index a index to the list of {@code terms}. + * @return the term at {@code index} in the {@code terms} list + * @throws IndexOutOfBoundsException if the given {@code index} is negative or {@code >= terms().size()} + */ + public Term term(int index) { + return terms.get(index); + } + + /** + * Retrieve a term with a update to the given {@code self} term. + * @param services the corresponding services instance + * @param self a term which describes the {@code self} object aka. this on the current sequence + * @param index the index of the term in {@code terms()} + * @return a term updated with {@code self} and the {@code vars()}. + */ + public Term getTerm(Services services, Term self, int index) { + var term = term(index); + + final TermFactory termFactory = services.getTermFactory(); + final TermReplacementMap replacementMap = new TermReplacementMap(termFactory); + if (self != null) { + replacementMap.replaceSelf(vars().selfVar, self, services); + } + replacementMap.replaceRemembranceLocalVariables(vars().atPreVars, vars().atPres, services); + replacementMap.replaceRemembranceLocalVariables(vars().atBeforeVars, vars().atBefores, services); + final OpReplacer replacer = new OpReplacer(replacementMap, termFactory, services.getProof()); + return replacer.replace(term); + } + + /** + * Updates the variables given the new {@code atPres} (variable in pre state) map and the services. + * The update is applied directly and an updated specification is returned. You need to add + * the updated spec to the statement in the {@link SpecificationRepository} by yourself. + * + * @param atPres a non-null map of a map of program variable to a term which describes + * the value of this variable in the pre-state. + * @param services the corresponding services object + * @return a fresh {@link JmlStatementSpec} instance, non-registered. + */ + public JmlStatementSpec updateVariables(Map atPres, Services services) { + var termFactory = services.getTermFactory(); + var replacementMap = new TermReplacementMap(termFactory); + replacementMap.replaceRemembranceLocalVariables(vars.atPreVars, atPres, services); + var replacer = new OpReplacer(replacementMap, termFactory, services.getProof()); + var newTerms = terms().map(replacer::replace); + return new JmlStatementSpec( + new ProgramVariableCollection(vars.selfVar, vars.paramVars, vars.resultVar, vars.excVar, + vars.atPreVars, atPres, vars.atBeforeVars, vars.atBefores), + newTerms); + } + } + // endregion } diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/mgt/package-info.java b/key.core/src/main/java/de/uka/ilkd/key/proof/mgt/package-info.java index 400e8b62266..4cb5be62e48 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/mgt/package-info.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/mgt/package-info.java @@ -3,4 +3,7 @@ * example, proof management ensures that contract applications cannot lead to * unsound cyclic dependencies between proofs. */ +@NullMarked package de.uka.ilkd.key.proof.mgt; + +import org.jspecify.annotations.NullMarked; diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/AbstractLoopInvariantRule.java b/key.core/src/main/java/de/uka/ilkd/key/rule/AbstractLoopInvariantRule.java index fcf784c3e8f..7e64de5de4d 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/AbstractLoopInvariantRule.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/AbstractLoopInvariantRule.java @@ -29,6 +29,8 @@ import org.key_project.util.collection.ImmutableSet; import org.key_project.util.collection.Pair; +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; + /** * An abstract super class for loop invariant rules. Extending rules should usually call * {@link #doPreparations(Goal, Services, RuleApp)} directly at the beginning of the @@ -441,7 +443,7 @@ protected static AnonUpdateData createAnonUpdate(LocationVariable heap, Term mod // check for strictly pure loops final Term anonUpdate; - if (tb.strictlyNothing().equalsModIrrelevantTermLabels(mod)) { + if (tb.strictlyNothing().equalsModProperty(mod, IRRELEVANT_TERM_LABELS_PROPERTY)) { anonUpdate = tb.skip(); } else { anonUpdate = tb.anonUpd(heap, mod, anonHeapTerm); @@ -505,14 +507,14 @@ protected static AdditionalHeapTerms createAdditionalHeapTerms(Services services final Term freeMod = freeMods.get(heap); final Term strictlyNothing = tb.strictlyNothing(); final Term currentFrame; - if (strictlyNothing.equalsModIrrelevantTermLabels(mod)) { - if (strictlyNothing.equalsModIrrelevantTermLabels(freeMod)) { + if (strictlyNothing.equalsModProperty(mod, IRRELEVANT_TERM_LABELS_PROPERTY)) { + if (strictlyNothing.equalsModProperty(freeMod, IRRELEVANT_TERM_LABELS_PROPERTY)) { currentFrame = tb.frameStrictlyEmpty(tb.var(heap), heapToBeforeLoop.get(heap)); } else { currentFrame = tb.frame(tb.var(heap), heapToBeforeLoop.get(heap), freeMod); } } else { - if (strictlyNothing.equalsModIrrelevantTermLabels(freeMod)) { + if (strictlyNothing.equalsModProperty(freeMod, IRRELEVANT_TERM_LABELS_PROPERTY)) { currentFrame = tb.frame(tb.var(heap), heapToBeforeLoop.get(heap), mod); } else { currentFrame = tb.frame( @@ -546,7 +548,7 @@ protected record AdditionalHeapTerms(Term anonUpdate, Term wellFormedAnon, Term /** * A container for an instantiation of this {@link LoopScopeInvariantRule} application; contains * the update, the program with post condition, the {@link While} loop the - * {@link LoopScopeInvariantRule} should be applied to, the {@link LoopSpecification}, the the + * {@link LoopScopeInvariantRule} should be applied to, the {@link LoopSpecification}, the * self {@link Term}. * * @param innermostExecutionContext TODO Removed this field; was however used in old invariant rule. Could be needed for the information flow validity goal. diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/AuxiliaryContractBuilders.java b/key.core/src/main/java/de/uka/ilkd/key/rule/AuxiliaryContractBuilders.java index 880f6ee6274..7c38c3afeb9 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/AuxiliaryContractBuilders.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/AuxiliaryContractBuilders.java @@ -47,6 +47,8 @@ import org.key_project.util.collection.ImmutableSLList; import org.key_project.util.collection.ImmutableSet; +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; + /** * This contains various builders used in building formulae and terms for block and loop contracts. * @@ -651,7 +653,8 @@ public Term buildAnonOutUpdate(final Set vars, .entrySet()) { Term anonymisationUpdate = skip(); final Term modifiesClause = modifiesClauses.get(anonymisationHeap.getKey()); - if (!modifiesClause.equalsModIrrelevantTermLabels(strictlyNothing())) { + if (!modifiesClause.equalsModProperty(strictlyNothing(), + IRRELEVANT_TERM_LABELS_PROPERTY)) { anonymisationUpdate = anonUpd(anonymisationHeap.getKey(), modifiesClause, services.getTermBuilder().label( services.getTermBuilder().func(anonymisationHeap.getValue()), diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/BlockContractExternalRule.java b/key.core/src/main/java/de/uka/ilkd/key/rule/BlockContractExternalRule.java index c321a68bf12..0d330c7618f 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/BlockContractExternalRule.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/BlockContractExternalRule.java @@ -187,9 +187,8 @@ public boolean isApplicable(final Goal goal, final PosInOccurrence occurrence) { return !InfFlowCheckInfo.isInfFlow(goal) && super.isApplicable(goal, occurrence); } - @NonNull @Override - public ImmutableList apply(final Goal goal, final Services services, + public @NonNull ImmutableList apply(final Goal goal, final Services services, final RuleApp ruleApp) throws RuleAbortException { assert ruleApp instanceof BlockContractExternalBuiltInRuleApp; BlockContractExternalBuiltInRuleApp application = diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/BlockContractInternalRule.java b/key.core/src/main/java/de/uka/ilkd/key/rule/BlockContractInternalRule.java index c69aa6b83a7..816756e368a 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/BlockContractInternalRule.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/BlockContractInternalRule.java @@ -214,9 +214,8 @@ public BlockContractInternalBuiltInRuleApp createApp(final PosInOccurrence occur return new BlockContractInternalBuiltInRuleApp(this, occurrence); } - @NonNull @Override - public ImmutableList apply(final Goal goal, final Services services, + public @NonNull ImmutableList apply(final Goal goal, final Services services, final RuleApp ruleApp) throws RuleAbortException { assert ruleApp instanceof BlockContractInternalBuiltInRuleApp; BlockContractInternalBuiltInRuleApp application = diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/BuiltInRule.java b/key.core/src/main/java/de/uka/ilkd/key/rule/BuiltInRule.java index b4186dee23e..fbdcf2e1432 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/BuiltInRule.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/BuiltInRule.java @@ -26,9 +26,8 @@ public interface BuiltInRule extends Rule { IBuiltInRuleApp createApp(PosInOccurrence pos, TermServices services); - @Nullable @Override - default String getOrigin() { + default @Nullable String getOrigin() { return "defined in Java: " + getClass().getName(); } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/JmlAssertRule.java b/key.core/src/main/java/de/uka/ilkd/key/rule/JmlAssertRule.java index 18731a62e09..87b9131b154 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/JmlAssertRule.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/JmlAssertRule.java @@ -10,12 +10,8 @@ import de.uka.ilkd.key.java.SourceElement; import de.uka.ilkd.key.java.statement.JmlAssert; import de.uka.ilkd.key.java.statement.MethodFrame; -import de.uka.ilkd.key.logic.JavaBlock; -import de.uka.ilkd.key.logic.PosInOccurrence; -import de.uka.ilkd.key.logic.SequentFormula; -import de.uka.ilkd.key.logic.Term; -import de.uka.ilkd.key.logic.TermBuilder; -import de.uka.ilkd.key.logic.TermServices; +import de.uka.ilkd.key.logic.*; +import de.uka.ilkd.key.logic.label.OriginTermLabel; import de.uka.ilkd.key.logic.op.Modality; import de.uka.ilkd.key.logic.op.Transformer; import de.uka.ilkd.key.logic.op.UpdateApplication; @@ -30,7 +26,6 @@ /** * A rule for JML assert/assume statements. - * * This implements the rules as: * *

@@ -106,9 +101,8 @@ public IBuiltInRuleApp createApp(PosInOccurrence occurrence, TermServices servic return new JmlAssertBuiltInRuleApp(this, occurrence); } - @NonNull @Override - public ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) + public @NonNull ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) throws RuleAbortException { if (!(ruleApp instanceof JmlAssertBuiltInRuleApp)) { throw new IllegalArgumentException("can only apply JmlAssertBuiltInRuleApp"); @@ -132,7 +126,19 @@ public ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) final MethodFrame frame = JavaTools.getInnermostMethodFrame(target.javaBlock(), services); final Term self = MiscTools.getSelfTerm(frame, services); - final Term condition = jmlAssert.getCond(self, services); + final var spec = services.getSpecificationRepository().getStatementSpec(jmlAssert); + + if (spec == null) { + throw new RuleAbortException( + "No specification found for JmlAssert. Internal Error. Not your fault"); + } + + Term condition = + tb.convertToFormula(spec.getTerm(services, self, JmlAssert.INDEX_CONDITION)); + + condition = tb.addLabel(condition, new OriginTermLabel.Origin( + kind == Kind.ASSERT ? OriginTermLabel.SpecType.ASSERT + : OriginTermLabel.SpecType.ASSUME)); final ImmutableList result; if (kind == Kind.ASSERT) { diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/LoopApplyHeadRule.java b/key.core/src/main/java/de/uka/ilkd/key/rule/LoopApplyHeadRule.java index 790098ebd3f..c2ed88a8cde 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/LoopApplyHeadRule.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/LoopApplyHeadRule.java @@ -62,9 +62,8 @@ public class LoopApplyHeadRule implements BuiltInRule { */ public static final Name NAME = new Name("Loop Apply Head"); - @NonNull @Override - public ImmutableList apply(Goal goal, Services services, RuleApp application) + public @NonNull ImmutableList apply(Goal goal, Services services, RuleApp application) throws RuleAbortException { assert application instanceof LoopApplyHeadBuiltInRuleApp; LoopApplyHeadBuiltInRuleApp ruleApp = (LoopApplyHeadBuiltInRuleApp) application; diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/LoopContractExternalRule.java b/key.core/src/main/java/de/uka/ilkd/key/rule/LoopContractExternalRule.java index 1501505a052..7cc3a7618fd 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/LoopContractExternalRule.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/LoopContractExternalRule.java @@ -210,9 +210,8 @@ public boolean isApplicable(final Goal goal, final PosInOccurrence occurrence) { } } - @NonNull @Override - public ImmutableList apply(final Goal goal, final Services services, + public @NonNull ImmutableList apply(final Goal goal, final Services services, final RuleApp ruleApp) throws RuleAbortException { assert ruleApp instanceof LoopContractExternalBuiltInRuleApp; LoopContractExternalBuiltInRuleApp application = diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/LoopContractInternalRule.java b/key.core/src/main/java/de/uka/ilkd/key/rule/LoopContractInternalRule.java index 91fc901b815..b18c4c699e9 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/LoopContractInternalRule.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/LoopContractInternalRule.java @@ -258,9 +258,8 @@ public LoopContractInternalBuiltInRuleApp createApp(final PosInOccurrence occurr return new LoopContractInternalBuiltInRuleApp(this, occurrence); } - @NonNull @Override - public ImmutableList apply(final Goal goal, final Services services, + public @NonNull ImmutableList apply(final Goal goal, final Services services, final RuleApp ruleApp) throws RuleAbortException { assert ruleApp instanceof LoopContractInternalBuiltInRuleApp; LoopContractInternalBuiltInRuleApp application = diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/LoopScopeInvariantRule.java b/key.core/src/main/java/de/uka/ilkd/key/rule/LoopScopeInvariantRule.java index 3dc8ef99449..3ae2aaed6cb 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/LoopScopeInvariantRule.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/LoopScopeInvariantRule.java @@ -139,9 +139,8 @@ public boolean isApplicable(Goal goal, PosInOccurrence pio) { && !(kind.transaction()); } - @NonNull @Override - public ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) + public @NonNull ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) throws RuleAbortException { // Initial assertions assert ruleApp instanceof LoopInvariantBuiltInRuleApp; diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/ObserverToUpdateRule.java b/key.core/src/main/java/de/uka/ilkd/key/rule/ObserverToUpdateRule.java index 0dfb5a9c276..cc891e61ce6 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/ObserverToUpdateRule.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/ObserverToUpdateRule.java @@ -150,9 +150,8 @@ public boolean isApplicable(Goal goal, PosInOccurrence pio) { return true; } - @NonNull @Override - public ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) { + public @NonNull ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) { Union inst = instantiate(ruleApp.posInOccurrence().subTerm(), services); assert inst != null : "If isApplicable has been checked, this must not be null"; diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/OneStepSimplifier.java b/key.core/src/main/java/de/uka/ilkd/key/rule/OneStepSimplifier.java index 75628fb43cc..feec9a03cae 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/OneStepSimplifier.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/OneStepSimplifier.java @@ -46,6 +46,8 @@ import org.jspecify.annotations.NonNull; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + public final class OneStepSimplifier implements BuiltInRule { @@ -574,9 +576,9 @@ public boolean isApplicable(Goal goal, PosInOccurrence pio) { null); } - @NonNull @Override - public synchronized ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) { + public synchronized @NonNull ImmutableList apply(Goal goal, Services services, + RuleApp ruleApp) { assert ruleApp instanceof OneStepSimplifierRuleApp : "The rule app must be suitable for OSS"; @@ -747,8 +749,9 @@ public boolean equals(Object obj) { obj = ((TermReplacementKey) obj).term; } if (obj instanceof Term t) { - return term.equalsModRenaming(t); // Ignore naming and term labels in the way a - // taclet rule does. + return term.equalsModProperty(t, RENAMING_PROPERTY); // Ignore naming and term + // labels in the way a + // taclet rule does. } else { return false; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/QueryExpand.java b/key.core/src/main/java/de/uka/ilkd/key/rule/QueryExpand.java index 589667bdefa..492c155c269 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/QueryExpand.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/QueryExpand.java @@ -59,10 +59,8 @@ public class QueryExpand implements BuiltInRule { */ private final WeakHashMap timeOfTerm = new WeakHashMap<>(DEFAULT_MAP_SIZE); - - @NonNull @Override - public ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) { + public @NonNull ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) { final PosInOccurrence pio = ruleApp.posInOccurrence(); final Term query = pio.subTerm(); diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/RuleApp.java b/key.core/src/main/java/de/uka/ilkd/key/rule/RuleApp.java index 646e10b2547..8c505c74360 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/RuleApp.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/RuleApp.java @@ -3,7 +3,6 @@ * SPDX-License-Identifier: GPL-2.0-only */ package de.uka.ilkd.key.rule; - import de.uka.ilkd.key.java.Services; import de.uka.ilkd.key.logic.PosInOccurrence; import de.uka.ilkd.key.proof.Goal; diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/SetStatementBuiltInRuleApp.java b/key.core/src/main/java/de/uka/ilkd/key/rule/SetStatementBuiltInRuleApp.java new file mode 100644 index 00000000000..a836484f684 --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/SetStatementBuiltInRuleApp.java @@ -0,0 +1,49 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.rule; + +import java.util.Objects; + +import de.uka.ilkd.key.logic.PosInOccurrence; +import de.uka.ilkd.key.proof.Goal; + +import org.key_project.util.collection.ImmutableList; + +/** + * The rule application for {@link de.uka.ilkd.key.java.statement.SetStatement} + * + * @author Julian Wiesler + */ +public class SetStatementBuiltInRuleApp extends AbstractBuiltInRuleApp { + /** + * @param rule the rule being applied + * @param occurrence the position at which the rule is applied + */ + public SetStatementBuiltInRuleApp(BuiltInRule rule, PosInOccurrence occurrence) { + super(rule, Objects.requireNonNull(occurrence, "rule application needs a position"), null); + if (!(rule instanceof SetStatementRule)) { + throw new IllegalArgumentException(String.format( + "can only create an application for SetStatementRule, not for %s", rule)); + } + } + + @Override + public SetStatementBuiltInRuleApp replacePos(PosInOccurrence newPos) { + return new SetStatementBuiltInRuleApp(rule(), newPos); + } + + @Override + public IBuiltInRuleApp setIfInsts(ImmutableList ifInsts) { + // XXX: This is overridden in all subclasses to allow making ifInsts final + // when all usages of setIfInsts are corrected to use the result. + // Then a new instance has to be returned here. + setMutable(ifInsts); + return this; + } + + @Override + public AbstractBuiltInRuleApp tryToInstantiate(Goal goal) { + return this; + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/SetStatementRule.java b/key.core/src/main/java/de/uka/ilkd/key/rule/SetStatementRule.java new file mode 100644 index 00000000000..6e29239f3eb --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/SetStatementRule.java @@ -0,0 +1,134 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.rule; + +import java.util.Optional; + +import de.uka.ilkd.key.java.JavaTools; +import de.uka.ilkd.key.java.Services; +import de.uka.ilkd.key.java.SourceElement; +import de.uka.ilkd.key.java.statement.MethodFrame; +import de.uka.ilkd.key.java.statement.SetStatement; +import de.uka.ilkd.key.logic.*; +import de.uka.ilkd.key.logic.op.Modality; +import de.uka.ilkd.key.logic.op.Transformer; +import de.uka.ilkd.key.logic.op.UpdateApplication; +import de.uka.ilkd.key.proof.Goal; +import de.uka.ilkd.key.util.MiscTools; + +import org.key_project.logic.Name; +import org.key_project.util.collection.ImmutableList; + +import org.jspecify.annotations.NonNull; + +/** + * A rule for set statements. This unwraps the contained CopyAssignment + * + * @author Julian Wiesler + */ +public final class SetStatementRule implements BuiltInRule { + + /** + * The instance + */ + public static final SetStatementRule INSTANCE = new SetStatementRule(); + /** + * The name of this rule + */ + private static final Name name = new Name("Set Statement"); + + private SetStatementRule() { + // no statements + } + + @Override + public boolean isApplicable(Goal goal, PosInOccurrence occurrence) { + if (AbstractAuxiliaryContractRule.occursNotAtTopLevelInSuccedent(occurrence)) { + return false; + } + // abort if inside of transformer + if (Transformer.inTransformer(occurrence)) { + return false; + } + + Term target = occurrence.subTerm(); + if (target.op() instanceof UpdateApplication) { + target = UpdateApplication.getTarget(target); + } + final SourceElement activeStatement = JavaTools.getActiveStatement(target.javaBlock()); + return activeStatement instanceof SetStatement; + } + + @Override + public boolean isApplicableOnSubTerms() { + return false; + } + + @Override + public IBuiltInRuleApp createApp(PosInOccurrence occurrence, TermServices services) { + return new SetStatementBuiltInRuleApp(this, occurrence); + } + + @Override + public @NonNull ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) + throws RuleAbortException { + if (!(ruleApp instanceof SetStatementBuiltInRuleApp)) { + throw new IllegalArgumentException("can only apply SetStatementBuiltInRuleApp"); + } + + final TermBuilder tb = services.getTermBuilder(); + final PosInOccurrence occurrence = ruleApp.posInOccurrence(); + final Term formula = occurrence.subTerm(); + assert formula.op() instanceof UpdateApplication + : "Currently, this can only be applied if there is an update application in front of the modality"; + + Term update = UpdateApplication.getUpdate(formula); + Term target = UpdateApplication.getTarget(formula); + + SetStatement setStatement = + Optional.ofNullable(JavaTools.getActiveStatement(target.javaBlock())) + .filter(SetStatement.class::isInstance).map(SetStatement.class::cast) + .orElseThrow(() -> new RuleAbortException("not a JML set statement.")); + + final MethodFrame frame = JavaTools.getInnermostMethodFrame(target.javaBlock(), services); + final Term self = MiscTools.getSelfTerm(frame, services); + + var spec = services.getSpecificationRepository().getStatementSpec(setStatement); + + if (spec == null) { + throw new RuleAbortException( + "No specification for the set statement found in the specification repository."); + } + + var targetTerm = spec.getTerm(services, self, SetStatement.INDEX_TARGET); + var valueTerm = spec.getTerm(services, self, SetStatement.INDEX_VALUE); + + Term newUpdate = tb.elementary(targetTerm, valueTerm); + + JavaBlock javaBlock = JavaTools.removeActiveStatement(target.javaBlock(), services); + + Term term = + tb.prog(((Modality) target.op()).kind(), javaBlock, target.sub(0), target.getLabels()); + Term newTerm = tb.apply(update, tb.apply(newUpdate, term)); + + ImmutableList result = goal.split(1); + result.head().changeFormula(new SequentFormula(newTerm), occurrence); + return result; + } + + @Override + public Name name() { + return name; + } + + @Override + public String displayName() { + return name.toString(); + } + + @Override + public String toString() { + return name.toString(); + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/Taclet.java b/key.core/src/main/java/de/uka/ilkd/key/rule/Taclet.java index d930c46b70f..5f61d57f92b 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/Taclet.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/Taclet.java @@ -494,11 +494,12 @@ public boolean equalsModProofIrrelevancy(Object o) { } else { ImmutableList if1 = ifSequent.asList(); ImmutableList if2 = t2.ifSequent.asList(); - while (if1.head() != null && if1.head().equalsModProofIrrelevancy(if2.head())) { + while (!if1.isEmpty() && !if2.isEmpty() + && if1.head().equalsModProofIrrelevancy(if2.head())) { if1 = if1.tail(); if2 = if2.tail(); } - if (if1.head() != null || if2.head() != null) { + if (!if1.isEmpty() || !if2.isEmpty()) { return false; } } @@ -952,9 +953,8 @@ public enum TacletOperation { * close-goal-taclet ( this.closeGoal () ), the first goal of the return list is the * goal that should be closed (with the constraint this taclet is applied under). */ - @NonNull @Override - public ImmutableList apply(Goal goal, Services services, RuleApp tacletApp) { + public @NonNull ImmutableList apply(Goal goal, Services services, RuleApp tacletApp) { return getExecutor().apply(goal, services, tacletApp); } @@ -974,8 +974,7 @@ public TacletExecutor getExecutor() { private @Nullable String origin; @Override - @Nullable - public String getOrigin() { + public @Nullable String getOrigin() { return origin; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/TacletApp.java b/key.core/src/main/java/de/uka/ilkd/key/rule/TacletApp.java index 5735708a613..e55cfc11101 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/TacletApp.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/TacletApp.java @@ -576,8 +576,7 @@ public final TacletApp tryToInstantiateAsMuchAsPossible(Services services) { /** * @return A TacletApp with this.sufficientlyComplete() or null */ - @Nullable - public final TacletApp tryToInstantiate(Services services) { + public final @Nullable TacletApp tryToInstantiate(Services services) { /* * TODO (DS, 2019-02-22): It should be possible to unify this with * tryToInstantiateAsMuchAsPossible: Apply that method, check whether the result is diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/UseDependencyContractRule.java b/key.core/src/main/java/de/uka/ilkd/key/rule/UseDependencyContractRule.java index 1bb114cb3c0..20c4103252c 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/UseDependencyContractRule.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/UseDependencyContractRule.java @@ -32,6 +32,8 @@ import org.jspecify.annotations.NonNull; +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; + public final class UseDependencyContractRule implements BuiltInRule { @@ -208,7 +210,7 @@ public static boolean isBaseOcc(Term focus, Term candidate) { return false; } for (int i = 1, n = candidate.arity(); i < n; i++) { - if (!(candidate.sub(i).equalsModIrrelevantTermLabels(focus.sub(i)) + if (!(candidate.sub(i).equalsModProperty(focus.sub(i), IRRELEVANT_TERM_LABELS_PROPERTY) || candidate.sub(i).op() instanceof LogicVariable)) { return false; } @@ -371,10 +373,8 @@ public boolean isApplicable(Goal goal, PosInOccurrence pio) { return goal.proof().mgt().isContractApplicable(contracts.iterator().next()); } - - @NonNull @Override - public ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) { + public @NonNull ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) { // collect information final LocSetLDT locSetLDT = services.getTypeConverter().getLocSetLDT(); final PosInOccurrence pio = ruleApp.posInOccurrence(); diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/UseOperationContractRule.java b/key.core/src/main/java/de/uka/ilkd/key/rule/UseOperationContractRule.java index f521d620069..ddad13b73f7 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/UseOperationContractRule.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/UseOperationContractRule.java @@ -552,9 +552,8 @@ public boolean isApplicable(Goal goal, PosInOccurrence pio) { return false; } - @NonNull @Override - public ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) { + public @NonNull ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) { final TermLabelState termLabelState = new TermLabelState(); // get instantiation final Instantiation inst = instantiate(ruleApp.posInOccurrence().subTerm(), services); diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/WhileInvariantRule.java b/key.core/src/main/java/de/uka/ilkd/key/rule/WhileInvariantRule.java index 2c42a612924..46da0dab3ad 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/WhileInvariantRule.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/WhileInvariantRule.java @@ -63,6 +63,8 @@ import org.jspecify.annotations.NonNull; +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; + public final class WhileInvariantRule implements BuiltInRule { /** * The hint used to refactor the initial invariant. @@ -263,7 +265,7 @@ private static AnonUpdateData createAnonUpdate(LocationVariable heap, Term mod, // check for strictly pure loops final Term anonUpdate; - if (tb.strictlyNothing().equalsModIrrelevantTermLabels(mod)) { + if (tb.strictlyNothing().equalsModProperty(mod, IRRELEVANT_TERM_LABELS_PROPERTY)) { anonUpdate = tb.skip(); } else { anonUpdate = tb.anonUpd(heap, mod, anonHeapTerm); @@ -700,9 +702,8 @@ private void setupWdGoal(final Goal goal, final LoopSpecification inv, final Ter } - @NonNull @Override - public ImmutableList apply(Goal goal, Services services, final RuleApp ruleApp) + public @NonNull ImmutableList apply(Goal goal, Services services, final RuleApp ruleApp) throws RuleAbortException { final TermLabelState termLabelState = new TermLabelState(); assert ruleApp instanceof LoopInvariantBuiltInRuleApp; @@ -826,14 +827,17 @@ public ImmutableList apply(Goal goal, Services services, final RuleApp rul final Term freeMod = freeMods.get(heap); final Term strictlyNothing = tb.strictlyNothing(); final Term currentFrame; - if (strictlyNothing.equalsModIrrelevantTermLabels(mod)) { - if (strictlyNothing.equalsModIrrelevantTermLabels(freeMod)) { + if (strictlyNothing.equalsModProperty( + mod, IRRELEVANT_TERM_LABELS_PROPERTY)) { + if (strictlyNothing.equalsModProperty( + freeMod, IRRELEVANT_TERM_LABELS_PROPERTY)) { currentFrame = tb.frameStrictlyEmpty(tb.var(heap), heapToBeforeLoop.get(heap)); } else { currentFrame = tb.frame(tb.var(heap), heapToBeforeLoop.get(heap), freeMod); } } else { - if (strictlyNothing.equalsModIrrelevantTermLabels(freeMod)) { + if (strictlyNothing.equalsModProperty( + freeMod, IRRELEVANT_TERM_LABELS_PROPERTY)) { currentFrame = tb.frame(tb.var(heap), heapToBeforeLoop.get(heap), mod); } else { currentFrame = tb.frame( diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/conditions/ApplyUpdateOnRigidCondition.java b/key.core/src/main/java/de/uka/ilkd/key/rule/conditions/ApplyUpdateOnRigidCondition.java index 4a71c44170b..78f40a82ba6 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/conditions/ApplyUpdateOnRigidCondition.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/conditions/ApplyUpdateOnRigidCondition.java @@ -16,6 +16,8 @@ import org.key_project.util.collection.ImmutableArray; import org.key_project.util.collection.ImmutableSet; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * This variable condition can be used to check whether an update can be performed on a formula or @@ -213,7 +215,7 @@ public MatchConditions check(SchemaVariable var, SVSubstitute instCandidate, Mat if (resultInst == null) { svInst = svInst.add(result, properResultInst, services); return mc.setInstantiations(svInst); - } else if (resultInst.equalsModRenaming(properResultInst)) { + } else if (resultInst.equalsModProperty(properResultInst, RENAMING_PROPERTY)) { return mc; } else { return null; diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/conditions/FieldTypeToSortCondition.java b/key.core/src/main/java/de/uka/ilkd/key/rule/conditions/FieldTypeToSortCondition.java index 2b845136be8..a3cd6a9b0d0 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/conditions/FieldTypeToSortCondition.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/conditions/FieldTypeToSortCondition.java @@ -4,6 +4,7 @@ package de.uka.ilkd.key.rule.conditions; import de.uka.ilkd.key.java.Services; +import de.uka.ilkd.key.ldt.HeapLDT; import de.uka.ilkd.key.logic.Term; import de.uka.ilkd.key.logic.op.*; import de.uka.ilkd.key.logic.sort.GenericSort; @@ -53,33 +54,13 @@ public MatchConditions check(SchemaVariable var, SVSubstitute svSubst, if (svSubst instanceof Term) { Operator op = ((Term) svSubst).op(); if (op instanceof JFunction) { - String name = op.name().toString(); - - String className; - String attributeName; - - // check for normal attribute - int endOfClassName = name.indexOf("::$"); - - int startAttributeName = endOfClassName + 3; - - - if (endOfClassName < 0) { - // not a normal attribute, maybe an implicit attribute like ? - endOfClassName = name.indexOf("::<"); - startAttributeName = endOfClassName + 2; - } - - if (endOfClassName < 0) { + HeapLDT.SplitFieldName split = HeapLDT.trySplitFieldName(op); + if (split == null) { return null; } - - className = name.substring(0, endOfClassName); - attributeName = name.substring(startAttributeName); - ProgramVariable attribute = - services.getJavaInfo().getAttribute(attributeName, className); + services.getJavaInfo().getAttribute(split.attributeName(), split.className()); if (attribute == null) { return null; diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/conditions/StaticFieldCondition.java b/key.core/src/main/java/de/uka/ilkd/key/rule/conditions/StaticFieldCondition.java index 278711de193..2d942802bf8 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/conditions/StaticFieldCondition.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/conditions/StaticFieldCondition.java @@ -4,6 +4,7 @@ package de.uka.ilkd.key.rule.conditions; import de.uka.ilkd.key.java.Services; +import de.uka.ilkd.key.ldt.HeapLDT; import de.uka.ilkd.key.logic.Term; import de.uka.ilkd.key.logic.op.*; import de.uka.ilkd.key.rule.VariableConditionAdapter; @@ -38,29 +39,13 @@ public boolean check(SchemaVariable var, SVSubstitute instCandidate, SVInstantia } final Operator op = f.op(); if (op instanceof JFunction) { - final String name = op.name().toString(); - - // check for normal attribute - int endOfClassName = name.indexOf("::$"); - - int startAttributeName = endOfClassName + 3; - - - if (endOfClassName < 0) { - // not a normal attribute, maybe an implicit attribute like ? - endOfClassName = name.indexOf("::<"); - startAttributeName = endOfClassName + 2; - } - - if (endOfClassName < 0) { + HeapLDT.SplitFieldName split = HeapLDT.trySplitFieldName(op); + if (split == null) { return false; } - final String className = name.substring(0, endOfClassName); - final String attributeName = name.substring(startAttributeName); - final ProgramVariable attribute = - services.getJavaInfo().getAttribute(attributeName, className); + services.getJavaInfo().getAttribute(split.attributeName(), split.className()); if (attribute == null) { return false; diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/inst/SVInstantiations.java b/key.core/src/main/java/de/uka/ilkd/key/rule/inst/SVInstantiations.java index 6ccfed91ab8..0dcc7082d8b 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/inst/SVInstantiations.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/inst/SVInstantiations.java @@ -26,6 +26,9 @@ import org.key_project.util.collection.ImmutableMapEntry; import org.key_project.util.collection.ImmutableSLList; +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; +import static de.uka.ilkd.key.logic.equality.ProofIrrelevancyProperty.PROOF_IRRELEVANCY_PROPERTY; + /** * This class wraps an {@link ImmutableMap} from {@link SchemaVariable} to * {@link InstantiationEntry} @@ -549,7 +552,8 @@ public boolean equals(Object obj) { final Object inst = e.value().getInstantiation(); assert inst != null : "Illegal null instantiation."; if (inst instanceof Term instAsTerm) { - if (!instAsTerm.equalsModIrrelevantTermLabels(cmp.getInstantiation(e.key()))) { + if (!instAsTerm.equalsModProperty(cmp.getInstantiation(e.key()), + IRRELEVANT_TERM_LABELS_PROPERTY)) { return false; } } else if (!inst.equals(cmp.getInstantiation(e.key()))) { @@ -579,7 +583,8 @@ public boolean equalsModProofIrrelevancy(Object obj) { final Object inst = e.value().getInstantiation(); assert inst != null : "Illegal null instantiation."; if (inst instanceof Term instAsTerm) { - if (!instAsTerm.equalsModProofIrrelevancy(cmp.getInstantiation(e.key()))) { + if (!instAsTerm.equalsModProperty( + cmp.getInstantiation(e.key()), PROOF_IRRELEVANCY_PROPERTY)) { return false; } } else if (!inst.equals(cmp.getInstantiation(e.key()))) { diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/match/legacy/ElementMatcher.java b/key.core/src/main/java/de/uka/ilkd/key/rule/match/legacy/ElementMatcher.java index 82b86b078d9..32761e130c1 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/match/legacy/ElementMatcher.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/match/legacy/ElementMatcher.java @@ -19,6 +19,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + public abstract class ElementMatcher { public static final Logger LOGGER = LoggerFactory.getLogger(ElementMatcher.class); @@ -127,7 +129,7 @@ protected final MatchConditions addInstantiation(AbstractSV op, Term term, final Term t = inst.getTermInstantiation(op, inst.getExecutionContext(), services); if (t != null) { - if (!t.equalsModRenaming(term)) { + if (!t.equalsModProperty(term, RENAMING_PROPERTY)) { LOGGER.debug( "FAILED. Adding instantiations leads to unsatisfiable constraint. {} {}", op, term); diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/VMTacletMatcher.java b/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/VMTacletMatcher.java index eb3652d551a..ef2d5270d82 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/VMTacletMatcher.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/VMTacletMatcher.java @@ -35,6 +35,8 @@ import org.key_project.util.collection.ImmutableSet; import org.key_project.util.collection.Pair; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** *

* Matching algorithm using a virtual machine based approach inspired by Voronkonv et al. It matches @@ -165,7 +167,7 @@ private Term matchUpdateContext(ImmutableList context, Term for if (formula.op() instanceof UpdateApplication) { final Term update = UpdateApplication.getUpdate(formula); final UpdateLabelPair ulp = curContext.head(); - if (ulp.update().equalsModRenaming(update) + if (ulp.update().equalsModProperty(update, RENAMING_PROPERTY) && ulp.updateApplicationlabels().equals(update.getLabels())) { curContext = curContext.tail(); formula = UpdateApplication.getTarget(formula); diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchSchemaVariableInstruction.java b/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchSchemaVariableInstruction.java index 596df54df81..c2e676e4726 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchSchemaVariableInstruction.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchSchemaVariableInstruction.java @@ -14,6 +14,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + public abstract class MatchSchemaVariableInstruction extends Instruction { private static final Logger LOGGER = @@ -40,7 +42,7 @@ protected final MatchConditions addInstantiation(Term term, MatchConditions matc final Term t = inst.getTermInstantiation(op, inst.getExecutionContext(), services); if (t != null) { - if (!t.equalsModRenaming(term)) { + if (!t.equalsModProperty(term, RENAMING_PROPERTY)) { return null; } else { return matchCond; diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/merge/CloseAfterMerge.java b/key.core/src/main/java/de/uka/ilkd/key/rule/merge/CloseAfterMerge.java index ad90c055727..19b3b4b36e2 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/merge/CloseAfterMerge.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/merge/CloseAfterMerge.java @@ -94,9 +94,8 @@ public String displayName() { return DISPLAY_NAME; } - @NonNull @Override - public ImmutableList apply(final Goal goal, final Services services, + public @NonNull ImmutableList apply(final Goal goal, final Services services, final RuleApp ruleApp) throws RuleAbortException { final TermLabelState termLabelState = new TermLabelState(); diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/merge/MergeRule.java b/key.core/src/main/java/de/uka/ilkd/key/rule/merge/MergeRule.java index 6b3b5196bef..3b83dceb151 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/merge/MergeRule.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/merge/MergeRule.java @@ -48,6 +48,7 @@ import org.jspecify.annotations.NonNull; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; import static de.uka.ilkd.key.util.mergerule.MergeRuleUtils.clearSemisequent; import static de.uka.ilkd.key.util.mergerule.MergeRuleUtils.closeMergePartnerGoal; import static de.uka.ilkd.key.util.mergerule.MergeRuleUtils.getConjunctiveElementsFor; @@ -129,9 +130,9 @@ public String toString() { return displayName(); } - @NonNull @Override - public final ImmutableList apply(Goal goal, final Services services, RuleApp ruleApp) + public final @NonNull ImmutableList apply(Goal goal, final Services services, + RuleApp ruleApp) throws RuleAbortException { final MergeRuleBuiltInRuleApp mergeRuleApp = (MergeRuleBuiltInRuleApp) ruleApp; @@ -355,7 +356,7 @@ protected Triple, LinkedHashSet loopSpec = // + final LoopSpecification loopSpec = // MiscTools.getSpecForTermWithLoopStmt(loopFormula, services); final boolean isTransaction = MiscTools.isTransaction(((Modality) loopFormula.op()).kind()); @@ -59,7 +60,7 @@ public Term transform(Term term, SVInstantiations svInst, Services services) { permissionsHeapBeforePV, services); final Term frameCondition = - createFrameCondition(loopSpec.get(), isTransaction, heapToBeforeLoopMap, services); + createFrameCondition(loopSpec, isTransaction, heapToBeforeLoopMap, services); return frameCondition; } @@ -92,7 +93,7 @@ private static Term createFrameCondition(final LoopSpecification loopSpec, final Term mod = mods.get(heap); final Term fc; - if (tb.strictlyNothing().equalsModIrrelevantTermLabels(mod)) { + if (tb.strictlyNothing().equalsModProperty(mod, IRRELEVANT_TERM_LABELS_PROPERTY)) { fc = tb.frameStrictlyEmpty(tb.var(heap), heapToBeforeLoopMap.get(heap)); } else { fc = tb.frame(tb.var(heap), heapToBeforeLoopMap.get(heap), mod); diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/metaconstruct/CreateHeapAnonUpdate.java b/key.core/src/main/java/de/uka/ilkd/key/rule/metaconstruct/CreateHeapAnonUpdate.java index c11f07fdb27..68b906d94bf 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/metaconstruct/CreateHeapAnonUpdate.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/metaconstruct/CreateHeapAnonUpdate.java @@ -6,7 +6,6 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.Optional; import de.uka.ilkd.key.java.Services; import de.uka.ilkd.key.ldt.HeapLDT; @@ -23,6 +22,8 @@ import org.key_project.logic.Name; +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; + /** * Creates the anonymizing update for the heap. Expects as arguments the loop formula (for * determining the relevant heap contexts) and three Skolem terms for the currently implemented @@ -39,10 +40,8 @@ public CreateHeapAnonUpdate() { @Override public Term transform(Term term, SVInstantiations svInst, Services services) { final Term loopTerm = term.sub(0); - final Optional loopSpec = // - MiscTools.getSpecForTermWithLoopStmt(loopTerm, services); - - if (!loopSpec.isPresent()) { + final LoopSpecification loopSpec = MiscTools.getSpecForTermWithLoopStmt(loopTerm, services); + if (loopSpec == null) { return null; } @@ -50,7 +49,7 @@ public Term transform(Term term, SVInstantiations svInst, Services services) { final Term anonSavedHeapTerm = term.sub(2); final Term anonPermissionsHeapTerm = term.sub(3); - return createHeapAnonUpdate(loopSpec.get(), + return createHeapAnonUpdate(loopSpec, MiscTools.isTransaction(((Modality) loopTerm.op()).kind()), MiscTools.isPermissions(services), anonHeapTerm, anonSavedHeapTerm, anonPermissionsHeapTerm, services); @@ -126,7 +125,8 @@ private static Term createElementaryAnonUpdate(LocationVariable heap, Term anonH final Term anonHeapTerm = tb.label(anonHeap, ParameterlessTermLabel.ANON_HEAP_LABEL); - return tb.strictlyNothing().equalsModIrrelevantTermLabels(mod) ? tb.skip() + return tb.strictlyNothing().equalsModProperty(mod, IRRELEVANT_TERM_LABELS_PROPERTY) + ? tb.skip() : tb.anonUpd(heap, mod, anonHeapTerm); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/metaconstruct/InitArrayCreation.java b/key.core/src/main/java/de/uka/ilkd/key/rule/metaconstruct/InitArrayCreation.java index 133d296616d..9b76f4cb418 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/metaconstruct/InitArrayCreation.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/metaconstruct/InitArrayCreation.java @@ -28,8 +28,10 @@ import de.uka.ilkd.key.logic.VariableNamer; import de.uka.ilkd.key.logic.op.ProgramVariable; import de.uka.ilkd.key.logic.op.SchemaVariable; +import de.uka.ilkd.key.proof.NameRecorder; import de.uka.ilkd.key.rule.inst.SVInstantiations; +import org.key_project.logic.Name; import org.key_project.util.collection.ImmutableArray; /** @@ -85,11 +87,27 @@ private ProgramVariable[] evaluateAndCheckDimensionExpressions(LinkedList infFlowSpecs = spec.getInfFlowSpecs(heap, self, atPres, services); @@ -235,7 +231,8 @@ public void performActionOnLoopInvariant(final LoopSpecification spec) { newInfFlowSpecs.put(heap, infFlowSpecs); } if (heap != services.getTypeConverter().getHeapLDT().getSavedHeap() - || !tb.strictlyNothing().equalsModIrrelevantTermLabels(freeTerm)) { + || !tb.strictlyNothing().equalsModProperty( + freeTerm, IRRELEVANT_TERM_LABELS_PROPERTY)) { final Term m = spec.getFreeModifies(heap, selfTerm, atPres, services); final ImmutableList infFlowSpecs = spec.getInfFlowSpecs(heap, selfTerm, atPres, services); diff --git a/key.core/src/main/java/de/uka/ilkd/key/settings/ChoiceSettings.java b/key.core/src/main/java/de/uka/ilkd/key/settings/ChoiceSettings.java index 6ce9497caf5..0236ffa096f 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/settings/ChoiceSettings.java +++ b/key.core/src/main/java/de/uka/ilkd/key/settings/ChoiceSettings.java @@ -74,8 +74,7 @@ public Map> getChoices() { *

* The method name is somewhat misleading. */ - @NonNull - public Map getDefaultChoices() { + public @NonNull Map getDefaultChoices() { return Collections.unmodifiableMap(category2Default); } @@ -83,8 +82,7 @@ public Map getDefaultChoices() { /** * returns the current selected choices as an immutable set */ - @NonNull - public ImmutableSet getDefaultChoicesAsSet() { + public @NonNull ImmutableSet getDefaultChoicesAsSet() { return choiceMap2choiceSet(category2Default); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/settings/Configuration.java b/key.core/src/main/java/de/uka/ilkd/key/settings/Configuration.java index 7785598b50a..563ae1a3dfa 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/settings/Configuration.java +++ b/key.core/src/main/java/de/uka/ilkd/key/settings/Configuration.java @@ -18,11 +18,11 @@ /** - * A container to hold parsed configurations. Configurations are a mapping between a property name - * and a value plus additional meta information (line number, documentation etc.). + * A container to hold parsed configurations. Configurations are a mapping between property names + * and values plus additional meta-information (line number, documentation, etc.). *

- * Helper functions allow to accesss the values in a type safe fashion. - * Note that configuration are also nested, use {@link #getTable(String)} to receive a sub + * Helper functions allow to access the values in a type-safe fashion. + * Note that configurations may also be nested, use {@link #getTable(String)} to receive a sub * configuration. * * @author Alexander Weigl @@ -54,7 +54,7 @@ public static Configuration load(File file) throws IOException { /** * Loads a configuration using the given char stream. * - * @param file existsing file path + * @param input existing file path * @return a configuration based on the file contents * @throws IOException i/o error on the steram */ @@ -91,10 +91,9 @@ public boolean exists(String name, Class clazz) { * @param name property name * @param clazz data type because of missing reified generics. */ - @Nullable - public T get(String name, Class clazz) { + public @Nullable T get(String name, Class clazz) { if (exists(name, clazz)) - return (T) data.get(name); + return clazz.cast(data.get(name)); else return null; } @@ -107,10 +106,10 @@ public T get(String name, Class clazz) { * @param name property name * @param defaultValue the returned instead of {@code null}. */ - @NonNull - public T get(String name, @NonNull T defaultValue) { + + public @NonNull T get(String name, Class clazz, @NonNull T defaultValue) { if (exists(name, defaultValue.getClass())) - return (T) data.get(name); + return clazz.cast(data.get(name)); else return defaultValue; } @@ -120,40 +119,39 @@ public T get(String name, @NonNull T defaultValue) { * * @see #exists(String) */ - @Nullable - public Object get(String name) { + + public @Nullable Object get(String name) { return data.get(name); } /** - * Returns an integer or {@code null} if not such entry exists. + * Returns an integer from the configuration. * * @param name property name - * @throw ClassCastException if the entry is not an {@link #Long} - * @throw NullPointerException if no such value entry exists + * @throws ClassCastException if the entry is not a {@link java.lang.Long} + * @throws NullPointerException if no such value entry exists */ public int getInt(String name) { return (int) getLong(name); } /** - * Returns an integer value for the given name. {@code defaultValue} if no such value is - * present. + * Returns an integer value for the given name. * * @param name property name - * @throw ClassCastException if the entry is not an {@link #Long} - * @throw NullPointerException if no such value entry exists + * @throws ClassCastException if the entry is not a {@link Long} + * @throws NullPointerException if no such value entry exists */ public int getInt(String name, int defaultValue) { return (int) getLong(name, defaultValue); } /** - * Returns a long value for the given name. {@code null} if no such value is present. + * Returns a long value for the given name. * * @param name property name - * @throw ClassCastException if the entry is not an {@link #Long} - * @throw NullPointerException if no such value entry exists + * @throws ClassCastException if the entry is not a {@link Long} + * @throws NullPointerException if no such value entry exists */ public long getLong(String name) { return get(name, Long.class); @@ -163,11 +161,10 @@ public long getLong(String name) { * Returns a long value for the given name. {@code defaultValue} if no such value is present. * * @param name property name - * @throw ClassCastException if the entry is not an {@link #Long} - * @throw NullPointerException if no such value entry exists + * @throws ClassCastException if the entry is not a {@link Long} */ public long getLong(String name, long defaultValue) { - var value = get(name, Long.class); + Long value = get(name, Long.class); return Objects.requireNonNullElse(value, defaultValue); } @@ -175,8 +172,8 @@ public long getLong(String name, long defaultValue) { * Returns a boolean value for the given name. * * @param name property name - * @throw ClassCastException if the entry is not an {@link #Long} - * @throw NullPointerException if no such value entry exists + * @throws ClassCastException if the entry is not a {@link Boolean} + * @throws NullPointerException if no such value entry exists */ public boolean getBool(String name) { return get(name, Boolean.class); @@ -186,29 +183,29 @@ public boolean getBool(String name) { * Returns a boolean value for the given name. {@code defaultValue} if no such value is present. * * @param name property name - * @throw ClassCastException if the entry is not an {@link #Long} - * @throw NullPointerException if no such value entry exists + * @throws ClassCastException if the entry is not a {@link Boolean} */ public boolean getBool(String name, boolean defaultValue) { - return get(name, defaultValue); + return get(name, Boolean.class, defaultValue); } /** - * Returns an integer value for the given name. {@code defaultValue} if no such value is + * Returns a double value for the given name. {@code defaultValue} if no such value is * present. * * @param name property name - * @throw ClassCastException if the entry is not an {@link #Long} - * @throw NullPointerException if no such value entry exists + * @throws ClassCastException if the entry is not an {@link Double} + * @throws NullPointerException if no such value entry exists */ public double getDouble(String name) { return get(name, Double.class); } /** - * Returns an string value for the given name. {@code null} if no such value is present. + * Returns a string value for the given name. * * @param name property name + * @throws ClassCastException if the entry is not a {@link String} */ @Nullable public String getString(String name) { @@ -216,18 +213,20 @@ public String getString(String name) { } /** - * Returns an string value for the given name. {@code defaultValue} if no such value is present. + * Returns a string value for the given name. {@code defaultValue} if no such value is present. * * @param name property name + * @throws ClassCastException if the entry is not an {@link String} */ public String getString(String name, String defaultValue) { - return get(name, defaultValue); + return get(name, String.class, defaultValue); } /** - * Returns an sub configuration for the given name. {@code null} if no such value is present. + * Returns a sub configuration for the given name. {@code null} if no such value is present. * * @param name property name + * @throws ClassCastException if the entry is not a {@link Configuration} */ @Nullable public Configuration getTable(String name) { @@ -238,26 +237,55 @@ public Configuration getTable(String name) { * Returns a list of objects for the given name. {@code null} if no such value is present. * * @param name property name + * @throws ClassCastException if the entry is not a {@link List} */ @Nullable public List getList(String name) { - return get(name, List.class); + return getList(name, Object.class); + } + + /** + * Returns a list of elements for the given name. + * The class type for the elements is given by the {@code clazz} parameter. + * {@code null} if no such value is present. + * + * @param name property name + * @param clazz the class type of the elements + * @throws ClassCastException if the entry is not a {@link List} or contains elements of the + * wrong type + */ + @SuppressWarnings("unchecked") + public @Nullable List getList(String name, Class clazz) { + List result = get(name, List.class); + if (result == null) { + return null; + } + if (!result.stream().allMatch(clazz::isInstance)) { + throw new ClassCastException(); + } + return (List) result; } /** * Returns a list of strings for the given name. * + * In contrast to the other methods, this method does not throw an exception if the entry does + * not + * exist in the configuration. Instead, it returns an empty list. + * * @param name property name * @throws ClassCastException if the list contains non-strings */ - @NonNull - public List getStringList(String name) { - var seq = get(name, List.class); - if (seq == null) + @SuppressWarnings("unchecked") + public @NonNull List getStringList(String name) { + List result = get(name, List.class); + if (result == null) { return Collections.emptyList(); - if (!seq.stream().allMatch(it -> it instanceof String)) + } + if (!result.stream().allMatch(String.class::isInstance)) { throw new ClassCastException(); - return seq; + } + return (List) result; } /** @@ -271,11 +299,38 @@ public List getStringList(String name) { @NonNull public String[] getStringArray(String name, @NonNull String[] defaultValue) { if (exists(name)) { - return getStringList(name).toArray(new String[0]); + return getStringList(name).toArray(String[]::new); } else return defaultValue; } + /** + * Interprets the given entry as an enum value. + * + * @param the enum + * @param name a name identifying an entry + * @param defaultValue the default value to be returned + * @throws ClassCastException if the given entry is not a string + * @throws IllegalArgumentException if defaultValue does not belong to an enum + */ + @SuppressWarnings("unchecked") + public > @NonNull T getEnum(String name, @NonNull T defaultValue) { + Class clazz = (Class) defaultValue.getClass(); + if (!clazz.isEnum()) { + throw new IllegalArgumentException(clazz + " is not an enum type."); + } + var idx = getString(name); + if (idx == null) { + return defaultValue; + } + + try { + return Enum.valueOf(clazz, idx); + } catch (IllegalArgumentException | NullPointerException e) { + return defaultValue; + } + } + /** * Returns the meta data corresponding to the given entry. */ @@ -296,7 +351,7 @@ private ConfigurationMeta getOrCreateMeta(String name) { * @see #getTable(String) */ public Configuration getSection(String name) { - return get(name, Configuration.class); + return getTable(name); } public Configuration getOrCreateSection(String name) { @@ -350,22 +405,6 @@ public Set> getEntries() { return data.entrySet(); } - /** - * Interprets the given entry as an enum value. - * - * @param the enum - * @param name a name identifying an entry - * @param defaultValue the default value to be returned - */ - public > T getEnum(String name, T defaultValue) { - var idx = getString(name); - try { - return Enum.valueOf((Class) defaultValue.getClass(), idx); - } catch (IllegalArgumentException | NullPointerException e) { - return defaultValue; - } - } - /** * Serializes this configuration instance into the given writer. * @@ -376,6 +415,11 @@ public void save(Writer writer, String comment) { new ConfigurationWriter(writer).printComment(comment).printMap(this.data); } + public void overwriteWith(Configuration other) { + data.putAll(other.data); + } + + // TODO Add documentation for this. /** * POJO for metadata of configuration entries. */ @@ -404,7 +448,7 @@ public void setDocumentation(String documentation) { } /** - * Writer for configurations. Mainly manages the identation levels and escapings. + * Writer for configurations. Mainly manages the indentation levels and escapings. */ public static class ConfigurationWriter { private final PrintWriter out; @@ -441,6 +485,7 @@ private ConfigurationWriter newline() { public ConfigurationWriter printValue(Object value) { if (value instanceof String) { + // TODO What about '"' inside value? out.format("\"%s\"", value); } else if (value instanceof Long || value instanceof Integer || value instanceof Double || value instanceof Float @@ -448,9 +493,9 @@ public ConfigurationWriter printValue(Object value) { || value instanceof Boolean) { out.write(value.toString()); } else if (value instanceof Collection) { - printSeq((Collection) value); + printSeq((Collection) value); } else if (value instanceof Map) { - printMap((Map) value); + printMap((Map) value); } else if (value instanceof Configuration) { printMap(((Configuration) value).data); } else if (value instanceof Enum) { @@ -463,14 +508,14 @@ public ConfigurationWriter printValue(Object value) { return this; } - private ConfigurationWriter printMap(Map value) { + private ConfigurationWriter printMap(Map value) { out.format("{ "); indent += 4; newline().printIndent(); - for (Iterator> iterator = + for (Iterator> iterator = value.entrySet().iterator(); iterator.hasNext();) { - Map.Entry entry = iterator.next(); - String k = entry.getKey(); + Map.Entry entry = iterator.next(); + String k = entry.getKey().toString(); Object v = entry.getValue(); printKeyValue(k, v); if (iterator.hasNext()) { @@ -490,12 +535,12 @@ private ConfigurationWriter print(String s) { return this; } - private ConfigurationWriter printSeq(Collection value) { + private ConfigurationWriter printSeq(Collection value) { out.format("[ "); indent += 4; newline(); printIndent(); - for (Iterator iterator = value.iterator(); iterator.hasNext();) { + for (Iterator iterator = value.iterator(); iterator.hasNext();) { Object o = iterator.next(); printValue(o); if (iterator.hasNext()) { diff --git a/key.core/src/main/java/de/uka/ilkd/key/smt/AbstractSMTTranslator.java b/key.core/src/main/java/de/uka/ilkd/key/smt/AbstractSMTTranslator.java index d1a38ae7f56..ab4ef549899 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/smt/AbstractSMTTranslator.java +++ b/key.core/src/main/java/de/uka/ilkd/key/smt/AbstractSMTTranslator.java @@ -28,6 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; import static de.uka.ilkd.key.smt.SMTProblem.sequentToTerm; /** @@ -1820,12 +1821,13 @@ private StringBuilder translateAsBindingUninterpretedPredicate(Term term, Functi for (int i = 0; i < t.arity(); i++) { // the terms only have to match on those positions where functions are defined if (fun.bindVarsAt(i)) { - termsMatch = termsMatch && t.sub(i).equalsModRenaming(term.sub(i)); + termsMatch = termsMatch + && t.sub(i).equalsModProperty(term.sub(i), RENAMING_PROPERTY); } } // the terms also match, if the entire sequence matches - termsMatch = (termsMatch || t.equalsModRenaming(term)); + termsMatch = (termsMatch || t.equalsModProperty(term, RENAMING_PROPERTY)); if (termsMatch) { used = t; @@ -1929,12 +1931,13 @@ private StringBuilder translateAsBindingUninterpretedFunction(Term term, Functio for (int i = 0; i < t.arity(); i++) { // the terms only have to match on those positions where functions are defined if (fun.bindVarsAt(i)) { - termsMatch = termsMatch && t.sub(i).equalsModRenaming(term.sub(i)); + termsMatch = termsMatch + && t.sub(i).equalsModProperty(term.sub(i), RENAMING_PROPERTY); } } // the terms also match, if the entire terms match - termsMatch = (termsMatch || t.equalsModRenaming(term)); + termsMatch = (termsMatch || t.equalsModProperty(term, RENAMING_PROPERTY)); if (termsMatch) { used = t; @@ -2103,7 +2106,7 @@ private StringBuilder getModalityPredicate(Term t, List qu Services services) throws IllegalFormulaException { // check, if the modality was already translated. for (Term toMatch : modalityPredicates.keySet()) { - if (toMatch.equalsModRenaming(t)) { + if (toMatch.equalsModProperty(t, RENAMING_PROPERTY)) { return modalityPredicates.get(toMatch); } } @@ -2253,7 +2256,7 @@ protected final StringBuilder translateBsumFunction(Term bsumterm, ArrayList sub) { StringBuilder name = null; for (Term t : usedBsumTerms.keySet()) { - if (t.equalsModRenaming(bsumterm)) { + if (t.equalsModProperty(bsumterm, RENAMING_PROPERTY)) { name = usedBsumTerms.get(t); } } @@ -2291,7 +2294,7 @@ protected final StringBuilder translateBprodFunction(Term bprodterm, ArrayList sub) { StringBuilder name = null; for (Term t : usedBprodTerms.keySet()) { - if (t.equalsModRenaming(bprodterm)) { + if (t.equalsModProperty(bprodterm, RENAMING_PROPERTY)) { name = usedBprodTerms.get(t); } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/smt/SolverTypeCollection.java b/key.core/src/main/java/de/uka/ilkd/key/smt/SolverTypeCollection.java index dfc633d0824..4b4c34f582a 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/smt/SolverTypeCollection.java +++ b/key.core/src/main/java/de/uka/ilkd/key/smt/SolverTypeCollection.java @@ -86,7 +86,6 @@ public boolean isUsable() { usableCount++; } } - return usableCount >= minUsableSolver; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/smt/communication/TeeReader.java b/key.core/src/main/java/de/uka/ilkd/key/smt/communication/TeeReader.java index f076bba11a8..1a47e9c1219 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/smt/communication/TeeReader.java +++ b/key.core/src/main/java/de/uka/ilkd/key/smt/communication/TeeReader.java @@ -16,11 +16,9 @@ * @version 1 (10/3/21) */ public class TeeReader extends Reader { - @NonNull - private final Reader source; - @NonNull - private final Writer sink; + private final @NonNull Reader source; + private final @NonNull Writer sink; public TeeReader(@NonNull Reader source, @NonNull Writer sink) { this.source = source; diff --git a/key.core/src/main/java/de/uka/ilkd/key/smt/communication/TeeWriter.java b/key.core/src/main/java/de/uka/ilkd/key/smt/communication/TeeWriter.java index 9849a572a36..cc30f9b3c5e 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/smt/communication/TeeWriter.java +++ b/key.core/src/main/java/de/uka/ilkd/key/smt/communication/TeeWriter.java @@ -16,11 +16,9 @@ * @version 1 (10/3/21) */ public class TeeWriter extends Writer { - @NonNull - private final Writer source; - @NonNull - private final Writer sink; + private final @NonNull Writer source; + private final @NonNull Writer sink; public TeeWriter(@NonNull Writer source, @NonNull Writer sink) { this.source = source; diff --git a/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/SeqDefHandler.java b/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/SeqDefHandler.java index 88d567ab3f6..983993794a7 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/SeqDefHandler.java +++ b/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/SeqDefHandler.java @@ -29,6 +29,8 @@ import org.key_project.util.collection.DefaultImmutableSet; import org.key_project.util.collection.ImmutableSet; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * This handler handles the seqDef binder function specially. * @@ -78,7 +80,7 @@ public SExpr handle(MasterHandler trans, Term term) throws SMTTranslationExcepti (Map) state.computeIfAbsent("SEQDEF_MAP", x -> new LinkedHashMap<>()); for (Entry entry : seqDefMap.entrySet()) { - if (entry.getKey().equalsModRenaming(term)) { + if (entry.getKey().equalsModProperty(term, RENAMING_PROPERTY)) { return entry.getValue(); } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/SumProdHandler.java b/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/SumProdHandler.java index 5825107e560..953b63ab71f 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/SumProdHandler.java +++ b/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/SumProdHandler.java @@ -12,6 +12,8 @@ import org.key_project.logic.op.Function; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + // W I P public class SumProdHandler implements SMTHandler { @@ -42,7 +44,7 @@ public SExpr handle(MasterHandler trans, Term term) throws SMTTranslationExcepti Operator op = term.op(); if (op == bsumOp) { for (Term t : usedBsumTerms.keySet()) { - if (t.equalsModRenaming(term)) { + if (t.equalsModProperty(term, RENAMING_PROPERTY)) { return usedBsumTerms.get(t); } } @@ -56,7 +58,7 @@ public SExpr handle(MasterHandler trans, Term term) throws SMTTranslationExcepti return ret; } else if (op == bprodOp) { for (Term t : usedBprodTerms.keySet()) { - if (t.equalsModRenaming(term)) { + if (t.equalsModProperty(term, RENAMING_PROPERTY)) { return usedBprodTerms.get(t); } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/smt/solvertypes/SolverTypeImplementation.java b/key.core/src/main/java/de/uka/ilkd/key/smt/solvertypes/SolverTypeImplementation.java index adf815fd951..c1a1a7d126c 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/smt/solvertypes/SolverTypeImplementation.java +++ b/key.core/src/main/java/de/uka/ilkd/key/smt/solvertypes/SolverTypeImplementation.java @@ -5,6 +5,9 @@ import java.io.File; import java.lang.reflect.InvocationTargetException; +import java.nio.file.Files; +import java.nio.file.InvalidPathException; +import java.nio.file.Path; import java.nio.file.Paths; import java.util.Arrays; @@ -162,8 +165,7 @@ public final class SolverTypeImplementation implements SolverType { /** * The preamble String for the created {@link SMTTranslator}, may be null. */ - @Nullable - private final String preamble; + private final @Nullable String preamble; /** * Used for creation of new sockets as well as modifying problem Strings. Should not be returned @@ -255,63 +257,80 @@ private SMTTranslator makeTranslator() { } /** - * Returns false whenever cmd is null or empty, otherwise the environment variables are checked - * for the command and if no file with the command's name is found in any of those paths, the - * cmd itself is used as the pathname. If all of these fail, the cmd is also not installed. + * Returns false whenever cmd is null or empty, otherwise if the command is an absolute path + * it is checked, if not the environment variables are checked + * for the command whether there is a file with the command's name in any of those paths. + * If all of these fail, the cmd is also not installed. * * @param cmd the command whose existence will be checked * @return true iff the command is a non-empty String and a file with the command's name or with * the command as pathname can be found in the file system. */ public static boolean isInstalled(@Nullable String cmd) { + if (cmd == null || cmd.isEmpty()) { return false; } - if (checkEnvVariable(cmd)) { - return true; - } else { - File file = new File(cmd); - return file.exists() && !file.isDirectory(); + try { + Path cmdPath = Paths.get(cmd); + if (cmdPath.isAbsolute()) { + return checkPath(cmdPath); + } + return checkEnvVariable(cmd + getOSDefaultExtension()); + + } catch (InvalidPathException e) { + return false; } } - private static boolean checkFile(String parent, String child) { - File file = Paths.get(parent, child).toFile(); - return file.exists() && file.canExecute(); + private static boolean checkPath(Path path) { + return Files.exists(path) && Files.isExecutable(path); } private static boolean checkEnvVariable(String cmd) { - String pathExt = System.getenv("PATHEXT"); - - // Build all possible children exes (add extensions) - String[] exes; - if (pathExt == null) { - // No PATHEXT, just use cmd - exes = new String[] { cmd }; - } else { - String[] pathExtensions = pathExt.split(File.pathSeparator); - exes = new String[pathExtensions.length + 1]; - - // Append all extensions to cmd - for (int i = 0; i < pathExtensions.length; i++) { - exes[i] = cmd + pathExtensions[i]; - } - // Add unchanged cmd to be sure (e.g. cmd = bla.exe) - exes[pathExtensions.length] = cmd; - } - String path = System.getenv("PATH"); String[] paths = path.split(File.pathSeparator); for (String parent : paths) { - for (String children : exes) { - if (checkFile(parent, children)) { - return true; - } + Path parentPath = Paths.get(parent); + Path childPath = Paths.get(cmd); + Path completePath = parentPath.resolve(childPath); + if (checkPath(completePath)) { + return true; } } + return false; } + + + private static String getOSDefaultExtension() { + final String windowsDefaultExt = ".exe"; + final String linuxDefaultExt = ""; + final String maxDefaultExt = ""; + + if (osIsWindows()) { + return windowsDefaultExt; + } + + if (osIsLinux()) { + return linuxDefaultExt; + } + return maxDefaultExt; + } + + private static String getOperatingSystem() { + return System.getProperty("os.name"); + } + + private static boolean osIsWindows() { + return getOperatingSystem().startsWith("Windows"); + } + + private static boolean osIsLinux() { + return getOperatingSystem().startsWith("Linux"); + } + @Override public SMTSolver createSolver(SMTProblem problem, SolverListener listener, Services services) { return new SMTSolverImplementation(problem, listener, services, this); @@ -473,9 +492,8 @@ public boolean supportHasBeenChecked() { return supportHasBeenChecked; } - @NonNull @Override - public AbstractSolverSocket getSocket(ModelExtractor query) { + public @NonNull AbstractSolverSocket getSocket(ModelExtractor query) { AbstractSolverSocket socket = solverSocket.copy(); socket.setQuery(query); return socket; diff --git a/key.core/src/main/java/de/uka/ilkd/key/smt/solvertypes/SolverTypes.java b/key.core/src/main/java/de/uka/ilkd/key/smt/solvertypes/SolverTypes.java index 7677ca1bc4d..b32eb79cfb2 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/smt/solvertypes/SolverTypes.java +++ b/key.core/src/main/java/de/uka/ilkd/key/smt/solvertypes/SolverTypes.java @@ -39,8 +39,7 @@ private SolverTypes() { * * @return the available solver types, including legacy solvers */ - @NonNull - public static Collection getSolverTypes() { + public static @NonNull Collection getSolverTypes() { if (SOLVERS.isEmpty()) { SolverPropertiesLoader solverLoader = new SolverPropertiesLoader(); SOLVERS.addAll(solverLoader.getSolvers()); @@ -54,8 +53,7 @@ public static Collection getSolverTypes() { * * @return the available legacy solver types */ - @NonNull - public static Collection getLegacySolvers() { + public static @NonNull Collection getLegacySolvers() { if (SOLVERS.isEmpty()) { getSolverTypes(); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/ContractFactory.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/ContractFactory.java index 76aa1a77994..8e1c587feba 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/ContractFactory.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/ContractFactory.java @@ -27,6 +27,7 @@ import org.key_project.util.collection.ImmutableArray; import org.key_project.util.collection.ImmutableList; +import static de.uka.ilkd.key.logic.equality.TermLabelsProperty.TERM_LABELS_PROPERTY; import static de.uka.ilkd.key.logic.label.OriginTermLabel.*; /** @@ -461,7 +462,7 @@ private static void combineModifies(FunctionalOperationContractImpl t, // check if the other mod is the same as the one in the uniform store. // To obtain meaningful results, check for equality ignoring all term labels! if (uniformMod.containsKey(h)) { - if (!uniformMod.get(h).equalsModTermLabels(m2)) { + if (!uniformMod.get(h).equalsModProperty(m2, TERM_LABELS_PROPERTY)) { uniformMod.remove(h); } else { // merge term labels (in particular origin labels) of both modifies diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/FunctionalOperationContractImpl.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/FunctionalOperationContractImpl.java index 32a56dba398..690788a61d4 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/FunctionalOperationContractImpl.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/FunctionalOperationContractImpl.java @@ -34,6 +34,7 @@ import org.key_project.util.collection.ImmutableSLList; import org.key_project.util.java.MapUtil; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; import static de.uka.ilkd.key.util.Assert.assertEqualSort; import static de.uka.ilkd.key.util.Assert.assertSubSort; @@ -1367,14 +1368,16 @@ public String toString() { ((Services) services).getTypeConverter().getHeapLDT().getHeap(); return (globalDefs == null ? "" : "defs: " + globalDefs + "; ") + "pre: " + originalPres + (originalFreePres.get(heap) != null - && !originalFreePres.get(heap).equalsModRenaming(tb.tt()) - ? "free pre: " + originalFreePres - : "") + && !originalFreePres.get(heap).equalsModProperty(tb.tt(), + RENAMING_PROPERTY) + ? "free pre: " + originalFreePres + : "") + "; mby: " + originalMby + "; post: " + originalPosts + (originalFreePosts.get(heap) != null - && !originalFreePosts.get(heap).equalsModRenaming(tb.tt()) - ? "free post: " + originalFreePosts - : "") + && !originalFreePosts.get(heap).equalsModProperty(tb.tt(), + RENAMING_PROPERTY) + ? "free post: " + originalFreePosts + : "") + "; mods: " + originalMods + "; hasMod: " + hasRealModifiesClause + (originalAxioms != null && originalAxioms.size() > 0 ? ("; axioms: " + originalAxioms) : "") diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/PositionedString.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/PositionedString.java index 4c41fcd4eea..74a1149d883 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/PositionedString.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/PositionedString.java @@ -19,11 +19,10 @@ * used for error reporting. */ public class PositionedString { - @NonNull - public final String text; - @NonNull - public final Location location; + public final @NonNull String text; + + public final @NonNull Location location; private static final ImmutableArray EMPTY_LABEL_LIST = new ImmutableArray<>(); @@ -63,13 +62,11 @@ public String toString() { + location.getPosition() + ")"; } - @NonNull - public String getText() { + public @NonNull String getText() { return text; } - @NonNull - public Location getLocation() { + public @NonNull Location getLocation() { return location; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/SLEnvInput.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/SLEnvInput.java index 76254f2124b..bd5b8db001c 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/SLEnvInput.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/SLEnvInput.java @@ -23,6 +23,7 @@ import de.uka.ilkd.key.java.statement.LabeledStatement; import de.uka.ilkd.key.java.statement.LoopStatement; import de.uka.ilkd.key.java.statement.MergePointStatement; +import de.uka.ilkd.key.java.statement.SetStatement; import de.uka.ilkd.key.java.visitor.JavaASTCollector; import de.uka.ilkd.key.java.visitor.JavaASTWalker; import de.uka.ilkd.key.logic.op.IProgramMethod; @@ -257,18 +258,32 @@ private void addLabeledLoopContracts(SpecExtractor specExtractor, } } - private void transformJmlAsserts(final IProgramMethod pm) { + private void transformProgramElements(final IProgramMethod pm) throws ProofInputException { Services services = initConfig.getServices(); JMLSpecFactory jsf = new JMLSpecFactory(services); - JavaASTWalker walker = new JavaASTWalker(pm.getBody()) { + var walker = new JavaASTWalker(pm.getBody()) { + public ProofInputException exception = null; + @Override protected void doAction(final ProgramElement node) { - if (node instanceof JmlAssert) { - jsf.translateJmlAssertCondition((JmlAssert) node, pm); + try { + if (node instanceof JmlAssert) { + jsf.translateJmlAssertCondition((JmlAssert) node, pm); + } else if (node instanceof SetStatement) { + jsf.translateSetStatement((SetStatement) node, pm); + } + } catch (ProofInputException e) { + // Store the first exception that occurred + if (this.exception == null) { + this.exception = e; + } } } }; walker.start(); + if (walker.exception != null) { + throw walker.exception; + } } private ImmutableSet createSpecs(SpecExtractor specExtractor) @@ -323,7 +338,7 @@ private ImmutableSet createSpecs(SpecExtractor specExtractor) addMergePointStatements(specExtractor, specRepos, pm, methodSpecs); addLabeledBlockContracts(specExtractor, specRepos, pm); addLabeledLoopContracts(specExtractor, specRepos, pm); - transformJmlAsserts(pm); + transformProgramElements(pm); } // constructor contracts diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/WellDefinednessCheck.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/WellDefinednessCheck.java index 3f6ef712ee7..63fc487577f 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/WellDefinednessCheck.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/WellDefinednessCheck.java @@ -35,6 +35,8 @@ import org.key_project.util.collection.ImmutableSLList; import org.key_project.util.collection.Pair; +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; + /** * A contract for checking the well-definedness of a jml specification element (i.e. a class * invariant, a method contract, a model field or any jml statement), consisting of precondition, @@ -390,8 +392,9 @@ private String getText(boolean includeHtmlMarkup, Services services) { final boolean showSig = !isInv && !modelField(); if (getAssignable() != null && showSig) { String printMods = LogicPrinter.quickPrintTerm( - getAssignable(null).equalsModIrrelevantTermLabels(TB.strictlyNothing()) ? TB.empty() - : this.getAssignable(null), + getAssignable(null).equalsModProperty(TB.strictlyNothing(), + IRRELEVANT_TERM_LABELS_PROPERTY) ? TB.empty() + : this.getAssignable(null), services); mods = mods + (includeHtmlMarkup ? "
" : "\n") + "mod" + (includeHtmlMarkup ? " " : ": ") @@ -722,19 +725,26 @@ final void setRequires(Term req) { final void setAssignable(Term ass, TermServices services) { this.assignable = ass; - if (ass == null || TB.strictlyNothing().equalsModIrrelevantTermLabels(ass) - || TB.FALSE().equalsModIrrelevantTermLabels(ass)) { + if (ass == null + || TB.strictlyNothing().equalsModProperty( + ass, IRRELEVANT_TERM_LABELS_PROPERTY) + || TB.FALSE().equalsModProperty( + ass, IRRELEVANT_TERM_LABELS_PROPERTY)) { this.assignable = TB.strictlyNothing(); - } else if (TB.tt().equalsModIrrelevantTermLabels(ass) - || TB.TRUE().equalsModIrrelevantTermLabels(ass)) { + } else if (TB.tt().equalsModProperty( + ass, IRRELEVANT_TERM_LABELS_PROPERTY) + || TB.TRUE().equalsModProperty( + ass, IRRELEVANT_TERM_LABELS_PROPERTY)) { this.assignable = TB.allLocs(); } } final void combineAssignable(Term ass1, Term ass2, TermServices services) { - if (ass1 == null || TB.strictlyNothing().equalsModIrrelevantTermLabels(ass1)) { + if (ass1 == null || TB.strictlyNothing().equalsModProperty( + ass1, IRRELEVANT_TERM_LABELS_PROPERTY)) { setAssignable(ass2, services); - } else if (ass2 == null || TB.strictlyNothing().equalsModIrrelevantTermLabels(ass2)) { + } else if (ass2 == null || TB.strictlyNothing().equalsModProperty( + ass2, IRRELEVANT_TERM_LABELS_PROPERTY)) { setAssignable(ass1, services); } else { setAssignable(TB.union(ass1, ass2), services); @@ -995,9 +1005,11 @@ public final Term getPost(final Condition post, ParsableVariable result, public final Term getUpdates(Term mod, LocationVariable heap, ProgramVariable heapAtPre, Term anonHeap, TermServices services) { assert mod != null; - assert anonHeap != null || TB.strictlyNothing().equalsModIrrelevantTermLabels(mod); - final Term havocUpd = TB.strictlyNothing().equalsModIrrelevantTermLabels(mod) ? TB.skip() - : TB.elementary(heap, TB.anon(TB.var(heap), mod, anonHeap)); + assert anonHeap != null + || TB.strictlyNothing().equalsModProperty(mod, IRRELEVANT_TERM_LABELS_PROPERTY); + final Term havocUpd = + TB.strictlyNothing().equalsModProperty(mod, IRRELEVANT_TERM_LABELS_PROPERTY) ? TB.skip() + : TB.elementary(heap, TB.anon(TB.var(heap), mod, anonHeap)); final Term oldUpd = heapAtPre != heap ? TB.elementary(TB.var(heapAtPre), TB.var(heap)) : TB.skip(); return TB.parallel(oldUpd, havocUpd); diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/JMLInfoExtractor.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/JMLInfoExtractor.java index ee6a0f9382f..cfcb3d44b5e 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/JMLInfoExtractor.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/JMLInfoExtractor.java @@ -376,8 +376,7 @@ public static boolean isStrictlyPure(IProgramMethod pm) { /** * Returns the spec math mode of this type */ - @Nullable - public static SpecMathMode getSpecMathMode(@NonNull KeYJavaType t) { + public static @Nullable SpecMathMode getSpecMathMode(@NonNull KeYJavaType t) { if (!(t.getJavaType() instanceof TypeDeclaration)) { return null; } else { @@ -385,24 +384,21 @@ public static SpecMathMode getSpecMathMode(@NonNull KeYJavaType t) { } } - @NonNull - private static SpecMathMode modeOrDefault(@Nullable SpecMathMode mode) { + private static @NonNull SpecMathMode modeOrDefault(@Nullable SpecMathMode mode) { return mode == null ? SpecMathMode.defaultMode() : mode; } /** * Returns the spec math mode of this type or the default */ - @NonNull - public static SpecMathMode getSpecMathModeOrDefault(@NonNull KeYJavaType t) { + public static @NonNull SpecMathMode getSpecMathModeOrDefault(@NonNull KeYJavaType t) { return modeOrDefault(getSpecMathMode(t)); } /** * Returns the spec math mode of this method */ - @Nullable - public static SpecMathMode getSpecMathMode(@NonNull IProgramMethod pm) { + public static @Nullable SpecMathMode getSpecMathMode(@NonNull IProgramMethod pm) { var methodMode = pm.getMethodDeclaration().getJmlModifiers().specMathMode(); return methodMode != null ? methodMode : getSpecMathMode(pm.getContainerType()); } @@ -410,8 +406,7 @@ public static SpecMathMode getSpecMathMode(@NonNull IProgramMethod pm) { /** * Returns the spec math mode of this method */ - @NonNull - public static SpecMathMode getSpecMathModeOrDefault(@NonNull IProgramMethod pm) { + public static @NonNull SpecMathMode getSpecMathModeOrDefault(@NonNull IProgramMethod pm) { return modeOrDefault(getSpecMathMode(pm)); } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/JMLSpecExtractor.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/JMLSpecExtractor.java index 7ea6299b0c0..7dc422f318f 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/JMLSpecExtractor.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/JMLSpecExtractor.java @@ -90,13 +90,40 @@ private String concatenate(Comment[] comments) { StringBuilder sb = new StringBuilder(comments[0].getText()); for (int i = 1; i < comments.length; i++) { - var relativePos = comments[i].getRelativePosition(); - for (int j = 0; j < relativePos.getLine(); j++) { - sb.append("\n"); - } - for (int j = 0; j < relativePos.getColumn(); j++) { - sb.append(" "); + Position previousStart = comments[i - 1].getStartPosition(); + + // this also includes // or /* ... */ + String previousText = comments[i - 1].getText(); + + int previousEndLine = previousStart.line() + + (int) previousText.chars().filter(x -> x == '\n').count(); + + // /*ab*/ => length: 6, lastIndex: -1, so we get 6 + // /*\nb*/ => length: 6, lastIndex: 2, so we get 3 + int previousEndColumn = previousStart.column() - 1 + + previousText.length() - (previousText.lastIndexOf('\n') + 1); + + Position currentStart = comments[i].getStartPosition(); + if (currentStart.isNegative()) { + // The comment is an artificial one; we cannot reproduce positions anyway, so just + // paste them. ... + while (i < comments.length) { + sb.append(comments[i].getText()); + i++; + } + break; } + + int insertRows = currentStart.line() - previousEndLine; + + // the columns are starting at 1 and not at 0 + int insertColumns = insertRows > 0 ? // line break between the comments + currentStart.column() - 1 : (currentStart.column() - 1) - previousEndColumn; + + assert insertRows >= 0 && insertColumns >= 0; + + sb.append("\n".repeat(insertRows)); + sb.append(" ".repeat(insertColumns)); sb.append(comments[i].getText()); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/pretranslation/TextualJMLAssertStatement.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/pretranslation/TextualJMLAssertStatement.java index 08e635fa08d..849b3f45190 100755 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/pretranslation/TextualJMLAssertStatement.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/pretranslation/TextualJMLAssertStatement.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: GPL-2.0-only */ package de.uka.ilkd.key.speclang.jml.pretranslation; -import de.uka.ilkd.key.speclang.njml.LabeledParserRuleContext; +import de.uka.ilkd.key.nparser.KeyAst; import org.key_project.util.collection.ImmutableSLList; @@ -13,17 +13,16 @@ * A JML assert/assume statement. */ public class TextualJMLAssertStatement extends TextualJMLConstruct { - - private final LabeledParserRuleContext context; + private final KeyAst.Expression context; private final Kind kind; - public TextualJMLAssertStatement(Kind kind, LabeledParserRuleContext clause) { + public TextualJMLAssertStatement(Kind kind, KeyAst.Expression clause) { super(ImmutableSLList.nil(), kind.toString() + " " + clause); this.kind = kind; this.context = clause; } - public LabeledParserRuleContext getContext() { + public KeyAst.Expression getContext() { return context; } @@ -52,9 +51,12 @@ public static void ruleContextToText(StringBuilder builder, RuleContext context) } public String getClauseText() { - var builder = new StringBuilder(); - ruleContextToText(builder, context.first); - return builder.substring(kind.toString().length()); + return context.getText(); + /* + * var builder = new StringBuilder(); + * ruleContextToText(builder, context); + * return builder.substring(kind.toString().length()); + */ } public Kind getKind() { diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/pretranslation/TextualJMLDepends.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/pretranslation/TextualJMLDepends.java index 679742eeeef..a1ae32e4d86 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/pretranslation/TextualJMLDepends.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/pretranslation/TextualJMLDepends.java @@ -15,7 +15,6 @@ import org.jspecify.annotations.NonNull; - /** * A JML depends / accessible clause for a model field in textual form. Note that such clauses for * *methods* are part of TextualJMLSpecCase. diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/pretranslation/TextualJMLMergePointDecl.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/pretranslation/TextualJMLMergePointDecl.java index 8e9a0eaa90c..3670536c07b 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/pretranslation/TextualJMLMergePointDecl.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/pretranslation/TextualJMLMergePointDecl.java @@ -9,26 +9,29 @@ import org.key_project.util.collection.ImmutableList; -import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.NullMarked; + /** * A JML merge point declaration in textual form. - * + *

* TODO: Adapt this to the specific needs of merge point declarations. * * @author Dominic Scheurer */ +@NullMarked public final class TextualJMLMergePointDecl extends TextualJMLConstruct { - private final JmlParser.@NonNull Merge_point_statementContext mergeProc; - public TextualJMLMergePointDecl(@NonNull ImmutableList mods, - JmlParser.@NonNull Merge_point_statementContext mergeProc) { + private final JmlParser.Merge_point_statementContext mergeProc; + + public TextualJMLMergePointDecl(ImmutableList mods, + JmlParser.Merge_point_statementContext mergeProc) { super(mods); this.mergeProc = mergeProc; setPosition(mergeProc); } - public JmlParser.@NonNull Merge_point_statementContext getMergeProc() { + public JmlParser.Merge_point_statementContext getMergeProc() { return mergeProc; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/translation/Context.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/translation/Context.java index 4e1aa8ca937..eec437576e0 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/translation/Context.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/translation/Context.java @@ -29,8 +29,7 @@ public record Context(@NonNull SpecMathMode specMathMode, @NonNull KeYJavaType c * @param classType class * @param isStaticContext whether this is a static context */ - @Nullable - private static ProgramVariable createSelfVar(TermBuilder tb, KeYJavaType classType, + private static @Nullable ProgramVariable createSelfVar(TermBuilder tb, KeYJavaType classType, boolean isStaticContext) { return isStaticContext ? null : tb.selfVar(classType, false); } @@ -66,7 +65,7 @@ public static Context inMethodWithSelfVar(@NonNull IProgramMethod pm, ProgramVar * @param tb term builder */ public static Context inClass(@NonNull KeYJavaType classType, boolean isStaticContext, - TermBuilder tb) { + TermBuilder tb) { var selfVar = createSelfVar(tb, classType, isStaticContext); var mode = JMLInfoExtractor.getSpecMathModeOrDefault(classType); return new Context(mode, classType, selfVar); diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/translation/JMLSpecFactory.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/translation/JMLSpecFactory.java index ec56964f59d..0fc69b0051b 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/translation/JMLSpecFactory.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/translation/JMLSpecFactory.java @@ -18,6 +18,10 @@ import de.uka.ilkd.key.java.declaration.modifier.Public; import de.uka.ilkd.key.java.declaration.modifier.VisibilityModifier; import de.uka.ilkd.key.java.statement.*; +import de.uka.ilkd.key.java.statement.SetStatement; +import de.uka.ilkd.key.ldt.HeapLDT; +import de.uka.ilkd.key.ldt.HeapLDT.SplitFieldName; +import de.uka.ilkd.key.ldt.JavaDLTheory; import de.uka.ilkd.key.logic.ProgramElementName; import de.uka.ilkd.key.logic.Term; import de.uka.ilkd.key.logic.TermBuilder; @@ -25,7 +29,9 @@ import de.uka.ilkd.key.logic.label.OriginTermLabel.SpecType; import de.uka.ilkd.key.logic.label.ParameterlessTermLabel; import de.uka.ilkd.key.logic.op.*; +import de.uka.ilkd.key.nparser.KeyAst; import de.uka.ilkd.key.parser.Location; +import de.uka.ilkd.key.proof.mgt.SpecificationRepository; import de.uka.ilkd.key.rule.merge.MergeProcedure; import de.uka.ilkd.key.rule.merge.procedures.MergeByIfThenElse; import de.uka.ilkd.key.rule.merge.procedures.MergeWithPredicateAbstraction; @@ -51,6 +57,8 @@ import org.jspecify.annotations.NonNull; import org.jspecify.annotations.Nullable; +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; import static de.uka.ilkd.key.speclang.jml.pretranslation.TextualJMLSpecCase.Clause.DIVERGES; import static de.uka.ilkd.key.speclang.jml.pretranslation.TextualJMLSpecCase.Clause.SIGNALS; import static de.uka.ilkd.key.speclang.jml.pretranslation.TextualJMLSpecCase.ClauseHd.ENSURES; @@ -147,7 +155,7 @@ private static Map translateToTermFreeInvariants(Context } else { freeInvariant = tb.tt(); for (LabeledParserRuleContext expr : originalFreeInvariant) { - Term translated = new JmlIO().services(services).context(context) + Term translated = new JmlIO(services).context(context) .parameters(allVars).atPres(atPres).atBefore(atPres) .translateTerm(expr, SpecType.LOOP_INVARIANT_FREE); freeInvariant = tb.andSC(freeInvariant, tb.convertToFormula(translated)); @@ -420,7 +428,7 @@ private void translateAccessible(Context context, ProgramVariableCollection prog private void translateAxioms(Context context, ProgramVariableCollection progVars, LocationVariable heap, ImmutableList axioms, - ContractClauses clauses, Behavior originalBehavior) throws SLTranslationException { + ContractClauses clauses, Behavior originalBehavior) { boolean empty = axioms.isEmpty() // either the list is empty || (axioms.size() == 1 // or the first element is an empty method_decl && axioms.head().first instanceof JmlParser.Method_declarationContext @@ -439,7 +447,7 @@ private void translateEnsures(Context context, ProgramVariableCollection progVar LocationVariable heap, final LocationVariable savedHeap, ImmutableList ensures, ImmutableList ensuresFree, ContractClauses clauses, - Behavior originalBehavior) throws SLTranslationException { + Behavior originalBehavior) { if (heap == savedHeap && ensures.isEmpty()) { clauses.ensures.put(heap, null); } else { @@ -522,14 +530,12 @@ private void translateAssignable(Context context, ProgramVariableCollection prog } - @NonNull - private LabeledParserRuleContext getAssignableNothing() { + private @NonNull LabeledParserRuleContext getAssignableNothing() { return new LabeledParserRuleContext(JmlFacade.parseClause("assignable \\nothing;"), ParameterlessTermLabel.IMPLICIT_SPECIFICATION_LABEL); } - @NonNull - private LabeledParserRuleContext getAssignableFreeNothing() { + private @NonNull LabeledParserRuleContext getAssignableFreeNothing() { return new LabeledParserRuleContext(JmlFacade.parseClause("assignable_free \\nothing;"), ParameterlessTermLabel.IMPLICIT_SPECIFICATION_LABEL); } @@ -625,7 +631,8 @@ private Term translateUnionClauses(Context context, ImmutableList 1) { throw new SLTranslationException( "\"assignable \\less_than_nothing\" does not go with other " @@ -704,8 +711,7 @@ private Term translateSignals(Context context, ImmutableList pa } private Term translateSignalsOnly(Context context, ProgramVariable excVar, - Behavior originalBehavior, ImmutableList originalClauses) - throws SLTranslationException { + Behavior originalBehavior, ImmutableList originalClauses) { return translateSignals(context, null, null, excVar, null, null, originalBehavior, originalClauses); } @@ -768,7 +774,8 @@ private boolean translateStrictlyPure(Context context, ImmutableList createDependencyOperationContract(IProgramMethod boolean createContract = true; for (LocationVariable heap : HeapContext.getModHeaps(services, false)) { - if (clauses.accessibles.get(heap).equalsModRenaming(tb.allLocs())) { + if (clauses.accessibles.get(heap).equalsModProperty(tb.allLocs(), + RENAMING_PROPERTY)) { createContract = false; break; } if (pm.isModel() && pm.getStateCount() > 1) { if (clauses.accessibles.get(progVars.atPreVars.get(heap)) - .equalsModRenaming(tb.allLocs())) { + .equalsModProperty(tb.allLocs(), RENAMING_PROPERTY)) { createContract = false; break; } @@ -1159,8 +1167,9 @@ public Contract createJMLDependencyContract(KeYJavaType kjt, TextualJMLDepends t LabeledParserRuleContext dep = null; LocationVariable targetHeap = null; for (LocationVariable heap : HeapContext.getModHeaps(services, false)) { - dep = textualDep.getDepends(heap.name()).head(); - if (dep != null) { + ImmutableList depends = textualDep.getDepends(heap.name()); + if (!depends.isEmpty()) { + dep = textualDep.getDepends(heap.name()).head(); targetHeap = heap; break; } @@ -1382,13 +1391,8 @@ public ImmutableSet createJMLLoopContracts(IProgramMethod method, .create(); } - /** - * Translates the condition Term of a JmlAssert statement. - * - * @param jmlAssert the statement to create the condition for - * @param pm the enclosing method - */ - public void translateJmlAssertCondition(final JmlAssert jmlAssert, final IProgramMethod pm) { + private ProgramVariableCollection createProgramVariablesForStatement(Statement statement, + IProgramMethod pm) { final Map atPreVars = new LinkedHashMap<>(); for (LocationVariable heap : services.getTypeConverter().getHeapLDT().getAllHeaps()) { atPreVars.put(heap, tb.atPreVar(heap.toString(), heap.sort(), true)); @@ -1399,19 +1403,94 @@ public void translateJmlAssertCondition(final JmlAssert jmlAssert, final IProgra tb.atPreVar(parameter.toString(), parameter.getKeYJavaType(), true)); } final ImmutableList paramVars = - append(collectLocalVariablesVisibleTo(jmlAssert, pm), parameters); - final ProgramVariableCollection pv = new ProgramVariableCollection( - tb.selfVar(pm, pm.getContainerType(), false), paramVars, tb.resultVar(pm, false), - tb.excVar(pm, false), atPreVars, termify(atPreVars), Collections.emptyMap(), // should - // be the - // pre-state - // of the - // enclosing - // contract + append(collectLocalVariablesVisibleTo(statement, pm), parameters); + return new ProgramVariableCollection(tb.selfVar(pm, pm.getContainerType(), false), + paramVars, tb.resultVar(pm, false), tb.excVar(pm, false), atPreVars, termify(atPreVars), + Collections.emptyMap(), // should be the pre-state of the enclosing contract Collections.emptyMap() // ignore for now ); - var io = new JmlIO(services).context(Context.inMethodWithSelfVar(pm, pv.selfVar)); - jmlAssert.translateCondition(io, pv); + } + + /** + * Translates the condition Term of a JmlAssert statement. + * + * @param jmlAssert the statement to create the condition for + * @param pm the enclosing method + */ + public void translateJmlAssertCondition(final JmlAssert jmlAssert, final IProgramMethod pm) { + final var pv = createProgramVariablesForStatement(jmlAssert, pm); + var io = new JmlIO(services).context(Context.inMethod(pm, tb)) + .selfVar(pv.selfVar) + .parameters(pv.paramVars) + .resultVariable(pv.resultVar) + .exceptionVariable(pv.excVar) + .atPres(pv.atPres) + .atBefore(pv.atBefores); + Term expr = io.translateTerm(jmlAssert.getCondition()); + services.getSpecificationRepository().addStatementSpec( + jmlAssert, + new SpecificationRepository.JmlStatementSpec(pv, ImmutableList.of(expr))); + } + + public @Nullable String checkSetStatementAssignee(Term assignee) { + if (assignee.op() instanceof LocationVariable) { + var variable = (LocationVariable) assignee.op(); + if (variable.isGhost()) { + return null; + } else { + return variable + " is not a ghost variable"; + } + } else if (services.getTypeConverter().getHeapLDT().isSelectOp(assignee.op())) { + Term field = assignee.subs().last(); + Operator op = field.op(); + SplitFieldName split = HeapLDT.trySplitFieldName(op); + if (split != null) { + ProgramVariable attribute = + services.getJavaInfo().getAttribute(split.attributeName(), split.className()); + if (attribute.isGhost()) { + return null; + } else { + return op + " is not a ghost field"; + } + } else if (op.equals(services.getTypeConverter().getHeapLDT().getArr())) { + return "Arrays are not writeable using set statements"; + } else { + return op + " is not a class field"; + } + } else { + return "Neither a field access nor a local variable access"; + } + } + + /** + * Translates a set statement. + * + * @param statement the set statement + * @param pm the enclosing method + */ + public void translateSetStatement(final SetStatement statement, final IProgramMethod pm) + throws SLTranslationException { + final var pv = createProgramVariablesForStatement(statement, pm); + KeyAst.SetStatementContext setStatementContext = statement.getParserContext(); + var io = new JmlIO(services).context(Context.inMethod(pm, tb)).selfVar(pv.selfVar) + .parameters(pv.paramVars) + .resultVariable(pv.resultVar).exceptionVariable(pv.excVar).atPres(pv.atPres) + .atBefore(pv.atBefores); + Term assignee = io.translateTerm(setStatementContext.getAssignee()); + Term value = io.translateTerm(setStatementContext.getValue()); + if (value.sort() == JavaDLTheory.FORMULA) { + value = tb.convertToBoolean(value); + } + String error = checkSetStatementAssignee(assignee); + if (error != null) { + throw new SLTranslationException( + "Invalid assignment target for set statement: " + error, + setStatementContext.getStartLocation()); + } + + services.getSpecificationRepository().addStatementSpec( + statement, + new SpecificationRepository.JmlStatementSpec(pv, ImmutableList.of(assignee, value))); } /** @@ -1422,7 +1501,6 @@ public void translateJmlAssertCondition(final JmlAssert jmlAssert, final IProgra * @param method the method containing the block. * @param block the block. * @param variables an instance of {@link AuxiliaryContract.Variables} for the block. - * @return */ private ProgramVariableCollection createProgramVariables(final IProgramMethod method, final JavaStatement block, final AuxiliaryContract.Variables variables) { diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/JmlIO.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/JmlIO.java index 0c3da1c9355..7b22ada1d2b 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/JmlIO.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/JmlIO.java @@ -13,6 +13,8 @@ import de.uka.ilkd.key.logic.op.IObserverFunction; import de.uka.ilkd.key.logic.op.LocationVariable; import de.uka.ilkd.key.logic.op.ProgramVariable; +import de.uka.ilkd.key.nparser.KeyAst; +import de.uka.ilkd.key.nparser.ParsingFacade; import de.uka.ilkd.key.speclang.PositionedString; import de.uka.ilkd.key.speclang.jml.translation.Context; import de.uka.ilkd.key.speclang.translation.SLExpression; @@ -26,6 +28,7 @@ import org.antlr.v4.runtime.ParserRuleContext; import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.NullMarked; import org.jspecify.annotations.Nullable; /** @@ -43,25 +46,21 @@ * @version 1 (7/1/20) * @see Translator */ +@NullMarked public class JmlIO { + private ImmutableList warnings = ImmutableSLList.nil(); - private Services services; - private KeYJavaType specInClass; - private ProgramVariable selfVar; - private SpecMathMode specMathMode; - private ImmutableList paramVars; - private ProgramVariable resultVar; - private ProgramVariable excVar; - private Map atPres; - private Map atBefores; + private final Services services; - /** - * Generate an empty jml i/o instance. No very useful until a {@link #services(Services)} is - * provided. - */ - public JmlIO() { - } + private @Nullable KeYJavaType specInClass; + private @Nullable ProgramVariable selfVar; + private @Nullable SpecMathMode specMathMode; + private @Nullable ImmutableList paramVars; + private @Nullable ProgramVariable resultVar; + private @Nullable ProgramVariable excVar; + private @Nullable Map atPres; + private @Nullable Map atBefores; /** * Generate an empty jml i/o instance. @@ -84,7 +83,7 @@ public JmlIO(Services services) { * @param atPres i do not know * @param atBefores i do not know */ - public JmlIO(@NonNull Services services, @Nullable KeYJavaType specInClass, + public JmlIO(Services services, @Nullable KeYJavaType specInClass, @Nullable ProgramVariable selfVar, @Nullable ImmutableList paramVars, @Nullable ProgramVariable resultVar, @Nullable ProgramVariable excVar, @Nullable Map atPres, @@ -186,7 +185,14 @@ private Object interpret(ParserRuleContext ctx) { /** * Interpret the given parse tree as an JML expression in the current context. */ - public @NonNull Term translateTerm(@NonNull ParserRuleContext expr) { + public Term translateTerm(KeyAst.Expression expr) { + return translateTerm(ParsingFacade.getParseRuleContext(expr)); + } + + /** + * Interpret the given parse tree as an JML expression in the current context. + */ + public Term translateTerm(ParserRuleContext expr) { Object interpret = interpret(expr); if (interpret instanceof SLExpression) { return ((SLExpression) interpret).getTerm(); @@ -313,7 +319,7 @@ public Triple translateDependencyContract( /** * Sets the variable representing the {@code this} reference. */ - public JmlIO selfVar(ProgramVariable selfVar) { + public JmlIO selfVar(@Nullable ProgramVariable selfVar) { this.selfVar = selfVar; return this; } @@ -337,12 +343,12 @@ public JmlIO parameters(ImmutableList params) { /** * Sets the variable that is used to store exceptions. */ - public JmlIO exceptionVariable(ProgramVariable excVar) { + public JmlIO exceptionVariable(@Nullable ProgramVariable excVar) { this.excVar = excVar; return this; } - public JmlIO atPres(Map atPres) { + public JmlIO atPres(@Nullable Map atPres) { this.atPres = atPres; return this; } @@ -350,34 +356,26 @@ public JmlIO atPres(Map atPres) { /** * Sets the variable representing {@code \result}. */ - public JmlIO resultVariable(ProgramVariable resultVar) { + public JmlIO resultVariable(@Nullable ProgramVariable resultVar) { this.resultVar = resultVar; return this; } - /** - * Sets the current services - */ - public JmlIO services(Services services) { - this.services = services; - return this; - } - /** * Sets the sort/type of the class containing the interpreted JML. */ - public JmlIO classType(KeYJavaType classType) { + public JmlIO classType(@Nullable KeYJavaType classType) { this.specInClass = classType; return this; } - public JmlIO atBefore(Map atBefores) { + public JmlIO atBefore(@Nullable Map atBefores) { this.atBefores = atBefores; return this; } /** - * Sets class type, spec math mode and self var. + * Sets class type, spec math mode and selfVar. */ public JmlIO context(Context context) { this.classType(context.classType()); diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/JmlTermFactory.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/JmlTermFactory.java index c04b662a9e7..1d0cb7b5dde 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/JmlTermFactory.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/JmlTermFactory.java @@ -388,8 +388,8 @@ public Term notModified(Term term, SLExpression t) { return null; } - @NonNull - public SLExpression binary(OverloadedOperatorHandler.JMLOperator jmlOperator, SLExpression left, + public @NonNull SLExpression binary(OverloadedOperatorHandler.JMLOperator jmlOperator, + SLExpression left, SLExpression right) { try { SLExpression result = overloadedFunctionHandler.build(jmlOperator, left, right); @@ -431,8 +431,7 @@ private interface BoundedNumericalQuantifier { // endregion - @NonNull - public SLExpression arrayRef(SLExpression receiver, String fullyQualifiedName, + public @NonNull SLExpression arrayRef(SLExpression receiver, String fullyQualifiedName, SLExpression rangeFrom, SLExpression rangeTo) { SLExpression result; try { @@ -829,8 +828,7 @@ public SLExpression values(KeYJavaType t) { * Need to handle this one differently from INV_FOR since here static invariants may occur too. * For a static invariant, take the passed type as receiver. */ - @NonNull - public SLExpression createInv(Term selfVar, KeYJavaType targetType) { + public @NonNull SLExpression createInv(Term selfVar, KeYJavaType targetType) { final boolean isStatic = selfVar == null; assert targetType != null || !isStatic; final Term result = isStatic ? tb.staticInv(targetType) : tb.inv(selfVar); @@ -841,8 +839,7 @@ public SLExpression createInv(Term selfVar, KeYJavaType targetType) { * Need to handle this one differently from INV_FREE_FOR since here static invariants may occur * too. For a static invariant, take the passed type as receiver. */ - @NonNull - public SLExpression createInvFree(Term selfVar, KeYJavaType targetType) { + public @NonNull SLExpression createInvFree(Term selfVar, KeYJavaType targetType) { final boolean isStatic = selfVar == null; assert targetType != null || !isStatic; final Term result = isStatic ? tb.staticInvFree(targetType) : tb.invFree(selfVar); @@ -956,8 +953,7 @@ public SLExpression seqConcat(Term seq1, Term seq2) { return new SLExpression(tb.seqConcat(seq1, seq2), seqtype); } - @NonNull - public SLExpression seqGet(Term seq, Term idx) { + public @NonNull SLExpression seqGet(Term seq, Term idx) { return new SLExpression(tb.seqGet(JavaDLTheory.ANY, seq, idx)); } @@ -989,8 +985,7 @@ public SLExpression createIndexOf(Term seq, Term elem) { return createBreaks(term, label); } - @NonNull - public Pair createBreaks(Term term, String label) { + public @NonNull Pair createBreaks(Term term, String label) { Term formula = term == null ? tb.tt() : tb.convertToFormula(term); return new Pair<>(label == null ? null : new ProgramElementName(label), formula); } @@ -1184,8 +1179,8 @@ public SLExpression skolemExprHelper(String jmlKeyWord, KeYJavaType type, } - @NonNull - public SLExpression skolemExprHelper(@NonNull KeYJavaType type, @NonNull TermServices services, + public @NonNull SLExpression skolemExprHelper(@NonNull KeYJavaType type, + @NonNull TermServices services, @NonNull String shortName) { shortName = shortName.replace("\\", ""); final Namespace fns = services.getNamespaces().functions(); @@ -1308,8 +1303,7 @@ public SLExpression translateMapExpressionToJDL(String text, ImmutableList qvs) { final Type type = kjt.getJavaType(); diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/LDTHandler.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/LDTHandler.java index d395a97ddc2..3a019ccccda 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/LDTHandler.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/LDTHandler.java @@ -35,11 +35,9 @@ protected LDTHandler(Services services) { this.services = services; } - @Nullable - protected abstract TypedOperator getOperator(Type promotedType, JMLOperator op); + protected abstract @Nullable TypedOperator getOperator(Type promotedType, JMLOperator op); - @Nullable - protected static TypedOperator getOperatorFromMap( + protected static @Nullable TypedOperator getOperatorFromMap( @Nullable Map opMap, JMLOperator op) { if (opMap == null) { @@ -51,8 +49,7 @@ protected static TypedOperator getOperatorFromMap( return jop; } - @Nullable - public SLExpression build(JMLOperator jop, SLExpression left, SLExpression right) + public @Nullable SLExpression build(JMLOperator jop, SLExpression left, SLExpression right) throws SLTranslationException { if (OverloadedOperatorHandler.UNARY_OPERATORS.contains(jop)) { return buildUnary(jop, left); diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/LabeledParserRuleContext.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/LabeledParserRuleContext.java index 8d4074791ac..8e1e8d9dd59 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/LabeledParserRuleContext.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/LabeledParserRuleContext.java @@ -11,17 +11,15 @@ import de.uka.ilkd.key.util.MiscTools; import org.antlr.v4.runtime.ParserRuleContext; -import org.jspecify.annotations.NonNull; import org.jspecify.annotations.Nullable; /** * This class maps a {@link ParserRuleContext} to a {@link TermLabel}. */ public class LabeledParserRuleContext { - @NonNull - public final ParserRuleContext first; - @Nullable - public final TermLabel second; + + public final @Nullable ParserRuleContext first; + public final @Nullable TermLabel second; public LabeledParserRuleContext(ParserRuleContext first, TermLabel second) { if (first == null) { diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/OverloadedOperatorHandler.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/OverloadedOperatorHandler.java index 04046c8fe08..09cc509bf6a 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/OverloadedOperatorHandler.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/OverloadedOperatorHandler.java @@ -126,8 +126,7 @@ public SpecMathMode getSpecMathMode() { return integerHandler.getSpecMathMode(); } - @Nullable - public SLExpression build(JMLOperator op, SLExpression left, SLExpression right) + public @Nullable SLExpression build(JMLOperator op, SLExpression left, SLExpression right) throws SLTranslationException { for (JMLOperatorHandler handler : handlers) { var term = handler.build(op, left, right); @@ -148,9 +147,8 @@ public SequenceHandler(Services services) { tb = services.getTermBuilder(); } - @Nullable @Override - public SLExpression build(JMLOperator op, SLExpression left, SLExpression right) + public @Nullable SLExpression build(JMLOperator op, SLExpression left, SLExpression right) throws SLTranslationException { if (right == null) { return null; @@ -174,9 +172,8 @@ public LocSetHandler(Services services) { tb = services.getTermBuilder(); } - @Nullable @Override - public SLExpression build(JMLOperator op, SLExpression left, SLExpression right) + public @Nullable SLExpression build(JMLOperator op, SLExpression left, SLExpression right) throws SLTranslationException { if (right == null) { return null; @@ -208,9 +205,8 @@ public BinaryBooleanHandler(Services services) { tb = services.getTermBuilder(); } - @Nullable @Override - public SLExpression build(JMLOperator op, SLExpression left, SLExpression right) { + public @Nullable SLExpression build(JMLOperator op, SLExpression left, SLExpression right) { if ((left.getTerm().sort() == sortBoolean || left.getTerm().sort() == JavaDLTheory.FORMULA) && (right.getTerm().sort() == sortBoolean diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/PreParser.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/PreParser.java index fa88eebbd8c..6b761b34a1e 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/PreParser.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/PreParser.java @@ -18,6 +18,7 @@ import org.antlr.v4.runtime.ParserRuleContext; import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; public class PreParser { /** warnings */ @@ -92,7 +93,7 @@ private ImmutableList parseMethodLevel(JmlLexer lexer) { * Parse and interpret class level comments. */ public ImmutableList parseClassLevel(String concatenatedComment, - URI fileName, Position pos) { + @Nullable URI fileName, Position pos) { return parseClassLevel( new PositionedString(concatenatedComment, new Location(fileName, pos))); } @@ -109,7 +110,7 @@ private ImmutableList parseClassLevel(PositionedString posi * Parse and interpret the given string as a method level construct. */ public ImmutableList parseMethodLevel(String concatenatedComment, - URI fileName, Position position) { + @Nullable URI fileName, Position position) { return parseMethodLevel( new PositionedString(concatenatedComment, new Location(fileName, position))); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/TextualTranslator.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/TextualTranslator.java index 386b7740614..1ece96b6e4b 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/TextualTranslator.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/TextualTranslator.java @@ -5,6 +5,7 @@ import de.uka.ilkd.key.ldt.HeapLDT; import de.uka.ilkd.key.logic.label.OriginTermLabel; +import de.uka.ilkd.key.nparser.KeyAst; import de.uka.ilkd.key.speclang.jml.pretranslation.*; import org.key_project.logic.Name; @@ -26,10 +27,8 @@ class TextualTranslator extends JmlParserBaseVisitor { public ImmutableList constructs = ImmutableSLList.nil(); private ImmutableList mods = ImmutableSLList.nil(); - @Nullable - private TextualJMLSpecCase methodContract; - @Nullable - private TextualJMLLoopSpec loopContract; + private @Nullable TextualJMLSpecCase methodContract; + private @Nullable TextualJMLLoopSpec loopContract; /** * Translates a token to a JMLModifier @@ -492,8 +491,7 @@ public Object visitLoop_invariant(JmlParser.Loop_invariantContext ctx) { public Object visitAssume_statement(JmlParser.Assume_statementContext ctx) { TextualJMLAssertStatement b = new TextualJMLAssertStatement(TextualJMLAssertStatement.Kind.ASSUME, - LabeledParserRuleContext.createLabeledParserRuleContext(ctx, - OriginTermLabel.SpecType.ASSUME, attachOriginLabel)); + new KeyAst.Expression(ctx.expression())); constructs = constructs.append(b); return null; } @@ -501,10 +499,8 @@ public Object visitAssume_statement(JmlParser.Assume_statementContext ctx) { @Override public Object visitAssert_statement(JmlParser.Assert_statementContext ctx) { - TextualJMLAssertStatement b = - new TextualJMLAssertStatement(TextualJMLAssertStatement.Kind.ASSERT, - LabeledParserRuleContext.createLabeledParserRuleContext(ctx, - OriginTermLabel.SpecType.ASSERT, attachOriginLabel)); + TextualJMLAssertStatement b = new TextualJMLAssertStatement( + TextualJMLAssertStatement.Kind.ASSERT, new KeyAst.Expression(ctx.expression())); constructs = constructs.append(b); return null; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/Translator.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/Translator.java index 041036de931..39deff85291 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/Translator.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/njml/Translator.java @@ -3,10 +3,7 @@ * SPDX-License-Identifier: GPL-2.0-only */ package de.uka.ilkd.key.speclang.njml; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import de.uka.ilkd.key.java.JavaInfo; @@ -25,8 +22,10 @@ import de.uka.ilkd.key.logic.sort.ArraySort; import de.uka.ilkd.key.proof.OpReplacer; import de.uka.ilkd.key.speclang.ClassAxiom; +import de.uka.ilkd.key.speclang.Contract; import de.uka.ilkd.key.speclang.HeapContext; import de.uka.ilkd.key.speclang.PositionedString; +import de.uka.ilkd.key.speclang.jml.JMLSpecExtractor; import de.uka.ilkd.key.speclang.jml.translation.JMLResolverManager; import de.uka.ilkd.key.speclang.njml.JmlParser.PrimaryFloatingPointContext; import de.uka.ilkd.key.speclang.njml.OverloadedOperatorHandler.JMLOperator; @@ -59,7 +58,7 @@ *

* Note, that this translator does not construct any contracts. In particular, clauses are * translated into a corresponding {@link Term} and are attached in - * {@link de.uka.ilkd.key.speclang.jml.JMLSpecExtractor} into the correct contract. + * {@link JMLSpecExtractor} into the correct contract. * * @author Alexander Weigl * @version 1 (5/10/20) @@ -73,6 +72,7 @@ class Translator extends JmlParserBaseVisitor { private final HeapLDT heapLDT; private final LocSetLDT locSetLDT; private final BooleanLDT booleanLDT; + private final SortLDT sortLDT; private final SLExceptionFactory exc; private final JmlTermFactory termFactory; private final ProgramVariable selfVar; @@ -99,6 +99,7 @@ class Translator extends JmlParserBaseVisitor { this.heapLDT = services.getTypeConverter().getHeapLDT(); this.locSetLDT = services.getTypeConverter().getLocSetLDT(); this.booleanLDT = services.getTypeConverter().getBooleanLDT(); + this.sortLDT = services.getTypeConverter().getSortLDT(); this.exc = new SLExceptionFactory(null, 1, 0); this.selfVar = self; @@ -233,14 +234,10 @@ private String createSignatureString(ImmutableList signature) { if (signature == null || signature.isEmpty()) { return ""; } - StringBuilder sigString = new StringBuilder(); - - for (SLExpression expr : signature) { - final KeYJavaType t = expr.getType(); - sigString.append(t == null ? "" : t.getFullName()).append(", "); - } - - return sigString.substring(0, sigString.length() - 2); + return String.join(", ", signature + .map(SLExpression::getType) + .filter(Objects::nonNull) + .map(KeYJavaType::getFullName)); } // region expression @@ -574,11 +571,18 @@ public SLExpression visitEqualityexpr(JmlParser.EqualityexprContext ctx) { if (floatResult != null) { return floatResult; } + + SLExpression other = expr.get(i); + if (other.isType() && !result.isType()) { + JFunction ssortFunc = sortLDT.getSsort(other.getType().getSort(), services); + other = new SLExpression(tb.func(ssortFunc)); + } + exc.updatePosition(ctx.getStart()); if (tok.getText().equals("==")) { - result = termFactory.eq(result, expr.get(i)); + result = termFactory.eq(result, other); } else { - result = termFactory.neq(result, expr.get(i)); + result = termFactory.neq(result, other); } } return result; @@ -626,33 +630,35 @@ public SLExpression visitInstance_of(JmlParser.Instance_ofContext ctx) { @Override public Object visitSt_expr(JmlParser.St_exprContext ctx) { - SLExpression result = accept(ctx.shiftexpr(0)); + SLExpression left = accept(ctx.shiftexpr(0)); SLExpression right = accept(ctx.shiftexpr(1)); - assert result != null && right != null; - - if (result.isTerm() || right.isTerm()) { - raiseError("Cannot build subtype expression from terms.", ctx); - } - assert result.isType(); - assert right.isType(); - if (result.getTerm() == null) { - exc.addIgnoreWarning("subtype expression <: only supported for" - + " \\typeof() arguments on the left side.", ctx.ST().getSymbol()); - final Namespace fns = services.getNamespaces().functions(); - int x = -1; - Name name; - do { - name = new Name("subtype_" + ++x); - } while (fns.lookup(name) != null); - final JFunction z = new JFunction(name, JavaDLTheory.FORMULA); - fns.add(z); - result = new SLExpression(tb.func(z)); + assert left != null && right != null; + + if (left.isType() && left.getTerm() != null && right.isType()) { + Sort os = right.getType().getSort(); + JFunction ioFunc = services.getJavaDLTheory().getInstanceofSymbol(os, services); + left = new SLExpression(tb.equals(tb.func(ioFunc, left.getTerm()), tb.TRUE())); } else { - final JFunction ioFunc = - services.getJavaDLTheory().getInstanceofSymbol(right.getType().getSort(), services); - result = new SLExpression(tb.equals(tb.func(ioFunc, result.getTerm()), tb.TRUE())); + Term leftSort; + if (left.isTerm()) { + leftSort = left.getTerm(); + } else { + JFunction ssortFunc = sortLDT.getSsort(left.getType().getSort(), services); + leftSort = tb.func(ssortFunc); + } + + Term rightSort; + if (right.isTerm()) { + rightSort = right.getTerm(); + } else { + JFunction ssortFunc = sortLDT.getSsort(right.getType().getSort(), services); + rightSort = tb.func(ssortFunc); + } + + left = new SLExpression(tb.func(sortLDT.getSsubsort(), leftSort, rightSort)); } - return result; + + return left; } @@ -685,7 +691,7 @@ public SLExpression visitRelational_chain(JmlParser.Relational_chainContext ctx) SLExpression result = null; for (int i = 1; i < expressions.size(); i++) { Token opToken = ctx.op.get(i - 1); - JMLOperator jop = JMLOperator.get(opToken.getText()); + JMLOperator jop = get(opToken.getText()); SLExpression left = expressions.get(i - 1); SLExpression right = expressions.get(i); try { @@ -711,7 +717,7 @@ public Object visitShiftexpr(JmlParser.ShiftexprContext ctx) { for (int i = 1; i < e.size(); i++) { String opToken = ctx.op.get(i - 1).getText(); SLExpression expr = e.get(i); - JMLOperator op = JMLOperator.get(opToken); + JMLOperator op = get(opToken); try { result = termFactory.binary(op, result, expr); } catch (RuntimeException ex) { @@ -728,7 +734,7 @@ public Object visitAdditiveexpr(JmlParser.AdditiveexprContext ctx) { for (int i = 1; i < exprs.size(); i++) { SLExpression expr = exprs.get(i); String opToken = ctx.op.get(i - 1).getText(); - JMLOperator op = JMLOperator.get(opToken); + JMLOperator op = get(opToken); try { result = termFactory.binary(op, result, expr); } catch (RuntimeException ex) { @@ -922,8 +928,7 @@ public Object visitThis_(JmlParser.This_Context ctx) { return getThisReceiver(); } - @NonNull - private SLExpression getThisReceiver() { + private @NonNull SLExpression getThisReceiver() { return new SLExpression(tb.var(selfVar), selfVar.getKeYJavaType()); } @@ -1038,6 +1043,20 @@ public Object visitPrimarySuffixCall(JmlParser.PrimarySuffixCallContext ctx) { raiseError(ctx, e); } } + + // support JML built-ins + if (fullyQualifiedName.startsWith("\\")) { + try { + return processJmlBuiltInFunction(fullyQualifiedName, accept(ctx.expressionlist())); + } catch (Exception e) { + // weigl: only log error. There is no reason why a method should not + // start with a "\" in JML. The next version will have, e.g., \seq and \map classes. + addWarning(ctx, + "%s is not known as a JML built-in function. I assume it to be a method or class." + .formatted(fullyQualifiedName)); + } + } + SLParameters params = visitParameters(ctx.expressionlist()); lookupName = lookupName.substring(lookupName.lastIndexOf('.') + 1); @@ -1061,6 +1080,17 @@ public Object visitPrimarySuffixCall(JmlParser.PrimarySuffixCallContext ctx) { return result; } + private SLExpression processJmlBuiltInFunction(String name, + ImmutableList params) { + // at some point in life, we may want to have a customizable map here. + return switch (name) { + case "\\array2seq" -> termFactory.translateToJDLTerm(name.substring(1), params); + case "\\seq_upd" -> termFactory.translateToJDLTerm("seqUpd", params); + case "\\seq_put" -> termFactory.translateToJDLTerm("seqUpd", params); + default -> throw new IllegalStateException("Unexpected value: " + name); + }; + } + private SLParameters visitParameters(JmlParser.Param_listContext ctx) { ImmutableList params = ctx.param_decl().stream().map(it -> lookupIdentifier(it.p.getText(), null, null, it)) @@ -1336,58 +1366,6 @@ public SLExpression visitPrimaryReachLocs(JmlParser.PrimaryReachLocsContext ctx) return termFactory.reachLocs(t, e1, e2, e3); } - @Override - public Object visitFieldarrayaccess(JmlParser.FieldarrayaccessContext ctx) { - SLExpression base = oneOf(ctx.ident(), ctx.super_(), ctx.this_()); - String backupFullyQualifiedName = fullyQualifiedName; - fullyQualifiedName = ctx.start.getText(); - for (JmlParser.Fieldarrayaccess_suffixContext suffx : ctx.fieldarrayaccess_suffix()) { - base = visitFieldarrayaccess_suffix(base, suffx); - } - fullyQualifiedName = backupFullyQualifiedName; - return base; - } - - public SLExpression visitFieldarrayaccess_suffix(SLExpression base, - JmlParser.Fieldarrayaccess_suffixContext ctx) { - if (ctx.DOT() != null) { - String lookupName; - if (ctx.ident() != null) { - String id = ctx.ident().getText(); - if (base == null) { - // Receiver was only a package/classname prefix - lookupName = fullyQualifiedName + "." + id; - } else { - lookupName = id; - } - fullyQualifiedName = fullyQualifiedName + "." + id; - try { - return lookupIdentifier(lookupName, base, null, ctx); - } catch (Exception e) { - return lookupIdentifier(fullyQualifiedName, null, null, ctx); - } - } - if (ctx.TRANSIENT() != null) { - return lookupIdentifier("", base, null, ctx); - } - if (ctx.this_() != null) { - return new SLExpression( - services.getTypeConverter().findThisForSort(base.getType().getSort(), - tb.var(selfVar), javaInfo.getKeYJavaType(selfVar.sort()), true), - base.getType()); - } - if (ctx.INV() != null) { - return termFactory.createInv(base.getTerm(), base.getType()); - } - } else { - // Array access - SLExpression index = accept(ctx.expression()); - return termFactory.arrayRef(base, fullyQualifiedName, index, null); - } - assert false; - return null; - } - @Override public SLExpression visitPrimaryCreateLocsetSingleton( JmlParser.PrimaryCreateLocsetSingletonContext ctx) { @@ -1404,21 +1382,6 @@ public SLExpression visitPrimaryCreateLocsetSingleton( return null; } - @Override - public SLExpression visitPrimaryCreateLocset(JmlParser.PrimaryCreateLocsetContext ctx) { - List aa = mapOf(ctx.fieldarrayaccess()); - List seq = aa.stream().map(termFactory::createStoreRef).collect(Collectors.toList()); - Term ret = null; - if (seq.isEmpty()) { - raiseError(ctx, "empty!"); - } else if (seq.size() == 1) { - ret = seq.get(0); - } else { - ret = tb.union(seq); - } - return new SLExpression(ret, javaInfo.getKeYJavaType(PrimitiveType.JAVA_LOCSET)); - } - @Override public Object visitPrimaryDuration(JmlParser.PrimaryDurationContext ctx) { raiseError("The \\duration function is not supported", ctx); @@ -1605,8 +1568,8 @@ public Object visitPrimaryUnionInf(JmlParser.PrimaryUnionInfContext ctx) { ctx.predicate(), ctx.storeref()); } - @NonNull - private Object createInfiniteUnion(JmlParser.BoundvarmodifiersContext boundvarmodifiers, + private @NonNull Object createInfiniteUnion( + JmlParser.BoundvarmodifiersContext boundvarmodifiers, JmlParser.QuantifiedvardeclsContext quantifiedvardecls, JmlParser.PredicateContext predicate, JmlParser.StorerefContext storeref) { Boolean nullable = accept(boundvarmodifiers); @@ -1687,13 +1650,8 @@ public Object visitSequenceReplace(JmlParser.SequenceReplaceContext ctx) { final Term minusOne = tb.zTerm("-1"); assert e2 != null; assert e1 != null; - final Term ante = tb.seqSub(e1.getTerm(), tb.zero(), tb.add(e2.getTerm(), minusOne)); - assert e3 != null; - final Term insert = tb.seqSingleton(e3.getTerm()); - final Term post = tb.seqSub(e1.getTerm(), tb.add(e2.getTerm(), tb.one()), - tb.add(tb.seqLen(e1.getTerm()), minusOne)); - final Term put = tb.seqConcat(ante, tb.seqConcat(insert, post)); - return new SLExpression(put); + Term updated = tb.seqUpd(e1.getTerm(), e2.getTerm(), e3.getTerm()); + return new SLExpression(updated); } @Override @@ -1913,7 +1871,7 @@ public Object visitDims(JmlParser.DimsContext ctx) { @Override public KeYJavaType visitType(JmlParser.TypeContext ctx) { if (ctx.TYPE() != null) { - raiseError("Only the function \\TYPE is supported", ctx); + return javaInfo.getKeYJavaType(PrimitiveType.JAVA_TYPE); } return oneOf(ctx.builtintype(), ctx.referencetype()); } @@ -2091,7 +2049,7 @@ public Object visitMethod_specification(JmlParser.Method_specificationContext ct @Override - public de.uka.ilkd.key.speclang.Contract visitSpec_case(JmlParser.Spec_caseContext ctx) { + public Contract visitSpec_case(JmlParser.Spec_caseContext ctx) { this.mods = accept(ctx.modifiers()); contractClauses = new ContractClauses(); accept(ctx.spec_body()); diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/translation/SLTranslationException.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/translation/SLTranslationException.java index cc92631fe6f..44a78d86dbf 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/translation/SLTranslationException.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/translation/SLTranslationException.java @@ -12,7 +12,6 @@ import org.jspecify.annotations.Nullable; - public class SLTranslationException extends ProofInputException implements HasLocation { protected final Location location; @@ -36,9 +35,8 @@ public SLTranslationException(String message) { this(message, null, new Location(null, Position.UNDEFINED)); } - @Nullable @Override - public Location getLocation() throws MalformedURLException { + public @Nullable Location getLocation() throws MalformedURLException { return location; } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/strategy/FindTacletAppContainer.java b/key.core/src/main/java/de/uka/ilkd/key/strategy/FindTacletAppContainer.java index 30436ce2317..10313f11e9e 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/strategy/FindTacletAppContainer.java +++ b/key.core/src/main/java/de/uka/ilkd/key/strategy/FindTacletAppContainer.java @@ -18,6 +18,8 @@ import org.key_project.util.collection.ImmutableList; +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; + /** * Instances of this class are immutable */ @@ -132,7 +134,8 @@ private boolean independentSubformulas(PosInOccurrence changePos, SequentFormula if (afterChangeTerm.op() instanceof Modality afterChangeMod) { return beforeChangeMod.kind() == afterChangeMod.kind() && beforeChangeTerm.sub(0) - .equalsModIrrelevantTermLabels(afterChangeTerm.sub(0)); + .equalsModProperty(afterChangeTerm.sub(0), + IRRELEVANT_TERM_LABELS_PROPERTY); } else { return false; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/strategy/NumberRuleAppCost.java b/key.core/src/main/java/de/uka/ilkd/key/strategy/NumberRuleAppCost.java index 0d40797bbb1..6a05386d003 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/strategy/NumberRuleAppCost.java +++ b/key.core/src/main/java/de/uka/ilkd/key/strategy/NumberRuleAppCost.java @@ -56,9 +56,8 @@ public static RuleAppCost create(long p_cost) { */ public abstract long getValue(); - @NonNull @Override - public RuleAppCost mul(@NonNull RuleAppCost cost) { + public @NonNull RuleAppCost mul(@NonNull RuleAppCost cost) { if (cost instanceof TopRuleAppCost) { return cost.mul(this); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/strategy/TopRuleAppCost.java b/key.core/src/main/java/de/uka/ilkd/key/strategy/TopRuleAppCost.java index 4cfaa07dfe4..c2effb0e13c 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/strategy/TopRuleAppCost.java +++ b/key.core/src/main/java/de/uka/ilkd/key/strategy/TopRuleAppCost.java @@ -49,9 +49,8 @@ public final RuleAppCost add(@NonNull RuleAppCost cost2) { * @param cost - non-null {@link RuleAppCost} * @return this instance */ - @NonNull @Override - public RuleAppCost mul(@NonNull RuleAppCost cost) { + public @NonNull RuleAppCost mul(@NonNull RuleAppCost cost) { return this; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/ContainsTermFeature.java b/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/ContainsTermFeature.java index bbc99c47e8c..c614c7d47b5 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/ContainsTermFeature.java +++ b/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/ContainsTermFeature.java @@ -14,6 +14,8 @@ import org.key_project.logic.Visitor; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * Feature for checking if the term of the first projection contains the term of the second @@ -82,9 +84,7 @@ public boolean visitSubtree(Term visited) { @Override public void visit(Term visited) { - // TODO: Fix with better equalsModRenaming handling - var t = (Term) visited; - found = found || t.equalsModRenaming(term); + found = found || visited.equalsModProperty(term, RENAMING_PROPERTY); } @Override diff --git a/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/DependencyContractFeature.java b/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/DependencyContractFeature.java index 6f1a1da1e56..6a84a3bd021 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/DependencyContractFeature.java +++ b/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/DependencyContractFeature.java @@ -17,12 +17,15 @@ import org.key_project.util.collection.ImmutableSLList; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + public final class DependencyContractFeature extends BinaryFeature { private void removePreviouslyUsedSteps(Term focus, Goal goal, List steps) { for (RuleApp app : goal.appliedRuleApps()) { if (app.rule() instanceof UseDependencyContractRule - && app.posInOccurrence().subTerm().equalsModRenaming(focus)) { + && app.posInOccurrence().subTerm().equalsModProperty(focus, + RENAMING_PROPERTY)) { final IBuiltInRuleApp bapp = (IBuiltInRuleApp) app; for (PosInOccurrence ifInst : bapp.ifInsts()) { steps.remove(ifInst); diff --git a/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/DiffFindAndReplacewithFeature.java b/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/DiffFindAndReplacewithFeature.java index ca6bcd57b1d..995a740e82e 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/DiffFindAndReplacewithFeature.java +++ b/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/DiffFindAndReplacewithFeature.java @@ -11,6 +11,8 @@ import de.uka.ilkd.key.rule.tacletbuilder.RewriteTacletGoalTemplate; import de.uka.ilkd.key.rule.tacletbuilder.TacletGoalTemplate; +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; + /** * Binary feature that returns zero iff the replacewith- and find-parts of a Taclet are matched to * different terms. @@ -29,7 +31,8 @@ protected boolean filter(TacletApp app, PosInOccurrence pos, Goal goal, MutableS for (TacletGoalTemplate temp : ((Taclet) app.rule()).goalTemplates()) { RewriteTacletGoalTemplate rwtemp = (RewriteTacletGoalTemplate) temp; - if (rwtemp.replaceWith().equalsModIrrelevantTermLabels(pos.subTerm())) { + if (rwtemp.replaceWith().equalsModProperty(pos.subTerm(), + IRRELEVANT_TERM_LABELS_PROPERTY)) { return false; } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/FocusIsSubFormulaOfInfFlowContractAppFeature.java b/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/FocusIsSubFormulaOfInfFlowContractAppFeature.java index 196ffcab5ae..7f758b320d7 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/FocusIsSubFormulaOfInfFlowContractAppFeature.java +++ b/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/FocusIsSubFormulaOfInfFlowContractAppFeature.java @@ -16,6 +16,8 @@ import org.key_project.util.collection.ImmutableList; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * Checks whether the focus of the ruleApp is contained in one of the formulas added by information @@ -82,8 +84,7 @@ public SubFormulaVisitor(Term potentialSub) { @Override public void visit(Term visited) { - var term = (Term) visited; - isSubFormula |= term.equalsModRenaming(potentialSub); + isSubFormula |= visited.equalsModProperty(potentialSub, RENAMING_PROPERTY); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/NonDuplicateAppModPositionFeature.java b/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/NonDuplicateAppModPositionFeature.java index 9c8de611c8b..7ab6c3849e4 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/NonDuplicateAppModPositionFeature.java +++ b/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/NonDuplicateAppModPositionFeature.java @@ -10,6 +10,7 @@ import org.key_project.util.collection.ImmutableList; +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; /** * Binary feature that returns zero iff a certain Taclet app has not already been performed @@ -23,7 +24,7 @@ protected boolean comparePio(TacletApp newApp, TacletApp oldApp, PosInOccurrence PosInOccurrence oldPio) { final Term newFocus = newPio.subTerm(); final Term oldFocus = oldPio.subTerm(); - if (!newFocus.equalsModIrrelevantTermLabels(oldFocus)) { + if (!newFocus.equalsModProperty(oldFocus, IRRELEVANT_TERM_LABELS_PROPERTY)) { return false; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/QueryExpandCost.java b/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/QueryExpandCost.java index 69da9cc525d..a7626199849 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/QueryExpandCost.java +++ b/key.core/src/main/java/de/uka/ilkd/key/strategy/feature/QueryExpandCost.java @@ -24,6 +24,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; + /** * A Feature that computes the cost for using the query expand rule. * @@ -179,7 +181,8 @@ protected int queryExpandAlreadyAppliedAtPos(RuleApp app, PosInOccurrence pos, G final Term oldterm = pio.subTerm(); final Term curterm = pos.subTerm(); if (appliedRuleApp.rule().equals(QueryExpand.INSTANCE) - && oldterm.equalsModIrrelevantTermLabels(curterm)) { + && oldterm.equalsModProperty(curterm, + IRRELEVANT_TERM_LABELS_PROPERTY)) { count++; if (count > maxRepetitionsOnSameTerm) { break; diff --git a/key.core/src/main/java/de/uka/ilkd/key/strategy/quantifierHeuristics/EqualityConstraint.java b/key.core/src/main/java/de/uka/ilkd/key/strategy/quantifierHeuristics/EqualityConstraint.java index cf61441a1cf..4ec10942fd7 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/strategy/quantifierHeuristics/EqualityConstraint.java +++ b/key.core/src/main/java/de/uka/ilkd/key/strategy/quantifierHeuristics/EqualityConstraint.java @@ -13,6 +13,7 @@ import de.uka.ilkd.key.java.Services; import de.uka.ilkd.key.logic.BooleanContainer; import de.uka.ilkd.key.logic.Term; +import de.uka.ilkd.key.logic.equality.RenamingProperty; import de.uka.ilkd.key.logic.label.TermLabelState; import de.uka.ilkd.key.logic.op.Operator; import de.uka.ilkd.key.logic.op.ProgramVariable; @@ -413,7 +414,8 @@ private static NameAbstractionTable handleJava(Term t0, Term t1, NameAbstraction if (!t0.javaBlock().isEmpty() || !t1.javaBlock().isEmpty()) { nat = checkNat(nat); - if (!t0.javaBlock().equalsModRenaming(t1.javaBlock(), nat)) { + if (RenamingProperty.javaBlocksNotEqualModRenaming(t0.javaBlock(), t1.javaBlock(), + nat)) { return FAILED; } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/strategy/quantifierHeuristics/HandleArith.java b/key.core/src/main/java/de/uka/ilkd/key/strategy/quantifierHeuristics/HandleArith.java index 187f7acf3f8..be6254ffe59 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/strategy/quantifierHeuristics/HandleArith.java +++ b/key.core/src/main/java/de/uka/ilkd/key/strategy/quantifierHeuristics/HandleArith.java @@ -15,6 +15,8 @@ import org.key_project.util.LRUCache; import org.key_project.util.collection.Pair; +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; + /** * This class is used to prove some simple arithmetic problem which are {@code a==b}, {@code a>=b}, * {@code a<=b}; Besides it can be used to prove that {@code a>=b} or {@code a<=b} by @@ -50,7 +52,7 @@ public static Term provedByArith(Term problem, Services services) { final Term falseT = tb.ff(); final Term arithTerm = formatArithTerm(problem, tb, integerLDT, services.getCaches()); - if (arithTerm.equalsModIrrelevantTermLabels(falseT)) { + if (arithTerm.equalsModProperty(falseT, IRRELEVANT_TERM_LABELS_PROPERTY)) { result = provedArithEqual(problem, tb, services); putInTermCache(provedByArithCache, problem, result); return result; diff --git a/key.core/src/main/java/de/uka/ilkd/key/strategy/quantifierHeuristics/PredictCostProver.java b/key.core/src/main/java/de/uka/ilkd/key/strategy/quantifierHeuristics/PredictCostProver.java index 1631242a033..a73630becb7 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/strategy/quantifierHeuristics/PredictCostProver.java +++ b/key.core/src/main/java/de/uka/ilkd/key/strategy/quantifierHeuristics/PredictCostProver.java @@ -17,6 +17,9 @@ import org.key_project.util.collection.DefaultImmutableSet; import org.key_project.util.collection.ImmutableSet; +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * TODO: rewrite, this seems pretty inefficient ... */ @@ -102,7 +105,7 @@ private Term provedBySelf(Term problem) { op = pro.op(); } if ((op == Equality.EQUALS || op == Equality.EQV) - && pro.sub(0).equalsModRenaming(pro.sub(1))) { + && pro.sub(0).equalsModProperty(pro.sub(1), RENAMING_PROPERTY)) { return negated ? falseT : trueT; } Term arithRes = HandleArith.provedByArith(pro, services); @@ -130,7 +133,7 @@ private Term directConsequenceOrContradictionOfAxiom(Term problem, Term axiom) { ax = ax.sub(0); negated = !negated; } - if (pro.equalsModRenaming(ax)) { + if (pro.equalsModProperty(ax, RENAMING_PROPERTY)) { return negated ? falseT : trueT; } return problem; @@ -343,7 +346,8 @@ public boolean selfRefine(ImmutableSet lits) { if (op == Junctor.TRUE) { return true; } - if (op == Junctor.FALSE && terms[0].equalsModIrrelevantTermLabels(terms[j])) { + if (op == Junctor.FALSE + && terms[0].equalsModProperty(terms[j], IRRELEVANT_TERM_LABELS_PROPERTY)) { next = next.remove(terms[j]); literals = literals.remove(terms[j]); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/strategy/termfeature/EqTermFeature.java b/key.core/src/main/java/de/uka/ilkd/key/strategy/termfeature/EqTermFeature.java index b5ea4a4938c..547fdf0f6d9 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/strategy/termfeature/EqTermFeature.java +++ b/key.core/src/main/java/de/uka/ilkd/key/strategy/termfeature/EqTermFeature.java @@ -8,6 +8,8 @@ import de.uka.ilkd.key.strategy.feature.MutableState; import de.uka.ilkd.key.strategy.termProjection.TermBuffer; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * Term feature for testing equality of two terms. The feature returns zero iff it is invoked on a * term that is equal to the current value of pattern. @@ -29,6 +31,6 @@ private EqTermFeature(TermBuffer pattern) { @Override protected boolean filter(Term term, MutableState mState, Services services) { - return term.equalsModRenaming(pattern.getContent(mState)); + return term.equalsModProperty(pattern.getContent(mState), RENAMING_PROPERTY); } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/strategy/termgenerator/RootsGenerator.java b/key.core/src/main/java/de/uka/ilkd/key/strategy/termgenerator/RootsGenerator.java index 09beab67408..43ea6a2a68a 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/strategy/termgenerator/RootsGenerator.java +++ b/key.core/src/main/java/de/uka/ilkd/key/strategy/termgenerator/RootsGenerator.java @@ -23,6 +23,8 @@ import org.key_project.util.collection.ImmutableSLList; +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; + /** * Term generator for inferring the range of values that a variable can have from a given non-linear @@ -90,7 +92,7 @@ private Iterator emptyIterator() { } private Iterator toIterator(Term res) { - if (res.equalsModIrrelevantTermLabels(tb.ff())) { + if (res.equalsModProperty(tb.ff(), IRRELEVANT_TERM_LABELS_PROPERTY)) { return emptyIterator(); } return ImmutableSLList.nil().prepend(res).iterator(); diff --git a/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/lemma/TacletProofObligationInput.java b/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/lemma/TacletProofObligationInput.java index 51869393a9d..656e3c8ff47 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/lemma/TacletProofObligationInput.java +++ b/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/lemma/TacletProofObligationInput.java @@ -12,6 +12,7 @@ import de.uka.ilkd.key.proof.init.*; import de.uka.ilkd.key.proof.mgt.ProofEnvironment; import de.uka.ilkd.key.rule.Taclet; +import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.taclettranslation.lemma.TacletSoundnessPOLoader.LoaderListener; import de.uka.ilkd.key.taclettranslation.lemma.TacletSoundnessPOLoader.TacletFilter; import de.uka.ilkd.key.taclettranslation.lemma.TacletSoundnessPOLoader.TacletInfo; @@ -32,7 +33,7 @@ * @author mattias ulbrich */ public class TacletProofObligationInput implements ProofOblInput, IPersistablePO { - private static final Logger LOGGER = LoggerFactory.getLogger(TacletProofObligationInput.class); + static final Logger LOGGER = LoggerFactory.getLogger(TacletProofObligationInput.class); public static final String AXIOM_FILE = "axiomFile"; private final String tacletName; @@ -113,25 +114,27 @@ public TacletProofObligationInput(String tacletName, InitConfig initConfig) { * Fill in only the necessary info. */ @Override - public void fillSaveProperties(Properties properties) throws IOException { - properties.setProperty(IPersistablePO.PROPERTY_CLASS, getClass().getCanonicalName()); - properties.setProperty(IPersistablePO.PROPERTY_NAME, name()); + public Configuration createLoaderConfig() throws IOException { + var c = new Configuration(); + c.set(IPersistablePO.PROPERTY_CLASS, getClass().getCanonicalName()); + c.set(IPersistablePO.PROPERTY_NAME, name()); // TODO MU ----- make the file names relative // MiscTools.makeFilenamesRelative. However ... I need the store save name ... if (tacletFile != null) { - properties.setProperty("tacletFile", tacletFile); + c.set("tacletFile", tacletFile); } if (definitionFile != null) { - properties.setProperty("definitionFile", definitionFile); + c.set("definitionFile", definitionFile); } if (axiomFiles != null) { for (int i = 0; i < axiomFiles.length; i++) { String name = AXIOM_FILE + (i == 0 ? "" : (i + 1)); - properties.setProperty(name, axiomFiles[i]); + c.set(name, axiomFiles[i]); } } + return c; } @Override @@ -197,30 +200,19 @@ public boolean implies(ProofOblInput po) { return this == po; } - public static LoadedPOContainer loadFrom(InitConfig initConfig, Properties properties) { - String tacletName = properties.getProperty(PROPERTY_NAME); - // This string is parsed by "proveRules.pl" - if (java.awt.GraphicsEnvironment.isHeadless()) { - LOGGER.info("Proof obligation for taclet: {}", tacletName); - } - TacletProofObligationInput proofOblInput = - new TacletProofObligationInput(tacletName, initConfig); - proofOblInput.setLoadInfo(properties); - return new LoadedPOContainer(proofOblInput); - } - - private void setLoadInfo(Properties properties) { - this.baseDir = - new File(properties.getProperty(IPersistablePO.PROPERTY_FILENAME)).getParent(); - this.tacletFile = properties.getProperty("tacletFile"); - this.definitionFile = properties.getProperty("definitionFile"); + void setLoadInfo(Configuration properties) { + final var pathname = + Objects.requireNonNull(properties.getString(IPersistablePO.PROPERTY_FILENAME)); + this.baseDir = new File(pathname).getParent(); + this.tacletFile = properties.getString("tacletFile"); + this.definitionFile = properties.getString("definitionFile"); List axioms = new ArrayList<>(); String name = AXIOM_FILE; - String axFile = properties.getProperty(name); + String axFile = properties.getString(name); while (axFile != null) { axioms.add(axFile); name = AXIOM_FILE + (axioms.size() + 1); - axFile = properties.getProperty(name); + axFile = properties.getString(name); } this.axiomFiles = axioms.toArray(new String[0]); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/lemma/TacletProofObligationInputLoader.java b/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/lemma/TacletProofObligationInputLoader.java new file mode 100644 index 00000000000..0501d040b10 --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/lemma/TacletProofObligationInputLoader.java @@ -0,0 +1,40 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.taclettranslation.lemma; + +import de.uka.ilkd.key.proof.init.IPersistablePO; +import de.uka.ilkd.key.proof.init.InitConfig; +import de.uka.ilkd.key.proof.init.loader.ProofObligationLoader; +import de.uka.ilkd.key.settings.Configuration; + +import org.jspecify.annotations.NullMarked; + +/** + * @author Alexander Weigl + * @version 1 (29.12.23) + */ +@NullMarked +public class TacletProofObligationInputLoader implements ProofObligationLoader { + @Override + public IPersistablePO.LoadedPOContainer loadFrom(InitConfig initConfig, + Configuration properties) { + String tacletName = properties.getString(IPersistablePO.PROPERTY_NAME); + // This string is parsed by "proveRules.pl" + if (java.awt.GraphicsEnvironment.isHeadless()) { + TacletProofObligationInput.LOGGER.info("Proof obligation for taclet: {}", tacletName); + } + TacletProofObligationInput proofOblInput = + new TacletProofObligationInput(tacletName, initConfig); + proofOblInput.setLoadInfo(properties); + return new IPersistablePO.LoadedPOContainer(proofOblInput); + } + + @Override + public boolean handles(String identifier) { + return TacletProofObligationInput.class.getSimpleName().equals(identifier) + || TacletProofObligationInput.class.getName().equals(identifier) + || getClass().getName().equals(identifier) + || getClass().getSimpleName().equals(identifier); + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/util/ExceptionTools.java b/key.core/src/main/java/de/uka/ilkd/key/util/ExceptionTools.java index b32cbd03e75..d49b8cc496b 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/util/ExceptionTools.java +++ b/key.core/src/main/java/de/uka/ilkd/key/util/ExceptionTools.java @@ -3,8 +3,9 @@ * SPDX-License-Identifier: GPL-2.0-only */ package de.uka.ilkd.key.util; +import java.io.File; import java.net.MalformedURLException; -import java.util.Optional; +import java.nio.file.Paths; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -13,8 +14,15 @@ import de.uka.ilkd.key.parser.proofjava.ParseException; import de.uka.ilkd.key.parser.proofjava.Token; import de.uka.ilkd.key.parser.proofjava.TokenMgrError; +import de.uka.ilkd.key.proof.io.ProblemLoaderException; import de.uka.ilkd.key.util.parsing.HasLocation; +import org.antlr.v4.runtime.InputMismatchException; +import org.antlr.v4.runtime.IntStream; +import org.antlr.v4.runtime.NoViableAltException; +import org.antlr.v4.runtime.Vocabulary; +import org.antlr.v4.runtime.misc.IntervalSet; +import org.antlr.v4.runtime.misc.ParseCancellationException; import org.jspecify.annotations.NonNull; import org.jspecify.annotations.Nullable; @@ -38,6 +46,68 @@ public final class ExceptionTools { private ExceptionTools() { } + /** + * Get the throwable's message. This will return a nicer error message for + * certain ANTLR exceptions. + * + * @param throwable a throwable + * @return message for the exception + */ + public static String getMessage(@Nullable Throwable throwable) { + if (throwable == null) { + return ""; + } else if (throwable instanceof ParseCancellationException + || throwable instanceof ProblemLoaderException) { + return getMessage(throwable.getCause()); + } else if (throwable instanceof InputMismatchException ime) { + return getNiceMessage(ime); + } else if (throwable instanceof NoViableAltException nvae) { + return getNiceMessage(nvae); + } else { + return throwable.getMessage(); + } + } + + public static String getNiceMessage(InputMismatchException ime) { + return getNiceMessageInternal(ime.getInputStream(), ime.getOffendingToken(), + ime.getRecognizer().getVocabulary(), ime.getExpectedTokens()); + } + + public static String getNiceMessage(NoViableAltException ime) { + return getNiceMessageInternal(ime.getInputStream(), ime.getOffendingToken(), + ime.getRecognizer().getVocabulary(), ime.getExpectedTokens()); + } + + private static String getNiceMessageInternal(IntStream inputStream, + org.antlr.v4.runtime.Token offendingToken, Vocabulary vocabulary, + IntervalSet expectedTokens) { + StringBuilder sb = new StringBuilder(); + + sb.append("Syntax error in input file "); + var inFile = new File(inputStream.getSourceName()); + sb.append(inFile.getName()); + sb.append("\n"); + sb.append("Line: "); + sb.append(offendingToken.getLine()); + sb.append(" Column: "); + sb.append(offendingToken.getCharPositionInLine() + 1); + + sb.append("\n"); + sb.append("Found token which was not expected: "); + sb.append(vocabulary.getDisplayName(offendingToken.getType())); + sb.append("\n"); + sb.append("Expected token type(s): "); + for (var interval : expectedTokens.getIntervals()) { + for (int i = interval.a; i <= interval.b; i++) { + sb.append(vocabulary.getDisplayName(i)); + sb.append("\n"); + } + } + + return sb.toString(); + } + + /** * Tries to resolve the location (i.e., file name, line, and column) from a parsing exception. * Result may be null. @@ -48,32 +118,55 @@ private ExceptionTools() { * given Throwable can not be successfully converted to a URL and thus no Location can * be created */ - public static Optional getLocation(@NonNull Throwable exc) + public static @Nullable Location getLocation(@NonNull Throwable exc) throws MalformedURLException { if (exc instanceof HasLocation) { - return Optional.ofNullable(((HasLocation) exc).getLocation()); + return ((HasLocation) exc).getLocation(); } else if (exc instanceof ParseException) { - return Optional.ofNullable(getLocation((ParseException) exc)); + return getLocation((ParseException) exc); } else if (exc instanceof TokenMgrError) { - return Optional.ofNullable(getLocation((TokenMgrError) exc)); + return getLocation((TokenMgrError) exc); + } else if (exc instanceof InputMismatchException ime) { + return getLocation(ime); + } else if (exc instanceof NoViableAltException nvae) { + return getLocation(nvae); } if (exc.getCause() != null) { return getLocation(exc.getCause()); } - return Optional.empty(); + return null; } - @Nullable - private static Location getLocation(ParseException exc) { + private static @Nullable Location getLocation(ParseException exc) { // JavaCC has 1-based column numbers Token token = exc.currentToken; return token == null ? null : new Location(null, Position.fromToken(token.next)); } - private static Location getLocation(TokenMgrError exc) { + private static @Nullable Location getLocation(NoViableAltException exc) { + var token = exc.getOffendingToken(); + + return token == null ? null + : new Location( + Paths.get(Paths.get("").toString(), exc.getInputStream().getSourceName()) + .normalize().toUri(), + Position.fromToken(token)); + } + + private static @Nullable Location getLocation(InputMismatchException exc) { + var token = exc.getOffendingToken(); + + return token == null ? null + : new Location( + Paths.get(Paths.get("").toString(), exc.getInputStream().getSourceName()) + .normalize().toUri(), + Position.fromToken(token)); + } + + private static @Nullable Location getLocation(TokenMgrError exc) { Matcher m = TOKEN_MGR_ERR_PATTERN.matcher(exc.getMessage()); if (m.find()) { int line = Integer.parseInt(m.group(1)); diff --git a/key.core/src/main/java/de/uka/ilkd/key/util/KeYTypeUtil.java b/key.core/src/main/java/de/uka/ilkd/key/util/KeYTypeUtil.java index 59d63f49128..e87e74b8cce 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/util/KeYTypeUtil.java +++ b/key.core/src/main/java/de/uka/ilkd/key/util/KeYTypeUtil.java @@ -18,6 +18,8 @@ import org.key_project.util.collection.ImmutableList; import org.key_project.util.java.CollectionUtil; +import org.jspecify.annotations.Nullable; + /** * Provides utility methods which makes it easier to analyze the type hierarchy of * {@link KeYJavaType} instances with help of given {@link Services}. @@ -59,7 +61,7 @@ public static boolean isInnerType(Services services, KeYJavaType type) { * @param type The type. * @return The parent package/type or {@code null} if it has no one. */ - public static String getParentName(Services services, KeYJavaType type) { + public static @Nullable String getParentName(Services services, @Nullable KeYJavaType type) { return type != null ? getParentName(services, type.getFullName()) : null; } @@ -70,7 +72,7 @@ public static String getParentName(Services services, KeYJavaType type) { * @param fullName The name of the current package/type. * @return The parent package/type or {@code null} if it has no one. */ - private static String getParentName(Services services, String fullName) { + private static @Nullable String getParentName(Services services, String fullName) { int lastSeparator = fullName.lastIndexOf(PACKAGE_SEPARATOR); if (lastSeparator >= 0) { String parentName = fullName.substring(0, lastSeparator); @@ -106,7 +108,7 @@ public static boolean isType(Services services, String fullName) { * @param fullName The full name of the requested {@link KeYJavaType}. * @return The found {@link KeYJavaType} or {@code null} if no type exist with the given name. */ - public static KeYJavaType getType(Services services, String fullName) { + public static @Nullable KeYJavaType getType(Services services, String fullName) { try { return services.getJavaInfo().getKeYJavaType(fullName); } catch (Exception e) { @@ -145,7 +147,7 @@ public static boolean isImplicitConstructor(IProgramMethod pm) { * @param implicitConstructor The implicit constructor. * @return The found explicit constructor or {@code null} if not available. */ - public static IProgramMethod findExplicitConstructor(Services services, + public static @Nullable IProgramMethod findExplicitConstructor(Services services, final IProgramMethod implicitConstructor) { if (services != null && implicitConstructor != null) { ImmutableList pms = diff --git a/key.core/src/main/java/de/uka/ilkd/key/util/MiscTools.java b/key.core/src/main/java/de/uka/ilkd/key/util/MiscTools.java index 390f0d988d3..2886e8dada3 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/util/MiscTools.java +++ b/key.core/src/main/java/de/uka/ilkd/key/util/MiscTools.java @@ -81,7 +81,7 @@ private MiscTools() { * @return The {@link LoopSpecification} for the loop statement in the given term or an empty * optional if there is no specified invariant for the loop. */ - public static Optional getSpecForTermWithLoopStmt(final Term loopTerm, + public static @Nullable LoopSpecification getSpecForTermWithLoopStmt(final Term loopTerm, final Services services) { assert loopTerm.op() instanceof Modality; assert loopTerm.javaBlock() != JavaBlock.EMPTY_JAVABLOCK; @@ -93,7 +93,7 @@ public static Optional getSpecForTermWithLoopStmt(final Term final LoopStatement loop = (LoopStatement) pe.getFirstElement(); - return Optional.ofNullable(services.getSpecificationRepository().getLoopSpec(loop)); + return services.getSpecificationRepository().getLoopSpec(loop); } /** @@ -804,13 +804,11 @@ public static URI getZipEntryURI(ZipFile zipFile, String entryName) throws IOExc // } } - @Nullable - public static URI getURIFromTokenSource(TokenSource source) { + public static @Nullable URI getURIFromTokenSource(TokenSource source) { return getURIFromTokenSource(source.getSourceName()); } - @Nullable - public static URI getURIFromTokenSource(String source) { + public static @Nullable URI getURIFromTokenSource(String source) { if (IntStream.UNKNOWN_SOURCE_NAME.equals(source)) { return null; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/util/NodePreorderIterator.java b/key.core/src/main/java/de/uka/ilkd/key/util/NodePreorderIterator.java index 3879f041559..7ce9b840f61 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/util/NodePreorderIterator.java +++ b/key.core/src/main/java/de/uka/ilkd/key/util/NodePreorderIterator.java @@ -5,6 +5,8 @@ import de.uka.ilkd.key.proof.Node; +import org.jspecify.annotations.Nullable; + /** *

* Iterates preorder over the whole sub tree of a given {@link Node}. @@ -32,7 +34,7 @@ public class NodePreorderIterator { /** * The next element or {@code null} if no more elements exists. */ - private Node next; + private @Nullable Node next; /** * The child index of {@link #next} on its parent. @@ -53,13 +55,9 @@ public NodePreorderIterator(Node start) { this.start = start; this.next = start; this.returnedParents = 0; - if (start != null) { - Node parent = start.parent(); - if (parent != null) { - this.childIndexOnParent = parent.getChildNr(start); - } else { - this.childIndexOnParent = -1; - } + Node parent = start.parent(); + if (parent != null) { + this.childIndexOnParent = parent.getChildNr(start); } else { this.childIndexOnParent = -1; } @@ -79,7 +77,7 @@ public boolean hasNext() { * * @return The next {@link Node}. */ - public Node next() { + public @Nullable Node next() { Node oldNext = next; updateNext(); return oldNext; @@ -130,7 +128,7 @@ protected void updateNext() { * @param node The visited {@link Node}. * @return The next {@link Node} to visit. */ - protected Node getNextOnParent(Node node) { + protected @Nullable Node getNextOnParent(Node node) { Node parent = node.parent(); while (parent != null) { boolean nodeFound = false; // Indicates that node was found on the parent. diff --git a/key.core/src/main/java/de/uka/ilkd/key/util/RecognitionException.java b/key.core/src/main/java/de/uka/ilkd/key/util/RecognitionException.java index 4880e779dce..82e51ccfae8 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/util/RecognitionException.java +++ b/key.core/src/main/java/de/uka/ilkd/key/util/RecognitionException.java @@ -30,9 +30,8 @@ public Position getPosition() { return position; } - @Nullable @Override - public Location getLocation() throws MalformedURLException { + public @Nullable Location getLocation() throws MalformedURLException { return new Location(MiscTools.getURIFromTokenSource(input.getSourceName()), position); } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/util/SideProofUtil.java b/key.core/src/main/java/de/uka/ilkd/key/util/SideProofUtil.java index 461d7ea010c..0cfd19c4e06 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/util/SideProofUtil.java +++ b/key.core/src/main/java/de/uka/ilkd/key/util/SideProofUtil.java @@ -42,9 +42,8 @@ private SideProofUtil() { * {@link Proof} but with its own {@link OneStepSimplifier} instance. */ @SuppressWarnings("unchecked") - public static ProofEnvironment cloneProofEnvironmentWithOwnOneStepSimplifier(final Proof source, - final Choice... enableChoices) { - assert source != null; + public static ProofEnvironment cloneProofEnvironmentWithOwnOneStepSimplifier( + final Proof source, final Choice... enableChoices) { assert !source.isDisposed(); // Get required source instances final InitConfig sourceInitConfig = source.getInitConfig(); @@ -124,7 +123,6 @@ public static ImmutableSet activateChoice(ImmutableSet choices, public static ProofStarter createSideProof(ProofEnvironment sideProofEnvironment, Sequent sequentToProve, String proofName) throws ProofInputException { // Make sure that valid parameters are given - assert sequentToProve != null; // Create ProofStarter ProofStarter starter = new ProofStarter(false); // Configure ProofStarter diff --git a/key.core/src/main/java/de/uka/ilkd/key/util/mergerule/MergeRuleUtils.java b/key.core/src/main/java/de/uka/ilkd/key/util/mergerule/MergeRuleUtils.java index 9f5db5e2e4c..a3750cf89e5 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/util/mergerule/MergeRuleUtils.java +++ b/key.core/src/main/java/de/uka/ilkd/key/util/mergerule/MergeRuleUtils.java @@ -45,6 +45,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * This class encapsulates static methods used in the MergeRule implementation. The methods are * organized into different sections (see comments): @@ -1719,7 +1721,7 @@ static class TermWrapperFactory { public TermWrapper wrapTerm(Term term) { for (Term existingTerm : wrappedTerms) { - if (existingTerm.equalsModRenaming(term)) { + if (existingTerm.equalsModProperty(term, RENAMING_PROPERTY)) { return new TermWrapper(term, existingTerm.hashCode()); } } @@ -1750,7 +1752,7 @@ record TermWrapper(Term term, int hashcode) { @Override public boolean equals(Object obj) { return obj instanceof TermWrapper - && term.equalsModRenaming(((TermWrapper) obj).term()); + && term.equalsModProperty(((TermWrapper) obj).term(), RENAMING_PROPERTY); } @Override diff --git a/key.core/src/main/java/de/uka/ilkd/key/util/package-info.java b/key.core/src/main/java/de/uka/ilkd/key/util/package-info.java index 0ce8a09b6c4..71b3da65b64 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/util/package-info.java +++ b/key.core/src/main/java/de/uka/ilkd/key/util/package-info.java @@ -3,4 +3,7 @@ * side functionalities like the installer (subpackage install), and the tool for * removing generics from a Java program (subpackage removegenerics). */ +@NullMarked package de.uka.ilkd.key.util; + +import org.jspecify.annotations.NullMarked; diff --git a/key.core/src/main/java/de/uka/ilkd/key/util/parsing/BuildingException.java b/key.core/src/main/java/de/uka/ilkd/key/util/parsing/BuildingException.java index ef6cc9d2b2e..1923f71bfd5 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/util/parsing/BuildingException.java +++ b/key.core/src/main/java/de/uka/ilkd/key/util/parsing/BuildingException.java @@ -57,9 +57,8 @@ public String toString() { return getMessage() + " (" + getPosition(offendingSymbol) + ")"; } - @Nullable @Override - public Location getLocation() throws MalformedURLException { + public @Nullable Location getLocation() throws MalformedURLException { if (offendingSymbol != null) { URI uri = MiscTools.getURIFromTokenSource(offendingSymbol.getTokenSource()); return new Location(uri, Position.fromToken(offendingSymbol)); diff --git a/key.core/src/main/java/de/uka/ilkd/key/util/parsing/LocatableException.java b/key.core/src/main/java/de/uka/ilkd/key/util/parsing/LocatableException.java index ffa7cb32b9b..83688a2e6ce 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/util/parsing/LocatableException.java +++ b/key.core/src/main/java/de/uka/ilkd/key/util/parsing/LocatableException.java @@ -43,9 +43,8 @@ public LocatableException(String message, Throwable cause, boolean enableSuppres this.location = location; } - @Nullable @Override - public Location getLocation() throws MalformedURLException { + public @Nullable Location getLocation() throws MalformedURLException { return location; } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/util/properties/ArrayProperties.java b/key.core/src/main/java/de/uka/ilkd/key/util/properties/ArrayProperties.java deleted file mode 100644 index 70906533dfc..00000000000 --- a/key.core/src/main/java/de/uka/ilkd/key/util/properties/ArrayProperties.java +++ /dev/null @@ -1,80 +0,0 @@ -/* This file is part of KeY - https://key-project.org - * KeY is licensed under the GNU General Public License Version 2 - * SPDX-License-Identifier: GPL-2.0-only */ -package de.uka.ilkd.key.util.properties; - -import java.util.Arrays; - -public class ArrayProperties extends AbstractProperties { - - private Object[] data = null; - - public ArrayProperties() { - } - - public ArrayProperties(int initialSize) { - data = new Object[initialSize]; - } - - public ArrayProperties(ArrayProperties original) { - data = new Object[original.size()]; - data = Arrays.copyOf(data, data.length); - } - - @Override - public void put(Property property, T value) { - T oldValue = get(property); - // double check typing - property.getType().cast(value); - // ensure capacity; - ensurePresent(property.getNumber()); - // store it in the object - data[property.getNumber()] = value; - firePropertyChange(property, oldValue, value); - } - - private void ensurePresent(int number) { - int size = number + 1; - if (data == null) { - data = new Object[size]; - } else if (data.length < size) { - data = Arrays.copyOf(data, size); - } - } - - @Override - public T get(Property property) { - if (data == null || property.getNumber() >= data.length) { - return null; - } else { - return property.getType().cast(data[property.getNumber()]); - } - } - - @Override - public String toString() { - return Arrays.toString(data); - } - - @Override - public void remove(Property property) { - if (data == null || property.getNumber() >= data.length) { - // do nothing - } else { - T oldValue = get(property); - data[property.getNumber()] = null; - firePropertyChange(property, oldValue, null); - } - } - - @Override - public Properties clone() { - return new ArrayProperties(this); - } - - - @Override - public int size() { - return data.length; - } -} diff --git a/key.core/src/main/java/recoder/service/KeYCrossReferenceSourceInfo.java b/key.core/src/main/java/recoder/service/KeYCrossReferenceSourceInfo.java index 65dcb2554a8..4e18b11c1f7 100644 --- a/key.core/src/main/java/recoder/service/KeYCrossReferenceSourceInfo.java +++ b/key.core/src/main/java/recoder/service/KeYCrossReferenceSourceInfo.java @@ -77,6 +77,7 @@ public class KeYCrossReferenceSourceInfo extends DefaultCrossReferenceSourceInfo private PrimitiveType mapType; private PrimitiveType bigintType; private PrimitiveType realType; + private PrimitiveType typeType; public KeYCrossReferenceSourceInfo(ServiceConfiguration config) { @@ -106,6 +107,7 @@ public void initialize(ServiceConfiguration cfg) { mapType = new PrimitiveType("\\map", this); bigintType = new PrimitiveType("\\bigint", this); realType = new PrimitiveType("\\real", this); + typeType = new PrimitiveType("\\TYPE", this); // HEAP name2primitiveType.put(locsetType.getName(), locsetType); @@ -118,6 +120,7 @@ public void initialize(ServiceConfiguration cfg) { // JML's primitive types name2primitiveType.put(bigintType.getName(), bigintType); name2primitiveType.put(realType.getName(), realType); + name2primitiveType.put(typeType.getName(), typeType); } @Override diff --git a/key.core/src/main/javacc/de/uka/ilkd/key/parser/proofjava/ProofJavaParser.jj b/key.core/src/main/javacc/de/uka/ilkd/key/parser/proofjava/ProofJavaParser.jj index a09ff42ee25..849094e6a9d 100644 --- a/key.core/src/main/javacc/de/uka/ilkd/key/parser/proofjava/ProofJavaParser.jj +++ b/key.core/src/main/javacc/de/uka/ilkd/key/parser/proofjava/ProofJavaParser.jj @@ -503,6 +503,7 @@ TOKEN : | < TRANSIENT: "transient" > | < TRUE: "true" > | < TRY: "try" > +| < TYPE: "\\TYPE" > | < VOID: "void" > | < VOLATILE: "volatile" > | < WHILE: "while" > @@ -2028,6 +2029,7 @@ TypeReference PrimitiveType() : | "\\seq" | "\\free" | "\\map" + | "\\TYPE" | ) { @@ -3289,14 +3291,9 @@ Expression ADTConstructor() : setPrefixInfo(result); } | - "\\seq_put" "(" expr = Expression() "," expr2 = Expression() "," result = Expression() ")" + "\\seq_upd" "(" expr = Expression() "," expr2 = Expression() "," result = Expression() ")" { - // desugaring - final Expression one = factory.createIntLiteral(1); - final Expression first = new SeqSub(expr, factory.createIntLiteral(0), factory.createMinus(expr2, one)); - final Expression second = new SeqSingleton(result); - final Expression third = new SeqSub(expr, factory.createPlus(expr2,one), factory.createMinus(new SeqLength(expr),one)); - result = new SeqConcat(first, new SeqConcat(second, third)); + result = new SeqPut(expr, expr2, result); setPrefixInfo(result); } ) diff --git a/key.core/src/main/javacc/de/uka/ilkd/key/parser/schemajava/SchemaJavaParser.jj b/key.core/src/main/javacc/de/uka/ilkd/key/parser/schemajava/SchemaJavaParser.jj index ad2080d6403..15945643a31 100644 --- a/key.core/src/main/javacc/de/uka/ilkd/key/parser/schemajava/SchemaJavaParser.jj +++ b/key.core/src/main/javacc/de/uka/ilkd/key/parser/schemajava/SchemaJavaParser.jj @@ -5284,14 +5284,10 @@ Expression ADTConstructor() : setPrefixInfo(result); } | - "\\seq_put" "(" expr = Expression() "," expr2 = Expression() "," result = Expression() ")" + "\\seq_upd" "(" expr = Expression() "," expr2 = Expression() "," result = Expression() ")" { // desugaring - final Expression one = factory.createIntLiteral(1); - final Expression first = new SeqSub(expr, factory.createIntLiteral(0), factory.createMinus(expr2, one)); - final Expression second = new SeqSingleton(result); - final Expression third = new SeqSub(expr, factory.createPlus(expr2,one), factory.createMinus(new SeqLength(expr),one)); - result = new SeqConcat(first, new SeqConcat(second, third)); + result = new SeqPut(expr, expr2, result); setPrefixInfo(result); } ) diff --git a/key.core/src/main/resources/META-INF/services/de.uka.ilkd.key.proof.init.loader.ProofObligationLoader b/key.core/src/main/resources/META-INF/services/de.uka.ilkd.key.proof.init.loader.ProofObligationLoader new file mode 100644 index 00000000000..bc8cf8d7c0d --- /dev/null +++ b/key.core/src/main/resources/META-INF/services/de.uka.ilkd.key.proof.init.loader.ProofObligationLoader @@ -0,0 +1,7 @@ +de.uka.ilkd.key.proof.init.loader.DependencyContractPOLoader +de.uka.ilkd.key.proof.init.loader.FunctionalLoopContractPOLoader +de.uka.ilkd.key.proof.init.loader.FunctionalBlockContractPOLoader +de.uka.ilkd.key.proof.init.loader.FunctionOperationContractPOLoader +de.uka.ilkd.key.informationflow.po.InfFlowContractPOLoader +de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInputLoader +de.uka.ilkd.key.proof.init.WellDefinednessPOLoader \ No newline at end of file diff --git a/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/Object.java b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/Object.java index fab929dec20..f63d238a0b9 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/Object.java +++ b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/Object.java @@ -1,7 +1,6 @@ package java.lang; -public class Object { - +public class Object { /*@ public normal_behavior @ assignable \nothing; diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/adtProgramDecompositionRules.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/adtProgramDecompositionRules.key index 5421e99e9b6..41673020323 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/adtProgramDecompositionRules.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/adtProgramDecompositionRules.key @@ -303,4 +303,6 @@ \displayname "seqReverseUnfold" }; -} + // seq_upd had some rules here too. But since set statements were refactored, + // they are not needed anymore anyway. + } diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/javaHeader.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/javaHeader.key new file mode 100644 index 00000000000..810c4692342 --- /dev/null +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/javaHeader.key @@ -0,0 +1,31 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ + +/* + * This file contains the declarations for Java. To find the rules, look at javaRules.key. + */ + +\sorts { + any; + java.lang.Object; + \abstract java.lang.Cloneable \extends java.lang.Object; + \abstract java.io.Serializable \extends java.lang.Object; + + \generic alpha, beta, gamma; + \generic deltaObject \extends java.lang.Object; + + \generic G; + \generic H; + \generic J \extends G; + \generic GOS \extends Object; + \generic alphaObj \extends Object; + \generic betaObj \extends Object; +} + + +\functions { + alpha alpha::cast(any); + boolean alpha::exactInstance(any); + boolean alpha::instance(any); +} diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/javaRules.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/javaRules.key index 0c8a422441c..c4317a71342 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/javaRules.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/javaRules.key @@ -7,15 +7,6 @@ \include assertions; -\sorts { - \generic G; - \generic H; - \generic J \extends G; - \generic GOS \extends Object; - \generic alphaObj \extends Object; - \generic betaObj \extends Object; -} - \schemaVariables { \modalOperator {diamond, box, diamond_transaction, box_transaction} #allmodal; \modalOperator {diamond, diamond_transaction} #diamond; diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/ldt.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/ldt.key index 4d7e958a49c..bd2019bf35b 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/ldt.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/ldt.key @@ -11,9 +11,12 @@ * * Kai Wallisch 08/2014 */ -\includeLDTs boolean, +\includeLDTs + optionsDeclarations, ruleSetsDeclarations, + boolean, integerHeader, + javaHeader, floatHeader, heap, locSets, @@ -23,4 +26,5 @@ map, freeADT, wellfound, - charListHeader; + charListHeader, + types; diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/optionsDeclarations.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/optionsDeclarations.key new file mode 100644 index 00000000000..aac46391232 --- /dev/null +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/optionsDeclarations.key @@ -0,0 +1,252 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ + +/* + * This file contains the known taclet options (aka choices) as well as their documentation. + */ + +\optionsDecl { + + /*! + Treatment of Java assertion statements. Java assertions can be handled in three different ways in KeY. + */ + assertions: { + /*! + If set to 'safe', the following proof obligations have to be shown: + - The program with assertions removed must fulfill the specification + - The asserted conditions must hold (without throwing an exception, + and with termination) + - The assertions do not have side effects influencing the post + conditions. + This is the default option. Proofs with this option are typically harder. + + @choiceDefaultOption + */ + safe, + + /*! If switched 'on', assertions are treated like Java would treat them: + Asserted Statements are evaluated and an AssertionException is + raised if they turn out to be false.*/ + on, + + /*! If switched 'off', assert statements are skipped. */ + off}; + + /*! Specifies whether static (class loading) initialization should be + taken in consideration. + + Both specifications and proof obligations become significantly more + difficult since class loading may take place at many places.*/ + initialisation: {/*! @choiceUnsound */ + disableStaticInitialisation, + enableStaticInitialisation + }; + + /*! This option controls how integer numbers are modeled. */ + intRules: { + /*! 'Arithmetic without overflow checking' treats integers as pure + mathematical objects. The proof obligations are often easier to + discharge. However, the model does not allow the verification of all + properties which hold with Java semantics. Moreover, it allows the + verification of properties which do not hold on Java's actual + semantics. This is the default option. + + @choiceDefaultOption @choiceUnsound + */ + arithmeticSemanticsIgnoringOF, + + /*! 'Arithmetic with overflow checking' also treats integers as + mathematical objects, but ensures that no overflow occurs. While + this model also has a completeness gap, it prevents proving + incorrect properties. + + @choiceIncomplete*/ + arithmeticSemanticsCheckingOF, + + /*! 'Java semantics' treat integers the same way Java would treat them. + The different integer types operate within their respective value + ranges. The bitvector arithmetic is modeled in KeY using modulo + expressions. This is sound and complete. Proof obligations tend + to get more complex with this setting.*/ + javaSemantics + }; + + /*! Rules dealing Java language constructs can be turned off by setting this to 'None'. */ + programRules: {Java, /*! @choiceIncomplete */ None}; + /*! Treatment of implicit runtime exceptions */ + runtimeExceptions: { + /*! If set to 'allow', implicit runtime exceptions are raised as specified + in the Java language specification. + + @choiceIncomplete + */ + ban, + /*! + If set to 'ban', any occurrence of an implicit runtime exception is + considered an unrecoverable program failure. For programs which do not + raise implicit runtime exceptions, this is usually easier to prove than + 'allow'. This is the default option. + */ + allow, + /*! If set to 'ignore', it is assumed that no implicit runtime exception occurs. + Warning: Reasoning with these rules is unsound. + + @choiceUnsound + */ + ignore + }; + + /*! JavaCard is a dialect of Java designed for the use in SmartCards. It + lacks floating point operations and concurrency, but provides stronger + object persistence guarantees. + + There are two values for this option 'on' and 'off'. Switching + on or off all taclets axiomatising JavaCard specific features like transaction. + */ + JavaCard: {off, on}; + + /*! Loading rules dealing with Strings (charLists) can be disabled. */ + Strings: {on, /*! @choiceIncomplete */ off}; + + /*! + Rules for model field representation clauses. JML model fields are given + a semantics by represents clauses. This switch sets how the rules handle these clauses. + */ + modelFields: { + /*! + * If set to 'treatAsAxiom', the representation is seen as an axiom, + satisfiability will not be checked. This may introduce inconsistent + specifications, for example the following contradictory JML clause + will not be rejected: + //@ represents modelField == modelField + 1; + This is the default option since KeY 2.4. + */ + treatAsAxiom, + /*! + If set to 'showSatisfiability', for every expansion of the represents + clause, it must be shown that the definition is _locally_ + satisfiable. Cross-definition inconsistencies can still be + formulated, however: + ``` + //@ represents modelField1 == modelField2; + //@ represents modelField2 == modelField1 + 1; + ``` + This had been the default option previously, until KeY 2.2. + */ + showSatisfiability + }; + /*! Loading program rules dealing with JML's \bigint datatype can be disabled. */ + bigint: {on, off}; + /*! Loading rules dealing with sequences can be disabled. */ + sequences: {on, off}; + /*! This option allows more fine-grained control over rules dealing with sequences. + By default, it is disabled because the additional rules are known to have a negative impact on overall performance. + Activate this option if your problem is concerned with permutations or information flow.*/ + moreSeqRules: {off, on}; + /*! Loading rules dealing with reachability can be disabled. */ + reach: {on, off}; + /*! + Loading less commonly used rules for (mathematical) integers, + such as rules for bounded sums and products, modulo, or polynomials, + can be disabled. If they are loaded, their application in the strategy + can still be controlled as usual. + + This option is experimental. Depending of your understanding of 'less common', + you may experience incompleteness. Doing proofs with Java int semantics will not work, definitely. + + Not to be confused with intRules, which controls the semantics of the Java type int. + */ + integerSimplificationRules: {full, /*! @choiceIncomplete */ minimal}; // TODO: further refine this option + permissions: {off, on}; + + /*! + Treatment of formulas and terms for welldefinedness checks: + */ + wdOperator: { + /*! + More intuitive for software developers and along the lines of + runtime assertion semantics. Well-Definedness checks will be + stricter using this operator, since the order of terms/formulas + matters. It is based on McCarthy logic. + Cf. "Are the Logical Foundations of Verifying Compiler + Prototypes Matching User Expectations?" by Patrice Chalin. + + @choiceDefaultOption + */ + L, + /*! + Complete and along the lines of classical logic, where the + order of terms/formulas is irrelevant. This operator is + equivalent to the D-operator, but more efficient. + Cf. "Efficient Well-Definedness Checking" by Ádám Darvas, + Farhad Mehta, and Arsenii Rudich. + */ + Y, + /*! + Complete and along the lines of classical logic, where the + order of terms/formulas is irrelevant. This operator is not as + strict as the L-operator, based on strong Kleene logic. To be + used with care, since formulas may blow up exponentially. + Cf. "Well Defined B" by Patrick Behm, Lilian Burdy, and + Jean-Marc Meynadier*/ + D + }; + + /*! + Welldefinedness checks of JML specifications can be turned on/off. + This includes class invariants, operation contracts, model fields + as well as JML (annotation) statements as loop invariants and + block contracts. The former ones are checked "on-the-fly", i.e., + directly when they are applied in the code while proving an operation + contract, since the context is needed. + */ + wdChecks: {off, on}; + /*! + Specifies whether a special goal "Joined node is weakening" should be + generated as a child of the partner node of a join operation. + + For join procedures formally proven correct, this should not be necessary. + Enable this option when you are not sure whether a newly implemented join + procedure is sound. In this case, the generated "is weakening" goals should + only be closable if the concrete join instance is correct. + */ + mergeGenerateIsWeakeningGoal: {off, on}; + + /*! + Method calls in KeY can be either handled by inlining the method body or + by applying the method's contract. Inlining a method body is only modularly + sound if it is guaranteed that no new method body can override the known + implementation. + */ + methodExpansion: { + /*! Inlining is modularly sound: Methods can only be inlined if private, + static, final, or in a final method. + @choiceDefaultOption + */ + modularOnly, + /*! Inlining is liberal: Methods can always be inlined, and all known + method implementations are taken into consideration. This setting + is sound under a closed program assumption. + */ + noRestriction + }; + + /*! + Missing documentation + */ + javaLoopTreatment: {efficient, teaching}; + + /*! + Floating points in Java may have a more precise semantics if the hardware + supports it. Only if the Java keyword strictfp is specified can we make + guarantees about the meaning of floating point expressions. + */ + floatRules: { + /*! Require the strictfp keyword if floating points are to be treated. + Otherwise arithmetic remains as underspecified symbols*/ + strictfpOnly, + /*! Treat all code as if it was specified strictfp. */ + assumeStrictfp + }; +} diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/ruleSetsDeclarations.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/ruleSetsDeclarations.key index 9c76073a93c..8141bd44ac4 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/ruleSetsDeclarations.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/ruleSetsDeclarations.key @@ -2,292 +2,17 @@ * KeY is licensed under the GNU General Public License Version 2 * SPDX-License-Identifier: GPL-2.0-only */ -// -// This file contains rules for handling java programs - - -\sorts { - any; - java.lang.Object; - \abstract java.lang.Cloneable \extends java.lang.Object; - \abstract java.io.Serializable \extends java.lang.Object; - - \generic alpha, beta, gamma; - \generic deltaObject \extends java.lang.Object; -} - -\functions { - alpha alpha::cast(any); - boolean alpha::exactInstance(any); - boolean alpha::instance(any); -} /* - return "runtimeExceptions:ignore".equals(choice) || - "initialisation:disableStaticInitialisation".equals(choice) || - "intRules:arithmeticSemanticsIgnoringOF".equals(choice); - - -The optimized select rules can be turned off by setting this option to off. - -The unoptimized rules use inplace rewriting for the evaluation of select terms. This may lead to heap terms growing exponentially in the number of anons/stores to be evaluated. However, in some rare cases the usage of the unoptimized rules may lead to more human readable sequents. - -The optimized rules pull out select terms before they evaluate them. Because other occurences of the same select term are replaced by the Skolem constant introduced by the pullout rule (application of equalities), each select term has to be evaluated only once. Intelligent hiding of no longer needed auxiliary equations holds the sequent human readable and increases performance. The result of the evaluation of a select term is stored such that it can be reapplied immediately if the same select term occurs again. - - -*/ -\optionsDecl { - - /*! - Treatment of Java assertion statements. Java assertions can be handled in three different ways in KeY. - */ - assertions: { - /*! - If set to 'safe', the following proof obligations have to be shown: - - The program with assertions removed must fulfill the specification - - The asserted conditions must hold (without throwing an exception, - and with termination) - - The assertions do not have side effects influencing the post - conditions. - This is the default option. Proofs with this option are typically harder. - - @choiceDefaultOption - */ - safe, - - /*! If switched 'on', assertions are treated like Java would treat them: - Asserted Statements are evaluated and an AssertionException is - raised if they turn out to be false.*/ - on, - - /*! If switched 'off', assert statements are skipped. */ - off}; - - /*! Specifies whether static (class loading) initialization should be - taken in consideration. - - Both specifications and proof obligations become significantly more - difficult since class loading may take place at many places.*/ - initialisation: {/*! @choiceUnsound */ - disableStaticInitialisation, - enableStaticInitialisation - }; - - /*! This option controls how integer numbers are modeled. */ - intRules: { - /*! 'Arithmetic without overflow checking' treats integers as pure - mathematical objects. The proof obligations are often easier to - discharge. However, the model does not allow the verification of all - properties which hold with Java semantics. Moreover, it allows the - verification of properties which do not hold on Java's actual - semantics. This is the default option. - - @choiceDefaultOption @choiceUnsound - */ - arithmeticSemanticsIgnoringOF, - - /*! 'Arithmetic with overflow checking' also treats integers as - mathematical objects, but ensures that no overflow occurs. While - this model also has a completeness gap, it prevents proving - incorrect properties. - - @choiceIncomplete*/ - arithmeticSemanticsCheckingOF, - - /*! 'Java semantics' treat integers the same way Java would treat them. - The different integer types operate within their respective value - ranges. The bitvector arithmetic is modeled in KeY using modulo - expressions. This is sound and complete. Proof obligations tend - to get more complex with this setting.*/ - javaSemantics - }; - - /*! Rules dealing Java language constructs can be turned off by setting this to 'None'. */ - programRules: {Java, /*! @choiceIncomplete */ None}; - /*! Treatment of implicit runtime exceptions */ - runtimeExceptions: { - /*! If set to 'allow', implicit runtime exceptions are raised as specified - in the Java language specification. - - @choiceIncomplete - */ - ban, - /*! - If set to 'ban', any occurrence of an implicit runtime exception is - considered an unrecoverable program failure. For programs which do not - raise implicit runtime exceptions, this is usually easier to prove than - 'allow'. This is the default option. - */ - allow, - /*! If set to 'ignore', it is assumed that no implicit runtime exception occurs. - Warning: Reasoning with these rules is unsound. - - @choiceUnsound - */ - ignore - }; - - /*! JavaCard is a dialect of Java designed for the use in SmartCards. It - lacks floating point operations and concurrency, but provides stronger - object persistence guarantees. - - There are two values for this option 'on' and 'off'. Switching - on or off all taclets axiomatising JavaCard specific features like transaction. - */ - JavaCard: {off, on}; - - /*! Loading rules dealing with Strings (charLists) can be disabled. */ - Strings: {on, /*! @choiceIncomplete */ off}; - - /*! - Rules for model field representation clauses. JML model fields are given - a semantics by represents clauses. This switch sets how the rules handle these clauses. - */ - modelFields: { - /*! - * If set to 'treatAsAxiom', the representation is seen as an axiom, - satisfiability will not be checked. This may introduce inconsistent - specifications, for example the following contradictory JML clause - will not be rejected: - //@ represents modelField == modelField + 1; - This is the default option since KeY 2.4. - */ - treatAsAxiom, - /*! - If set to 'showSatisfiability', for every expansion of the represents - clause, it must be shown that the definition is _locally_ - satisfiable. Cross-definition inconsistencies can still be - formulated, however: - ``` - //@ represents modelField1 == modelField2; - //@ represents modelField2 == modelField1 + 1; - ``` - This had been the default option previously, until KeY 2.2. - */ - showSatisfiability - }; - /*! Loading program rules dealing with JML's \bigint datatype can be disabled. */ - bigint: {on, off}; - /*! Loading rules dealing with sequences can be disabled. */ - sequences: {on, off}; - /*! This option allows more fine-grained control over rules dealing with sequences. - By default, it is disabled because the additional rules are known to have a negative impact on overall performance. - Activate this option if your problem is concerned with permutations or information flow.*/ - moreSeqRules: {off, on}; - /*! Loading rules dealing with reachability can be disabled. */ - reach: {on, off}; - /*! - Loading less commonly used rules for (mathematical) integers, - such as rules for bounded sums and products, modulo, or polynomials, - can be disabled. If they are loaded, their application in the strategy - can still be controlled as usual. - - This option is experimental. Depending of your understanding of 'less common', - you may experience incompleteness. Doing proofs with Java int semantics will not work, definitely. - - Not to be confused with intRules, which controls the semantics of the Java type int. - */ - integerSimplificationRules: {full, /*! @choiceIncomplete */ minimal}; // TODO: further refine this option - permissions: {off, on}; - - /*! - Treatment of formulas and terms for welldefinedness checks: - */ - wdOperator: { - /*! - More intuitive for software developers and along the lines of - runtime assertion semantics. Well-Definedness checks will be - stricter using this operator, since the order of terms/formulas - matters. It is based on McCarthy logic. - Cf. "Are the Logical Foundations of Verifying Compiler - Prototypes Matching User Expectations?" by Patrice Chalin. - - @choiceDefaultOption - */ - L, - /*! - Complete and along the lines of classical logic, where the - order of terms/formulas is irrelevant. This operator is - equivalent to the D-operator, but more efficient. - Cf. "Efficient Well-Definedness Checking" by Ádám Darvas, - Farhad Mehta, and Arsenii Rudich. - */ - Y, - /*! - Complete and along the lines of classical logic, where the - order of terms/formulas is irrelevant. This operator is not as - strict as the L-operator, based on strong Kleene logic. To be - used with care, since formulas may blow up exponentially. - Cf. "Well Defined B" by Patrick Behm, Lilian Burdy, and - Jean-Marc Meynadier*/ - D - }; - - /*! - Welldefinedness checks of JML specifications can be turned on/off. - This includes class invariants, operation contracts, model fields - as well as JML (annotation) statements as loop invariants and - block contracts. The former ones are checked "on-the-fly", i.e., - directly when they are applied in the code while proving an operation - contract, since the context is needed. - */ - wdChecks: {off, on}; - /*! - Specifies whether a special goal "Joined node is weakening" should be - generated as a child of the partner node of a join operation. - - For join procedures formally proven correct, this should not be necessary. - Enable this option when you are not sure whether a newly implemented join - procedure is sound. In this case, the generated "is weakening" goals should - only be closable if the concrete join instance is correct. - */ - mergeGenerateIsWeakeningGoal: {off, on}; - - /*! - Method calls in KeY can be either handled by inlining the method body or - by applying the method's contract. Inlining a method body is only modularly - sound if it is guaranteed that no new method body can override the known - implementation. - */ - methodExpansion: { - /*! Inlining is modularly sound: Methods can only be inlined if private, - static, final, or in a final method. - @choiceDefaultOption - */ - modularOnly, - /*! Inlining is liberal: Methods can always be inlined, and all known - method implementations are taken into consideration. This setting - is sound under a closed program assumption. - */ - noRestriction - }; - - /*! - Missing documentation - */ - javaLoopTreatment: {efficient, teaching}; - - /*! - Floating points in Java may have a more precise semantics if the hardware - supports it. Only if the Java keyword strictfp is specified can we make - guarantees about the meaning of floating point expressions. - */ - floatRules: { - /*! Require the strictfp keyword if floating points are to be treated. - Otherwise arithmetic remains as underspecified symbols*/ - strictfpOnly, - /*! Treat all code as if it was specified strictfp. */ - assumeStrictfp - }; - -} + * This file contains the known heuristics (rule sets) of KeY. + */ // *************************************** // Places in KeY with hard-coded rule sets // (check there when changing rule sets): // *************************************** // 1) NodeInfo#symbolicExecNames -// 2) - +// 2) OneStepSimplifier#ruleSets +// 3) macro implementations (e.g. IntegerSimplificationMacro, FinishSymbolicExecutionMacro, ...) \heuristicsDecl { // These rules are not permitted during symbolic execution diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/seq.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/seq.key index e88d2e928ad..e9fa73b1381 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/seq.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/seq.key @@ -30,6 +30,7 @@ Seq seqConcat(Seq, Seq); Seq seqSub(Seq, int, int); Seq seqReverse(Seq); + Seq seqUpd(Seq, int, any); Seq seqDef {false, false, true}(int, int, any); Seq seqSwap(Seq, int, int); diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/seqRules.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/seqRules.key index 25d302e550f..6feb4890641 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/seqRules.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/seqRules.key @@ -91,6 +91,18 @@ }; + defOfSeqUpd { + \schemaVar \term Seq seq; + \schemaVar \term int idx; + \schemaVar \term any value; + \schemaVar \variables int uSub; + + \find(seqUpd(seq, idx, value)) + + \varcond(\notFreeIn(uSub, idx), \notFreeIn(uSub, value), \notFreeIn(uSub, seq)) + \replacewith(seqDef{uSub;}(0, seqLen(seq), \if(uSub=idx) \then(value) \else(any::seqGet(seq,uSub)))) + }; + // -------------------------------------------------------------------- // rule for seqIndexOf // This is logically equivalent to a conditional (partial) @@ -241,6 +253,17 @@ \heuristics(simplify_enlarging) }; + \lemma + getOfSeqUpd { + \schemaVar \term Seq seq; + \schemaVar \term int idx, jdx; + \schemaVar \term any value; + + \find(alpha::seqGet(seqUpd(seq, idx, value), jdx)) + \replacewith(\if(0<=jdx & jdx < seqLen(seq) & idx=jdx) \then((alpha)value) \else(alpha::seqGet(seq, jdx))) + \heuristics(simplify_enlarging) + }; + // -------------------------------------------------------------------- // derived rule for lenOfX // -------------------------------------------------------------------- @@ -299,6 +322,18 @@ \heuristics(simplify) }; + \lemma + lenOfSeqUpd { + \schemaVar \term Seq seq; + \schemaVar \term int idx; + \schemaVar \term any value; + + \find(seqLen(seqUpd(seq, idx, value))) + \replacewith(seqLen(seq)) + \heuristics(simplify) + }; + + // -------------------------------------------------------------------------- // derived EQ versions // -------------------------------------------------------------------------- diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/types.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/types.key new file mode 100644 index 00000000000..38a875cb9b1 --- /dev/null +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/types.key @@ -0,0 +1,44 @@ +\sorts { + SORT; + \generic alph; + \generic bet; + \generic alphSub \extends alph; +} + +\functions { + SORT anySORT; + SORT alph::ssort; +} + +\predicates { + ssubsort(SORT, SORT); +} + +\rules { + ssubsortDirect { + \find(ssubsort(alphSub::ssort, alph::ssort)) + \replacewith(true) + \heuristics(simplify) + }; + + ssubsortTop { + \schemaVar \term SORT s; + \find(ssubsort(s, anySORT)) + \replacewith(true) + \heuristics(simplify) + }; + + subsortTrans { + \schemaVar \term SORT s1, s2, s3; + \assumes (ssubsort(s1, s2), ssubsort(s2, s3) ==>) + \add(ssubsort(s1, s3) ==>) + \heuristics(simplify_enlarging) + }; + + ssubsortSup { + \find(ssubsort(alph::ssort, alphSub::ssort)) + \varcond(\not \same(alphSub, alph)) + \replacewith(false) + \heuristics(simplify) + }; +} diff --git a/key.core/src/test/java/de/uka/ilkd/key/java/ProofJavaProgramFactoryTest.java b/key.core/src/test/java/de/uka/ilkd/key/java/ProofJavaProgramFactoryTest.java index f87fc952777..8769cea7743 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/java/ProofJavaProgramFactoryTest.java +++ b/key.core/src/test/java/de/uka/ilkd/key/java/ProofJavaProgramFactoryTest.java @@ -9,6 +9,7 @@ import java.util.function.Predicate; import de.uka.ilkd.key.java.recoderext.Ghost; +import de.uka.ilkd.key.java.recoderext.SetStatement; import de.uka.ilkd.key.util.HelperClassForTests; import org.key_project.util.helper.FindResources; @@ -32,8 +33,6 @@ import recoder.java.declaration.LocalVariableDeclaration; import recoder.java.declaration.MethodDeclaration; import recoder.java.declaration.TypeDeclaration; -import recoder.java.expression.operator.CopyAssignment; -import recoder.java.reference.VariableReference; import recoder.java.statement.EmptyStatement; import recoder.java.statement.For; import recoder.list.generic.ASTList; @@ -93,13 +92,11 @@ public void testAttachCommentsCompilationUnit_Steinhofel1() throws IOException { StatementBlock loopBody = (StatementBlock) forLoop.getBody(); - CopyAssignment ghost3 = (CopyAssignment) loopBody.getStatementAt(3); - VariableReference var3 = (VariableReference) ghost3.getChildAt(0); - Assertions.assertEquals("k0_old", var3.getName()); + var ghost3 = (SetStatement) loopBody.getStatementAt(3); + Assertions.assertEquals("set k0_old = k0;", ghost3.getParserContext().getText()); - CopyAssignment ghost4 = (CopyAssignment) loopBody.getStatementAt(5); - VariableReference var4 = (VariableReference) ghost4.getChildAt(0); - Assertions.assertEquals("k1_old", var4.getName()); + var ghost4 = (SetStatement) loopBody.getStatementAt(5); + Assertions.assertEquals("set k1_old = k1;", ghost4.getParserContext().getText()); EmptyStatement empty1 = (EmptyStatement) loopBody.getStatementAt(4); EmptyStatement lastStatementInForLoop = @@ -121,16 +118,16 @@ public void testAttachCommentsCompilationUnit_SetStatements() throws IOException MethodDeclaration m = (MethodDeclaration) ofib.get(); assertContainsComment(m, it -> it.startsWith("/*@ public normal_behavior")); - CopyAssignment assign1 = (CopyAssignment) m.getBody().getStatementAt(0); - VariableReference var1 = (VariableReference) assign1.getChildAt(0); - Assertions.assertEquals("message", var1.getName()); + var assign1 = (SetStatement) m.getBody().getStatementAt(0); + var var1 = assign1.getParserContext(); + Assertions.assertEquals("set message = arg0;", var1.getText()); EmptyStatement empty1 = (EmptyStatement) m.getBody().getStatementAt(1); assertContainsComment(empty1, it -> it.equals("//@ set message = arg0;")); - CopyAssignment assign2 = (CopyAssignment) m.getBody().getStatementAt(2); - VariableReference var2 = (VariableReference) assign2.getChildAt(0); - Assertions.assertEquals("cause", var2.getName()); + var assign2 = (SetStatement) m.getBody().getStatementAt(2); + var var2 = assign2.getParserContext(); + Assertions.assertEquals("set cause = arg1;", var2.getText()); EmptyStatement empty2 = (EmptyStatement) m.getBody().getStatementAt(3); assertContainsComment(empty2, it -> it.equals("//@ set cause = arg1;")); diff --git a/key.core/src/test/java/de/uka/ilkd/key/logic/TestTerm.java b/key.core/src/test/java/de/uka/ilkd/key/logic/TestTerm.java index b0fde753403..aeaec43ebc8 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/logic/TestTerm.java +++ b/key.core/src/test/java/de/uka/ilkd/key/logic/TestTerm.java @@ -6,6 +6,7 @@ import de.uka.ilkd.key.java.StatementBlock; import de.uka.ilkd.key.java.declaration.LocalVariableDeclaration; import de.uka.ilkd.key.ldt.JavaDLTheory; +import de.uka.ilkd.key.logic.equality.RenamingProperty; import de.uka.ilkd.key.logic.op.*; import de.uka.ilkd.key.logic.op.QuantifiableVariable; import de.uka.ilkd.key.logic.sort.SortImpl; @@ -112,9 +113,11 @@ public void testFreeVars4() { public void testProgramElementEqualsModRenaming() { Term match1 = TacletForTests.parseTerm("\\<{ int i; }\\>true & \\<{ int i; }\\>true"); Term match2 = TacletForTests.parseTerm("\\<{ int i; }\\>true "); - assertTrue(match1.sub(0).equalsModRenaming(match2), + assertTrue( + match1.sub(0).equalsModProperty(match2, RenamingProperty.RENAMING_PROPERTY), "Terms should be equalModRenaming (0)."); - assertTrue(match1.sub(0).equalsModRenaming(match1.sub(1)), + assertTrue( + match1.sub(0).equalsModProperty(match1.sub(1), RenamingProperty.RENAMING_PROPERTY), "Terms should be equalModRenaming (1)."); Term match3 = TacletForTests.parseTerm("\\<{ int j = 0; }\\>true "); assertNotEquals(match1, match3, "Terms should not be equal."); @@ -125,13 +128,16 @@ public void testProgramElementEqualsModRenaming() { public void testEqualsModRenamingWithLabels() { Term match1 = TacletForTests.parseTerm("\\<{ label0:{ label1:{ } } }\\>true"); Term match2 = TacletForTests.parseTerm("\\<{ label0:{ label1:{ } } }\\>true"); - assertTrue(match1.equalsModRenaming(match2), "Terms should be equalModRenaming."); + assertTrue(match1.equalsModProperty(match2, RenamingProperty.RENAMING_PROPERTY), + "Terms should be equalModRenaming."); Term match3 = TacletForTests.parseTerm("\\<{ label0:{ label1:{ int i = 0; } } }\\>true"); Term match4 = TacletForTests.parseTerm("\\<{ label0:{ label1:{ int j = 0; } } }\\>true"); - assertTrue(match3.equalsModRenaming(match4), "Terms should be equalModRenaming."); + assertTrue(match3.equalsModProperty(match4, RenamingProperty.RENAMING_PROPERTY), + "Terms should be equalModRenaming."); Term match5 = TacletForTests.parseTerm("\\<{ label0:{ label1:{ int i = 0; } } }\\>true"); Term match6 = TacletForTests.parseTerm("\\<{ label0:{ label1:{ int i = 0; } } }\\>true"); - assertTrue(match5.equalsModRenaming(match6), "Terms should be equalModRenaming."); + assertTrue(match5.equalsModProperty(match6, RenamingProperty.RENAMING_PROPERTY), + "Terms should be equalModRenaming."); } @Test @@ -143,7 +149,7 @@ public void testEqualsModRenaming() { final Term pz = tf.createTerm(p, new Term[] { tf.createTerm(z) }, null, null); final Term quant2 = tb.all(z, tb.all(z, tb.all(z, pz))); - assertTrue(quant1.equalsModRenaming(quant2), + assertTrue(quant1.equalsModProperty(quant2, RenamingProperty.RENAMING_PROPERTY), "Terms " + quant1 + " and " + quant2 + " should be equal mod renaming"); } diff --git a/key.core/src/test/java/de/uka/ilkd/key/logic/TestTermLabelManager.java b/key.core/src/test/java/de/uka/ilkd/key/logic/TestTermLabelManager.java index 8ff11bf385b..517a5a78a8c 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/logic/TestTermLabelManager.java +++ b/key.core/src/test/java/de/uka/ilkd/key/logic/TestTermLabelManager.java @@ -33,6 +33,7 @@ import org.key_project.util.collection.ImmutableList; import org.key_project.util.collection.ImmutableSLList; +import org.jspecify.annotations.NonNull; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -867,9 +868,9 @@ public DummyRule(String name) { } @Override - public ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) + public @NonNull ImmutableList apply(Goal goal, Services services, RuleApp ruleApp) throws RuleAbortException { - return null; + throw new RuleAbortException("no implementation"); } @Override diff --git a/key.core/src/test/java/de/uka/ilkd/key/logic/equality/TestEqualsModProperty.java b/key.core/src/test/java/de/uka/ilkd/key/logic/equality/TestEqualsModProperty.java new file mode 100644 index 00000000000..c50e185ed12 --- /dev/null +++ b/key.core/src/test/java/de/uka/ilkd/key/logic/equality/TestEqualsModProperty.java @@ -0,0 +1,287 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.logic.equality; + +import java.util.Arrays; + +import de.uka.ilkd.key.logic.*; +import de.uka.ilkd.key.logic.label.*; +import de.uka.ilkd.key.logic.op.*; +import de.uka.ilkd.key.rule.TacletForTests; +import de.uka.ilkd.key.util.HelperClassForTests; + +import org.key_project.util.collection.ImmutableArray; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static de.uka.ilkd.key.logic.equality.IrrelevantTermLabelsProperty.IRRELEVANT_TERM_LABELS_PROPERTY; +import static de.uka.ilkd.key.logic.equality.ProofIrrelevancyProperty.PROOF_IRRELEVANCY_PROPERTY; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; +import static de.uka.ilkd.key.logic.equality.TermLabelsProperty.TERM_LABELS_PROPERTY; +import static org.junit.jupiter.api.Assertions.*; + +/** + * Tests for {@link TermEqualsModProperty}. + * + * @author Tobias Reinhold + */ +public class TestEqualsModProperty { + private TermBuilder tb; + + private TermFactory tf; + + final private TermLabel relevantLabel1 = ParameterlessTermLabel.UNDEFINED_VALUE_LABEL; + final private TermLabel relevantLabel2 = ParameterlessTermLabel.SHORTCUT_EVALUATION_LABEL; + private static TermLabel irrelevantLabel = null; + final private static OriginTermLabelFactory factory = new OriginTermLabelFactory(); + + @BeforeAll + public static void setIrrelevantLabel() { + try { + irrelevantLabel = factory.parseInstance(Arrays.stream(new String[] { + "User_Interaction @ node 0 (Test Test)", "[]" }).toList(), + HelperClassForTests.createServices()); + } catch (TermLabelException e) { + fail(e); + } + } + + @BeforeEach + public void setUp() { + tb = TacletForTests.services().getTermBuilder(); + tf = TacletForTests.services().getTermFactory(); + } + + // equalsModProperty(...) with RENAMING_TERM_PROPERTY + @Test + public void renaming() { + // ------------ differing terms to begin with + Term term1 = + tf.createTerm(Junctor.AND, tf.createTerm(Junctor.TRUE), tf.createTerm(Junctor.FALSE)); + Term term2 = + tf.createTerm(Junctor.AND, tf.createTerm(Junctor.TRUE), tf.createTerm(Junctor.TRUE)); + assertFalse(term1.equalsModProperty(term2, RENAMING_PROPERTY), + "Terms are different to begin with, so they shouldn't be equal"); + assertFalse(term2.equalsModProperty(term1, RENAMING_PROPERTY), + "Terms are different to begin with, so they shouldn't be equal"); + // other tests for equality already in TestTerm.java + + // ------------ comparison with something that is not a term + assertFalse(term1.equalsModProperty(1, RENAMING_PROPERTY), + "Should be false as other object is not a term"); + + // ------------ differing labels + term1 = + tf.createTerm(Junctor.AND, tf.createTerm(Junctor.TRUE), tf.createTerm(Junctor.FALSE)); + term2 = + tf.createTerm(Junctor.AND, tf.createTerm(Junctor.TRUE), tf.createTerm(Junctor.FALSE)); + ImmutableArray labels1 = new ImmutableArray<>(irrelevantLabel); + term1 = tb.label(term1, labels1); + assertTrue(term1.equalsModProperty(term2, RENAMING_PROPERTY), + "Should be true as labels do not matter"); + assertTrue(term2.equalsModProperty(term1, RENAMING_PROPERTY), + "Should be true as labels do not matter"); + + labels1 = new ImmutableArray<>(relevantLabel1); + term1 = tb.label(term1, labels1); + assertTrue(term1.equalsModProperty(term2, RENAMING_PROPERTY), + "Should be true as labels do not matter"); + assertTrue(term2.equalsModProperty(term1, RENAMING_PROPERTY), + "Should be true as labels do not matter"); + + ImmutableArray labels2 = new ImmutableArray<>(relevantLabel2); + term2 = tb.label(term2, labels2); + assertTrue(term1.equalsModProperty(term2, RENAMING_PROPERTY), + "Should be true as labels do not matter"); + assertTrue(term2.equalsModProperty(term1, RENAMING_PROPERTY), + "Should be true as labels do not matter"); + } + + // equalsModProperty(...) with IRRELEVANT_TERM_LABELS_PROPERTY + @Test + public void irrelevantTermLabels() { + // ------------ different terms to begin with + Term term1 = + tf.createTerm(Junctor.AND, tf.createTerm(Junctor.TRUE), tf.createTerm(Junctor.FALSE)); + Term term2 = + tf.createTerm(Junctor.AND, tf.createTerm(Junctor.TRUE), tf.createTerm(Junctor.TRUE)); + assertFalse(term1.equalsModProperty(term2, IRRELEVANT_TERM_LABELS_PROPERTY), + "Terms are different to begin with, so they shouldn't be equal"); + assertFalse(term2.equalsModProperty(term1, IRRELEVANT_TERM_LABELS_PROPERTY), + "Terms are different to begin with, so they shouldn't be equal"); + + // ------------ comparison with something that is not a term + assertFalse(term1.equalsModProperty(1, IRRELEVANT_TERM_LABELS_PROPERTY), + "Should be false as other object is not a term"); + + // base terms stay the same for the rest of the tests + term1 = + tf.createTerm(Junctor.AND, tf.createTerm(Junctor.TRUE), tf.createTerm(Junctor.FALSE)); + term2 = + tf.createTerm(Junctor.AND, tf.createTerm(Junctor.TRUE), tf.createTerm(Junctor.FALSE)); + + // ------------ only one term has labels + ImmutableArray labels1 = + new ImmutableArray<>(relevantLabel1, irrelevantLabel); + term1 = tb.label(term1, labels1); + assertFalse(term1.equalsModProperty(term2, IRRELEVANT_TERM_LABELS_PROPERTY), + "Should be false as term1 has a proof relevant term label, but term2 does not have any labels"); + assertFalse(term2.equalsModProperty(term1, IRRELEVANT_TERM_LABELS_PROPERTY), + "Should be false as term1 has a proof relevant term label, but term2 does not have any labels"); + + labels1 = new ImmutableArray<>(irrelevantLabel); + term1 = tb.label(term1, labels1); + assertTrue(term1.equalsModProperty(term2, IRRELEVANT_TERM_LABELS_PROPERTY), + "Should be true as term1 has no relevant term labels and term2 does not have any labels"); + assertTrue(term2.equalsModProperty(term1, IRRELEVANT_TERM_LABELS_PROPERTY), + "Should be true as term1 has no relevant term labels and term2 does not have any labels"); + + // ------------ same relevant labels + labels1 = new ImmutableArray<>(relevantLabel1, relevantLabel2); + ImmutableArray labels2 = + new ImmutableArray<>(relevantLabel1, relevantLabel2, irrelevantLabel); + term1 = tb.label(term1, labels1); + term2 = tb.label(term2, labels2); + assertTrue(term1.equalsModProperty(term2, IRRELEVANT_TERM_LABELS_PROPERTY), + "Should be true as both terms have the same relevant term labels"); + assertTrue(term2.equalsModProperty(term1, IRRELEVANT_TERM_LABELS_PROPERTY), + "Should be true as both terms have the same relevant term labels"); + + // ------------ not the same relevant labels + labels1 = new ImmutableArray<>(relevantLabel1, irrelevantLabel); + labels2 = new ImmutableArray<>(relevantLabel1, relevantLabel2); + term1 = tb.label(term1, labels1); + term2 = tb.label(term2, labels2); + assertFalse(term1.equalsModProperty(term2, IRRELEVANT_TERM_LABELS_PROPERTY), + "Should be false as terms do not have the same relevant term labels"); + assertFalse(term2.equalsModProperty(term1, IRRELEVANT_TERM_LABELS_PROPERTY), + "Should be false as terms do not have the same relevant term labels"); + } + + // equalsModProperty(...) with TERM_LABELS_PROPERTY + @Test + public void allTermLabels() { + // ------------ different terms to begin with + Term term1 = + tf.createTerm(Junctor.AND, tf.createTerm(Junctor.TRUE), tf.createTerm(Junctor.FALSE)); + Term term2 = + tf.createTerm(Junctor.AND, tf.createTerm(Junctor.TRUE), tf.createTerm(Junctor.TRUE)); + assertFalse(term1.equalsModProperty(term2, TERM_LABELS_PROPERTY), + "Terms are different to begin with, so they shouldn't be equal"); + assertFalse(term2.equalsModProperty(term1, TERM_LABELS_PROPERTY), + "Terms are different to begin with, so they shouldn't be equal"); + + // ------------ comparison with something that is not a term + assertFalse(term1.equalsModProperty(1, TERM_LABELS_PROPERTY), + "Should be false as other object is not a term"); + + // base terms stay the same for the rest of the tests + term1 = + tf.createTerm(Junctor.AND, tf.createTerm(Junctor.TRUE), tf.createTerm(Junctor.FALSE)); + term2 = + tf.createTerm(Junctor.AND, tf.createTerm(Junctor.TRUE), tf.createTerm(Junctor.FALSE)); + + // ------------ only one term has labels + ImmutableArray labels1 = + new ImmutableArray<>(relevantLabel1, irrelevantLabel); + term1 = tb.label(term1, labels1); + assertTrue(term1.equalsModProperty(term2, TERM_LABELS_PROPERTY), + "Should be true as underlying terms are equal"); + assertTrue(term2.equalsModProperty(term1, TERM_LABELS_PROPERTY), + "Should be true as underlying terms are equal"); + + // ------------ same relevant labels + labels1 = new ImmutableArray<>(relevantLabel1, relevantLabel2); + ImmutableArray labels2 = + new ImmutableArray<>(relevantLabel1, relevantLabel2, irrelevantLabel); + term1 = tb.label(term1, labels1); + term2 = tb.label(term2, labels2); + assertTrue(term1.equalsModProperty(term2, TERM_LABELS_PROPERTY), + "Should be true as underlying terms are equal"); + assertTrue(term2.equalsModProperty(term1, TERM_LABELS_PROPERTY), + "Should be true as underlying terms are equal"); + + // ------------ not the same relevant labels + labels1 = new ImmutableArray<>(relevantLabel1, irrelevantLabel); + labels2 = new ImmutableArray<>(relevantLabel1, relevantLabel2); + term1 = tb.label(term1, labels1); + term2 = tb.label(term2, labels2); + assertTrue(term1.equalsModProperty(term2, TERM_LABELS_PROPERTY), + "Should be true as underlying terms are equal"); + assertTrue(term2.equalsModProperty(term1, TERM_LABELS_PROPERTY), + "Should be true as underlying terms are equal"); + } + + // equalsModProperty(...) with PROOF_IRRELEVANCY_PROPERTY + @Test + public void proofIrrelevancy() { + // ------------ different terms to begin with + Term term1 = + tf.createTerm(Junctor.AND, tf.createTerm(Junctor.TRUE), tf.createTerm(Junctor.FALSE)); + Term term2 = + tf.createTerm(Junctor.AND, tf.createTerm(Junctor.TRUE), tf.createTerm(Junctor.TRUE)); + assertFalse(term1.equalsModProperty(term2, PROOF_IRRELEVANCY_PROPERTY), + "Terms are different to begin with, so they shouldn't be equal"); + assertFalse(term2.equalsModProperty(term1, PROOF_IRRELEVANCY_PROPERTY), + "Terms are different to begin with, so they shouldn't be equal"); + + // ------------ comparison with something that is not a term + assertFalse(term1.equalsModProperty(1, PROOF_IRRELEVANCY_PROPERTY), + "Should be false as other object is not a term"); + + // base terms stay the same for the rest of the tests + term1 = + tf.createTerm(Junctor.AND, tf.createTerm(Junctor.TRUE), tf.createTerm(Junctor.FALSE)); + term2 = + tf.createTerm(Junctor.AND, tf.createTerm(Junctor.TRUE), tf.createTerm(Junctor.FALSE)); + + // ------------ only one term has labels + ImmutableArray labels1 = + new ImmutableArray<>(relevantLabel1, irrelevantLabel); + term1 = tb.label(term1, labels1); + assertFalse(term1.equalsModProperty(term2, PROOF_IRRELEVANCY_PROPERTY), + "Should be false as term1 has a proof relevant term label, but term2 does not have any labels"); + assertFalse(term2.equalsModProperty(term1, PROOF_IRRELEVANCY_PROPERTY), + "Should be false as term1 has a proof relevant term label, but term2 does not have any labels"); + + labels1 = new ImmutableArray<>(irrelevantLabel); + term1 = tb.label(term1, labels1); + assertTrue(term1.equalsModProperty(term2, PROOF_IRRELEVANCY_PROPERTY), + "Should be true as term1 has no relevant term labels and term2 does not have any labels"); + assertTrue(term2.equalsModProperty(term1, PROOF_IRRELEVANCY_PROPERTY), + "Should be true as term1 has no relevant term labels and term2 does not have any labels"); + + // ------------ same relevant labels + labels1 = new ImmutableArray<>(relevantLabel1, relevantLabel2, irrelevantLabel); + ImmutableArray labels2 = + new ImmutableArray<>(relevantLabel1, relevantLabel2, irrelevantLabel); + term1 = tb.label(term1, labels1); + term2 = tb.label(term2, labels2); + assertTrue(term1.equalsModProperty(term2, PROOF_IRRELEVANCY_PROPERTY), + "Should be true as both terms have the same relevant term labels"); + assertTrue(term2.equalsModProperty(term1, PROOF_IRRELEVANCY_PROPERTY), + "Should be true as both terms have the same relevant term labels"); + + labels1 = new ImmutableArray<>(relevantLabel1, relevantLabel2, irrelevantLabel); + labels2 = new ImmutableArray<>(relevantLabel1, relevantLabel2); + term1 = tb.label(term1, labels1); + term2 = tb.label(term2, labels2); + assertTrue(term1.equalsModProperty(term2, PROOF_IRRELEVANCY_PROPERTY), + "Should be true as both terms have the same relevant term labels and irrelevant labels do not matter"); + assertTrue(term2.equalsModProperty(term1, PROOF_IRRELEVANCY_PROPERTY), + "Should be true as both terms have the same relevant term labels and irrelevant labels do not matter"); + + // ------------ not the same relevant labels + labels1 = new ImmutableArray<>(relevantLabel1); + labels2 = new ImmutableArray<>(relevantLabel2); + term1 = tb.label(term1, labels1); + term2 = tb.label(term2, labels2); + assertFalse(term1.equalsModProperty(term2, PROOF_IRRELEVANCY_PROPERTY), + "Should be false as terms do not have the same relevant term labels"); + assertFalse(term2.equalsModProperty(term1, PROOF_IRRELEVANCY_PROPERTY), + "Should be false as terms do not have the same relevant term labels"); + } +} diff --git a/key.core/src/test/java/de/uka/ilkd/key/nparser/KeYParserExceptionTest.java b/key.core/src/test/java/de/uka/ilkd/key/nparser/KeYParserExceptionTest.java new file mode 100644 index 00000000000..eca08f2e558 --- /dev/null +++ b/key.core/src/test/java/de/uka/ilkd/key/nparser/KeYParserExceptionTest.java @@ -0,0 +1,59 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.nparser; + +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.file.Path; +import java.util.stream.Stream; + +import de.uka.ilkd.key.control.KeYEnvironment; +import de.uka.ilkd.key.util.ParserExceptionTest; + +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; + +/** + * This test case is used to ensure that errors in KeY files are reported + * with a reasonable error message and the right position pointing + * into the file. + * + * To add a test case, locate the "exceptional" directory in the resources + * (below the directory for this package here) and add a .key file + * that contains an error that should be presented to the user (like syntax + * error, unresolved names, ...) + * + * See README.md in said directory for information on the meta-data inside + * the files. + * + * @author Mattias Ulbrich + */ +public class KeYParserExceptionTest extends ParserExceptionTest { + + /* + * Usually a directory is scanned for files to operate on. + * If this here is not null, this file name (referring to the resources + * directory) will be loaded. + */ + private static final String FIX_FILE = null; // "conflict.java"; + + public static Stream getFiles() throws URISyntaxException, IOException { + URL fileURL = KeYParserExceptionTest.class.getResource("exceptional"); + return ParserExceptionTest.getFiles(FIX_FILE, fileURL, ".key"); + } + + + @ParameterizedTest(name = "case {1}") + @MethodSource("getFiles") + public void testParseAndInterpret(Path file, Path localFilename) throws Exception { + parseAndInterpret(file); + } + + @Override + protected void tryLoadFile(Path file) throws Exception { + KeYEnvironment.load(file.toFile()); + } +} diff --git a/key.core/src/test/java/de/uka/ilkd/key/nparser/TestTacletEquality.java b/key.core/src/test/java/de/uka/ilkd/key/nparser/TestTacletEquality.java index 32c668971a0..ef079b591af 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/nparser/TestTacletEquality.java +++ b/key.core/src/test/java/de/uka/ilkd/key/nparser/TestTacletEquality.java @@ -16,9 +16,7 @@ import de.uka.ilkd.key.control.DefaultUserInterfaceControl; import de.uka.ilkd.key.proof.init.InitConfig; import de.uka.ilkd.key.proof.init.JavaProfile; -import de.uka.ilkd.key.proof.init.ProofInputException; import de.uka.ilkd.key.proof.io.ProblemLoaderControl; -import de.uka.ilkd.key.proof.io.ProblemLoaderException; import de.uka.ilkd.key.proof.io.SingleThreadProblemLoader; import de.uka.ilkd.key.rule.Taclet; import de.uka.ilkd.key.util.HelperClassForTests; @@ -92,7 +90,7 @@ public static Stream createCases() throws IOException { private static InitConfig initConfig; @BeforeAll - static void setUp() throws ProofInputException, IOException, ProblemLoaderException { + static void setUp() throws Exception { File file = new File(HelperClassForTests.TESTCASE_DIRECTORY, "merge/gcd.closed.proof"); if (initConfig == null) { ProblemLoaderControl control = new DefaultUserInterfaceControl(null); @@ -140,8 +138,7 @@ private void assertEquals(String expected, String actual) { Assertions.assertEquals(normalise(expected).trim(), normalise(actual).trim()); } - @NonNull - private String normalise(String expected) { + private @NonNull String normalise(String expected) { return expected.replaceAll("\\s+", "\n").replaceAll("Choices:\\s*\\{.*?\\}", ""); } diff --git a/key.core/src/test/java/de/uka/ilkd/key/parser/TestIntLiteralParsing.java b/key.core/src/test/java/de/uka/ilkd/key/parser/TestIntLiteralParsing.java index e6a354915ba..e1e9eb8b1c4 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/parser/TestIntLiteralParsing.java +++ b/key.core/src/test/java/de/uka/ilkd/key/parser/TestIntLiteralParsing.java @@ -153,7 +153,7 @@ public class TestIntLiteralParsing extends AbstractTestTermParser { public TestIntLiteralParsing() { containerType = services.getJavaInfo().getKeYJavaType("testTermParserHeap.A"); self = services.getJavaInfo().getCanonicalFieldProgramVariable("next", containerType); - jio = new JmlIO().services(getServices()).classType(containerType) + jio = new JmlIO(getServices()).classType(containerType) .specMathMode(SpecMathMode.BIGINT).selfVar(self); } diff --git a/key.core/src/test/java/de/uka/ilkd/key/parser/TestJMLParserAssociativity.java b/key.core/src/test/java/de/uka/ilkd/key/parser/TestJMLParserAssociativity.java index ca4a7b01b11..f7f4b9d54c9 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/parser/TestJMLParserAssociativity.java +++ b/key.core/src/test/java/de/uka/ilkd/key/parser/TestJMLParserAssociativity.java @@ -31,7 +31,7 @@ public Term parseTerm(String s) throws Exception { KeYJavaType containerType = services.getJavaInfo().getKeYJavaType("testTermParserHeap.A"); ProgramVariable self = services.getJavaInfo().getCanonicalFieldProgramVariable("next", containerType); - JmlIO io = new JmlIO().services(getServices()).classType(containerType) + JmlIO io = new JmlIO(getServices()).classType(containerType) .specMathMode(SpecMathMode.BIGINT).selfVar(self); return io.parseExpression(p); } diff --git a/key.core/src/test/java/de/uka/ilkd/key/parser/TestTermParser.java b/key.core/src/test/java/de/uka/ilkd/key/parser/TestTermParser.java index de31ab99ee2..92797483074 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/parser/TestTermParser.java +++ b/key.core/src/test/java/de/uka/ilkd/key/parser/TestTermParser.java @@ -21,6 +21,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; import static org.junit.jupiter.api.Assertions.*; public class TestTermParser extends AbstractTestTermParser { @@ -257,7 +258,8 @@ public void test13() throws Exception { Term t4 = parseTerm("\\exists int_sort ci; (\\<{ int p_y = 1;" + " {int s = 2;} }\\>" + " true ->" + "\\<{ int p_y = 1;boolean p_x = 2<1;" + "while(p_x){ int s=3 ;} }\\>" + " true)"); - assertTrue(t3.equalsModRenaming(t4), "Terms should be equalModRenaming"); + assertTrue(t3.equalsModProperty(t4, RENAMING_PROPERTY), + "Terms should be equalModRenaming"); } @Test diff --git a/key.core/src/test/java/de/uka/ilkd/key/parser/messages/ParserMessageTest.java b/key.core/src/test/java/de/uka/ilkd/key/parser/messages/ParserMessageTest.java index 8388e536f51..945d04972d7 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/parser/messages/ParserMessageTest.java +++ b/key.core/src/test/java/de/uka/ilkd/key/parser/messages/ParserMessageTest.java @@ -92,7 +92,7 @@ public ParserMessageTest(File sourceDir) throws Exception { exception = e; } - location = ExceptionTools.getLocation(exception).orElse(null); + location = ExceptionTools.getLocation(exception); assertNotNull(location, "Cannot recover error location from Exception: " + exception); diff --git a/key.core/src/test/java/de/uka/ilkd/key/pp/LogicPrinterTest.java b/key.core/src/test/java/de/uka/ilkd/key/pp/LogicPrinterTest.java new file mode 100644 index 00000000000..7d7b3352694 --- /dev/null +++ b/key.core/src/test/java/de/uka/ilkd/key/pp/LogicPrinterTest.java @@ -0,0 +1,55 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.pp; + +import java.io.IOException; + +import de.uka.ilkd.key.java.Services; +import de.uka.ilkd.key.logic.NamespaceSet; +import de.uka.ilkd.key.logic.op.Modality; +import de.uka.ilkd.key.nparser.KeyIO; +import de.uka.ilkd.key.rule.FindTaclet; +import de.uka.ilkd.key.rule.TacletForTests; +import de.uka.ilkd.key.rule.inst.SVInstantiations; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class LogicPrinterTest { + + /** + * Tests that no stackoverflow exception is thrown when pretty printing a taclet + * containing a modality. + */ + @Test + void printModalityTerm() { + NamespaceSet nss = new NamespaceSet(); + Services services = TacletForTests.services();// new + // Services(AbstractProfile.getDefaultProfile()); + KeyIO io = new KeyIO(services, services.getNamespaces()); + FindTaclet taclet = null; + try { + taclet = (FindTaclet) io + .load( + """ + \\rules { test { + \\schemaVar \\modalOperator {diamond, box, diamond_transaction, box_transaction} #allmodal; + \\find(\\modality{#allmodal} {}\\endmodality(true)) + \\replacewith(\\modality{#allmodal} {}\\endmodality(true)) + };} + """) + .loadComplete().get(0); + } catch (IOException e) { + throw new RuntimeException(e); + } + LogicPrinter lp = LogicPrinter.purePrinter(new NotationInfo(), services); + lp.printTaclet(taclet, SVInstantiations.EMPTY_SVINSTANTIATIONS, true, false); + SVInstantiations inst = SVInstantiations.EMPTY_SVINSTANTIATIONS.add( + ((Modality) taclet.find().op()).kind(), + Modality.JavaModalityKind.DIA, services); + lp.printTaclet(taclet, inst, true, false); + assertTrue(true); + } +} diff --git a/key.core/src/test/java/de/uka/ilkd/key/proof/proverules/ProveRulesTest.java b/key.core/src/test/java/de/uka/ilkd/key/proof/proverules/ProveRulesTest.java index 400c0bf393a..94864222674 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/proof/proverules/ProveRulesTest.java +++ b/key.core/src/test/java/de/uka/ilkd/key/proof/proverules/ProveRulesTest.java @@ -26,8 +26,7 @@ import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.TestFactory; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; /** * JUnit test class for re-running taclet proofs (formerly implemented as Perl script @@ -62,7 +61,7 @@ public void loadTacletProof(String tacletName, Taclet taclet, File proofFile) th assertNotNull(taclet, "Proof file " + proofFile + " claims that it contains a proof for taclet " + tacletName + " but corresponding taclet seems to be unavailable (maybe it is not annotated with \\lemma?)."); - assertTrue(taclet.getRuleJustification() instanceof LemmaJustification, + assertInstanceOf(LemmaJustification.class, taclet.getRuleJustification(), "Found a taclet proof for taclet " + tacletName + " but the taclet is not registered as a lemma. It can be registered as a lemma by " + "adding annotation \\lemma to the declaration of the taclet."); diff --git a/key.core/src/test/java/de/uka/ilkd/key/proof/runallproofs/ProofCollections.java b/key.core/src/test/java/de/uka/ilkd/key/proof/runallproofs/ProofCollections.java index d217367f555..c97e7ac2437 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/proof/runallproofs/ProofCollections.java +++ b/key.core/src/test/java/de/uka/ilkd/key/proof/runallproofs/ProofCollections.java @@ -16,10 +16,20 @@ import org.junit.jupiter.api.Assertions; /** + * This class configuress the "runAllProofs" test runs. + * + * The ProofCollection objects are created and configured in the two methods + * #automaticJavaDL() and #automaticInfFlow(). You can add new files + * to existing groups to be run by CI or you can add new groups. Follow the + * example set by the other test cases. + * * @author Alexander Weigl * @version 1 (08.02.23) */ public class ProofCollections { + + public static final String ENV_KEY_RAP_FUN_KEEP = "KEY_RAP_FUN_KEEP"; + public static ProofCollection automaticJavaDL() throws IOException { var settings = new ProofCollectionSettings(new Date()); /* @@ -236,11 +246,14 @@ public static ProofCollection automaticJavaDL() throws IOException { g.provable("heap/javacard/arrayFillNonAtomic.key"); + g = c.group("other"); // Other tests: g.provable("heap/coincidence_count/project.key"); g.provable("heap/verifyThis11_1_Maximum/project.key"); g.provable("heap/fm12_01_LRS/lcp.key"); g.provable("heap/SemanticSlicing/project.key"); + + g = c.group("funOfIF"); g.provable("heap/information_flow/ArrayList_contains.key"); g.provable("heap/information_flow/ArrayList_get.key"); g.provable("heap/information_flow/ArrayList_size.key"); @@ -313,9 +326,11 @@ public static ProofCollection automaticJavaDL() throws IOException { g.provable("heap/list_seq/ArrayList.contains.key"); g.provable("heap/list_seq/ArrayList.enlarge.key"); g.provable("heap/list_seq/ArrayList.get.key"); + g.provable("heap/list_seq/ArrayList.set.key"); g.provable("heap/list_seq/ArrayList.newArray.key"); g.provable("heap/list_seq/ArrayList.remove.0.key"); g.provable("heap/list_seq/ArrayList.remove.1.key"); + g.provable("heap/list_seq/LinkedList.set.key"); g = c.group("observer"); @@ -335,13 +350,20 @@ public static ProofCollection automaticJavaDL() throws IOException { g.provable("heap/observer/ExampleSubject_value.key"); - g = c.group("removeDups"); + g = c.group("example-algos"); g.provable("heap/removeDups/arrayPart.key"); g.provable("heap/removeDups/contains.key"); g.provable("heap/removeDups/removeDup.key"); - - g.provable("heap/saddleback_search/Saddleback_search.key"); + // TODO: Make BoyerMoore run automatically, not only loading proofs. Need proofs scripts for + // that. + g.loadable("heap/BoyerMoore/BM(BM__bm((I)).JML normal_behavior operation contract.0.proof"); + g.loadable( + "heap/BoyerMoore/BM(BM__count((I,_bigint,_bigint)).JML accessible clause.0.proof"); + g.loadable( + "heap/BoyerMoore/BM(BM__count((I,_bigint,_bigint)).JML model_behavior operation contract.0.proof"); + g.loadable( + "heap/BoyerMoore/BM(BM__monoLemma((I,int,int)).JML normal_behavior operation contract.0.proof"); g = c.group("quicksort"); g.setLocalSettings("[Choice]DefaultChoices=moreSeqRules-moreSeqRules:on"); @@ -972,6 +994,12 @@ public static ProofCollection automaticJavaDL() throws IOException { g.loadable("standard_key/adt/dt_color.proof"); g.loadable("standard_key/adt/dt_list_deconstruct.key"); + // use for debugging purposes. + // c.keep("VSTTE10"); + String s = System.getenv(ENV_KEY_RAP_FUN_KEEP); + if (s != null) { + c.keep(s.split(",")); + } return c; } diff --git a/key.core/src/test/java/de/uka/ilkd/key/proof/runallproofs/ProveTest.java b/key.core/src/test/java/de/uka/ilkd/key/proof/runallproofs/ProveTest.java index d8722771c81..dba91626680 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/proof/runallproofs/ProveTest.java +++ b/key.core/src/test/java/de/uka/ilkd/key/proof/runallproofs/ProveTest.java @@ -73,44 +73,55 @@ protected void assertUnLoadability(String file) throws Exception { } private void runKey(String file, TestProperty testProperty) throws Exception { + File keyFile = new File(file); + + // a name for this run. helps to find it in the mass of logger + final var caseId = "%s|%d".formatted(keyFile.getName(), keyFile.hashCode()); + + LOGGER.info("{}: Run Test: {} with {}", caseId, file, testProperty); + // Initialize KeY settings. ProofSettings.DEFAULT_SETTINGS.loadSettingsFromPropertyString(globalSettings); - if (localSettings != null && !"".equals(localSettings)) { + if (localSettings != null && !localSettings.isEmpty()) { // local settings must be complete to have desired effect ProofSettings.DEFAULT_SETTINGS.loadSettingsFromPropertyString(localSettings); } - File keyFile = new File(file); - assertTrue(keyFile.exists(), "File " + keyFile + " does not exists"); + LOGGER.info("({}) Active Settings: {}", caseId, + ProofSettings.DEFAULT_SETTINGS.settingsToString()); - // Name resolution for the available KeY file. - debugOut("Now processing file %s", keyFile); + assertTrue(keyFile.exists(), "File " + keyFile + " does not exists"); // File that the created proof will be saved to. File proofFile = new File(keyFile.getAbsolutePath() + ".proof"); + LOGGER.info("({}) Proof will be saved to: {}", caseId, proofFile); + KeYEnvironment env = null; Proof loadedProof = null; boolean success; try { + LOGGER.info("({}) Start proving", caseId); // Initialize KeY environment and load proof. Pair, Pair> pair = load(keyFile); + LOGGER.info("({}) Proving done", caseId); + env = pair.first; Pair script = pair.second; loadedProof = env.getLoadedProof(); AbstractProblemLoader.ReplayResult replayResult = env.getReplayResult(); if (replayResult.hasErrors() && verbose) { - LOGGER.info("... error(s) while loading"); + LOGGER.info("({}) {} Error(s) while loading", caseId, replayResult.getErrorList()); for (Throwable error : replayResult.getErrorList()) { - LOGGER.info("Error", error); + LOGGER.info("({}) Error", caseId, error); } } if (testProperty == TestProperty.NOTLOADABLE) { assertTrue(replayResult.hasErrors(), - "Loading problem file succeded but it shouldn't"); + "Loading problem file succeeded but it shouldn't"); success = true; } else { assertFalse(replayResult.hasErrors(), "Loading problem file failed"); @@ -118,12 +129,13 @@ private void runKey(String file, TestProperty testProperty) throws Exception { // For a reload test we are done at this point. Loading was successful. if (testProperty == TestProperty.LOADABLE) { success = true; - debugOut("... success: loaded"); + LOGGER.info("({}) Success: loaded", caseId); } else { autoMode(env, loadedProof, script); boolean closed = loadedProof.closed(); success = (testProperty == TestProperty.PROVABLE) == closed; - debugOut("... finished proof: " + (closed ? "closed." : "open goal(s)")); + LOGGER.info("({}) Finished proof: {}", caseId, + (closed ? "closed." : "open goal(s)")); appendStatistics(loadedProof, keyFile); if (success) { reload(proofFile, loadedProof); @@ -139,7 +151,8 @@ private void runKey(String file, TestProperty testProperty) throws Exception { } } - String message = String.format("%sVerifying property \"%s\"%sfor file: %s", + String message = String.format("(%s) %sVerifying property \"%s\"%sfor file: %s", + caseId, success ? "pass: " : "FAIL: ", testProperty.toString().toLowerCase(), success ? " was successful " : " failed ", keyFile); diff --git a/key.core/src/test/java/de/uka/ilkd/key/proof/runallproofs/proofcollection/ProofCollection.java b/key.core/src/test/java/de/uka/ilkd/key/proof/runallproofs/proofcollection/ProofCollection.java index cd503c42f3d..ebe5753dbd8 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/proof/runallproofs/proofcollection/ProofCollection.java +++ b/key.core/src/test/java/de/uka/ilkd/key/proof/runallproofs/proofcollection/ProofCollection.java @@ -5,6 +5,7 @@ import java.io.IOException; import java.util.*; +import java.util.function.Predicate; import de.uka.ilkd.key.proof.runallproofs.RunAllProofsTestUnit; @@ -83,4 +84,17 @@ public GroupedProofCollectionUnit group(String name) { units.add(unit); return unit; } + + /** + * Removes all groups from this collection except the given names + * + * @param groupNames a list of groups to be kept + */ + public void keep(String... groupNames) { + Arrays.sort(groupNames); + Predicate toBeKept = (String s) -> Arrays.binarySearch(groupNames, s) >= 0; + Predicate pred = + c -> c instanceof GroupedProofCollectionUnit u && toBeKept.test(u.getName()); + units.removeIf(pred.negate()); + } } diff --git a/key.core/src/test/java/de/uka/ilkd/key/rule/TestApplyTaclet.java b/key.core/src/test/java/de/uka/ilkd/key/rule/TestApplyTaclet.java index ac9267c316b..2052f3a8e75 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/rule/TestApplyTaclet.java +++ b/key.core/src/test/java/de/uka/ilkd/key/rule/TestApplyTaclet.java @@ -26,6 +26,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; import static org.junit.jupiter.api.Assertions.*; @@ -739,7 +740,7 @@ private void doTestCatchList(int p_proof) { Term resultFormula = goals.head().sequent().getFormulabyNr(1).formula(); Term correctFormula = correctSeq.getFormulabyNr(1).formula(); - assertTrue(resultFormula.equalsModRenaming(correctFormula), + assertTrue(resultFormula.equalsModProperty(correctFormula, RENAMING_PROPERTY), "Wrong result. Expected:" + ProofSaver.printAnything(correctFormula, TacletForTests.services()) + " But was:" + ProofSaver.printAnything(resultFormula, TacletForTests.services())); diff --git a/key.core/src/test/java/de/uka/ilkd/key/rule/conditions/TestApplyUpdateOnRigidCondition.java b/key.core/src/test/java/de/uka/ilkd/key/rule/conditions/TestApplyUpdateOnRigidCondition.java index aa6faa6f5a2..91ff2692110 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/rule/conditions/TestApplyUpdateOnRigidCondition.java +++ b/key.core/src/test/java/de/uka/ilkd/key/rule/conditions/TestApplyUpdateOnRigidCondition.java @@ -16,6 +16,7 @@ import org.junit.jupiter.api.Test; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; import static org.junit.jupiter.api.Assertions.*; public class TestApplyUpdateOnRigidCondition { @@ -24,7 +25,7 @@ void updateWithoutVariables() { Term term = TacletForTests.parseTerm("{i:=0}\\forall int a; a = i"); Term result = applyUpdateOnFormula(term); Term expected = TacletForTests.parseTerm("\\forall int a; {i:=0}(a = i)"); - assertTrue(expected.equalsModRenaming(result), + assertTrue(expected.equalsModProperty(result, RENAMING_PROPERTY), "Update without free variables was not properly applied on formula!"); term = TacletForTests.parseTerm("{i:=0}(i = 0)"); @@ -36,7 +37,7 @@ void updateWithoutVariables() { term = TacletForTests.parseTerm("{i:=0} f(const)"); result = applyUpdateOnTerm(term); expected = TacletForTests.parseTerm("f({i:=0} const)"); - assertTrue(expected.equalsModRenaming(result), + assertTrue(expected.equalsModProperty(result, RENAMING_PROPERTY), "Update without free variables was not properly applied on term!"); } @@ -50,21 +51,21 @@ void updateWithVariablesNoClash() { Term result = tb.all(b, applyUpdateOnFormula(term.sub(0))); Term expected = TacletForTests.parseTerm("\\forall int b; \\forall java.lang.Object a; {i:=b} (a = i)"); - assertTrue(expected.equalsModRenaming(result), + assertTrue(expected.equalsModProperty(result, RENAMING_PROPERTY), "Update is not simply pulled over quantification!"); term = TacletForTests.parseTerm("\\forall int b; {i:=b} (0 = i)"); b = term.boundVars().get(0); result = tb.all(b, applyUpdateOnFormula(term.sub(0))); expected = TacletForTests.parseTerm("\\forall int b; {i:=b} 0 = {i:=b} i"); - assertTrue(expected.equalsModRenaming(result), + assertTrue(expected.equalsModProperty(result, RENAMING_PROPERTY), "Update is not simply pulled over equality!"); term = TacletForTests.parseTerm("\\forall int b; {i:=b} f(const) = 0"); b = term.boundVars().get(0); result = tb.all(b, tb.equals(applyUpdateOnTerm(term.sub(0).sub(0)), term.sub(0).sub(1))); expected = TacletForTests.parseTerm("\\forall int b; f({i:=b} const) = 0"); - assertTrue(expected.equalsModRenaming(result), + assertTrue(expected.equalsModProperty(result, RENAMING_PROPERTY), "Update is not simply pulled over function symbol!"); } @@ -78,7 +79,8 @@ void updateWithVariablesAndClash() { Term result = tb.all(a, applyUpdateOnFormula(term.sub(0))); Term expected = TacletForTests .parseTerm("\\forall int a; \\forall java.lang.Object a1; {i:=a} (a1 = i)"); - assertTrue(expected.equalsModRenaming(result), "Renaming or applying update afterwards !"); + assertTrue(expected.equalsModProperty(result, RENAMING_PROPERTY), + "Renaming or applying update afterwards !"); term = TacletForTests.parseTerm( "\\forall int a1; \\forall int a; {i:=a}\\forall java.lang.Object a; i = a1"); @@ -87,7 +89,7 @@ void updateWithVariablesAndClash() { result = tb.all(a, tb.all(a1, applyUpdateOnFormula(term.sub(0).sub(0)))); expected = TacletForTests.parseTerm( "\\forall int a1; \\forall int a; \\forall java.lang.Object a2; {i:=a} (i = a1)"); - assertTrue(expected.equalsModProofIrrelevancy(result), + assertTrue(expected.equalsModProperty(result, RENAMING_PROPERTY), "Counter appended to stem was not increased high enough!"); } diff --git a/key.core/src/test/java/de/uka/ilkd/key/rule/merge/MergeRuleTests.java b/key.core/src/test/java/de/uka/ilkd/key/rule/merge/MergeRuleTests.java index 925e3658025..3c0e4bec7bf 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/rule/merge/MergeRuleTests.java +++ b/key.core/src/test/java/de/uka/ilkd/key/rule/merge/MergeRuleTests.java @@ -312,8 +312,7 @@ public static Proof loadProof(String directory, String proofFileName) { * @param proofFileName The file name of the proof file to load. * @return The loaded proof. */ - @NonNull - public static Proof loadProof(File directory, String proofFileName) { + public static @NonNull Proof loadProof(File directory, String proofFileName) { File proofFile = new File(directory, proofFileName); assertTrue(proofFile.exists(), "Proof file: " + proofFile.getAbsolutePath() + " could not be found!"); diff --git a/key.core/src/test/java/de/uka/ilkd/key/smt/newsmt2/MasterHandlerTest.java b/key.core/src/test/java/de/uka/ilkd/key/smt/newsmt2/MasterHandlerTest.java index 56093c90c72..bdd9db8c2fa 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/smt/newsmt2/MasterHandlerTest.java +++ b/key.core/src/test/java/de/uka/ilkd/key/smt/newsmt2/MasterHandlerTest.java @@ -108,8 +108,8 @@ public static List data() } public record TestData(String name, Path path, LineProperties props, String translation) { - @Nullable - public static TestData create(Path path) throws IOException, ProblemLoaderException { + + public static @Nullable TestData create(Path path) throws IOException, ProblemLoaderException { var name = path.getFileName().toString(); var props = new LineProperties(); try (BufferedReader reader = Files.newBufferedReader(path)) { diff --git a/key.core/src/test/java/de/uka/ilkd/key/smt/newsmt2/ProveSMTLemmasTest.java b/key.core/src/test/java/de/uka/ilkd/key/smt/newsmt2/ProveSMTLemmasTest.java index 4021eeebf0d..b05f4767d35 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/smt/newsmt2/ProveSMTLemmasTest.java +++ b/key.core/src/test/java/de/uka/ilkd/key/smt/newsmt2/ProveSMTLemmasTest.java @@ -33,6 +33,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; + /** * This test case makes sure that all KeY formulas which are translated to axioms in SMT can * actually be proved in KeY. @@ -90,7 +92,7 @@ public void testSMTLemmaSoundness(String name, String lemmaString) throws Except KeyIO io = new KeyIO(loadedProof.getServices()); Term parsedLemma = io.parseExpression(lemmaString); Term actual = loadedProof.root().sequent().succedent().get(0).formula(); - if (!actual.equalsModRenaming(parsedLemma)) { + if (!actual.equalsModProperty(parsedLemma, RENAMING_PROPERTY)) { LOGGER.info("Stored : {}", parsedLemma); LOGGER.warn("Proven : {}", actual); Assertions.fail("The proven lemma is different from the stored one."); diff --git a/key.core/src/test/java/de/uka/ilkd/key/speclang/SetStatementTest.java b/key.core/src/test/java/de/uka/ilkd/key/speclang/SetStatementTest.java new file mode 100644 index 00000000000..514d89e0392 --- /dev/null +++ b/key.core/src/test/java/de/uka/ilkd/key/speclang/SetStatementTest.java @@ -0,0 +1,121 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.speclang; + +import java.io.File; + +import de.uka.ilkd.key.java.JavaInfo; +import de.uka.ilkd.key.java.Position; +import de.uka.ilkd.key.java.Services; +import de.uka.ilkd.key.java.abstraction.KeYJavaType; +import de.uka.ilkd.key.java.abstraction.PrimitiveType; +import de.uka.ilkd.key.logic.ProgramElementName; +import de.uka.ilkd.key.logic.Term; +import de.uka.ilkd.key.logic.op.LocationVariable; +import de.uka.ilkd.key.logic.op.ProgramVariable; +import de.uka.ilkd.key.speclang.jml.pretranslation.TextualJMLConstruct; +import de.uka.ilkd.key.speclang.jml.pretranslation.TextualJMLSetStatement; +import de.uka.ilkd.key.speclang.jml.translation.Context; +import de.uka.ilkd.key.speclang.jml.translation.JMLSpecFactory; +import de.uka.ilkd.key.speclang.njml.JmlIO; +import de.uka.ilkd.key.speclang.njml.JmlParser; +import de.uka.ilkd.key.util.HelperClassForTests; + +import org.key_project.util.collection.ImmutableList; +import org.key_project.util.collection.ImmutableSLList; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +/** + * This class holds tests for the SetStatement. + * + * @author Julian Wiesler + */ +public class SetStatementTest { + /** + * the filename of the key file which is needed to create Services and JavaInfo + */ + private static final String TEST_FILE = HelperClassForTests.TESTCASE_DIRECTORY + File.separator + + "setStatements" + File.separator + "testFile.key"; + + /** + * JavaInfo containing information about the available datatypes and methods + */ + private JavaInfo javaInfo; + + /** + * services needed for translation + */ + private Services services; + + /** + * service for JML translation + */ + private JmlIO jmlIO; + + /** + * context information needed for JmlIO/parser + */ + private KeYJavaType testClassType; + + /** + * Creates the JavaInfo, Services, and JmlIO. + */ + @BeforeEach + public synchronized void setUp() { + if (javaInfo == null) { + javaInfo = + new HelperClassForTests().parse(new File(TEST_FILE)).getFirstProof().getJavaInfo(); + services = javaInfo.getServices(); + testClassType = javaInfo.getKeYJavaType("testPackage.TestClass"); + } + var selfVar = new LocationVariable(new ProgramElementName("self"), testClassType); + + var normalLocal = new LocationVariable(new ProgramElementName("normalLocal"), + javaInfo.getKeYJavaType(PrimitiveType.JAVA_INT)); + var ghostLocal = new LocationVariable(new ProgramElementName("ghostLocal"), + javaInfo.getKeYJavaType(PrimitiveType.JAVA_INT), true, false); + + jmlIO = new JmlIO(services) + .context(Context.inClass(testClassType, false, services.getTermBuilder())) + .selfVar(selfVar) + .parameters(ImmutableSLList.nil().append(ghostLocal, normalLocal)); + } + + @Test + public void test() { + testError("//@ set this.ghostArray[0] = 0;", "write to array"); + testError("//@ set this.normalField = 0;", "write to normal field"); + testNoError("//@ set this.ghostArray[0].ghostField = 0;", "write ghost field"); + testNoError("//@ set this.ghostField = 0;", "write to ghost field"); + testNoError("//@ set ghostLocal = 0;", "write to ghost local"); + testError("//@ set normalLocal = 0;", "write to normal local"); + } + + private void testError(String statement, String reason) { + assertNotNull(parseAndCheck(statement), + "'" + statement + "' should produce an error: " + reason); + } + + private void testNoError(String statement, String reason) { + assertNull(parseAndCheck(statement), + "'" + statement + "' should not produce an error: " + reason); + } + + private String parseAndCheck(String statementText) { + JMLSpecFactory jsf = new JMLSpecFactory(services); + ImmutableList constructs = + new de.uka.ilkd.key.speclang.njml.PreParser(true).parseMethodLevel(statementText, null, + Position.newOneBased(1, 1)); + assertEquals(constructs.size(), 1); + assertInstanceOf(TextualJMLSetStatement.class, constructs.head()); + var statement = (TextualJMLSetStatement) constructs.head(); + JmlParser.Set_statementContext context = statement.getAssignment(); + Term assignee = jmlIO.translateTerm(context.assignee); + return jsf.checkSetStatementAssignee(assignee); + } +} diff --git a/key.core/src/test/java/de/uka/ilkd/key/speclang/jml/TestJMLTranslator.java b/key.core/src/test/java/de/uka/ilkd/key/speclang/jml/TestJMLTranslator.java index 93426171d6c..6cf16e0a23f 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/speclang/jml/TestJMLTranslator.java +++ b/key.core/src/test/java/de/uka/ilkd/key/speclang/jml/TestJMLTranslator.java @@ -31,6 +31,8 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; +import static de.uka.ilkd.key.logic.equality.RenamingProperty.RENAMING_PROPERTY; +import static de.uka.ilkd.key.logic.equality.TermLabelsProperty.TERM_LABELS_PROPERTY; import static java.lang.String.format; import static org.junit.jupiter.api.Assertions.*; @@ -57,7 +59,7 @@ public synchronized void setUp() { atPres.put(services.getTypeConverter().getHeapLDT().getHeap(), TB.var(TB.heapAtPreVar("heapAtPre", false))); } - jmlIO = new JmlIO().services(services).classType(testClassType) + jmlIO = new JmlIO(services).classType(testClassType) .specMathMode(JMLInfoExtractor.getSpecMathModeOrDefault(testClassType)) .selfVar(buildSelfVarAsProgVar()); } @@ -184,7 +186,7 @@ public void testForAll() { services.getNamespaces().sorts().lookup(new Name("int"))); Term expected = TB.all(i, TB.imp(TB.inInt(TB.var(i)), TB.and(TB.leq(TB.zTerm("0"), TB.var(i)), TB.leq(TB.var(i), TB.zTerm("2147483647"))))); - assertTrue(result.equalsModRenaming(expected), + assertTrue(result.equalsModProperty(expected, RENAMING_PROPERTY), "Result was: " + result + "; \nExpected was: " + expected); } @@ -200,7 +202,7 @@ public void testForEx() { services.getNamespaces().sorts().lookup(new Name("int"))); Term expected = TB.ex(i, TB.and(TB.inInt(TB.var(i)), TB.and(TB.leq(TB.zTerm("0"), TB.var(i)), TB.leq(TB.var(i), TB.zTerm("2147483647"))))); - assertTrue(result.equalsModRenaming(expected), + assertTrue(result.equalsModProperty(expected, RENAMING_PROPERTY), "Result was: " + result + "; \nExpected was: " + expected); } @@ -216,7 +218,7 @@ public void testBsumInt() { TB.bsum(i, TB.zTerm("0"), TB.zTerm("2147483647"), TB.var(i))); assertNotNull(result); Assertions.assertSame(q, result.sub(0).op()); - assertTrue(result.equalsModRenaming(expected), + assertTrue(result.equalsModProperty(expected, RENAMING_PROPERTY), "Result was: " + result + "; \nExpected was: " + expected); } @@ -230,7 +232,7 @@ public void testBsumBigInt() { Term expected = TB.bsum(i, TB.zTerm("0"), TB.zTerm("2147483647"), TB.var(i)); assertNotNull(result); Assertions.assertSame(q, result.op()); - assertTrue(result.equalsModRenaming(expected), + assertTrue(result.equalsModProperty(expected, RENAMING_PROPERTY), "Result was: " + result + "; \nExpected was: " + expected); } @@ -247,7 +249,7 @@ public void testInfiniteUnion() { TB.not(TB.equals(TB.var(o), TB.NULL()))); Term expected = TB.infiniteUnion(new QuantifiableVariable[] { o }, TB.ife(guard, TB.empty(), TB.empty())); - assertTrue(result.equalsModRenaming(expected), + assertTrue(result.equalsModProperty(expected, RENAMING_PROPERTY), "Result was: " + result + "; \nExpected was: " + expected); } @@ -265,7 +267,7 @@ public void testInfiniteUnion2() { TB.or(TB.convertToFormula(TB.created(TB.var(o))), TB.equals(TB.var(o), TB.NULL())); Term expected = TB.infiniteUnion(new QuantifiableVariable[] { o }, TB.ife(guard, TB.empty(), TB.empty())); - assertTrue(result.equalsModRenaming(expected), + assertTrue(result.equalsModProperty(expected, RENAMING_PROPERTY), "Result was: " + result + "; \nExpected was: " + expected); } @@ -446,7 +448,7 @@ public void testCorrectImplicitThisResolution() { TB.not(TB.equals(TB.var(qv), TB.NULL()))), // implicit non null TB.equals(TB.var(qv), TB.var(selfVar)))); - final boolean condition = result.equalsModRenaming(expected); + final boolean condition = result.equalsModProperty(expected, RENAMING_PROPERTY); assertTrue(condition, format("Expected:%s\n Was:%s", ProofSaver.printTerm(expected, services), ProofSaver.printTerm(result, services))); } @@ -477,7 +479,7 @@ public void testOperatorOverloading(String expression, String expected) { fail("Cannot parse " + expected, e); } - if (!tTrans.equalsModTermLabels(tExp)) { + if (!tTrans.equalsModProperty(tExp, TERM_LABELS_PROPERTY)) { // this gives nicer error assertEquals(tExp, tTrans); } diff --git a/key.core/src/test/java/de/uka/ilkd/key/speclang/jml/pretranslation/TextualJMLAssertStatementTest.java b/key.core/src/test/java/de/uka/ilkd/key/speclang/jml/pretranslation/TextualJMLAssertStatementTest.java index 3da50fba1ee..340032497a0 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/speclang/jml/pretranslation/TextualJMLAssertStatementTest.java +++ b/key.core/src/test/java/de/uka/ilkd/key/speclang/jml/pretranslation/TextualJMLAssertStatementTest.java @@ -8,7 +8,8 @@ import org.key_project.util.collection.ImmutableList; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; import static org.junit.jupiter.api.Assertions.*; @@ -18,25 +19,20 @@ private static ImmutableList parseMethodLevel(String ms) { return new PreParser(true).parseMethodLevel(ms, null, Position.newOneBased(1, 1)); } - private static void assertTextRepr(String input, String text) { + @ParameterizedTest + @CsvSource(delimiter = '#', + textBlock = """ + //@ assert true; # true; + //@ assert 1 + 2 == 3 && 2 != 3; # 1 + 2 == 3 && 2 != 3; + //@ assert (\\forall int j; 0 <= j < 10; true); # (\\forall int j; 0 <= j < 10; true); + //@ assert (\\forall int j; 0 <= j < 10; (\\exists int k; 0 <= k < 10; j == k)); # (\\forall int j; 0 <= j < 10; (\\exists int k; 0 <= k < 10; j == k)); + """) + void assertTextRepr(String input, String text) { var constructs = parseMethodLevel(input); assertNotNull(constructs); assertEquals(1, constructs.size()); - assertTrue(constructs.head() instanceof TextualJMLAssertStatement); + assertInstanceOf(TextualJMLAssertStatement.class, constructs.head()); var jmlAssert = (TextualJMLAssertStatement) constructs.head(); - var builder = new StringBuilder(); - TextualJMLAssertStatement.ruleContextToText(builder, jmlAssert.getContext().first); - assertEquals(builder.toString(), text); - } - - @Test - public void testTextRepr() { - assertTextRepr("//@ assert true;", "assert true ;"); - assertTextRepr("//@ assert 1 + 2 == 3 && 2 != 3;", "assert 1 + 2 == 3 && 2 != 3 ;"); - assertTextRepr("//@ assert (\\forall int j; 0 <= j < 10; true);", - "assert ( \\forall int j ; 0 <= j < 10 ; true ) ;"); - assertTextRepr( - "//@ assert (\\forall int j; 0 <= j < 10; (\\exists int k; 0 <= k < 10; j == k));", - "assert ( \\forall int j ; 0 <= j < 10 ; ( \\exists int k ; 0 <= k < 10 ; j == k ) ) ;"); + assertEquals(text, jmlAssert.getContext().getText()); } } diff --git a/key.core/src/test/java/de/uka/ilkd/key/speclang/njml/JMLParserExceptionTest.java b/key.core/src/test/java/de/uka/ilkd/key/speclang/njml/JMLParserExceptionTest.java index c8d469cb9b4..ba1b699835a 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/speclang/njml/JMLParserExceptionTest.java +++ b/key.core/src/test/java/de/uka/ilkd/key/speclang/njml/JMLParserExceptionTest.java @@ -6,32 +6,20 @@ import java.io.IOException; import java.net.URISyntaxException; import java.net.URL; -import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.List; import java.util.Properties; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import java.util.stream.Stream; import de.uka.ilkd.key.control.DefaultUserInterfaceControl; -import de.uka.ilkd.key.parser.Location; import de.uka.ilkd.key.proof.init.AbstractProfile; import de.uka.ilkd.key.proof.io.AbstractProblemLoader; import de.uka.ilkd.key.proof.io.ProblemLoaderControl; import de.uka.ilkd.key.proof.io.SingleThreadProblemLoader; -import de.uka.ilkd.key.util.ExceptionTools; +import de.uka.ilkd.key.util.ParserExceptionTest; -import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; -import org.opentest4j.AssertionFailedError; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import static org.junit.jupiter.api.Assertions.*; /** * This test case is used to ensure that errors in JML (and perhaps also in Java) @@ -48,30 +36,18 @@ * * @author Mattias Ulbrich */ -public class JMLParserExceptionTest { - - // The following can be changed temporarily to control run tests - private static final boolean IGNORE_BROKEN = true; - - // File name local to the res directoy with the test cases - private static final String FIX_FILE = null; // "SetInClass.java"; - - private static final Logger LOGGER = LoggerFactory.getLogger(JMLParserExceptionTest.class); +public class JMLParserExceptionTest extends ParserExceptionTest { - private final static Pattern PROP_LINE = - Pattern.compile("//\\s*(\\p{Alnum}+)\\s*[:=]\\s*(.*?)\\s*"); + /* + * Usually a directory is scanned for files to operate on. + * If this here is not null, this file name (referring to the resources + * directory) will be loaded. + */ + private static final String FIX_FILE = null; // "SomeSpecificFile.java"; public static Stream getFiles() throws URISyntaxException, IOException { URL fileURL = JMLParserExceptionTest.class.getResource("exceptional"); - assert fileURL != null : "Directory 'exceptional' not found"; - assert fileURL.getProtocol().equals("file") : "Test resources must be in file system"; - Path dir = Paths.get(fileURL.toURI()); - if (FIX_FILE != null) { - List list = List.of(Arguments.of(dir.resolve(FIX_FILE), FIX_FILE)); - return list.stream(); - } - return Files.walk(dir).filter(it -> it.getFileName().toString().endsWith(".java")) - .map(it -> Arguments.of(it, it.getFileName())); + return ParserExceptionTest.getFiles(FIX_FILE, fileURL, ".java"); } @@ -81,87 +57,13 @@ public void testParseAndInterpret(Path file, Path localFilename) throws Exceptio parseAndInterpret(file); } - // This method does not depend on anything can also be called from other test cases. - public static void parseAndInterpret(Path file) throws Exception { - List lines = Files.readAllLines(file); - Properties props = new Properties(); - for (String line : lines) { - Matcher m = PROP_LINE.matcher(line); - if (m.matches()) { - props.put(m.group(1), m.group(2)); - } else { - break; - } - } - - if ("true".equals(props.get("ignore")) - || IGNORE_BROKEN && "true".equals(props.get("broken"))) { - Assumptions.abort("This test case has been marked to be ignored"); - } - - try { - ProblemLoaderControl control = new DefaultUserInterfaceControl(null); - AbstractProblemLoader pl = new SingleThreadProblemLoader(file.toFile(), null, null, - null, AbstractProfile.getDefaultProfile(), false, - control, false, new Properties()); - pl.setLoadSingleJavaFile(true); - pl.load(); - // No exception encountered - assertEquals("true", props.getProperty("noException"), - "Unless 'noException: true' has been set, an exception is expected"); - - } catch (AssertionFailedError ae) { - throw ae; - } catch (Throwable e) { - if ("true".equals(props.getProperty("verbose"))) { - LOGGER.info("Exception raised while parsing {}", file.getFileName(), e); - } - - try { - assertNotEquals("true", props.getProperty("noException"), - "'noException: true' has been set: no exception expected"); - - // We must use throwable here since there are some Errors around ... - String exc = props.getProperty("exceptionClass"); - if (exc != null) { - if (exc.contains(".")) { - assertEquals(exc, e.getClass().getName(), "Exception type expected"); - } else { - assertEquals(exc, e.getClass().getSimpleName(), "Exception type expected"); - } - } - - String msg = props.getProperty("msgContains"); - if (msg != null) { - assertTrue(e.getMessage().contains(msg), "Message must contain " + msg); - } - - msg = props.getProperty("msgMatches"); - if (msg != null) { - assertTrue(e.getMessage().matches(msg), - "Message must match regular exp " + msg); - } - - msg = props.getProperty("msgIs"); - if (msg != null) { - assertEquals(msg, e.getMessage(), "Message must be " + msg); - } - - String loc = props.getProperty("position"); - if (loc != null) { - Location actLoc = ExceptionTools.getLocation(e).orElseThrow( - () -> new Exception("there is no location in the exception")); - assertEquals(file.toUri(), actLoc.getFileURI().orElse(null), - "Exception location must point to file under test"); - assertEquals(loc, actLoc.getPosition().toString()); - } - } catch (AssertionFailedError assertionFailedError) { - // in case of a failed assertion log the stacktrace - LOGGER.info("Original stacktrace leading to failed junit assertion in {}", - file.getFileName(), e); - // e.printStackTrace(); - throw assertionFailedError; - } - } + @Override + protected void tryLoadFile(Path file) throws Exception { + ProblemLoaderControl control = new DefaultUserInterfaceControl(null); + AbstractProblemLoader pl = new SingleThreadProblemLoader(file.toFile(), null, null, + null, AbstractProfile.getDefaultProfile(), false, + control, false, new Properties()); + pl.setLoadSingleJavaFile(true); + pl.load(); } } diff --git a/key.core/src/test/java/de/uka/ilkd/key/util/ExceptionToolsTest.java b/key.core/src/test/java/de/uka/ilkd/key/util/ExceptionToolsTest.java new file mode 100644 index 00000000000..2d7c354e67c --- /dev/null +++ b/key.core/src/test/java/de/uka/ilkd/key/util/ExceptionToolsTest.java @@ -0,0 +1,55 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.util; + +import java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; + +import de.uka.ilkd.key.nparser.ParsingFacade; +import de.uka.ilkd.key.parser.Location; +import de.uka.ilkd.key.util.parsing.SyntaxErrorReporter; + +import org.key_project.util.helper.FindResources; + +import org.antlr.v4.runtime.InputMismatchException; +import org.antlr.v4.runtime.misc.ParseCancellationException; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class ExceptionToolsTest { + public static final File testCaseDirectory = FindResources.getTestCasesDirectory(); + + @Test + void missingSemicolon() throws MalformedURLException { + var fileToRead = testCaseDirectory.toPath(); + fileToRead = fileToRead.resolve("parserErrorTest/missing_semicolon.key"); + try { + var result = ParsingFacade.parseFile(fileToRead); + fail("should fail to parse"); + } catch (IOException e) { + throw new RuntimeException(e); + } catch (ParseCancellationException exc) { + InputMismatchException ime = (InputMismatchException) exc.getCause(); + String message = """ + Syntax error in input file missing_semicolon.key + Line: 6 Column: 1 + Found token which was not expected: '}' + Expected token type(s): ';' + """; + String resultMessage = ExceptionTools.getNiceMessage(ime); + assertEquals(message, resultMessage); + + Location loc = ExceptionTools.getLocation(ime); + assertEquals(6, loc.getPosition().line()); + assertEquals(1, loc.getPosition().column()); + assertEquals(fileToRead.toUri(), loc.fileUri()); + } catch (SyntaxErrorReporter.ParserException exception) { + Location loc = ExceptionTools.getLocation(exception); + assertEquals(6, loc.getPosition().line()); + assertEquals(1, loc.getPosition().column()); + } + } +} diff --git a/key.core/src/test/java/de/uka/ilkd/key/util/ParserExceptionTest.java b/key.core/src/test/java/de/uka/ilkd/key/util/ParserExceptionTest.java new file mode 100644 index 00000000000..0378e59fbb4 --- /dev/null +++ b/key.core/src/test/java/de/uka/ilkd/key/util/ParserExceptionTest.java @@ -0,0 +1,189 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package de.uka.ilkd.key.util; + +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.Properties; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Stream; + +import de.uka.ilkd.key.parser.Location; +import de.uka.ilkd.key.proof.io.ProblemLoaderException; + +import org.junit.jupiter.api.Assumptions; +import org.junit.jupiter.params.provider.Arguments; +import org.opentest4j.AssertionFailedError; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import static org.junit.jupiter.api.Assertions.*; + +/** + * This test case is used to ensure that parser errors are reported with a + * reasonable error message and the right position pointing into the file. + *

+ * This framework class is versatile and can be used for different parsers, + * in particular the JML and the JavaDL parsers will be targeted. + *

+ * To add a test case, locate the "exceptional" directory in the resources + * (below the directory for the package of the refining class) and add single + * test files (file extension depending on the implementation as returned by + * ...) that contains an error that should be presented to the user (like + * syntax errors, unresolved names, ...) + *

+ * See README.md in said directories for information on the meta-data inside + * the files. + * + * @author Mattias Ulbrich + */ +public abstract class ParserExceptionTest { + + /* + * There are rest cases which are known to be broken. + * In order to remain productive, these known broken instances + * are usually deactivated. + * + * This can be changed to reactivate the broken test cases + * (to go bughunting). + */ + private static final boolean IGNORE_BROKEN = true; + + /** + * The keys supported in the headers of the files + */ + private static final Set SUPPORTED_KEYS = + Set.of("noException", "exceptionClass", "msgContains", + "msgMatches", "msgIs", "position", "ignore", "broken", "verbose"); + + private static final Logger LOGGER = LoggerFactory.getLogger(ParserExceptionTest.class); + + private final static Pattern PROP_LINE = + Pattern.compile("//\\s*(\\p{Alnum}+)\\s*[:=]\\s*(.*?)\\s*"); + + protected static Stream getFiles(String fixedFile, URL fileURL, String extension) + throws URISyntaxException, IOException { + assert fileURL != null : "Directory 'exceptional' not found"; + assert fileURL.getProtocol().equals("file") : "Test resources must be in file system"; + Path dir = Paths.get(fileURL.toURI()); + if (fixedFile != null) { + List list = List.of(Arguments.of(dir.resolve(fixedFile), fixedFile)); + return list.stream(); + } + return Files.walk(dir).filter(it -> it.getFileName().toString().endsWith(extension)) + .map(it -> Arguments.of(it, it.getFileName())); + } + + protected abstract void tryLoadFile(Path file) throws Exception; + + // This method does not depend on anything can also be called from other test cases. + public void parseAndInterpret(Path file) throws Exception { + List lines = Files.readAllLines(file); + Properties props = new Properties(); + for (String line : lines) { + Matcher m = PROP_LINE.matcher(line); + if (m.matches()) { + props.put(m.group(1), m.group(2)); + } else { + break; + } + } + + if ("true".equals(props.get("ignore")) + || IGNORE_BROKEN && "true".equals(props.get("broken"))) { + Assumptions.abort("This test case has been marked to be ignored"); + } + + props.keySet().stream().filter(k -> !SUPPORTED_KEYS.contains(k)).forEach( + k -> fail("Unsupported test spec key: " + k)); + + try { + tryLoadFile(file); + // No exception encountered + assertEquals("true", props.getProperty("noException"), + "Unless 'noException: true' has been set, an exception is expected"); + + } catch (Error ae) { + throw ae; + } catch (Throwable e) { + Throwable error = e; + if (error instanceof ProblemLoaderException) { + error = error.getCause(); + } + if ("true".equals(props.getProperty("verbose"))) { + LOGGER.info("Exception raised while parsing {}", file.getFileName(), error); + } + + try { + assertNotEquals("true", props.getProperty("noException"), + "'noException: true' has been set: no exception expected"); + + // We must use throwable here since there are some Errors around ... + String exc = props.getProperty("exceptionClass"); + if (exc != null) { + if (exc.contains(".")) { + assertEquals(exc, error.getClass().getName(), "Exception type expected"); + } else { + assertEquals(exc, error.getClass().getSimpleName(), + "Exception type expected"); + } + } + + String actualMessage = ExceptionTools.getMessage(error); + String msg = props.getProperty("msgContains"); + String errMsg = e.getMessage(); + if (msg != null) { + assertTrue(actualMessage.contains(msg), + "Message must contain '" + msg + "', but message is: '" + actualMessage + + "'"); + } + + msg = props.getProperty("msgMatches"); + if (msg != null) { + assertTrue(actualMessage.matches(msg), + "Message must match regular expression '" + msg + "', but is '" + + actualMessage + "'"); + } + + msg = props.getProperty("msgIs"); + if (msg != null) { + assertEquals(msg, actualMessage, + "Message must be " + msg + ", but is " + actualMessage + "'"); + } + + String loc = props.getProperty("position"); + if (loc != null) { + Location actLoc = ExceptionTools.getLocation(error); + if (actLoc == null) { + throw new Exception("there is no location in the exception"); + } + assertEquals(file.toUri(), actLoc.getFileURI().orElse(null), + "Exception location must point to file under test"); + assertEquals(loc, actLoc.getPosition().toString()); + } + + if ("true".equals(props.getProperty("broken"))) { + LOGGER.warn( + "This test case is marked as broken, but it would actually succeed!"); + } + + } catch (AssertionFailedError assertionFailedError) { + // in case of a failed assertion log the stacktrace + LOGGER.info("Original stacktrace leading to failed junit assertion in {}", + file.getFileName(), error); + // e.printStackTrace(); + throw assertionFailedError; + } + } + } + + +} diff --git a/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/README.md b/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/README.md new file mode 100644 index 00000000000..8470792ff19 --- /dev/null +++ b/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/README.md @@ -0,0 +1,29 @@ + +This directory contains test cases for the class +`de.uka.ilkd.key.nparser.KeYParserExceptionTest`. + +To add a test case add your single .key file that contains an error +that should be presented to the user (like syntax error, unresolved +names, ...) + +The first lines of the file may contain meta data on what to +expect from the exception. Meta data are key-value pairs like + + // : + +The following keys are supported + +| Key | Description | +| --- | --- | +| `noException` | This particular file must **not** throw an exception. Default: false | +| `exceptionClass` | Either a fully qualified class name or a short classname (w/o package prefix) of the actual type of the exception. Optional. | +| `msgContains` | A string which occur somewhere in the exception message (obtained via {@link Exception#getMessage()}). Optional | +| `msgMatches` | A regular expression that must match the exception message (obtained via {@link Exception#getMessage()}). Optional | +| `msgIs` | A string to which the exception message (obtained via {@link Exception#getMessage()}) must be equal. Optional | +| `position` | A tuple in form `line`/`column` describing the position within this file. Both line and column are 1-based. It is also checked that the URL of the location points to the file under test. Optional | +| `ignore` | Ignore this test case if set to true. Default is false. | +| `broken` | If broken tests are disabled, ignore this test case if set to true. Indicates that this needs to be fixed! Default is false. | +| `verbose` | Logs the stacktrace if set to true. Default is false. | +| `checkScript` | Experimental: Provide a piece of java (script) code that must return true to make the test succeed. You may use the variable 'env' containing the parsed KeYEnvironment. | +\@author Mattias Ulbrich + diff --git a/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/delayed_error.key b/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/delayed_error.key new file mode 100644 index 00000000000..5cc044f6093 --- /dev/null +++ b/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/delayed_error.key @@ -0,0 +1,22 @@ +// verbose: true +// position: 13/7 +// msgContains: Expected token type(s): ';' +// exceptionClass: ParseCancellationException + +\sorts { + S; +} + +\rules { + missingSemicolon { + \schemaVar \term int t + \find(t=t) + \replacewith(0=0) + }; +} + +\problem { true } + +// The exception originally was +// line 1:0 mismatched input '(' expecting {, '\sorts', '\schemaVariables', '\programVariables', '\include', '\includeLDTs', '\classpath', '\bootclasspath', '\javaSource', '\withOptions', '\optionsDecl', '\settings', '\profile', '\heuristicsDecl', '\predicates', '\functions', '\datatypes', '\transformers', '\rules', '\axioms', '\problem', '\chooseContract', '\proofObligation', '\proof', '\contracts', '\invariants', '/*!'} +// but the problem is the missing semicolon in line 12 \ No newline at end of file diff --git a/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/doubleDecl.key b/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/doubleDecl.key new file mode 100644 index 00000000000..7bc8ddf8eda --- /dev/null +++ b/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/doubleDecl.key @@ -0,0 +1,12 @@ +// verbose: true +// msgContains: Function 'null' is already defined! +// position: 9/5 + + + + +\functions { + int null; +} + +\problem {true} \ No newline at end of file diff --git a/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/doubleDecl2.key b/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/doubleDecl2.key new file mode 100644 index 00000000000..6826d03327b --- /dev/null +++ b/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/doubleDecl2.key @@ -0,0 +1,15 @@ +// verbose: true +// msgContains: Function 'null' is already defined! +// position: 9/9 + + + + +\programVariables { + int null; +} + +\problem {true} + + +// Originally, the problem was: This crashes everything :( \ No newline at end of file diff --git a/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/missing_semicolon.key b/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/missing_semicolon.key new file mode 100644 index 00000000000..e5feefcccfb --- /dev/null +++ b/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/missing_semicolon.key @@ -0,0 +1,16 @@ +// noException: false +// position: 10/1 +// msgContains: Found token which was not expected: '}' + +\rules { + missingSemicolon { + \find(0=0) + \replacewith(1=1) + } +} + +\problem { true } + + +// There should be an exception; +// at least the rule missingSemicolon must be present in the end. \ No newline at end of file diff --git a/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/unknownsort.key b/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/unknownsort.key new file mode 100644 index 00000000000..9a044c08966 --- /dev/null +++ b/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/unknownsort.key @@ -0,0 +1,9 @@ +// verbose: true +// msgContains: Could not find sort: seq +// exceptionClass: BuildingException +// position: 8/4 + + +\problem { + seq::seqGet(seqEmpty, 0) +} \ No newline at end of file diff --git a/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/unknownsort2.key b/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/unknownsort2.key new file mode 100644 index 00000000000..62c0e48c388 --- /dev/null +++ b/key.core/src/test/resources/de/uka/ilkd/key/nparser/exceptional/unknownsort2.key @@ -0,0 +1,14 @@ +// verbose: true +// msgContains: Could not find sort: seq +// exceptionClass: BuildingException +// position: 9/11 + + +\rules { + R { + \find(seq::seqGet(seqEmpty, 0)) + \replacewith(seq::seqGet(seqEmpty, 0)) + }; +} + +// There is a twin of this case where the error message is reasonable \ No newline at end of file diff --git a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/AccessingSequences.java b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/AccessingSequences.java new file mode 100644 index 00000000000..a61ee001927 --- /dev/null +++ b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/AccessingSequences.java @@ -0,0 +1,21 @@ +// verbose: true +// broken: true +// msgContains: expecting an integer value, not null + +class AccessingSequences { + + //@ ghost \seq seq; + + //@ ensures \result == seq[null]; + int m() { } +} + +// Is there positioning information? + +/* Not so helpful error message: + +Building a term failed. Normally there is an arity mismatch or one of the subterms' sorts is not compatible (e.g. like the '2' in "true & 2") +The top level operator was any::seqGet(Sort: any); its expected arg sorts were: +1.) sort: Seq, sort hash: 1884170567 +2.) sort: int, sort hash: 1928174253 + */ \ No newline at end of file diff --git a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/Bevhavioural.java b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/Bevhavioural.java index 04cba1a61c9..12b1b683d7f 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/Bevhavioural.java +++ b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/Bevhavioural.java @@ -1,9 +1,9 @@ // exceptionClass: PosConvertException // msgContains: no viable alternative at input 'normal_bevhaviour // verbose: true -// broken: true +// broken: false -// This is broken since it currently reports the wrong location +// Originally, the problem was: This is broken since it currently reports the wrong location class Bevhavioural { diff --git a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/BigInt.java b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/BigInt.java new file mode 100644 index 00000000000..28fa3370580 --- /dev/null +++ b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/BigInt.java @@ -0,0 +1,11 @@ +// verbose: true +// broken: false +// msgContains: Method f(\bigint) not found +// position: 10/20 + +class BigInt { + + static int f(int x) { return 42; } + + //@ invariant f(3+4) == 42; +} diff --git a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/IllegalInv.java b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/IllegalInv.java index 4d04e33832e..c9930e9d63e 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/IllegalInv.java +++ b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/IllegalInv.java @@ -1,8 +1,8 @@ -// exceptionClass: ConvertException +// exceptionClass: PosConvertException // msgContains: mismatched input ';' // position: 17/19 // verbose: true -// broken: true +// broken: false // currently reports the wrong position diff --git a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/KeyTest.java b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/KeyTest.java index adefbdf7382..5799e97f0f8 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/KeyTest.java +++ b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/KeyTest.java @@ -1,6 +1,5 @@ -// exceptionClass: PosConvertException // msgContains: no viable alternative at input 'asignable -// position: xx/10 +// position: 8/23 // broken: true // This reports "extraneous input '*' expecting RBRACKET" which is not helpful at all. diff --git a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/MissingClosingBrace.java b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/MissingClosingBrace.java new file mode 100644 index 00000000000..77a1a60e507 --- /dev/null +++ b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/MissingClosingBrace.java @@ -0,0 +1,12 @@ +// verbose: true +// broken: true +// msgContains: missing '}' +// position: 8/7 + +class MissingClosingBrace { + /*@ model int modelMethodWithoutClose() { + @ return 0; + @*/ +} + +// Since RBRACE is defined twice in the grammar, this can be reported only like this?! diff --git a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/MissingClosingParens.java b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/MissingClosingParens.java new file mode 100644 index 00000000000..71163058555 --- /dev/null +++ b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/MissingClosingParens.java @@ -0,0 +1,11 @@ +// verbose: true +// msgContains: missing closing parenthesis +// position: 7/40 +// broken: true + +class MissingClosingParens { + //@ ensures (\forall int x; x > 5; x > 0 ; + void m() { } +} + +// Gives strange: no viable alternative at input '(\forall int x; x > 5; x > 0 ;' diff --git a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/MissingOpeningParen.java b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/MissingOpeningParen.java new file mode 100644 index 00000000000..fe453d0a860 --- /dev/null +++ b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/MissingOpeningParen.java @@ -0,0 +1,10 @@ +// msgContains mismatched input ')' +// position 7/32 + +class MissingOpeningParen { + + /*@ public normal_behaviour + @ requires a.length > 0); + @*/ + public int m(int a[]) { return 42; } +} diff --git a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/MissingReturnType.java b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/MissingReturnType.java index 806a728197e..c9f2a7f06e0 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/MissingReturnType.java +++ b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/MissingReturnType.java @@ -1,8 +1,8 @@ // exceptionClass: PosConvertException // msgContains: no viable alternative at input 'modelFct(' -// position: 11/14 +// position: 11/23 // verbose: true -// broken: true + class MissingReturnType { diff --git a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/NamedAccessInContract.java b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/NamedAccessInContract.java index 527cd20a8fc..d367e1557ed 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/NamedAccessInContract.java +++ b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/NamedAccessInContract.java @@ -1,10 +1,9 @@ // position: 12/20 // verbose: true // broken: true -// exceptionClass: XXXX -// msgContains: XXXX +// noException: false -// currently does not report an exception +// Originally, the problem was: currently does not report an exception class NamedAccessInContract { diff --git a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/NoState.java b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/NoState.java index 0bfccfa9a0b..f22adf6cdc9 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/NoState.java +++ b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/NoState.java @@ -1,5 +1,5 @@ // noException: true - +// broken: true class NoState { /*@ public model_behaviour @@ -7,3 +7,5 @@ class NoState { @ model no_state int modelFct() { return 1; } @*/ } + +// Strange error message: 'Lexical error at line 11, column 38. Encountered: after : ""' \ No newline at end of file diff --git a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/Outside.java b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/Outside.java new file mode 100644 index 00000000000..42591f53869 --- /dev/null +++ b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/Outside.java @@ -0,0 +1,18 @@ +// verbose: true +// broken: true +// noException: false +// msgContains: outside +// exceptionClass: NotAnAssertion + +// currently does not raise an exception ... but it should! + +//@ invariant true; + +class Outside { + int x; + + //@ ensures true; + void m() {} +} + +//@ invariant x==2; diff --git a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/SpuriousContract.java b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/SpuriousContract.java new file mode 100644 index 00000000000..704afe3ad92 --- /dev/null +++ b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/SpuriousContract.java @@ -0,0 +1,14 @@ +// position: 12/20 +// verbose: true +// broken: true +// noException: false + +// currently does not report an exception + +class SpuriousContract { + + /*@ public normal_behaviour + @ requires true; + @ ensures true; + @*/ +} diff --git a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/ThisStarStar.java b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/ThisStarStar.java new file mode 100644 index 00000000000..d69b1acf513 --- /dev/null +++ b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/ThisStarStar.java @@ -0,0 +1,25 @@ +// NOTE: This is currently not giving a good error message +// broken: true +// msgContains: this.*.* is not a valid location set expression +// position: 9/28 + +class ThisStarStar { + + int max; + + /*@ public normal_behaviour + @ assignable this.*.*; + @*/ + public int m(int a[]) { return 0; } + +} + + +/* +TermCreationException: Building a term failed. Normally there is an arity mismatch or one of the subterms' sorts is not compatible (e.g. like the '2' in "true & 2") +The top level operator was allFields(Sort: LocSet); its expected arg sorts were: +1.) sort: java.lang.Object, sort hash: 1108066952 + +The subterms were: +1.) allFields(self)(sort: LocSet, sort hash: 1253633245) +*/ diff --git a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/TypeError.java b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/TypeError.java index 1be9fbf4568..d955e564ef4 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/TypeError.java +++ b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/TypeError.java @@ -1,8 +1,9 @@ // exceptionClass: RuntimeException // msgContains: Error in equality-expression -// position: 11/19 +// position: 12/19 // verbose: true + // It's not the best of error messages ... // and there is no file location information class TypeError { diff --git a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/UnnamedAccessibleInClass.java b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/UnnamedAccessibleInClass.java index 537dddc077b..928fa971f0a 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/UnnamedAccessibleInClass.java +++ b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/UnnamedAccessibleInClass.java @@ -1,7 +1,6 @@ // position: 12/20 // verbose: true // broken: true -// exceptionClass: XXXX // msgContains: XXXX // currently does not report an exception diff --git a/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/WrongEquals.java b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/WrongEquals.java new file mode 100644 index 00000000000..0ab7786f505 --- /dev/null +++ b/key.core/src/test/resources/de/uka/ilkd/key/speclang/njml/exceptional/WrongEquals.java @@ -0,0 +1,25 @@ +// msgContains: mismatched input '=' +// position: 12/27 +// verbose: true + +// Author Kai Wallisch + +class WrongEquals { + + int max; + + /*@ public normal_behaviour + @ ensures \result = max; + @*/ + public int m() { return 42; } +} + +/* + * In this test "=" is used instead of "==" (line 11). + * Currently the parser message says something like: "result cannot be transformed into a formula". + * It tries to convert the term "\result" (which is of type int) into a formula. + * It would be better to inform the user that the assignment operator "=" is not allowed in a specification expression. + * (see http://www.eecs.ucf.edu/~leavens/JML/jmlrefman/jmlrefman_12.html#SEC127) + * The reason why this happens is because the semantic analysis of the JML code starts before the syntactic + * analysis is finished. + */ diff --git a/key.core/src/test/resources/testcase/loopScopeInvRule/Test.key b/key.core/src/test/resources/testcase/loopScopeInvRule/Test.key index 5513b101f27..21c65887ed0 100644 --- a/key.core/src/test/resources/testcase/loopScopeInvRule/Test.key +++ b/key.core/src/test/resources/testcase/loopScopeInvRule/Test.key @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri May 12 14:30:48 CEST 2017 -name=Test[Test\\:\\:loopScopeRuleBenchmark(int,boolean)].JML normal_behavior operation contract.0 -contract=Test[Test\\:\\:loopScopeRuleBenchmark(int,boolean)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Test[Test::loopScopeRuleBenchmark(int,boolean)].JML normal_behavior operation contract.0", + "contract": "Test[Test::loopScopeRuleBenchmark(int,boolean)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "dscheurer" ) (keyVersion "360f9287c5a3584cb4fa4d2048b969015809b5f9")) diff --git a/key.core/src/test/resources/testcase/merge/A.differentVarsWithSameName.MPS.cut.closed.proof b/key.core/src/test/resources/testcase/merge/A.differentVarsWithSameName.MPS.cut.closed.proof index acf6d7b1295..1e848f03b62 100644 --- a/key.core/src/test/resources/testcase/merge/A.differentVarsWithSameName.MPS.cut.closed.proof +++ b/key.core/src/test/resources/testcase/merge/A.differentVarsWithSameName.MPS.cut.closed.proof @@ -41,12 +41,11 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -#Tue May 02 14:36:15 CEST 2017 -name=A[A\\:\\:m(boolean)].JML operation contract.0 -contract=A[A\\:\\:m(boolean)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "A[A::m(boolean)].JML operation contract.0", + "contract": "A[A::m(boolean)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "dscheurer" ) (keyVersion "327015b4b7182a877de25e71099a53d78919e1bb")) diff --git a/key.core/src/test/resources/testcase/merge/gcd.MPSAndBlockContract.key b/key.core/src/test/resources/testcase/merge/gcd.MPSAndBlockContract.key index 8b0508a9971..ccc6289960b 100644 --- a/key.core/src/test/resources/testcase/merge/gcd.MPSAndBlockContract.key +++ b/key.core/src/test/resources/testcase/merge/gcd.MPSAndBlockContract.key @@ -39,12 +39,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Apr 07 16:59:43 CEST 2017 -name=Gcd[Gcd\\:\\:gcdMPSAndBlockContract(int,int)].JML normal_behavior operation contract.0 -contract=Gcd[Gcd\\:\\:gcdMPSAndBlockContract(int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Gcd[Gcd::gcdMPSAndBlockContract(int,int)].JML normal_behavior operation contract.0", + "contract": "Gcd[Gcd::gcdMPSAndBlockContract(int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "dscheurer" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/src/test/resources/testcase/merge/gcd.closed.predicateAbstractionWithUserChoices.proof b/key.core/src/test/resources/testcase/merge/gcd.closed.predicateAbstractionWithUserChoices.proof index 88d327ad64e..4a9bf69bf12 100644 --- a/key.core/src/test/resources/testcase/merge/gcd.closed.predicateAbstractionWithUserChoices.proof +++ b/key.core/src/test/resources/testcase/merge/gcd.closed.predicateAbstractionWithUserChoices.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Thu Mar 30 17:10:22 CEST 2017 -name=Gcd[Gcd\\:\\:gcd(int,int)].JML normal_behavior operation contract.0 -contract=Gcd[Gcd\\:\\:gcd(int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Gcd[Gcd::gcd(int,int)].JML normal_behavior operation contract.0", + "contract": "Gcd[Gcd::gcd(int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "dscheurer" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/src/test/resources/testcase/merge/gcd.closed.predicateabstraction.proof b/key.core/src/test/resources/testcase/merge/gcd.closed.predicateabstraction.proof index d94d7de2fd2..d271147fc67 100644 --- a/key.core/src/test/resources/testcase/merge/gcd.closed.predicateabstraction.proof +++ b/key.core/src/test/resources/testcase/merge/gcd.closed.predicateabstraction.proof @@ -44,12 +44,11 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -#Thu Dec 08 18:02:35 CET 2022 -contract=Gcd[Gcd\\:\\:gcd(int,int)].JML normal_behavior operation contract.0 -name=Gcd[Gcd\\:\\:gcd(int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "Gcd[Gcd::gcd(int,int)].JML normal_behavior operation contract.0", + "name": "Gcd[Gcd::gcd(int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "dscheurer" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/src/test/resources/testcase/merge/gcd.closed.proof b/key.core/src/test/resources/testcase/merge/gcd.closed.proof index 7a2ba2534b2..5c1df8f7fb9 100644 --- a/key.core/src/test/resources/testcase/merge/gcd.closed.proof +++ b/key.core/src/test/resources/testcase/merge/gcd.closed.proof @@ -44,12 +44,11 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -#Thu Dec 08 18:06:08 CET 2022 -contract=Gcd[Gcd\\:\\:gcd(int,int)].JML normal_behavior operation contract.0 -name=Gcd[Gcd\\:\\:gcd(int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "Gcd[Gcd::gcd(int,int)].JML normal_behavior operation contract.0", + "name": "Gcd[Gcd::gcd(int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "008f011f15")) diff --git a/key.core/src/test/resources/testcase/merge/gcd.joinBlocks.key b/key.core/src/test/resources/testcase/merge/gcd.joinBlocks.key index 9ec893a4ca6..8058efdccb4 100644 --- a/key.core/src/test/resources/testcase/merge/gcd.joinBlocks.key +++ b/key.core/src/test/resources/testcase/merge/gcd.joinBlocks.key @@ -41,9 +41,8 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -#Thu May 21 13:37:12 CEST 2015 -name=Gcd[Gcd\\:\\:gcdJoinBlocks(int,int)].JML normal_behavior operation contract.0 -contract=Gcd[Gcd\\:\\:gcdJoinBlocks(int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Gcd[Gcd::gcdJoinBlocks(int,int)].JML normal_behavior operation contract.0", + "contract": "Gcd[Gcd::gcdJoinBlocks(int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.core/src/test/resources/testcase/merge/gcd.key b/key.core/src/test/resources/testcase/merge/gcd.key index 33a8f46400c..f1e60291aa1 100644 --- a/key.core/src/test/resources/testcase/merge/gcd.key +++ b/key.core/src/test/resources/testcase/merge/gcd.key @@ -41,9 +41,8 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -#Thu May 21 13:37:12 CEST 2015 -name=Gcd[Gcd\\:\\:gcd(int,int)].JML normal_behavior operation contract.0 -contract=Gcd[Gcd\\:\\:gcd(int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Gcd[Gcd::gcd(int,int)].JML normal_behavior operation contract.0", + "contract": "Gcd[Gcd::gcd(int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.core/src/test/resources/testcase/merge/gcd.mergePointStatements.closed.proof b/key.core/src/test/resources/testcase/merge/gcd.mergePointStatements.closed.proof index a0c701767f4..38f1fa54d0e 100644 --- a/key.core/src/test/resources/testcase/merge/gcd.mergePointStatements.closed.proof +++ b/key.core/src/test/resources/testcase/merge/gcd.mergePointStatements.closed.proof @@ -44,12 +44,11 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -#Thu Dec 08 18:27:57 CET 2022 -contract=Gcd[Gcd\\:\\:gcdMPS(int,int)].JML normal_behavior operation contract.0 -name=Gcd[Gcd\\:\\:gcdMPS(int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "Gcd[Gcd::gcdMPS(int,int)].JML normal_behavior operation contract.0", + "name": "Gcd[Gcd::gcdMPS(int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "dscheurer" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/src/test/resources/testcase/merge/gcd.mergePointStatements.key b/key.core/src/test/resources/testcase/merge/gcd.mergePointStatements.key index a30ab0e295c..6459c0fad9c 100644 --- a/key.core/src/test/resources/testcase/merge/gcd.mergePointStatements.key +++ b/key.core/src/test/resources/testcase/merge/gcd.mergePointStatements.key @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Apr 07 17:16:10 CEST 2017 -name=Gcd[Gcd\\:\\:gcdMPS(int,int)].JML normal_behavior operation contract.0 -contract=Gcd[Gcd\\:\\:gcdMPS(int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Gcd[Gcd::gcdMPS(int,int)].JML normal_behavior operation contract.0", + "contract": "Gcd[Gcd::gcdMPS(int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "dscheurer" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/src/test/resources/testcase/parser/MultipleRecursion/MultipleRecursion[MultipleRecursion__a()]_JML_normal_behavior_operation_contract_0.proof b/key.core/src/test/resources/testcase/parser/MultipleRecursion/MultipleRecursion[MultipleRecursion__a()]_JML_normal_behavior_operation_contract_0.proof index 18debaeedee..b1fc284c5f0 100644 --- a/key.core/src/test/resources/testcase/parser/MultipleRecursion/MultipleRecursion[MultipleRecursion__a()]_JML_normal_behavior_operation_contract_0.proof +++ b/key.core/src/test/resources/testcase/parser/MultipleRecursion/MultipleRecursion[MultipleRecursion__a()]_JML_normal_behavior_operation_contract_0.proof @@ -40,12 +40,11 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -#Tue Jan 28 15:42:38 CET 2014 -name=MultipleRecursion[MultipleRecursion\\:\\:a()].JML normal_behavior operation contract.0 -contract=MultipleRecursion[MultipleRecursion\\:\\:a()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "MultipleRecursion[MultipleRecursion::a()].JML normal_behavior operation contract.0", + "contract": "MultipleRecursion[MultipleRecursion::a()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/src/test/resources/testcase/parser/MultipleRecursion/MultipleRecursion[MultipleRecursion__b()]_JML_normal_behavior_operation_contract_0.proof b/key.core/src/test/resources/testcase/parser/MultipleRecursion/MultipleRecursion[MultipleRecursion__b()]_JML_normal_behavior_operation_contract_0.proof index 22cee195932..0ceba86bde2 100644 --- a/key.core/src/test/resources/testcase/parser/MultipleRecursion/MultipleRecursion[MultipleRecursion__b()]_JML_normal_behavior_operation_contract_0.proof +++ b/key.core/src/test/resources/testcase/parser/MultipleRecursion/MultipleRecursion[MultipleRecursion__b()]_JML_normal_behavior_operation_contract_0.proof @@ -40,12 +40,11 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -#Tue Jan 28 15:42:38 CET 2014 -name=MultipleRecursion[MultipleRecursion\\:\\:b()].JML normal_behavior operation contract.0 -contract=MultipleRecursion[MultipleRecursion\\:\\:b()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "MultipleRecursion[MultipleRecursion::b()].JML normal_behavior operation contract.0", + "contract": "MultipleRecursion[MultipleRecursion::b()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/src/test/resources/testcase/parserErrorTest/missing_semicolon.key b/key.core/src/test/resources/testcase/parserErrorTest/missing_semicolon.key new file mode 100644 index 00000000000..8fb326fb68f --- /dev/null +++ b/key.core/src/test/resources/testcase/parserErrorTest/missing_semicolon.key @@ -0,0 +1,10 @@ +\rules { + missingSemicolon { + \find(0=0) + \replacewith(1=1) + } +} +\problem { +0=0 +} + diff --git a/key.core/src/test/resources/testcase/setStatements/testFile.key b/key.core/src/test/resources/testcase/setStatements/testFile.key new file mode 100644 index 00000000000..ba49a870628 --- /dev/null +++ b/key.core/src/test/resources/testcase/setStatements/testFile.key @@ -0,0 +1,4 @@ + +\javaSource "testPackage"; + +\problem { true } diff --git a/key.core/src/test/resources/testcase/setStatements/testPackage/TestClass.java b/key.core/src/test/resources/testcase/setStatements/testPackage/TestClass.java new file mode 100644 index 00000000000..ec8c7f6b1f9 --- /dev/null +++ b/key.core/src/test/resources/testcase/setStatements/testPackage/TestClass.java @@ -0,0 +1,8 @@ +package testPackage; + +public class TestClass { + //@ ghost TestClass[] ghostArray; + //@ ghost int ghostField; + int normalField; + TestClass[] normalArray; +} diff --git a/key.core/tacletProofs/IntDiv/Taclet_cancel_gtNeg.proof b/key.core/tacletProofs/IntDiv/Taclet_cancel_gtNeg.proof index be8a3ec3084..ca018435969 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_cancel_gtNeg.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_cancel_gtNeg.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:18:21 CEST 2023 -name=cancel_gtNeg -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "cancel_gtNeg", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_cancel_gtPos.proof b/key.core/tacletProofs/IntDiv/Taclet_cancel_gtPos.proof index 44e11e0d7f5..641a2ee714d 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_cancel_gtPos.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_cancel_gtPos.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:18:28 CEST 2023 -name=cancel_gtPos -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "cancel_gtPos", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_divAddMultDenom.proof b/key.core/tacletProofs/IntDiv/Taclet_divAddMultDenom.proof index dcb722144f2..925e7670389 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_divAddMultDenom.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_divAddMultDenom.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:18:35 CEST 2023 -name=divAddMultDenom -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "divAddMultDenom", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_divGreatestDNeg.proof b/key.core/tacletProofs/IntDiv/Taclet_divGreatestDNeg.proof index c35d3b6e9cb..59854c8ea63 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_divGreatestDNeg.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_divGreatestDNeg.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:18:43 CEST 2023 -name=divGreatestDNeg -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "divGreatestDNeg", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_divGreatestDPos.proof b/key.core/tacletProofs/IntDiv/Taclet_divGreatestDPos.proof index a065632115b..46a9c1d101d 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_divGreatestDPos.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_divGreatestDPos.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:18:50 CEST 2023 -name=divGreatestDPos -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "divGreatestDPos", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_divIncreasingNeg.proof b/key.core/tacletProofs/IntDiv/Taclet_divIncreasingNeg.proof index e544f846939..2f3a1b7c65a 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_divIncreasingNeg.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_divIncreasingNeg.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:18:57 CEST 2023 -name=divIncreasingNeg -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "divIncreasingNeg", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_divIncreasingPos.proof b/key.core/tacletProofs/IntDiv/Taclet_divIncreasingPos.proof index a3a7c6bf2d1..b9f1bf9532e 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_divIncreasingPos.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_divIncreasingPos.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:19:05 CEST 2023 -name=divIncreasingPos -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "divIncreasingPos", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_divLeastDNeg.proof b/key.core/tacletProofs/IntDiv/Taclet_divLeastDNeg.proof index 8bba9b9ef5e..1ed4ec104d0 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_divLeastDNeg.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_divLeastDNeg.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:19:12 CEST 2023 -name=divLeastDNeg -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "divLeastDNeg", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_divLeastDPos.proof b/key.core/tacletProofs/IntDiv/Taclet_divLeastDPos.proof index 57aa84e3cb2..ae067ff2776 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_divLeastDPos.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_divLeastDPos.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:19:20 CEST 2023 -name=divLeastDPos -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "divLeastDPos", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_divMinus.proof b/key.core/tacletProofs/IntDiv/Taclet_divMinus.proof index 01c23bfeb69..1231ef2e462 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_divMinus.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_divMinus.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:19:27 CEST 2023 -name=divMinus -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "divMinus", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_divMinusDenom.proof b/key.core/tacletProofs/IntDiv/Taclet_divMinusDenom.proof index c13c7415b99..e9fa4573f89 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_divMinusDenom.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_divMinusDenom.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:19:34 CEST 2023 -name=divMinusDenom -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "divMinusDenom", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_divResOne1.proof b/key.core/tacletProofs/IntDiv/Taclet_divResOne1.proof index 2159c32e688..769848c223b 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_divResOne1.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_divResOne1.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:19:42 CEST 2023 -name=divResOne1 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "divResOne1", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_divResOne2.proof b/key.core/tacletProofs/IntDiv/Taclet_divResOne2.proof index ba6f8501c8d..4e9e495de1f 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_divResOne2.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_divResOne2.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:19:49 CEST 2023 -name=divResOne2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "divResOne2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_divResZero1.proof b/key.core/tacletProofs/IntDiv/Taclet_divResZero1.proof index 760fec64111..a45208ce26b 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_divResZero1.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_divResZero1.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:19:56 CEST 2023 -name=divResZero1 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "divResZero1", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_divResZero2.proof b/key.core/tacletProofs/IntDiv/Taclet_divResZero2.proof index bb7003dcbda..a9da29685b4 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_divResZero2.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_divResZero2.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:20:04 CEST 2023 -name=divResZero2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "divResZero2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_div_cancel1.proof b/key.core/tacletProofs/IntDiv/Taclet_div_cancel1.proof index 745e13f971a..a96239610c7 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_div_cancel1.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_div_cancel1.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:20:11 CEST 2023 -name=div_cancel1 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "div_cancel1", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_div_cancel2.proof b/key.core/tacletProofs/IntDiv/Taclet_div_cancel2.proof index 5e8357f79d4..51bcdf10a1e 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_div_cancel2.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_div_cancel2.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:20:19 CEST 2023 -name=div_cancel2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "div_cancel2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_div_exists.proof b/key.core/tacletProofs/IntDiv/Taclet_div_exists.proof index dea82964589..f3f82076796 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_div_exists.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_div_exists.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:20:26 CEST 2023 -name=div_exists -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "div_exists", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_div_one.proof b/key.core/tacletProofs/IntDiv/Taclet_div_one.proof index b1feb63b3b1..31a4ffd3409 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_div_one.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_div_one.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:20:34 CEST 2023 -name=div_one -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "div_one", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_div_unique1.proof b/key.core/tacletProofs/IntDiv/Taclet_div_unique1.proof index cc4341c9659..5c0523d02f4 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_div_unique1.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_div_unique1.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:20:42 CEST 2023 -name=div_unique1 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "div_unique1", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_div_unique2.proof b/key.core/tacletProofs/IntDiv/Taclet_div_unique2.proof index eaa1d498cb4..6d5dedcc4b9 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_div_unique2.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_div_unique2.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:20:49 CEST 2023 -name=div_unique2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "div_unique2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_div_zero.proof b/key.core/tacletProofs/IntDiv/Taclet_div_zero.proof index 8db25beab1c..9e4dfa2ce6b 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_div_zero.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_div_zero.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:20:57 CEST 2023 -name=div_zero -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "div_zero", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_intDivRem.proof b/key.core/tacletProofs/IntDiv/Taclet_intDivRem.proof index 10086753e0c..2b6e57850b6 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_intDivRem.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_intDivRem.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:21:05 CEST 2023 -name=intDivRem -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "intDivRem", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_irrflConcrete1.proof b/key.core/tacletProofs/IntDiv/Taclet_irrflConcrete1.proof index b35245c77a5..06053b25546 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_irrflConcrete1.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_irrflConcrete1.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:21:12 CEST 2023 -name=irrflConcrete1 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "irrflConcrete1", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_irrflConcrete2.proof b/key.core/tacletProofs/IntDiv/Taclet_irrflConcrete2.proof index b5e3070b2c1..0aacfd4170a 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_irrflConcrete2.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_irrflConcrete2.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:21:19 CEST 2023 -name=irrflConcrete2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "irrflConcrete2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jdivAddMultDenom.proof b/key.core/tacletProofs/IntDiv/Taclet_jdivAddMultDenom.proof index 7c09852e41b..8f6dcb03d75 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jdivAddMultDenom.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jdivAddMultDenom.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:21:27 CEST 2023 -name=jdivAddMultDenom -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jdivAddMultDenom", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jdivMultDenom1.proof b/key.core/tacletProofs/IntDiv/Taclet_jdivMultDenom1.proof index 85ae9db05b7..e880f33911f 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jdivMultDenom1.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jdivMultDenom1.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:21:34 CEST 2023 -name=jdivMultDenom1 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jdivMultDenom1", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jdivMultDenom2.proof b/key.core/tacletProofs/IntDiv/Taclet_jdivMultDenom2.proof index eef72da4a2c..f1c34dce3df 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jdivMultDenom2.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jdivMultDenom2.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:21:41 CEST 2023 -name=jdivMultDenom2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jdivMultDenom2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jdivPulloutMinusDenom.proof b/key.core/tacletProofs/IntDiv/Taclet_jdivPulloutMinusDenom.proof index 21cec2acdc0..4b091c69a54 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jdivPulloutMinusDenom.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jdivPulloutMinusDenom.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:21:49 CEST 2023 -name=jdivPulloutMinusDenom -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jdivPulloutMinusDenom", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jdivPulloutMinusNum.proof b/key.core/tacletProofs/IntDiv/Taclet_jdivPulloutMinusNum.proof index 23c5bda4588..da913592582 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jdivPulloutMinusNum.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jdivPulloutMinusNum.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:21:56 CEST 2023 -name=jdivPulloutMinusNum -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jdivPulloutMinusNum", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jdiv_one.proof b/key.core/tacletProofs/IntDiv/Taclet_jdiv_one.proof index 50b8d9fa4db..ea8a78e3ee7 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jdiv_one.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jdiv_one.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:22:03 CEST 2023 -name=jdiv_one -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jdiv_one", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jdiv_uniqueNegNeg.proof b/key.core/tacletProofs/IntDiv/Taclet_jdiv_uniqueNegNeg.proof index ff07aed41aa..14b18617d86 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jdiv_uniqueNegNeg.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jdiv_uniqueNegNeg.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:22:11 CEST 2023 -name=jdiv_uniqueNegNeg -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jdiv_uniqueNegNeg", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jdiv_uniqueNegPos.proof b/key.core/tacletProofs/IntDiv/Taclet_jdiv_uniqueNegPos.proof index 95a26ca9428..9b4bd77e652 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jdiv_uniqueNegPos.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jdiv_uniqueNegPos.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:22:18 CEST 2023 -name=jdiv_uniqueNegPos -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jdiv_uniqueNegPos", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jdiv_uniquePosNeg.proof b/key.core/tacletProofs/IntDiv/Taclet_jdiv_uniquePosNeg.proof index 2838582d300..4e886a62cbd 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jdiv_uniquePosNeg.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jdiv_uniquePosNeg.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:22:25 CEST 2023 -name=jdiv_uniquePosNeg -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jdiv_uniquePosNeg", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jdiv_uniquePosPos.proof b/key.core/tacletProofs/IntDiv/Taclet_jdiv_uniquePosPos.proof index 3466a6c6f69..97bd8e17315 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jdiv_uniquePosPos.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jdiv_uniquePosPos.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:22:32 CEST 2023 -name=jdiv_uniquePosPos -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jdiv_uniquePosPos", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jdiv_zero.proof b/key.core/tacletProofs/IntDiv/Taclet_jdiv_zero.proof index 06828a302e3..e9d2313c21e 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jdiv_zero.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jdiv_zero.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:22:39 CEST 2023 -name=jdiv_zero -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jdiv_zero", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jmodAddMultDenomZero.proof b/key.core/tacletProofs/IntDiv/Taclet_jmodAddMultDenomZero.proof index f28cc991314..1d30daf8ada 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jmodAddMultDenomZero.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jmodAddMultDenomZero.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:22:46 CEST 2023 -name=jmodAddMultDenomZero -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jmodAddMultDenomZero", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jmodAltZero.proof b/key.core/tacletProofs/IntDiv/Taclet_jmodAltZero.proof index 7a85be16aae..fbebe817c7e 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jmodAltZero.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jmodAltZero.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:22:53 CEST 2023 -name=jmodAltZero -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jmodAltZero", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jmodDivisible.proof b/key.core/tacletProofs/IntDiv/Taclet_jmodDivisible.proof index b326e26bba8..dd4aa4ac718 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jmodDivisible.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jmodDivisible.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:23:01 CEST 2023 -name=jmodDivisible -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jmodDivisible", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jmodDivisibleRep.proof b/key.core/tacletProofs/IntDiv/Taclet_jmodDivisibleRep.proof index 2a131122e7c..296583dad95 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jmodDivisibleRep.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jmodDivisibleRep.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:23:08 CEST 2023 -name=jmodDivisibleRep -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jmodDivisibleRep", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jmodNumZero.proof b/key.core/tacletProofs/IntDiv/Taclet_jmodNumZero.proof index 3484ca001a8..00906cbdd92 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jmodNumZero.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jmodNumZero.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:23:22 CEST 2023 -name=jmodNumZero -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jmodNumZero", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jmodUnique1.proof b/key.core/tacletProofs/IntDiv/Taclet_jmodUnique1.proof index 3d65252e9a6..8cc60969857 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jmodUnique1.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jmodUnique1.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:23:30 CEST 2023 -name=jmodUnique1 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jmodUnique1", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jmodUnique2.proof b/key.core/tacletProofs/IntDiv/Taclet_jmodUnique2.proof index 0bce2c1c260..1a2db285330 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jmodUnique2.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jmodUnique2.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:23:38 CEST 2023 -name=jmodUnique2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jmodUnique2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jmod_NumNeg.proof b/key.core/tacletProofs/IntDiv/Taclet_jmod_NumNeg.proof index faa3ddc2935..de44e95d31f 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jmod_NumNeg.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jmod_NumNeg.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:23:53 CEST 2023 -name=jmod_NumNeg -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jmod_NumNeg", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jmod_NumPos.proof b/key.core/tacletProofs/IntDiv/Taclet_jmod_NumPos.proof index 028b5740c35..542a317ac17 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jmod_NumPos.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jmod_NumPos.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:24:00 CEST 2023 -name=jmod_NumPos -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jmod_NumPos", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jmod_geZero.proof b/key.core/tacletProofs/IntDiv/Taclet_jmod_geZero.proof index 0af4efd5c39..4976e1d9e53 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jmod_geZero.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jmod_geZero.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:23:45 CEST 2023 -name=jmod_geZero -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jmod_geZero", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jmod_pulloutminusDenom.proof b/key.core/tacletProofs/IntDiv/Taclet_jmod_pulloutminusDenom.proof index 4f406f776c2..aa273742cee 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jmod_pulloutminusDenom.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jmod_pulloutminusDenom.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:24:07 CEST 2023 -name=jmod_pulloutminusDenom -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jmod_pulloutminusDenom", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jmod_pulloutminusNum.proof b/key.core/tacletProofs/IntDiv/Taclet_jmod_pulloutminusNum.proof index d9dd91d30e8..f8b6ce1d7dd 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jmod_pulloutminusNum.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jmod_pulloutminusNum.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:24:14 CEST 2023 -name=jmod_pulloutminusNum -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jmod_pulloutminusNum", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_jmodjmod.proof b/key.core/tacletProofs/IntDiv/Taclet_jmodjmod.proof index c65110f7e14..b38cf7a1b8e 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_jmodjmod.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_jmodjmod.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:23:15 CEST 2023 -name=jmodjmod -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "jmodjmod", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_mod_geZero.proof b/key.core/tacletProofs/IntDiv/Taclet_mod_geZero.proof index 230aab1eb9f..67112bd20af 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_mod_geZero.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_mod_geZero.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:24:21 CEST 2023 -name=mod_geZero -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "mod_geZero", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_mod_lessDenom.proof b/key.core/tacletProofs/IntDiv/Taclet_mod_lessDenom.proof index c5d630036c8..08b3dc10ad1 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_mod_lessDenom.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_mod_lessDenom.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:24:28 CEST 2023 -name=mod_lessDenom -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "mod_lessDenom", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_polyDiv_zero.proof b/key.core/tacletProofs/IntDiv/Taclet_polyDiv_zero.proof index 6a71ce4a15c..47e079664af 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_polyDiv_zero.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_polyDiv_zero.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:24:35 CEST 2023 -name=polyDiv_zero -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "polyDiv_zero", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/IntDiv/Taclet_polyMod_ltdivDenom.proof b/key.core/tacletProofs/IntDiv/Taclet_polyMod_ltdivDenom.proof index 5ad6c76c879..cdd936732c3 100644 --- a/key.core/tacletProofs/IntDiv/Taclet_polyMod_ltdivDenom.proof +++ b/key.core/tacletProofs/IntDiv/Taclet_polyMod_ltdivDenom.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:24:43 CEST 2023 -name=polyMod_ltdivDenom -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "polyMod_ltdivDenom", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/booleanRules/Taclet_ifthenelse_equals.proof b/key.core/tacletProofs/booleanRules/Taclet_ifthenelse_equals.proof index b5bc4cf210d..ae5cdc18f46 100644 --- a/key.core/tacletProofs/booleanRules/Taclet_ifthenelse_equals.proof +++ b/key.core/tacletProofs/booleanRules/Taclet_ifthenelse_equals.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:13:46 CEST 2023 -name=ifthenelse_equals -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "ifthenelse_equals", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/booleanRules/Taclet_ifthenelse_equals_1.proof b/key.core/tacletProofs/booleanRules/Taclet_ifthenelse_equals_1.proof index e47b6751f0f..fc0e76e738f 100644 --- a/key.core/tacletProofs/booleanRules/Taclet_ifthenelse_equals_1.proof +++ b/key.core/tacletProofs/booleanRules/Taclet_ifthenelse_equals_1.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:13:54 CEST 2023 -name=ifthenelse_equals_1 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "ifthenelse_equals_1", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/booleanRules/Taclet_ifthenelse_equals_2.proof b/key.core/tacletProofs/booleanRules/Taclet_ifthenelse_equals_2.proof index d2237689861..1a0f79a3b97 100644 --- a/key.core/tacletProofs/booleanRules/Taclet_ifthenelse_equals_2.proof +++ b/key.core/tacletProofs/booleanRules/Taclet_ifthenelse_equals_2.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:14:02 CEST 2023 -name=ifthenelse_equals_2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "ifthenelse_equals_2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bprod/Taclet_bprod_all_positive.proof b/key.core/tacletProofs/bprod/Taclet_bprod_all_positive.proof index 9786e596e9b..099569a15d8 100644 --- a/key.core/tacletProofs/bprod/Taclet_bprod_all_positive.proof +++ b/key.core/tacletProofs/bprod/Taclet_bprod_all_positive.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:14:10 CEST 2023 -name=bprod_all_positive -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bprod_all_positive", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bprod/Taclet_bprod_split.proof b/key.core/tacletProofs/bprod/Taclet_bprod_split.proof index 3894420f831..4e88a7ec623 100644 --- a/key.core/tacletProofs/bprod/Taclet_bprod_split.proof +++ b/key.core/tacletProofs/bprod/Taclet_bprod_split.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:14:18 CEST 2023 -name=bprod_split -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bprod_split", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_add_concrete.proof b/key.core/tacletProofs/bsum/Taclet_bsum_add_concrete.proof index c4bc0d173ad..7173161535a 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_add_concrete.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_add_concrete.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:14:25 CEST 2023 -name=bsum_add_concrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_add_concrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_empty.proof b/key.core/tacletProofs/bsum/Taclet_bsum_empty.proof index 38c3f1569aa..89d14f3de54 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_empty.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_empty.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:14:33 CEST 2023 -name=bsum_empty -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_empty", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_equal_except_one_index.proof b/key.core/tacletProofs/bsum/Taclet_bsum_equal_except_one_index.proof index e019ac7c8a3..e3994f7c82f 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_equal_except_one_index.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_equal_except_one_index.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:14:41 CEST 2023 -name=bsum_equal_except_one_index -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_equal_except_one_index", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_induction_lower.proof b/key.core/tacletProofs/bsum/Taclet_bsum_induction_lower.proof index 52d9af7f339..0e577a5aa62 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_induction_lower.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_induction_lower.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:14:48 CEST 2023 -name=bsum_induction_lower -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_induction_lower", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_induction_lower2.proof b/key.core/tacletProofs/bsum/Taclet_bsum_induction_lower2.proof index a960646ca05..0522d4ba191 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_induction_lower2.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_induction_lower2.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:14:56 CEST 2023 -name=bsum_induction_lower2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_induction_lower2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_induction_lower2_concrete.proof b/key.core/tacletProofs/bsum/Taclet_bsum_induction_lower2_concrete.proof index e715da2e461..83149acbc14 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_induction_lower2_concrete.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_induction_lower2_concrete.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:15:03 CEST 2023 -name=bsum_induction_lower2_concrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_induction_lower2_concrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_induction_lower_concrete.proof b/key.core/tacletProofs/bsum/Taclet_bsum_induction_lower_concrete.proof index d5f58d03ad1..7fdaf2fcb54 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_induction_lower_concrete.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_induction_lower_concrete.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:15:11 CEST 2023 -name=bsum_induction_lower_concrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_induction_lower_concrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper.proof b/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper.proof index 154cb1e6ebc..6e5d6eafa2c 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:15:18 CEST 2023 -name=bsum_induction_upper -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_induction_upper", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper2.proof b/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper2.proof index 076d480f8fe..5687fe7bab0 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper2.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper2.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:15:25 CEST 2023 -name=bsum_induction_upper2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_induction_upper2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper2_concrete.proof b/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper2_concrete.proof index 3f8f433b758..0c53a07f90d 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper2_concrete.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper2_concrete.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:15:33 CEST 2023 -name=bsum_induction_upper2_concrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_induction_upper2_concrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper_concrete.proof b/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper_concrete.proof index af1d00ea543..74ffb705512 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper_concrete.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper_concrete.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:15:40 CEST 2023 -name=bsum_induction_upper_concrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_induction_upper_concrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper_concrete_2.proof b/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper_concrete_2.proof index 30418434643..d0d70eef105 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper_concrete_2.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_induction_upper_concrete_2.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:15:47 CEST 2023 -name=bsum_induction_upper_concrete_2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_induction_upper_concrete_2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_less_same_index.proof b/key.core/tacletProofs/bsum/Taclet_bsum_less_same_index.proof index 5a46c587f23..12d2226adbb 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_less_same_index.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_less_same_index.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:15:55 CEST 2023 -name=bsum_less_same_index -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_less_same_index", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_lower_bound.proof b/key.core/tacletProofs/bsum/Taclet_bsum_lower_bound.proof index 57d37af7b50..0e1ed570c89 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_lower_bound.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_lower_bound.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:16:02 CEST 2023 -name=bsum_lower_bound -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_lower_bound", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_bounds.proof b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_bounds.proof index 578a61bc6ff..c52771638de 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_bounds.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_bounds.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:16:10 CEST 2023 -name=bsum_num_of_bounds -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_num_of_bounds", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_bounds2.proof b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_bounds2.proof index 811f4a7b9e2..0d59ad3c641 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_bounds2.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_bounds2.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:16:17 CEST 2023 -name=bsum_num_of_bounds2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_num_of_bounds2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_gt0.proof b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_gt0.proof index 9ba897b248f..295bdbe4a49 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_gt0.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_gt0.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:16:25 CEST 2023 -name=bsum_num_of_gt0 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_num_of_gt0", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_gt0_alt.proof b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_gt0_alt.proof index 35df84cb13e..f2924d8af60 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_gt0_alt.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_gt0_alt.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:16:32 CEST 2023 -name=bsum_num_of_gt0_alt -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_num_of_gt0_alt", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_is_max.proof b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_is_max.proof index 84367088c7a..04dea514ed5 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_is_max.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_is_max.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:16:40 CEST 2023 -name=bsum_num_of_is_max -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_num_of_is_max", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_is_max2.proof b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_is_max2.proof index 5c765dedcb2..de08f3fcfe1 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_is_max2.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_is_max2.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:16:47 CEST 2023 -name=bsum_num_of_is_max2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_num_of_is_max2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_is_max3.proof b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_is_max3.proof index c7302fd4fd8..f97fcc7a43d 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_is_max3.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_is_max3.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:16:54 CEST 2023 -name=bsum_num_of_is_max3 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_num_of_is_max3", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_is_max4.proof b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_is_max4.proof index d9d6196a165..1fba3cb6902 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_is_max4.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_is_max4.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:17:02 CEST 2023 -name=bsum_num_of_is_max4 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_num_of_is_max4", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_lt_max.proof b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_lt_max.proof index 97b9d105e0f..0de5d6da52a 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_lt_max.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_lt_max.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:17:09 CEST 2023 -name=bsum_num_of_lt_max -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_num_of_lt_max", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_lt_max2.proof b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_lt_max2.proof index 97ba339a190..42ef71b2046 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_lt_max2.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_lt_max2.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:17:17 CEST 2023 -name=bsum_num_of_lt_max2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_num_of_lt_max2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_lt_max3.proof b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_lt_max3.proof index 4bcadad8b81..8fd41cf98a8 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_lt_max3.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_lt_max3.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:17:24 CEST 2023 -name=bsum_num_of_lt_max3 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_num_of_lt_max3", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_lt_max4.proof b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_lt_max4.proof index 844c631b40d..d6f00bf42ad 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_num_of_lt_max4.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_num_of_lt_max4.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:17:32 CEST 2023 -name=bsum_num_of_lt_max4 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_num_of_lt_max4", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_positive.proof b/key.core/tacletProofs/bsum/Taclet_bsum_positive.proof index 987abd62ae1..762fcac609f 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_positive.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_positive.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:17:39 CEST 2023 -name=bsum_positive -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_positive", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_positive_lower_bound_element.proof b/key.core/tacletProofs/bsum/Taclet_bsum_positive_lower_bound_element.proof index 081885e5d3b..3cd1ec092cd 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_positive_lower_bound_element.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_positive_lower_bound_element.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:17:46 CEST 2023 -name=bsum_positive_lower_bound_element -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_positive_lower_bound_element", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_sub_same_index.proof b/key.core/tacletProofs/bsum/Taclet_bsum_sub_same_index.proof index 0f81c20d3de..e7b4d5e4698 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_sub_same_index.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_sub_same_index.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:17:54 CEST 2023 -name=bsum_sub_same_index -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_sub_same_index", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/bsum/Taclet_bsum_upper_bound.proof b/key.core/tacletProofs/bsum/Taclet_bsum_upper_bound.proof index caf631beb0f..df81408c48d 100644 --- a/key.core/tacletProofs/bsum/Taclet_bsum_upper_bound.proof +++ b/key.core/tacletProofs/bsum/Taclet_bsum_upper_bound.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:18:01 CEST 2023 -name=bsum_upper_bound -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "bsum_upper_bound", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/firstOrder/Taclet_eqTermCut.proof b/key.core/tacletProofs/firstOrder/Taclet_eqTermCut.proof index 8e5133f9834..a173b857b48 100644 --- a/key.core/tacletProofs/firstOrder/Taclet_eqTermCut.proof +++ b/key.core/tacletProofs/firstOrder/Taclet_eqTermCut.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:18:09 CEST 2023 -name=eqTermCut -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "eqTermCut", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/firstOrder/Taclet_equivAllRight.proof b/key.core/tacletProofs/firstOrder/Taclet_equivAllRight.proof index f2863939515..9fdaffdb8a2 100644 --- a/key.core/tacletProofs/firstOrder/Taclet_equivAllRight.proof +++ b/key.core/tacletProofs/firstOrder/Taclet_equivAllRight.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Thu Apr 14 13:25:48 CEST 2022 -name=equivAllRight -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "equivAllRight", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "e1a85b31e7")) diff --git a/key.core/tacletProofs/intPow/Taclet_log1Concrete.proof b/key.core/tacletProofs/intPow/Taclet_log1Concrete.proof index 45ebb83ab68..aa587d3e124 100644 --- a/key.core/tacletProofs/intPow/Taclet_log1Concrete.proof +++ b/key.core/tacletProofs/intPow/Taclet_log1Concrete.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:24:50 CEST 2023 -name=log1Concrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "log1Concrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_logLessThanPow.proof b/key.core/tacletProofs/intPow/Taclet_logLessThanPow.proof index 7dd436567c3..9b93b40464f 100644 --- a/key.core/tacletProofs/intPow/Taclet_logLessThanPow.proof +++ b/key.core/tacletProofs/intPow/Taclet_logLessThanPow.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:24:57 CEST 2023 -name=logLessThanPow -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "logLessThanPow", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_logLessThanPowConcrete.proof b/key.core/tacletProofs/intPow/Taclet_logLessThanPowConcrete.proof index 759ff66bcb9..c1912247699 100644 --- a/key.core/tacletProofs/intPow/Taclet_logLessThanPowConcrete.proof +++ b/key.core/tacletProofs/intPow/Taclet_logLessThanPowConcrete.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:25:04 CEST 2023 -name=logLessThanPowConcrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "logLessThanPowConcrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_logMono.proof b/key.core/tacletProofs/intPow/Taclet_logMono.proof index 5ecac34fff4..776f7c7c151 100644 --- a/key.core/tacletProofs/intPow/Taclet_logMono.proof +++ b/key.core/tacletProofs/intPow/Taclet_logMono.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:25:12 CEST 2023 -name=logMono -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "logMono", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_logMonoConcrete.proof b/key.core/tacletProofs/intPow/Taclet_logMonoConcrete.proof index 2f1fa1ad78c..8a21ba6bee8 100644 --- a/key.core/tacletProofs/intPow/Taclet_logMonoConcrete.proof +++ b/key.core/tacletProofs/intPow/Taclet_logMonoConcrete.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:25:20 CEST 2023 -name=logMonoConcrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "logMonoConcrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_logPositive.proof b/key.core/tacletProofs/intPow/Taclet_logPositive.proof index fa9e6736524..ac2bfa83903 100644 --- a/key.core/tacletProofs/intPow/Taclet_logPositive.proof +++ b/key.core/tacletProofs/intPow/Taclet_logPositive.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:25:27 CEST 2023 -name=logPositive -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "logPositive", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_logPositiveConcrete.proof b/key.core/tacletProofs/intPow/Taclet_logPositiveConcrete.proof index dc677c1633d..c0d1ecfd08a 100644 --- a/key.core/tacletProofs/intPow/Taclet_logPositiveConcrete.proof +++ b/key.core/tacletProofs/intPow/Taclet_logPositiveConcrete.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:25:34 CEST 2023 -name=logPositiveConcrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "logPositiveConcrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_logPowIdentity.proof b/key.core/tacletProofs/intPow/Taclet_logPowIdentity.proof index 79d94c5dd38..2d690e28427 100644 --- a/key.core/tacletProofs/intPow/Taclet_logPowIdentity.proof +++ b/key.core/tacletProofs/intPow/Taclet_logPowIdentity.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:25:42 CEST 2023 -name=logPowIdentity -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "logPowIdentity", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_logPowIdentityConcrete.proof b/key.core/tacletProofs/intPow/Taclet_logPowIdentityConcrete.proof index bc8acaaad47..c6fc3a7fb50 100644 --- a/key.core/tacletProofs/intPow/Taclet_logPowIdentityConcrete.proof +++ b/key.core/tacletProofs/intPow/Taclet_logPowIdentityConcrete.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:25:49 CEST 2023 -name=logPowIdentityConcrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "logPowIdentityConcrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_logProdIdentity.proof b/key.core/tacletProofs/intPow/Taclet_logProdIdentity.proof index 5e61d26d126..c438263a1b7 100644 --- a/key.core/tacletProofs/intPow/Taclet_logProdIdentity.proof +++ b/key.core/tacletProofs/intPow/Taclet_logProdIdentity.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:25:56 CEST 2023 -name=logProdIdentity -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "logProdIdentity", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_logProdIdentityConcrete.proof b/key.core/tacletProofs/intPow/Taclet_logProdIdentityConcrete.proof index 1ebf43927c2..8c1b7bd55b4 100644 --- a/key.core/tacletProofs/intPow/Taclet_logProdIdentityConcrete.proof +++ b/key.core/tacletProofs/intPow/Taclet_logProdIdentityConcrete.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:26:03 CEST 2023 -name=logProdIdentityConcrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "logProdIdentityConcrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_logProduct.proof b/key.core/tacletProofs/intPow/Taclet_logProduct.proof index 5c0f3496663..b95f6cf081f 100644 --- a/key.core/tacletProofs/intPow/Taclet_logProduct.proof +++ b/key.core/tacletProofs/intPow/Taclet_logProduct.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:26:11 CEST 2023 -name=logProduct -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "logProduct", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_logSelfConcrete.proof b/key.core/tacletProofs/intPow/Taclet_logSelfConcrete.proof index de172cbc233..dbb94786aeb 100644 --- a/key.core/tacletProofs/intPow/Taclet_logSelfConcrete.proof +++ b/key.core/tacletProofs/intPow/Taclet_logSelfConcrete.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:26:19 CEST 2023 -name=logSelfConcrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "logSelfConcrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_logSqueeze.proof b/key.core/tacletProofs/intPow/Taclet_logSqueeze.proof index 955f3b6d70b..56bf672f8a5 100644 --- a/key.core/tacletProofs/intPow/Taclet_logSqueeze.proof +++ b/key.core/tacletProofs/intPow/Taclet_logSqueeze.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:26:26 CEST 2023 -name=logSqueeze -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "logSqueeze", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_logTimesBaseConcrete.proof b/key.core/tacletProofs/intPow/Taclet_logTimesBaseConcrete.proof index 1aacf563224..031cb2bcbda 100644 --- a/key.core/tacletProofs/intPow/Taclet_logTimesBaseConcrete.proof +++ b/key.core/tacletProofs/intPow/Taclet_logTimesBaseConcrete.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:26:33 CEST 2023 -name=logTimesBaseConcrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "logTimesBaseConcrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_pow2InIntLower.proof b/key.core/tacletProofs/intPow/Taclet_pow2InIntLower.proof index 7874fbde74f..cd8a4953143 100644 --- a/key.core/tacletProofs/intPow/Taclet_pow2InIntLower.proof +++ b/key.core/tacletProofs/intPow/Taclet_pow2InIntLower.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:26:40 CEST 2023 -name=pow2InIntLower -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "pow2InIntLower", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_pow2InIntUpper.proof b/key.core/tacletProofs/intPow/Taclet_pow2InIntUpper.proof index 06386b1f517..0189d0e0774 100644 --- a/key.core/tacletProofs/intPow/Taclet_pow2InIntUpper.proof +++ b/key.core/tacletProofs/intPow/Taclet_pow2InIntUpper.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:26:48 CEST 2023 -name=pow2InIntUpper -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "pow2InIntUpper", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_powAdd.proof b/key.core/tacletProofs/intPow/Taclet_powAdd.proof index 76ec747020e..6fe35173bb3 100644 --- a/key.core/tacletProofs/intPow/Taclet_powAdd.proof +++ b/key.core/tacletProofs/intPow/Taclet_powAdd.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:26:55 CEST 2023 -name=powAdd -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "powAdd", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_powConcrete0.proof b/key.core/tacletProofs/intPow/Taclet_powConcrete0.proof index 32847a79fad..5a07474e49e 100644 --- a/key.core/tacletProofs/intPow/Taclet_powConcrete0.proof +++ b/key.core/tacletProofs/intPow/Taclet_powConcrete0.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:27:02 CEST 2023 -name=powConcrete0 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "powConcrete0", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_powConcrete1.proof b/key.core/tacletProofs/intPow/Taclet_powConcrete1.proof index 7ded6ec4950..f7506eea6e9 100644 --- a/key.core/tacletProofs/intPow/Taclet_powConcrete1.proof +++ b/key.core/tacletProofs/intPow/Taclet_powConcrete1.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:27:09 CEST 2023 -name=powConcrete1 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "powConcrete1", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_powGeq1Concrete.proof b/key.core/tacletProofs/intPow/Taclet_powGeq1Concrete.proof index 02c0213bc1e..e0e71ddc680 100644 --- a/key.core/tacletProofs/intPow/Taclet_powGeq1Concrete.proof +++ b/key.core/tacletProofs/intPow/Taclet_powGeq1Concrete.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:27:17 CEST 2023 -name=powGeq1Concrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "powGeq1Concrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_powLogLess.proof b/key.core/tacletProofs/intPow/Taclet_powLogLess.proof index 3e58b0e9e3f..e167a3f1730 100644 --- a/key.core/tacletProofs/intPow/Taclet_powLogLess.proof +++ b/key.core/tacletProofs/intPow/Taclet_powLogLess.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:27:24 CEST 2023 -name=powLogLess -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "powLogLess", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_powLogMore2.proof b/key.core/tacletProofs/intPow/Taclet_powLogMore2.proof index 00083d188b1..00d7d3aa684 100644 --- a/key.core/tacletProofs/intPow/Taclet_powLogMore2.proof +++ b/key.core/tacletProofs/intPow/Taclet_powLogMore2.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:27:32 CEST 2023 -name=powLogMore2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "powLogMore2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_powMono.proof b/key.core/tacletProofs/intPow/Taclet_powMono.proof index 50860583102..e30145a2f45 100644 --- a/key.core/tacletProofs/intPow/Taclet_powMono.proof +++ b/key.core/tacletProofs/intPow/Taclet_powMono.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:27:40 CEST 2023 -name=powMono -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "powMono", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_powMonoConcrete.proof b/key.core/tacletProofs/intPow/Taclet_powMonoConcrete.proof index d208d9a40a6..fbd1e4232e7 100644 --- a/key.core/tacletProofs/intPow/Taclet_powMonoConcrete.proof +++ b/key.core/tacletProofs/intPow/Taclet_powMonoConcrete.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:27:47 CEST 2023 -name=powMonoConcrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "powMonoConcrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_powMonoConcreteRight.proof b/key.core/tacletProofs/intPow/Taclet_powMonoConcreteRight.proof index d5e5fa26452..6fc85dcc780 100644 --- a/key.core/tacletProofs/intPow/Taclet_powMonoConcreteRight.proof +++ b/key.core/tacletProofs/intPow/Taclet_powMonoConcreteRight.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:27:55 CEST 2023 -name=powMonoConcreteRight -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "powMonoConcreteRight", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_powPositive.proof b/key.core/tacletProofs/intPow/Taclet_powPositive.proof index d2e0bf676fd..794514281dd 100644 --- a/key.core/tacletProofs/intPow/Taclet_powPositive.proof +++ b/key.core/tacletProofs/intPow/Taclet_powPositive.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:28:02 CEST 2023 -name=powPositive -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "powPositive", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_powPositiveConcrete.proof b/key.core/tacletProofs/intPow/Taclet_powPositiveConcrete.proof index e13b3a24816..8e74a92ceaa 100644 --- a/key.core/tacletProofs/intPow/Taclet_powPositiveConcrete.proof +++ b/key.core/tacletProofs/intPow/Taclet_powPositiveConcrete.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:28:09 CEST 2023 -name=powPositiveConcrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "powPositiveConcrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intPow/Taclet_powSplitFactor.proof b/key.core/tacletProofs/intPow/Taclet_powSplitFactor.proof index bdc52dc48a8..ddc473b1538 100644 --- a/key.core/tacletProofs/intPow/Taclet_powSplitFactor.proof +++ b/key.core/tacletProofs/intPow/Taclet_powSplitFactor.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:28:16 CEST 2023 -name=powSplitFactor -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "powSplitFactor", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloByteFixpoint.proof.ignore b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloByteFixpoint.proof.ignore index ae5e470c034..21a0396bb81 100644 --- a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloByteFixpoint.proof.ignore +++ b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloByteFixpoint.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 12:09:33 CET 2015 -name=moduloByteFixpoint -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloByteFixpoint", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloByteIsInByte.proof.ignore b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloByteIsInByte.proof.ignore index 4fad30beca1..434804e88ee 100644 --- a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloByteIsInByte.proof.ignore +++ b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloByteIsInByte.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 11:55:30 CET 2015 -name=moduloByteIsInByte -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloByteIsInByte", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloCharFixpoint.proof.ignore b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloCharFixpoint.proof.ignore index 31c8990f656..c95aee029fe 100644 --- a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloCharFixpoint.proof.ignore +++ b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloCharFixpoint.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 12:14:29 CET 2015 -name=moduloCharFixpoint -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloCharFixpoint", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloCharIsInChar.proof.ignore b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloCharIsInChar.proof.ignore index 7aa2d40900a..de87a2ab4c9 100644 --- a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloCharIsInChar.proof.ignore +++ b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloCharIsInChar.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 11:55:20 CET 2015 -name=moduloCharIsInChar -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloCharIsInChar", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloIntFixpoint.proof.ignore b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloIntFixpoint.proof.ignore index 7d61b9ab073..0587b6974f6 100644 --- a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloIntFixpoint.proof.ignore +++ b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloIntFixpoint.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 12:09:57 CET 2015 -name=moduloIntFixpoint -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloIntFixpoint", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloIntIsInInt.proof.ignore b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloIntIsInInt.proof.ignore index 28013754619..ea705b6894b 100644 --- a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloIntIsInInt.proof.ignore +++ b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloIntIsInInt.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 11:56:06 CET 2015 -name=moduloIntIsInInt -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloIntIsInInt", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloLongFixpoint.proof.ignore b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloLongFixpoint.proof.ignore index 3dc3a7b8380..24fbbd017b5 100644 --- a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloLongFixpoint.proof.ignore +++ b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloLongFixpoint.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 12:09:50 CET 2015 -name=moduloLongFixpoint -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloLongFixpoint", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloLongIsInLong.proof.ignore b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloLongIsInLong.proof.ignore index 8f8167228f3..a8bc896d43c 100644 --- a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloLongIsInLong.proof.ignore +++ b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloLongIsInLong.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 11:55:56 CET 2015 -name=moduloLongIsInLong -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloLongIsInLong", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloShortFixpoint.proof.ignore b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloShortFixpoint.proof.ignore index 7e75c73f34e..ee644b30435 100644 --- a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloShortFixpoint.proof.ignore +++ b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloShortFixpoint.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 12:09:43 CET 2015 -name=moduloShortFixpoint -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloShortFixpoint", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloShortIsInShort.proof.ignore b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloShortIsInShort.proof.ignore index 6e2171f1efe..7a8c5bab0a3 100644 --- a/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloShortIsInShort.proof.ignore +++ b/key.core/tacletProofs/intRulesCheckingOF/Taclet_moduloShortIsInShort.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 11:55:46 CET 2015 -name=moduloShortIsInShort -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloShortIsInShort", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloByteIsInByte.proof b/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloByteIsInByte.proof index cefbaa3b7a9..a8afbf0889d 100644 --- a/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloByteIsInByte.proof +++ b/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloByteIsInByte.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:28:23 CEST 2023 -name=moduloByteIsInByte -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloByteIsInByte", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloCharIsInChar.proof b/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloCharIsInChar.proof index 0993e1ae641..597218605d0 100644 --- a/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloCharIsInChar.proof +++ b/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloCharIsInChar.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:28:30 CEST 2023 -name=moduloCharIsInChar -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloCharIsInChar", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloIntIsInInt.proof b/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloIntIsInInt.proof index 7c039c82fa8..db383af031a 100644 --- a/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloIntIsInInt.proof +++ b/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloIntIsInInt.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:28:37 CEST 2023 -name=moduloIntIsInInt -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloIntIsInInt", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloLongIsInLong.proof b/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloLongIsInLong.proof index ff99b4bfea9..aaa9179cea7 100644 --- a/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloLongIsInLong.proof +++ b/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloLongIsInLong.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:28:44 CEST 2023 -name=moduloLongIsInLong -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloLongIsInLong", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloShortIsInShort.proof b/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloShortIsInShort.proof index c2ab6e6ded2..5bcd320b4a8 100644 --- a/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloShortIsInShort.proof +++ b/key.core/tacletProofs/intRulesIgnoringOF/Taclet_moduloShortIsInShort.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:28:52 CEST 2023 -name=moduloShortIsInShort -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloShortIsInShort", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloByteFixpoint.proof.ignore b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloByteFixpoint.proof.ignore index 8bcbb349da4..7cc277743b9 100644 --- a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloByteFixpoint.proof.ignore +++ b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloByteFixpoint.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 12:20:15 CET 2015 -name=moduloByteFixpoint -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloByteFixpoint", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloByteIsInByte.proof.ignore b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloByteIsInByte.proof.ignore index f235fd8f1e9..f31b0a07982 100644 --- a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloByteIsInByte.proof.ignore +++ b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloByteIsInByte.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 12:20:51 CET 2015 -name=moduloByteIsInByte -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloByteIsInByte", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloCharFixpoint.proof.ignore b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloCharFixpoint.proof.ignore index 10952f1da7c..edd52feb87e 100644 --- a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloCharFixpoint.proof.ignore +++ b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloCharFixpoint.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 12:20:07 CET 2015 -name=moduloCharFixpoint -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloCharFixpoint", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloCharIsInChar.proof.ignore b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloCharIsInChar.proof.ignore index 1ac92e7b8a3..91062ea747c 100644 --- a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloCharIsInChar.proof.ignore +++ b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloCharIsInChar.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 12:20:46 CET 2015 -name=moduloCharIsInChar -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloCharIsInChar", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloIntFixpoint.proof.ignore b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloIntFixpoint.proof.ignore index dfdbacd4587..ba82a0e570f 100644 --- a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloIntFixpoint.proof.ignore +++ b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloIntFixpoint.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 12:20:39 CET 2015 -name=moduloIntFixpoint -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloIntFixpoint", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloIntIsInInt.proof.ignore b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloIntIsInInt.proof.ignore index c11715671cf..e6fe39c8848 100644 --- a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloIntIsInInt.proof.ignore +++ b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloIntIsInInt.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 12:21:13 CET 2015 -name=moduloIntIsInInt -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloIntIsInInt", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloLongFixpoint.proof.ignore b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloLongFixpoint.proof.ignore index 04182d3ac97..9dd3de10dc8 100644 --- a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloLongFixpoint.proof.ignore +++ b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloLongFixpoint.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 12:20:29 CET 2015 -name=moduloLongFixpoint -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloLongFixpoint", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloLongIsInLong.proof.ignore b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloLongIsInLong.proof.ignore index 4c01a41a713..89767dc2d57 100644 --- a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloLongIsInLong.proof.ignore +++ b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloLongIsInLong.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 12:21:06 CET 2015 -name=moduloLongIsInLong -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloLongIsInLong", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloShortFixpoint.proof.ignore b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloShortFixpoint.proof.ignore index 596ea932f0a..f3d948f31de 100644 --- a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloShortFixpoint.proof.ignore +++ b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloShortFixpoint.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 12:20:21 CET 2015 -name=moduloShortFixpoint -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloShortFixpoint", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloShortIsInShort.proof.ignore b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloShortIsInShort.proof.ignore index 2fb65d7d6b9..62f989158af 100644 --- a/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloShortIsInShort.proof.ignore +++ b/key.core/tacletProofs/intRulesJavaSemantics/Taclet_moduloShortIsInShort.proof.ignore @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Feb 11 12:20:59 CET 2015 -name=moduloShortIsInShort -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "moduloShortIsInShort", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "bubel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.core/tacletProofs/locSet/Taclet_disjointArrayRangeAllFields1.proof b/key.core/tacletProofs/locSet/Taclet_disjointArrayRangeAllFields1.proof index 4932cc65df4..af8ab5faeef 100644 --- a/key.core/tacletProofs/locSet/Taclet_disjointArrayRangeAllFields1.proof +++ b/key.core/tacletProofs/locSet/Taclet_disjointArrayRangeAllFields1.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:28:59 CEST 2023 -name=disjointArrayRangeAllFields1 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "disjointArrayRangeAllFields1", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/locSet/Taclet_disjointArrayRangeAllFields2.proof b/key.core/tacletProofs/locSet/Taclet_disjointArrayRangeAllFields2.proof index 66562afe222..4d207c714e5 100644 --- a/key.core/tacletProofs/locSet/Taclet_disjointArrayRangeAllFields2.proof +++ b/key.core/tacletProofs/locSet/Taclet_disjointArrayRangeAllFields2.proof @@ -47,11 +47,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:29:06 CEST 2023 -name=disjointArrayRangeAllFields2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "disjointArrayRangeAllFields2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/locSet/Taclet_disjointArrayRanges.proof b/key.core/tacletProofs/locSet/Taclet_disjointArrayRanges.proof index f58857a62ac..4ddf470745b 100644 --- a/key.core/tacletProofs/locSet/Taclet_disjointArrayRanges.proof +++ b/key.core/tacletProofs/locSet/Taclet_disjointArrayRanges.proof @@ -46,11 +46,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:29:14 CEST 2023 -name=disjointArrayRanges -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "disjointArrayRanges", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/locSet/Taclet_disjointWithSingleton1.proof b/key.core/tacletProofs/locSet/Taclet_disjointWithSingleton1.proof index b1a94f5476d..92a153f35a2 100644 --- a/key.core/tacletProofs/locSet/Taclet_disjointWithSingleton1.proof +++ b/key.core/tacletProofs/locSet/Taclet_disjointWithSingleton1.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:29:21 CEST 2023 -name=disjointWithSingleton1 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "disjointWithSingleton1", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/locSet/Taclet_disjointWithSingleton2.proof b/key.core/tacletProofs/locSet/Taclet_disjointWithSingleton2.proof index bb7e3959aaa..b766157cdb2 100644 --- a/key.core/tacletProofs/locSet/Taclet_disjointWithSingleton2.proof +++ b/key.core/tacletProofs/locSet/Taclet_disjointWithSingleton2.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:29:28 CEST 2023 -name=disjointWithSingleton2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "disjointWithSingleton2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqPerm/Taclet_getAnyOfNPermInv.proof b/key.core/tacletProofs/seqPerm/Taclet_getAnyOfNPermInv.proof index 19fc886b89b..61298a5602b 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_getAnyOfNPermInv.proof +++ b/key.core/tacletProofs/seqPerm/Taclet_getAnyOfNPermInv.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:29:36 CEST 2023 -name=getAnyOfNPermInv -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "getAnyOfNPermInv", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqNPermRange.proof b/key.core/tacletProofs/seqPerm/Taclet_seqNPermRange.proof index 8bfe231a3ab..74602500ab0 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqNPermRange.proof +++ b/key.core/tacletProofs/seqPerm/Taclet_seqNPermRange.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:29:44 CEST 2023 -name=seqNPermRange -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqNPermRange", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqNPermRange.txt b/key.core/tacletProofs/seqPerm/Taclet_seqNPermRange.txt index 74e0f363ef1..c62ed340eb4 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqNPermRange.txt +++ b/key.core/tacletProofs/seqPerm/Taclet_seqNPermRange.txt @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Sun Oct 16 16:12:01 CEST 2016 -name=seqNPermRange -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqNPermRange", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proofScript " macro split-prop; diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqPermExists.proof b/key.core/tacletProofs/seqPerm/Taclet_seqPermExists.proof index ab2668330b5..9cf2911607d 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqPermExists.proof +++ b/key.core/tacletProofs/seqPerm/Taclet_seqPermExists.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Aug 02 14:52:57 CEST 2023 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -name=seqPermExists -"; +\proofObligation { + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name": "seqPermExists", + } \proof { (keyLog "0" (keyUser "Wolfram" ) (keyVersion "802791f53995f75600352ac8d6929fd89f529c86")) diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqPermForall.proof b/key.core/tacletProofs/seqPerm/Taclet_seqPermForall.proof index 0e35eda800d..5ca063ed0a7 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqPermForall.proof +++ b/key.core/tacletProofs/seqPerm/Taclet_seqPermForall.proof @@ -45,11 +45,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Aug 02 14:34:25 CEST 2023 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -name=seqPermForall -"; +\proofObligation { + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name": "seqPermForall", + } \proof { (keyLog "0" (keyUser "Wolfram" ) (keyVersion "802791f53995f75600352ac8d6929fd89f529c86")) diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqPermFromSwap.proof b/key.core/tacletProofs/seqPerm/Taclet_seqPermFromSwap.proof index 6b18beb9f37..7b2eb8e4a2f 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqPermFromSwap.proof +++ b/key.core/tacletProofs/seqPerm/Taclet_seqPermFromSwap.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:30:07 CEST 2023 -name=seqPermFromSwap -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqPermFromSwap", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqPermRefl.proof b/key.core/tacletProofs/seqPerm/Taclet_seqPermRefl.proof index 3bf7f9e09b7..55f78890439 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqPermRefl.proof +++ b/key.core/tacletProofs/seqPerm/Taclet_seqPermRefl.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:30:14 CEST 2023 -name=seqPermRefl -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqPermRefl", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqPermSplit.proof b/key.core/tacletProofs/seqPerm/Taclet_seqPermSplit.proof index a43f754a4ef..87037dc03f0 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqPermSplit.proof +++ b/key.core/tacletProofs/seqPerm/Taclet_seqPermSplit.proof @@ -46,11 +46,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:30:22 CEST 2023 -name=seqPermSplit -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqPermSplit", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqPermTrans.proof b/key.core/tacletProofs/seqPerm/Taclet_seqPermTrans.proof index 0658859b4e1..ed674597d6e 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqPermTrans.proof +++ b/key.core/tacletProofs/seqPerm/Taclet_seqPermTrans.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:30:30 CEST 2023 -name=seqPermTrans -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqPermTrans", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqPermTransAlt0.proof b/key.core/tacletProofs/seqPerm/Taclet_seqPermTransAlt0.proof index 91e8d39046e..31317825207 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqPermTransAlt0.proof +++ b/key.core/tacletProofs/seqPerm/Taclet_seqPermTransAlt0.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:30:38 CEST 2023 -name=seqPermTransAlt0 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqPermTransAlt0", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqPermTransAlt1.proof b/key.core/tacletProofs/seqPerm/Taclet_seqPermTransAlt1.proof index 8d4d5260a3e..9bda34e5600 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqPermTransAlt1.proof +++ b/key.core/tacletProofs/seqPerm/Taclet_seqPermTransAlt1.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:30:45 CEST 2023 -name=seqPermTransAlt1 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqPermTransAlt1", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqPermTransAlt2.proof b/key.core/tacletProofs/seqPerm/Taclet_seqPermTransAlt2.proof index 023a63b5ca9..9dd08d9a54e 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqPermTransAlt2.proof +++ b/key.core/tacletProofs/seqPerm/Taclet_seqPermTransAlt2.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:30:53 CEST 2023 -name=seqPermTransAlt2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqPermTransAlt2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqPermTransAlt3.proof b/key.core/tacletProofs/seqPerm/Taclet_seqPermTransAlt3.proof index 0d5532f15d3..c89994b0b59 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqPermTransAlt3.proof +++ b/key.core/tacletProofs/seqPerm/Taclet_seqPermTransAlt3.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:31:01 CEST 2023 -name=seqPermTransAlt3 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqPermTransAlt3", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqPerm2/Taclet_schiffl_lemma_2.proof b/key.core/tacletProofs/seqPerm2/Taclet_schiffl_lemma_2.proof index 7fad23307a8..f3e76838eb8 100644 --- a/key.core/tacletProofs/seqPerm2/Taclet_schiffl_lemma_2.proof +++ b/key.core/tacletProofs/seqPerm2/Taclet_schiffl_lemma_2.proof @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Thu Oct 27 13:34:28 CEST 2016 -name=schiffl_lemma_2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "schiffl_lemma_2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proofScript " macro split-prop; @@ -371,10 +370,8 @@ tryclose branch; # established: r3 fixes v_y_0 # from now on v_x_0 != v_y_0 and s_0[v_x_0]!= v_x_0 and # s_0[v_y_0]!= v_y_0 and s_0[v_x_0]!= v_y_0 -cut 'int::seqGet(s_0, v_y_0)=v_x_0'; # This corresponds to case B4ii in the Notes. # in the following r4 refers to this instantion -tryclose branch; # established: r4 is of the correct length rule seqNPermSwapNPerm; instantiate hide var=iv with='jv_1'; @@ -406,4 +403,3 @@ instantiate hide var=jv with='jv_1'; instantiate hide var=v_r with='seqSwap(seqSwap(s_0, v_x_0, jv_0), v_y_0, jv_1)'; tryclose branch; " - diff --git a/key.core/tacletProofs/seqPerm2/Taclet_schiffl_thm_1.proof b/key.core/tacletProofs/seqPerm2/Taclet_schiffl_thm_1.proof index b8a0c20a12b..18e01b6e463 100644 --- a/key.core/tacletProofs/seqPerm2/Taclet_schiffl_thm_1.proof +++ b/key.core/tacletProofs/seqPerm2/Taclet_schiffl_thm_1.proof @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Thu Oct 27 16:09:31 CEST 2016 -name=schiffl_thm_1 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "schiffl_thm_1", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proofScript " diff --git a/key.core/tacletProofs/seqRules/Taclet_castedGetAny.proof b/key.core/tacletProofs/seqRules/Taclet_castedGetAny.proof index 39a9e39304b..8dd2a090147 100644 --- a/key.core/tacletProofs/seqRules/Taclet_castedGetAny.proof +++ b/key.core/tacletProofs/seqRules/Taclet_castedGetAny.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:31:23 CEST 2023 -name=castedGetAny -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "castedGetAny", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_eqSameSeq.proof b/key.core/tacletProofs/seqRules/Taclet_eqSameSeq.proof index 19d769dfd80..be35b358a12 100644 --- a/key.core/tacletProofs/seqRules/Taclet_eqSameSeq.proof +++ b/key.core/tacletProofs/seqRules/Taclet_eqSameSeq.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:31:30 CEST 2023 -name=eqSameSeq -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "eqSameSeq", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_equalityToSeqGetAndSeqLenLeft.proof b/key.core/tacletProofs/seqRules/Taclet_equalityToSeqGetAndSeqLenLeft.proof index 575c8a8e3a0..7f1489b9297 100644 --- a/key.core/tacletProofs/seqRules/Taclet_equalityToSeqGetAndSeqLenLeft.proof +++ b/key.core/tacletProofs/seqRules/Taclet_equalityToSeqGetAndSeqLenLeft.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:31:38 CEST 2023 -name=equalityToSeqGetAndSeqLenLeft -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "equalityToSeqGetAndSeqLenLeft", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_equalityToSeqGetAndSeqLenRight.proof b/key.core/tacletProofs/seqRules/Taclet_equalityToSeqGetAndSeqLenRight.proof index 1d47473cfd5..5aa268a8d50 100644 --- a/key.core/tacletProofs/seqRules/Taclet_equalityToSeqGetAndSeqLenRight.proof +++ b/key.core/tacletProofs/seqRules/Taclet_equalityToSeqGetAndSeqLenRight.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:31:45 CEST 2023 -name=equalityToSeqGetAndSeqLenRight -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "equalityToSeqGetAndSeqLenRight", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_getAnyOfArray2seq.proof b/key.core/tacletProofs/seqRules/Taclet_getAnyOfArray2seq.proof index 1bd49125a85..7f87ac79555 100644 --- a/key.core/tacletProofs/seqRules/Taclet_getAnyOfArray2seq.proof +++ b/key.core/tacletProofs/seqRules/Taclet_getAnyOfArray2seq.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:31:52 CEST 2023 -name=getAnyOfArray2seq -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "getAnyOfArray2seq", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_getOfArray2seq.proof b/key.core/tacletProofs/seqRules/Taclet_getOfArray2seq.proof index dc6c290832f..b26336f8cc4 100644 --- a/key.core/tacletProofs/seqRules/Taclet_getOfArray2seq.proof +++ b/key.core/tacletProofs/seqRules/Taclet_getOfArray2seq.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:31:59 CEST 2023 -name=getOfArray2seq -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "getOfArray2seq", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_getOfSeqConcat.proof b/key.core/tacletProofs/seqRules/Taclet_getOfSeqConcat.proof index 95442da8d5a..d6e2b9bc00d 100644 --- a/key.core/tacletProofs/seqRules/Taclet_getOfSeqConcat.proof +++ b/key.core/tacletProofs/seqRules/Taclet_getOfSeqConcat.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:32:06 CEST 2023 -name=getOfSeqConcat -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "getOfSeqConcat", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_getOfSeqConcatEQ.proof b/key.core/tacletProofs/seqRules/Taclet_getOfSeqConcatEQ.proof index e1fcbfbae26..77d5af8076a 100644 --- a/key.core/tacletProofs/seqRules/Taclet_getOfSeqConcatEQ.proof +++ b/key.core/tacletProofs/seqRules/Taclet_getOfSeqConcatEQ.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:32:13 CEST 2023 -name=getOfSeqConcatEQ -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "getOfSeqConcatEQ", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_getOfSeqDefEQ.proof b/key.core/tacletProofs/seqRules/Taclet_getOfSeqDefEQ.proof index a487a87393d..652b6392b62 100644 --- a/key.core/tacletProofs/seqRules/Taclet_getOfSeqDefEQ.proof +++ b/key.core/tacletProofs/seqRules/Taclet_getOfSeqDefEQ.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:32:20 CEST 2023 -name=getOfSeqDefEQ -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "getOfSeqDefEQ", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_getOfSeqReverse.proof b/key.core/tacletProofs/seqRules/Taclet_getOfSeqReverse.proof index fed20aad3ab..6dd0ece48ee 100644 --- a/key.core/tacletProofs/seqRules/Taclet_getOfSeqReverse.proof +++ b/key.core/tacletProofs/seqRules/Taclet_getOfSeqReverse.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:32:28 CEST 2023 -name=getOfSeqReverse -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "getOfSeqReverse", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_getOfSeqReverseEQ.proof b/key.core/tacletProofs/seqRules/Taclet_getOfSeqReverseEQ.proof index 8cdff690071..90579d51e88 100644 --- a/key.core/tacletProofs/seqRules/Taclet_getOfSeqReverseEQ.proof +++ b/key.core/tacletProofs/seqRules/Taclet_getOfSeqReverseEQ.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:32:35 CEST 2023 -name=getOfSeqReverseEQ -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "getOfSeqReverseEQ", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_getOfSeqSingleton.proof b/key.core/tacletProofs/seqRules/Taclet_getOfSeqSingleton.proof index a47222631a2..95bd055190e 100644 --- a/key.core/tacletProofs/seqRules/Taclet_getOfSeqSingleton.proof +++ b/key.core/tacletProofs/seqRules/Taclet_getOfSeqSingleton.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:32:41 CEST 2023 -name=getOfSeqSingleton -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "getOfSeqSingleton", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_getOfSeqSingletonConcrete.proof b/key.core/tacletProofs/seqRules/Taclet_getOfSeqSingletonConcrete.proof index b3c0cd40d1f..e21c7b27fc9 100644 --- a/key.core/tacletProofs/seqRules/Taclet_getOfSeqSingletonConcrete.proof +++ b/key.core/tacletProofs/seqRules/Taclet_getOfSeqSingletonConcrete.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:32:49 CEST 2023 -name=getOfSeqSingletonConcrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "getOfSeqSingletonConcrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_getOfSeqSingletonEQ.proof b/key.core/tacletProofs/seqRules/Taclet_getOfSeqSingletonEQ.proof index 33641617636..1b4fc6b2dff 100644 --- a/key.core/tacletProofs/seqRules/Taclet_getOfSeqSingletonEQ.proof +++ b/key.core/tacletProofs/seqRules/Taclet_getOfSeqSingletonEQ.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:32:55 CEST 2023 -name=getOfSeqSingletonEQ -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "getOfSeqSingletonEQ", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_getOfSeqSub.proof b/key.core/tacletProofs/seqRules/Taclet_getOfSeqSub.proof index a1f978c3bfb..47a953da24a 100644 --- a/key.core/tacletProofs/seqRules/Taclet_getOfSeqSub.proof +++ b/key.core/tacletProofs/seqRules/Taclet_getOfSeqSub.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:33:02 CEST 2023 -name=getOfSeqSub -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "getOfSeqSub", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_getOfSeqSubEQ.proof b/key.core/tacletProofs/seqRules/Taclet_getOfSeqSubEQ.proof index 2fbfcb061ef..acf119c6209 100644 --- a/key.core/tacletProofs/seqRules/Taclet_getOfSeqSubEQ.proof +++ b/key.core/tacletProofs/seqRules/Taclet_getOfSeqSubEQ.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:33:09 CEST 2023 -name=getOfSeqSubEQ -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "getOfSeqSubEQ", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_getOfSeqUpd.proof b/key.core/tacletProofs/seqRules/Taclet_getOfSeqUpd.proof new file mode 100644 index 00000000000..7d18742aaaa --- /dev/null +++ b/key.core/tacletProofs/seqRules/Taclet_getOfSeqUpd.proof @@ -0,0 +1,165 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:safe", + "bigint" : "bigint:on", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_FREE", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_NONE", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_OFF", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation "#Proof Obligation Settings +#Wed Jan 10 23:17:36 CET 2024 +name=getOfSeqUpd +class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput +"; + +\proof { +(keyLog "0" (keyUser "mattias" ) (keyVersion "4a2b5ce3719644caff60bd1214c21ec1cdc945ee")) + +(autoModeTime "574") + +(branch "dummy ID" +(rule "ifthenelse_split" (formula "1") (term "1") (newnames "f_seq,f_idx,f_value,f_jdx") (userinteraction)) +(branch "0 <= f_jdx & f_jdx < f_seq.length & f_idx = f_jdx TRUE" + (rule "defOfSeqUpd" (formula "2") (term "0,0") (inst "uSub=uSub") (userinteraction)) + (rule "andLeft" (formula "1")) + (rule "andLeft" (formula "1")) + (rule "eqSymm" (formula "3")) + (rule "getOfSeqDef" (formula "4") (term "0")) + (rule "add_zero_right" (formula "4") (term "1,2,0,1,0")) + (rule "add_zero_right" (formula "4") (term "0,0,0,1,0")) + (rule "replace_known_left" (formula "4") (term "0,0,0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "3"))) + (rule "orRight" (formula "4")) + (rule "polySimp_elimSub" (formula "4") (term "1")) + (rule "times_zero_2" (formula "4") (term "1,1")) + (rule "add_zero_right" (formula "4") (term "1")) + (rule "close" (formula "4") (ifseqformula "2")) +) +(branch "0 <= f_jdx & f_jdx < f_seq.length & f_idx = f_jdx FALSE" + (rule "andRight" (formula "1") (userinteraction)) + (branch "Case 1" + (rule "seqSelfDefinition" (formula "2") (term "0,1") (inst "s=s") (inst "u=u") (userinteraction)) + (rule "allLeftHide" (formula "1") (inst "t=f_seq") (userinteraction)) + (rule "applyEqRigid" (formula "3") (term "0,1") (ifseqformula "1") (userinteraction)) + (rule "defOfSeqUpd" (formula "3") (term "0,0") (inst "uSub=uSub") (userinteraction)) + (rule "getOfSeqDef" (formula "3") (term "0") (userinteraction)) + (rule "getOfSeqDef" (formula "3") (term "1") (userinteraction)) + (rule "sub_zero_2" (formula "3") (term "1,1,0,1") (userinteraction)) + (rule "sub_zero_2" (formula "3") (term "1,1,0,0") (userinteraction)) + (rule "replace_known_right" (formula "3") (term "0,0") (ifseqformula "2") (userinteraction)) + (rule "replace_known_right" (formula "3") (term "0,1") (ifseqformula "2") (userinteraction)) + (builtin "One Step Simplification" (formula "3")) + (rule "closeTrue" (formula "3")) + ) + (branch "Case 2" + (rule "defOfSeqUpd" (formula "2") (term "0,0") (inst "uSub=uSub") (userinteraction)) + (rule "getOfSeqDef" (formula "2") (term "0") (userinteraction)) + (rule "add_zero_right" (formula "2") (term "0,0,0,1,0") (userinteraction)) + (rule "eqSymm" (formula "2") (term "0,0,1,0") (userinteraction)) + (rule "replace_known_right" (formula "2") (term "0,0,1,0") (ifseqformula "1") (userinteraction)) + (builtin "One Step Simplification" (formula "2") (userinteraction)) + (rule "add_zero_right" (formula "2") (term "1,0,1,0") (userinteraction)) + (rule "ifthenelse_split" (formula "2") (term "0") (userinteraction)) + (branch "0 <= f_jdx & f_jdx < f_seq.length - 0 TRUE" + (rule "andLeft" (formula "1")) + (rule "eqSymm" (formula "3")) + (rule "polySimp_elimSub" (formula "2") (term "1")) + (rule "times_zero_2" (formula "2") (term "1,1")) + (rule "add_zero_right" (formula "2") (term "1")) + (rule "castedGetAny" (formula "4") (term "0")) + (builtin "One Step Simplification" (formula "4")) + (rule "closeTrue" (formula "4")) + ) + (branch "0 <= f_jdx & f_jdx < f_seq.length - 0 FALSE" + (rule "sub_zero_2" (formula "2") (term "1,1") (userinteraction)) + (rule "seqSelfDefinition" (formula "3") (term "0,1") (inst "s=s") (inst "u=u") (userinteraction)) + (rule "allLeftHide" (formula "1") (inst "t=f_seq") (userinteraction)) + (rule "applyEqRigid" (formula "4") (term "0,1") (ifseqformula "1") (userinteraction)) + (rule "eqSymm" (formula "4")) + (rule "eqSymm" (formula "1")) + (rule "eqSymm" (formula "2")) + (rule "getOfSeqDef" (formula "4") (term "0")) + (builtin "One Step Simplification" (formula "4")) + (rule "add_zero_right" (formula "4") (term "1,0,0,1")) + (rule "orRight" (formula "4")) + (rule "notRight" (formula "4")) + (rule "andLeft" (formula "1")) + (rule "replace_known_left" (formula "5") (term "0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "5")) + (rule "polySimp_elimSub" (formula "2") (term "1")) + (rule "times_zero_2" (formula "2") (term "1,1")) + (rule "add_zero_right" (formula "2") (term "1")) + (rule "close" (formula "5") (ifseqformula "2")) + ) + ) +) +) +} diff --git a/key.core/tacletProofs/seqRules/Taclet_indexOfSeqConcatFirst.proof b/key.core/tacletProofs/seqRules/Taclet_indexOfSeqConcatFirst.proof index 861d0ccb9b7..5796315779f 100644 --- a/key.core/tacletProofs/seqRules/Taclet_indexOfSeqConcatFirst.proof +++ b/key.core/tacletProofs/seqRules/Taclet_indexOfSeqConcatFirst.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:33:16 CEST 2023 -name=indexOfSeqConcatFirst -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "indexOfSeqConcatFirst", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_indexOfSeqConcatSecond.proof b/key.core/tacletProofs/seqRules/Taclet_indexOfSeqConcatSecond.proof index 4ff9e36f2e6..2f6724f4d65 100644 --- a/key.core/tacletProofs/seqRules/Taclet_indexOfSeqConcatSecond.proof +++ b/key.core/tacletProofs/seqRules/Taclet_indexOfSeqConcatSecond.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:33:23 CEST 2023 -name=indexOfSeqConcatSecond -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "indexOfSeqConcatSecond", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_indexOfSeqSingleton.proof b/key.core/tacletProofs/seqRules/Taclet_indexOfSeqSingleton.proof index a0ca3c8151e..e6d7e87db0b 100644 --- a/key.core/tacletProofs/seqRules/Taclet_indexOfSeqSingleton.proof +++ b/key.core/tacletProofs/seqRules/Taclet_indexOfSeqSingleton.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:33:30 CEST 2023 -name=indexOfSeqSingleton -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "indexOfSeqSingleton", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_indexOfSeqSub.proof b/key.core/tacletProofs/seqRules/Taclet_indexOfSeqSub.proof index c1733e422c4..e5faa9f4269 100644 --- a/key.core/tacletProofs/seqRules/Taclet_indexOfSeqSub.proof +++ b/key.core/tacletProofs/seqRules/Taclet_indexOfSeqSub.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:33:37 CEST 2023 -name=indexOfSeqSub -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "indexOfSeqSub", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_lenOfArray2seq.proof b/key.core/tacletProofs/seqRules/Taclet_lenOfArray2seq.proof index 4c10897dd39..7fc531be8e5 100644 --- a/key.core/tacletProofs/seqRules/Taclet_lenOfArray2seq.proof +++ b/key.core/tacletProofs/seqRules/Taclet_lenOfArray2seq.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:33:44 CEST 2023 -name=lenOfArray2seq -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "lenOfArray2seq", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqConcat.proof b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqConcat.proof index 2a8ac98831a..755891fc431 100644 --- a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqConcat.proof +++ b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqConcat.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:33:51 CEST 2023 -name=lenOfSeqConcat -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "lenOfSeqConcat", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqConcatEQ.proof b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqConcatEQ.proof index 690f6dfa256..a4e46c31967 100644 --- a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqConcatEQ.proof +++ b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqConcatEQ.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:33:58 CEST 2023 -name=lenOfSeqConcatEQ -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "lenOfSeqConcatEQ", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqDefEQ.proof b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqDefEQ.proof index c16038bf5e0..5737f8fbaaf 100644 --- a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqDefEQ.proof +++ b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqDefEQ.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:34:05 CEST 2023 -name=lenOfSeqDefEQ -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "lenOfSeqDefEQ", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqEmpty.proof b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqEmpty.proof index 725668d2451..9cea55fc1be 100644 --- a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqEmpty.proof +++ b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqEmpty.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:34:13 CEST 2023 -name=lenOfSeqEmpty -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "lenOfSeqEmpty", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqEmptyEQ.proof b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqEmptyEQ.proof index bf2275968cf..e99abc6838f 100644 --- a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqEmptyEQ.proof +++ b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqEmptyEQ.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:34:20 CEST 2023 -name=lenOfSeqEmptyEQ -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "lenOfSeqEmptyEQ", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqReverse.proof b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqReverse.proof index e90ae16b36d..ff04efcaa43 100644 --- a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqReverse.proof +++ b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqReverse.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:34:28 CEST 2023 -name=lenOfSeqReverse -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "lenOfSeqReverse", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqReverseEQ.proof b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqReverseEQ.proof index 85bff3ef8ab..befe99c9107 100644 --- a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqReverseEQ.proof +++ b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqReverseEQ.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:34:35 CEST 2023 -name=lenOfSeqReverseEQ -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "lenOfSeqReverseEQ", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqSingleton.proof b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqSingleton.proof index 686965ef596..0cafea8fb5b 100644 --- a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqSingleton.proof +++ b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqSingleton.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:34:43 CEST 2023 -name=lenOfSeqSingleton -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "lenOfSeqSingleton", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqSingletonEQ.proof b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqSingletonEQ.proof index 4aa3ef19b60..785dbd6cd07 100644 --- a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqSingletonEQ.proof +++ b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqSingletonEQ.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:34:50 CEST 2023 -name=lenOfSeqSingletonEQ -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "lenOfSeqSingletonEQ", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqSub.proof b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqSub.proof index 82bac23b748..5d8254b5870 100644 --- a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqSub.proof +++ b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqSub.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:34:57 CEST 2023 -name=lenOfSeqSub -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "lenOfSeqSub", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqSubEQ.proof b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqSubEQ.proof index 7715e112550..10ab6d23711 100644 --- a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqSubEQ.proof +++ b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqSubEQ.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:35:04 CEST 2023 -name=lenOfSeqSubEQ -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "lenOfSeqSubEQ", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_lenOfSeqUpd.proof b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqUpd.proof new file mode 100644 index 00000000000..075a04ca117 --- /dev/null +++ b/key.core/tacletProofs/seqRules/Taclet_lenOfSeqUpd.proof @@ -0,0 +1,119 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:safe", + "bigint" : "bigint:on", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_FREE", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_NONE", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_OFF", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation "#Proof Obligation Settings +#Wed Jan 10 23:18:07 CET 2024 +name=lenOfSeqUpd +class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput +"; + +\proof { +(keyLog "0" (keyUser "mattias" ) (keyVersion "4a2b5ce3719644caff60bd1214c21ec1cdc945ee")) + +(autoModeTime "58") + +(branch "dummy ID" +(rule "defOfSeqUpd" (formula "1") (term "0,0") (newnames "f_seq,f_idx,f_value") (inst "uSub=uSub") (userinteraction)) +(rule "lenOfSeqDef" (formula "1") (term "0")) +(rule "polySimp_elimSub" (formula "1") (term "1,0")) +(rule "times_zero_2" (formula "1") (term "1,1,0")) +(rule "add_zero_right" (formula "1") (term "1,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "orRight" (formula "1")) +(rule "eqSymm" (formula "2")) +(rule "inEqSimp_ltRight" (formula "1")) +(rule "add_zero_right" (formula "1") (term "0")) +(rule "polySimp_mulComm0" (formula "1") (term "0")) +(rule "inEqSimp_invertInEq1" (formula "1")) +(rule "times_zero_2" (formula "1") (term "1")) +(rule "polySimp_mulLiterals" (formula "1") (term "0")) +(rule "polySimp_elimOne" (formula "1") (term "0")) +(rule "inEqSimp_strengthen0" (formula "1") (ifseqformula "2")) +(rule "add_zero_right" (formula "1") (term "1")) +(rule "inEqSimp_contradEq3" (formula "2") (ifseqformula "1")) +(rule "times_zero_1" (formula "2") (term "1,0,0")) +(rule "add_zero_right" (formula "2") (term "0,0")) +(rule "qeq_literals" (formula "2") (term "0")) + (builtin "One Step Simplification" (formula "2")) +(rule "false_right" (formula "2")) +(rule "lenNonNegative" (formula "1") (term "0")) +(rule "inEqSimp_commuteLeq" (formula "1")) +(rule "inEqSimp_contradInEq0" (formula "1") (ifseqformula "2")) +(rule "qeq_literals" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) +(rule "closeFalse" (formula "1")) +) +} diff --git a/key.core/tacletProofs/seqRules/Taclet_seqConcatWithSeqEmpty1.proof b/key.core/tacletProofs/seqRules/Taclet_seqConcatWithSeqEmpty1.proof index abd9ed12df5..9a0bdc41ab1 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqConcatWithSeqEmpty1.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqConcatWithSeqEmpty1.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:35:12 CEST 2023 -name=seqConcatWithSeqEmpty1 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqConcatWithSeqEmpty1", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqConcatWithSeqEmpty2.proof b/key.core/tacletProofs/seqRules/Taclet_seqConcatWithSeqEmpty2.proof index b3a20577152..e51a5ba8f57 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqConcatWithSeqEmpty2.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqConcatWithSeqEmpty2.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:35:19 CEST 2023 -name=seqConcatWithSeqEmpty2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqConcatWithSeqEmpty2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqDefOfSeq.proof b/key.core/tacletProofs/seqRules/Taclet_seqDefOfSeq.proof index bf1fea5c463..41f85bfcc27 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqDefOfSeq.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqDefOfSeq.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:35:26 CEST 2023 -name=seqDefOfSeq -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqDefOfSeq", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqDef_empty.proof b/key.core/tacletProofs/seqRules/Taclet_seqDef_empty.proof index 01172a16213..6129a6faa65 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqDef_empty.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqDef_empty.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:35:33 CEST 2023 -name=seqDef_empty -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqDef_empty", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqDef_induction_lower.proof b/key.core/tacletProofs/seqRules/Taclet_seqDef_induction_lower.proof index 62f1ebb374c..0d9a91ca50d 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqDef_induction_lower.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqDef_induction_lower.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:35:41 CEST 2023 -name=seqDef_induction_lower -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqDef_induction_lower", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqDef_induction_lower_concrete.proof b/key.core/tacletProofs/seqRules/Taclet_seqDef_induction_lower_concrete.proof index d0e179c6cf4..1dd55085329 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqDef_induction_lower_concrete.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqDef_induction_lower_concrete.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:35:48 CEST 2023 -name=seqDef_induction_lower_concrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqDef_induction_lower_concrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqDef_induction_upper.proof b/key.core/tacletProofs/seqRules/Taclet_seqDef_induction_upper.proof index dbad2eb50c4..0473e95ccdc 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqDef_induction_upper.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqDef_induction_upper.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:35:55 CEST 2023 -name=seqDef_induction_upper -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqDef_induction_upper", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqDef_induction_upper_concrete.proof b/key.core/tacletProofs/seqRules/Taclet_seqDef_induction_upper_concrete.proof index 9de8286f690..aa8df30d52c 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqDef_induction_upper_concrete.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqDef_induction_upper_concrete.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:36:03 CEST 2023 -name=seqDef_induction_upper_concrete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqDef_induction_upper_concrete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqDef_lower_equals_upper.proof b/key.core/tacletProofs/seqRules/Taclet_seqDef_lower_equals_upper.proof index e50b7e21ffe..9b2afff1b33 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqDef_lower_equals_upper.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqDef_lower_equals_upper.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:36:10 CEST 2023 -name=seqDef_lower_equals_upper -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqDef_lower_equals_upper", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqDef_one_summand.proof b/key.core/tacletProofs/seqRules/Taclet_seqDef_one_summand.proof index 532410c8eed..a89e5321f77 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqDef_one_summand.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqDef_one_summand.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:36:17 CEST 2023 -name=seqDef_one_summand -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqDef_one_summand", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqDef_split.proof b/key.core/tacletProofs/seqRules/Taclet_seqDef_split.proof index b10b2982bba..cb83c51b822 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqDef_split.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqDef_split.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:36:24 CEST 2023 -name=seqDef_split -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqDef_split", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqDef_split_in_three.proof b/key.core/tacletProofs/seqRules/Taclet_seqDef_split_in_three.proof index a445a183abb..42926f4c054 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqDef_split_in_three.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqDef_split_in_three.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:36:32 CEST 2023 -name=seqDef_split_in_three -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqDef_split_in_three", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqGetAlphaCast.proof b/key.core/tacletProofs/seqRules/Taclet_seqGetAlphaCast.proof index 33f36ba1096..4d8d4b26520 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqGetAlphaCast.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqGetAlphaCast.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:36:39 CEST 2023 -name=seqGetAlphaCast -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqGetAlphaCast", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqIndexOf2.proof.hidden b/key.core/tacletProofs/seqRules/Taclet_seqIndexOf2.proof.hidden index a76c5c2b36e..4051bd2e324 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqIndexOf2.proof.hidden +++ b/key.core/tacletProofs/seqRules/Taclet_seqIndexOf2.proof.hidden @@ -37,11 +37,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Mon Dec 16 17:26:50 MET 2013 -name=seqIndexOf2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqIndexOf2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "pschmitt" ) (keyVersion "cd4d244ec17586d37f1e609c330df9c3940650fc")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqNPermRight.proof b/key.core/tacletProofs/seqRules/Taclet_seqNPermRight.proof index 391a0c88ff4..71911daf3f7 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqNPermRight.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqNPermRight.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:36:46 CEST 2023 -name=seqNPermRight -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqNPermRight", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqNPermRight.proof.old b/key.core/tacletProofs/seqRules/Taclet_seqNPermRight.proof.old index c6c51cf2133..d39886843e8 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqNPermRight.proof.old +++ b/key.core/tacletProofs/seqRules/Taclet_seqNPermRight.proof.old @@ -39,11 +39,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Fri Feb 13 11:41:30 CET 2015 -name=seqNPermRight -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqNPermRight", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Stijn" ) (keyVersion "5570769721c52ee00aff0bbfe18f32d3baba33db")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqOutsideValue.proof b/key.core/tacletProofs/seqRules/Taclet_seqOutsideValue.proof index 55aa60a3f64..98a6860cdb2 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqOutsideValue.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqOutsideValue.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:36:53 CEST 2023 -name=seqOutsideValue -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqOutsideValue", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqReverseOfSeqEmpty.proof b/key.core/tacletProofs/seqRules/Taclet_seqReverseOfSeqEmpty.proof index 38aa360fd7e..7d89581ffb7 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqReverseOfSeqEmpty.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqReverseOfSeqEmpty.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:37:01 CEST 2023 -name=seqReverseOfSeqEmpty -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqReverseOfSeqEmpty", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqSelfDefinition.proof b/key.core/tacletProofs/seqRules/Taclet_seqSelfDefinition.proof index d8a379e6e3c..3634426c16e 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqSelfDefinition.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqSelfDefinition.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:37:07 CEST 2023 -name=seqSelfDefinition -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqSelfDefinition", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqSelfDefinitionEQ2.proof b/key.core/tacletProofs/seqRules/Taclet_seqSelfDefinitionEQ2.proof index 4386d5b4829..3a69a71e4b0 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqSelfDefinitionEQ2.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqSelfDefinitionEQ2.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:37:15 CEST 2023 -name=seqSelfDefinitionEQ2 -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "seqSelfDefinitionEQ2", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_subSeqComplete.proof b/key.core/tacletProofs/seqRules/Taclet_subSeqComplete.proof index 85fddda76ec..00935a57653 100644 --- a/key.core/tacletProofs/seqRules/Taclet_subSeqComplete.proof +++ b/key.core/tacletProofs/seqRules/Taclet_subSeqComplete.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:37:22 CEST 2023 -name=subSeqComplete -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "subSeqComplete", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_subSeqTailEQL.proof b/key.core/tacletProofs/seqRules/Taclet_subSeqTailEQL.proof index aeb69dfab77..cab71d9fd18 100644 --- a/key.core/tacletProofs/seqRules/Taclet_subSeqTailEQL.proof +++ b/key.core/tacletProofs/seqRules/Taclet_subSeqTailEQL.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:37:29 CEST 2023 -name=subSeqTailEQL -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "subSeqTailEQL", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_subSeqTailEQR.proof b/key.core/tacletProofs/seqRules/Taclet_subSeqTailEQR.proof index 454e114a40a..b489ce82458 100644 --- a/key.core/tacletProofs/seqRules/Taclet_subSeqTailEQR.proof +++ b/key.core/tacletProofs/seqRules/Taclet_subSeqTailEQR.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:37:37 CEST 2023 -name=subSeqTailEQR -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "subSeqTailEQR", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_subSeqTailL.proof b/key.core/tacletProofs/seqRules/Taclet_subSeqTailL.proof index 0cf12ed8967..de59c6eed9a 100644 --- a/key.core/tacletProofs/seqRules/Taclet_subSeqTailL.proof +++ b/key.core/tacletProofs/seqRules/Taclet_subSeqTailL.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:37:44 CEST 2023 -name=subSeqTailL -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "subSeqTailL", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.core/tacletProofs/seqRules/Taclet_subSeqTailR.proof b/key.core/tacletProofs/seqRules/Taclet_subSeqTailR.proof index e5ffddbc57f..6ae05b20ee3 100644 --- a/key.core/tacletProofs/seqRules/Taclet_subSeqTailR.proof +++ b/key.core/tacletProofs/seqRules/Taclet_subSeqTailR.proof @@ -42,11 +42,10 @@ " } -\proofObligation "#Proof Obligation Settings -#Wed Apr 12 13:37:51 CEST 2023 -name=subSeqTailR -class=de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput -"; +\proofObligation { + "name": "subSeqTailR", + "class": "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "80a871ca3bac8bb405ecc216fcb6fa9ef6f8a395")) diff --git a/key.ncore/build.gradle b/key.ncore/build.gradle index ee37e44f2b2..05c37191647 100644 --- a/key.ncore/build.gradle +++ b/key.ncore/build.gradle @@ -13,3 +13,20 @@ dependencies { tasks.withType(Test) { enableAssertions = true } + + +checkerFramework { + if(System.getProperty("ENABLE_NULLNESS")) { + checkers = [ + "org.checkerframework.checker.nullness.NullnessChecker", + ] + extraJavacArgs = [ + "-AonlyDefs=^org\\.key_project\\.logic", + "-Xmaxerrs", "10000", + "-Astubs=$rootDir/key.util/src/main/checkerframework:permit-nullness-assertion-exception.astub", + "-AstubNoWarnIfNotFound", + "-Werror", + "-Aversion", + ] + } +} diff --git a/key.ncore/src/main/java/module-info.java b/key.ncore/src/main/java/module-info.java deleted file mode 100644 index 409c7c0a9b9..00000000000 --- a/key.ncore/src/main/java/module-info.java +++ /dev/null @@ -1,9 +0,0 @@ -module org.key_project.ncore { - requires org.key_project.util; - requires org.jspecify; - - /* requires, exports, uses */ - exports org.key_project.logic; - exports org.key_project.logic.op; - exports org.key_project.logic.sort; -} \ No newline at end of file diff --git a/key.ncore/src/main/java/org/key_project/logic/HasOrigin.java b/key.ncore/src/main/java/org/key_project/logic/HasOrigin.java index 5172b6ade8a..a391aff36ac 100644 --- a/key.ncore/src/main/java/org/key_project/logic/HasOrigin.java +++ b/key.ncore/src/main/java/org/key_project/logic/HasOrigin.java @@ -19,8 +19,7 @@ public interface HasOrigin { *

* This field is set by the parser with [url]:[lineNumber] */ - @Nullable - default String getOrigin() { + default @Nullable String getOrigin() { return null; } } diff --git a/key.ncore/src/main/java/org/key_project/logic/op/AbstractOperator.java b/key.ncore/src/main/java/org/key_project/logic/op/AbstractOperator.java index 257599e8116..c9c4dbdac84 100644 --- a/key.ncore/src/main/java/org/key_project/logic/op/AbstractOperator.java +++ b/key.ncore/src/main/java/org/key_project/logic/op/AbstractOperator.java @@ -8,18 +8,20 @@ import org.key_project.logic.TermCreationException; import org.key_project.util.collection.ImmutableArray; +import org.jspecify.annotations.Nullable; + /** * Abstract operator class offering some common functionality. */ public abstract class AbstractOperator implements Operator { private final Name name; private final int arity; - private final ImmutableArray whereToBind; + private final @Nullable ImmutableArray whereToBind; private final Modifier modifier; - protected AbstractOperator(Name name, int arity, ImmutableArray whereToBind, + protected AbstractOperator(Name name, int arity, + @Nullable ImmutableArray whereToBind, Modifier modifier) { - assert name != null; assert arity >= 0; assert whereToBind == null || whereToBind.size() == arity; this.name = name; @@ -28,7 +30,7 @@ protected AbstractOperator(Name name, int arity, ImmutableArray whereTo this.modifier = modifier; } - protected AbstractOperator(Name name, int arity, ImmutableArray whereToBind, + protected AbstractOperator(Name name, int arity, @Nullable ImmutableArray whereToBind, boolean isRigid) { this(name, arity, whereToBind, isRigid ? Modifier.RIGID : Modifier.NONE); } @@ -41,7 +43,7 @@ protected AbstractOperator(Name name, int arity, boolean isRigid) { this(name, arity, (ImmutableArray) null, isRigid); } - public final ImmutableArray whereToBind() { + public final @Nullable ImmutableArray whereToBind() { return whereToBind; } diff --git a/key.ncore/src/main/java/org/key_project/logic/op/AbstractSortedOperator.java b/key.ncore/src/main/java/org/key_project/logic/op/AbstractSortedOperator.java index d9ebab8f08a..be0b1336331 100644 --- a/key.ncore/src/main/java/org/key_project/logic/op/AbstractSortedOperator.java +++ b/key.ncore/src/main/java/org/key_project/logic/op/AbstractSortedOperator.java @@ -7,27 +7,20 @@ import org.key_project.logic.sort.Sort; import org.key_project.util.collection.ImmutableArray; +import org.jspecify.annotations.Nullable; + /** * Abstract sorted operator class offering some common functionality. */ public abstract class AbstractSortedOperator extends AbstractOperator implements SortedOperator { - private static final ImmutableArray EMPTY_SORT_LIST = new ImmutableArray<>(); - - private static ImmutableArray getEmptySortList() { - return EMPTY_SORT_LIST; - } - private final Sort sort; private final ImmutableArray argSorts; protected AbstractSortedOperator(Name name, ImmutableArray argSorts, Sort sort, - ImmutableArray whereToBind, Modifier modifier) { - super(name, argSorts == null ? 0 : argSorts.size(), whereToBind, modifier); - if (sort == null) { - throw new NullPointerException("Given sort is null"); - } - this.argSorts = argSorts == null ? getEmptySortList() : argSorts; + @Nullable ImmutableArray whereToBind, Modifier modifier) { + super(name, argSorts.size(), whereToBind, modifier); + this.argSorts = argSorts; this.sort = sort; } @@ -47,7 +40,7 @@ protected AbstractSortedOperator(Name name, Sort[] argSorts, Sort sort, Modifier } protected AbstractSortedOperator(Name name, Sort sort, Modifier modifier) { - this(name, (ImmutableArray) null, sort, null, modifier); + this(name, new ImmutableArray<>(), sort, null, modifier); } @Override diff --git a/key.ncore/src/main/java/org/key_project/logic/op/Modality.java b/key.ncore/src/main/java/org/key_project/logic/op/Modality.java index 7f546f03f97..10d40f7a239 100644 --- a/key.ncore/src/main/java/org/key_project/logic/op/Modality.java +++ b/key.ncore/src/main/java/org/key_project/logic/op/Modality.java @@ -10,6 +10,8 @@ import org.key_project.logic.Program; import org.key_project.logic.sort.Sort; +import org.jspecify.annotations.Nullable; + /** * This class is used to represent a dynamic logic modality like diamond and box for a target * language. @@ -60,7 +62,7 @@ public String toString() { } @Override - public boolean equals(Object o) { + public boolean equals(@Nullable Object o) { if (this == o) return true; if (!(o instanceof Kind kind)) diff --git a/key.ncore/src/main/java/org/key_project/logic/op/Modifier.java b/key.ncore/src/main/java/org/key_project/logic/op/Modifier.java index 8c1076b15d9..c68271cb992 100644 --- a/key.ncore/src/main/java/org/key_project/logic/op/Modifier.java +++ b/key.ncore/src/main/java/org/key_project/logic/op/Modifier.java @@ -23,32 +23,37 @@ public class Modifier implements Named { /** * No modifiers. */ - public static final Modifier NONE = new Modifier("none", 0); + public static final Modifier NONE = create("none", 0); /** * A rigid (non-flexible) function. */ - public static final Modifier RIGID = new Modifier("rigid", 1); + public static final Modifier RIGID = create("rigid", 1); /** * A skolem function. */ - public static final Modifier SKOLEM = new Modifier("skolem", 1 << 1); + public static final Modifier SKOLEM = create("skolem", 1 << 1); /** * A unique function. */ - public static final Modifier UNIQUE = new Modifier("unique", 1 << 2); + public static final Modifier UNIQUE = create("unique", 1 << 2); - protected Modifier(String name, int bitMask) { - if (MODIFIERS.containsKey(bitMask)) { + static Modifier create(String name, int bitMask) { + var mod = MODIFIERS.get(bitMask); + if (mod != null) { throw new IllegalArgumentException( - "Modifier with bitmask '" + bitMask + "' already declared with name: " - + MODIFIERS.get(bitMask).name); + "Modifier with bitmask '" + bitMask + "' already declared with name: " + mod.name); } + mod = new Modifier(name, bitMask); + MODIFIERS.put(bitMask, mod); + return mod; + } + + protected Modifier(String name, int bitMask) { this.bitMask = bitMask; this.name = new Name(name); - MODIFIERS.put(bitMask, this); } private Modifier(int bitMask) { @@ -64,7 +69,7 @@ public Name name() { /** * Creates a new combined modifier. * - * @param that The midifier to add to the current one. + * @param that The modifier to add to the current one. * @return A modifier that has all properties of `this` and `that`. */ public Modifier combine(Modifier that) { diff --git a/key.ncore/src/main/java/org/key_project/logic/op/package-info.java b/key.ncore/src/main/java/org/key_project/logic/op/package-info.java new file mode 100644 index 00000000000..b29897a92ad --- /dev/null +++ b/key.ncore/src/main/java/org/key_project/logic/op/package-info.java @@ -0,0 +1,8 @@ +/** + * @author Alexander Weigl + * @version 1 (02.05.24) + */ +@NullMarked +package org.key_project.logic.op; + +import org.jspecify.annotations.NullMarked; diff --git a/key.ncore/src/main/java/org/key_project/logic/package-info.java b/key.ncore/src/main/java/org/key_project/logic/package-info.java new file mode 100644 index 00000000000..e15923094ec --- /dev/null +++ b/key.ncore/src/main/java/org/key_project/logic/package-info.java @@ -0,0 +1,8 @@ +/** + * @author Alexander Weigl + * @version 1 (02.05.24) + */ +@NullMarked +package org.key_project.logic; + +import org.jspecify.annotations.NullMarked; diff --git a/key.ncore/src/main/java/org/key_project/logic/sort/AbstractSort.java b/key.ncore/src/main/java/org/key_project/logic/sort/AbstractSort.java index d776d252baf..c5fcfd7b340 100644 --- a/key.ncore/src/main/java/org/key_project/logic/sort/AbstractSort.java +++ b/key.ncore/src/main/java/org/key_project/logic/sort/AbstractSort.java @@ -19,40 +19,14 @@ public abstract class AbstractSort implements Sort { * Documentation for this sort given by the associated documentation comment. * //@see de.uka.ilkd.key.nparser.KeYParser.One_sort_declContext#doc */ - private String documentation; + private @Nullable String documentation; public AbstractSort(Name name, boolean isAbstract) { this.name = name; this.isAbstract = isAbstract; } - // @Override - // public final ImmutableSet extendsSorts() { - // if (this == Sort.FORMULA || this == Sort.UPDATE || this == Sort.ANY) { - // return DefaultImmutableSet.nil(); - // } else { - // if (ext.isEmpty()) { - // ext = DefaultImmutableSet.nil().add((S)ANY); - // } - // return ext; - // } - // } - - // @Override - // public final boolean extendsTrans(S sort) { - // if (sort == this) { - // return true; - // } else if (this == Sort.FORMULA || this == Sort.UPDATE) { - // return false; - // } else if (sort == Sort.ANY) { - // return true; - // } - // - // return extendsSorts() - // .exists((S superSort) -> superSort == sort || superSort.extendsTrans(sort)); - // } - - public boolean equals(Object o) { + public boolean equals(@Nullable Object o) { if (o instanceof AbstractSort sort) { // TODO: Potential bug should check for sort identity not name equality return sort.name().equals(name()); @@ -84,9 +58,8 @@ public void setDocumentation(@Nullable String documentation) { this.documentation = documentation; } - @Nullable @Override - public String getDocumentation() { + public @Nullable String getDocumentation() { return documentation; } } diff --git a/key.ncore/src/main/java/org/key_project/logic/sort/Sort.java b/key.ncore/src/main/java/org/key_project/logic/sort/Sort.java index 74115ae2146..e1564edfe7d 100644 --- a/key.ncore/src/main/java/org/key_project/logic/sort/Sort.java +++ b/key.ncore/src/main/java/org/key_project/logic/sort/Sort.java @@ -37,6 +37,5 @@ default ImmutableSet extendsSorts(Service * Returns a human explainable text describing this sort. This field is typical set by the * parser, who captures the documentation comments. */ - @Nullable - default String getDocumentation() { return null; } + default @Nullable String getDocumentation() { return null; } } diff --git a/key.ncore/src/main/java/org/key_project/logic/sort/package-info.java b/key.ncore/src/main/java/org/key_project/logic/sort/package-info.java new file mode 100644 index 00000000000..4d6a5c5633a --- /dev/null +++ b/key.ncore/src/main/java/org/key_project/logic/sort/package-info.java @@ -0,0 +1,8 @@ +/** + * @author Alexander Weigl + * @version 1 (02.05.24) + */ +@NullMarked +package org.key_project.logic.sort; + +import org.jspecify.annotations.NullMarked; diff --git a/key.ui/build.gradle b/key.ui/build.gradle index bb8aa485e0a..93edbc44890 100644 --- a/key.ui/build.gradle +++ b/key.ui/build.gradle @@ -23,7 +23,7 @@ dependencies { api 'com.miglayout:miglayout-swing:11.3' //logging implementation used by the slf4j - implementation 'ch.qos.logback:logback-classic:1.5.3' + implementation 'ch.qos.logback:logback-classic:1.5.6' api 'org.key-project:docking-frames-common:1.1.3p1' api 'org.key-project:docking-frames-core:1.1.3p1' diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_no_return_secure(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_no_return_secure(int)).JML operation contract.0.key index 56da85dc6fe..33b988207be 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_no_return_secure(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_no_return_secure(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:33 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:block_no_return_secure(int)].JML operation contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:block_no_return_secure(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::block_no_return_secure(int)].JML operation contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::block_no_return_secure(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_no_return_secure(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_no_return_secure(int)).Non-interference contract.0.key index 4dfbbeb7b6f..8664fa8a26b 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_no_return_secure(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_no_return_secure(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:33 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:block_no_return_secure(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:block_no_return_secure(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::block_no_return_secure(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::block_no_return_secure(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_no_return_secure(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_no_return_secure(int)).Non-interference contract.0.m.key index ac537f90187..ec9e8723af5 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_no_return_secure(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_no_return_secure(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:33 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:block_no_return_secure(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:block_no_return_secure(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::block_no_return_secure(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::block_no_return_secure(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_while_secure(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_while_secure(int)).JML operation contract.0.key index befe9ba49c3..e3736d9a06b 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_while_secure(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_while_secure(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:block_while_secure(int)].JML operation contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:block_while_secure(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::block_while_secure(int)].JML operation contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::block_while_secure(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_while_secure(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_while_secure(int)).Non-interference contract.0.key index 847e8be34ea..95767604094 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_while_secure(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_while_secure(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:block_while_secure(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:block_while_secure(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::block_while_secure(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::block_while_secure(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_while_secure(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_while_secure(int)).Non-interference contract.0.m.key index 78e31d25411..de036635717 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_while_secure(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__block_while_secure(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:block_while_secure(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:block_while_secure(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::block_while_secure(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::block_while_secure(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_1(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_1(int)).JML operation contract.0.key index 8c73f8c421b..26ec3046209 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_1(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_1(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_1(int)].JML operation contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_1(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_1(int)].JML operation contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_1(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_1(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_1(int)).Non-interference contract.0.key index 57e4c1bee75..7f5ff63a558 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_1(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_1(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_1(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_1(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_1(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_1(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_1(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_1(int)).Non-interference contract.0.m.key index 73b23cfc560..9edbbee5ad9 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_1(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_1(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_1(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_1(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_1(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_1(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_3(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_3(int)).JML operation contract.0.key index 80f3b09f46d..a1c2ab492ca 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_3(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_3(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_3(int)].JML operation contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_3(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_3(int)].JML operation contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_3(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_3(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_3(int)).Non-interference contract.0.key index 8ae3817a844..403f6665376 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_3(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_3(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_3(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_3(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_3(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_3(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_3(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_3(int)).Non-interference contract.0.m.key index 0b90db1fec7..17494b1d853 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_3(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_3(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_3(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_3(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_3(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_3(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_4(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_4(int)).JML operation contract.0.key index 2aa2876bef5..cce840f7de7 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_4(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_4(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_4(int)].JML operation contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_4(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_4(int)].JML operation contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_4(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_4(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_4(int)).Non-interference contract.0.key index 3478b7f6dfd..23fe237db36 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_4(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_4(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_4(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_4(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_4(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_4(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_4(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_4(int)).Non-interference contract.0.m.key index 3cdfa7bccd8..cf1e0a104df 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_4(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__insecure_4(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_4(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:insecure_4(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_4(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::insecure_4(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_1(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_1(int)).JML operation contract.0.key index a32292d43e1..763ee756b9f 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_1(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_1(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_1(int)].JML operation contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_1(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_1(int)].JML operation contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_1(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_1(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_1(int)).Non-interference contract.0.key index e40d837548d..cb480f85a43 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_1(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_1(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_1(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_1(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_1(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_1(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_1(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_1(int)).Non-interference contract.0.m.key index 4bd7d7c2149..dbedfab6e1b 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_1(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_1(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_1(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_1(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_1(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_1(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_2(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_2(int)).JML operation contract.0.key index ea33de13e24..e726ff4c343 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_2(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_2(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_2(int)].JML operation contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_2(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_2(int)].JML operation contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_2(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_2(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_2(int)).Non-interference contract.0.key index 4543d241cfe..df8d1147151 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_2(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_2(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_2(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_2(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_2(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_2(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_2(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_2(int)).Non-interference contract.0.m.key index da4edaed6d7..02fa2170bba 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_2(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_2(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_2(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_2(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_2(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_2(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_3(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_3(int)).JML operation contract.0.key index 78fcc8b473f..55823d893e8 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_3(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_3(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_3(int)].JML operation contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_3(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_3(int)].JML operation contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_3(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_3(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_3(int)).Non-interference contract.0.key index 939e7577b06..ea1279da9ff 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_3(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_3(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_3(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_3(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_3(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_3(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_3(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_3(int)).Non-interference contract.0.m.key index 316108b17b7..1ba087042b6 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_3(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_3(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_3(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_3(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_3(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_3(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_4(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_4(int)).JML operation contract.0.key index 82f37dbccf8..a128331cf00 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_4(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_4(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_4(int)].JML operation contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_4(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_4(int)].JML operation contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_4(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_4(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_4(int)).Non-interference contract.0.key index 820a1784cb9..e08a794e8bf 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_4(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_4(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_4(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_4(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_4(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_4(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_4(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_4(int)).Non-interference contract.0.m.key index e337c21865f..62f695a224e 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_4(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_4(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_4(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_4(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_4(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_4(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_5()).JML operation contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_5()).JML operation contract.0.key index 4e1e9937077..9f96f9b3204 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_5()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_5()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:33 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_5()].JML operation contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_5()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_5()].JML operation contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_5()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_5()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_5()).Non-interference contract.0.key index abafe274ce8..1bce1e8c85f 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_5()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_5()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:33 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_5()].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_5()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_5()].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_5()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_5()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_5()).Non-interference contract.0.m.key index a83a6e82dcd..ea5dbe5f3ef 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_5()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_5()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:33 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_5()].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_5()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_5()].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_5()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_6(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_6(int)).JML operation contract.0.key index 14ba69ba60e..78b5073bf98 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_6(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_6(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_6(int)].JML operation contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_6(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_6(int)].JML operation contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_6(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_6(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_6(int)).Non-interference contract.0.key index 174a2921741..abcac33f280 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_6(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_6(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_6(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_6(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_6(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_6(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_6(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_6(int)).Non-interference contract.0.m.key index 56f218f55be..d911c8ec0a1 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_6(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_6(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_6(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_6(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_6(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_6(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_7(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_7(int)).JML operation contract.0.key index ff5965cc9d5..24d014cfc4f 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_7(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_7(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_7(int)].JML operation contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_7(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_7(int)].JML operation contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_7(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_7(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_7(int)).Non-interference contract.0.key index fa797383301..0e397808cef 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_7(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_7(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_7(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_7(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_7(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_7(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_7(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_7(int)).Non-interference contract.0.m.key index 1845738bb84..ea4e7b14104 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_7(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_7(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_7(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_7(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_7(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_7(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_8(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_8(int)).JML operation contract.0.key index 64ecf4fc5a5..70d28dee2ca 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_8(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_8(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_8(int)].JML operation contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_8(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_8(int)].JML operation contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_8(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_8(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_8(int)).Non-interference contract.0.key index e8b571da522..46be0f75fbf 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_8(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_8(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_8(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_8(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_8(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_8(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_8(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_8(int)).Non-interference contract.0.m.key index 2bc6b39947a..eb4af395ed2 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_8(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__secure_8(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_8(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:secure_8(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::secure_8(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::secure_8(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_insecure(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_insecure(int)).JML operation contract.0.key index dffd4126a0e..8382c513996 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_insecure(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_insecure(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:33 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:while_block_insecure(int)].JML operation contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:while_block_insecure(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::while_block_insecure(int)].JML operation contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::while_block_insecure(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_insecure(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_insecure(int)).Non-interference contract.0.key index c7209751b9a..cad8a72f98a 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_insecure(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_insecure(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:33 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:while_block_insecure(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:while_block_insecure(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::while_block_insecure(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::while_block_insecure(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_insecure(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_insecure(int)).Non-interference contract.0.m.key index b480bb18832..59e7b539e0a 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_insecure(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_insecure(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:33 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:while_block_insecure(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:while_block_insecure(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::while_block_insecure(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::while_block_insecure(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_secure(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_secure(int)).JML operation contract.0.key index 1318a54bebf..1d4b23e603d 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_secure(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_secure(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:34 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:while_block_secure(int)].JML operation contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:while_block_secure(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::while_block_secure(int)].JML operation contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::while_block_secure(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_secure(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_secure(int)).Non-interference contract.0.key index 0e8060d159d..4d8c79f7c9d 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_secure(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_secure(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:33 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:while_block_secure(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:while_block_secure(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::while_block_secure(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::while_block_secure(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_secure(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_secure(int)).Non-interference contract.0.m.key index 2cb6473e4d6..43d27804246 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_secure(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFBlockExamples(contract.IFBlockExamples__while_block_secure(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:33 CEST 2014 -name=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:while_block_secure(int)].Non-interference contract.0 -contract=contract.IFBlockExamples[contract.IFBlockExamples\\:\\:while_block_secure(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFBlockExamples[contract.IFBlockExamples::while_block_secure(int)].Non-interference contract.0", + "contract": "contract.IFBlockExamples[contract.IFBlockExamples::while_block_secure(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithBlockContract()).JML operation contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithBlockContract()).JML operation contract.0.key index 8fc16da7cf8..b355d210543 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithBlockContract()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithBlockContract()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFEfficiencyExamples[contract.IFEfficiencyExamples\\:\\:mWithBlockContract()].JML operation contract.0 -contract=contract.IFEfficiencyExamples[contract.IFEfficiencyExamples\\:\\:mWithBlockContract()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFEfficiencyExamples[contract.IFEfficiencyExamples::mWithBlockContract()].JML operation contract.0", + "contract": "contract.IFEfficiencyExamples[contract.IFEfficiencyExamples::mWithBlockContract()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithBlockContract()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithBlockContract()).Non-interference contract.0.key index 674795158ed..d068d38d9f1 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithBlockContract()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithBlockContract()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFEfficiencyExamples[contract.IFEfficiencyExamples\\:\\:mWithBlockContract()].Non-interference contract.0 -contract=contract.IFEfficiencyExamples[contract.IFEfficiencyExamples\\:\\:mWithBlockContract()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFEfficiencyExamples[contract.IFEfficiencyExamples::mWithBlockContract()].Non-interference contract.0", + "contract": "contract.IFEfficiencyExamples[contract.IFEfficiencyExamples::mWithBlockContract()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithBlockContract()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithBlockContract()).Non-interference contract.0.m.key index 55659cac9a6..3febc9e9c3b 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithBlockContract()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithBlockContract()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFEfficiencyExamples[contract.IFEfficiencyExamples\\:\\:mWithBlockContract()].Non-interference contract.0 -contract=contract.IFEfficiencyExamples[contract.IFEfficiencyExamples\\:\\:mWithBlockContract()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFEfficiencyExamples[contract.IFEfficiencyExamples::mWithBlockContract()].Non-interference contract.0", + "contract": "contract.IFEfficiencyExamples[contract.IFEfficiencyExamples::mWithBlockContract()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithoutBlockContract()).JML operation contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithoutBlockContract()).JML operation contract.0.key index a5968c35f5b..f48eccf930f 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithoutBlockContract()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithoutBlockContract()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFEfficiencyExamples[contract.IFEfficiencyExamples\\:\\:mWithoutBlockContract()].JML operation contract.0 -contract=contract.IFEfficiencyExamples[contract.IFEfficiencyExamples\\:\\:mWithoutBlockContract()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFEfficiencyExamples[contract.IFEfficiencyExamples::mWithoutBlockContract()].JML operation contract.0", + "contract": "contract.IFEfficiencyExamples[contract.IFEfficiencyExamples::mWithoutBlockContract()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithoutBlockContract()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithoutBlockContract()).Non-interference contract.0.key index a60c80f7f64..805b6ff9637 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithoutBlockContract()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithoutBlockContract()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFEfficiencyExamples[contract.IFEfficiencyExamples\\:\\:mWithoutBlockContract()].Non-interference contract.0 -contract=contract.IFEfficiencyExamples[contract.IFEfficiencyExamples\\:\\:mWithoutBlockContract()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFEfficiencyExamples[contract.IFEfficiencyExamples::mWithoutBlockContract()].Non-interference contract.0", + "contract": "contract.IFEfficiencyExamples[contract.IFEfficiencyExamples::mWithoutBlockContract()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithoutBlockContract()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithoutBlockContract()).Non-interference contract.0.m.key index 821010b57f5..9bbd9de88e1 100644 --- a/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithoutBlockContract()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/BlockContracts/contract.IFEfficiencyExamples(contract.IFEfficiencyExamples__mWithoutBlockContract()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFEfficiencyExamples[contract.IFEfficiencyExamples\\:\\:mWithoutBlockContract()].Non-interference contract.0 -contract=contract.IFEfficiencyExamples[contract.IFEfficiencyExamples\\:\\:mWithoutBlockContract()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFEfficiencyExamples[contract.IFEfficiencyExamples::mWithoutBlockContract()].Non-interference contract.0", + "contract": "contract.IFEfficiencyExamples[contract.IFEfficiencyExamples::mWithoutBlockContract()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ConditionalConfidential/CCExample(CCExample__getConfidentialData(CCExample.User)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ConditionalConfidential/CCExample(CCExample__getConfidentialData(CCExample.User)).JML normal_behavior operation contract.0.key index 6c230e6c1ed..78a16cad09d 100644 --- a/key.ui/examples/InformationFlow/ConditionalConfidential/CCExample(CCExample__getConfidentialData(CCExample.User)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ConditionalConfidential/CCExample(CCExample__getConfidentialData(CCExample.User)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:40 CEST 2014 -name=ConditionalConfidentialExample[ConditionalConfidentialExample\\:\\:getConfidentialData(ConditionalConfidentialExample.User)].JML normal_behavior operation contract.0 -contract=ConditionalConfidentialExample[ConditionalConfidentialExample\\:\\:getConfidentialData(ConditionalConfidentialExample.User)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ConditionalConfidentialExample[ConditionalConfidentialExample::getConfidentialData(ConditionalConfidentialExample.User)].JML normal_behavior operation contract.0", + "contract": "ConditionalConfidentialExample[ConditionalConfidentialExample::getConfidentialData(ConditionalConfidentialExample.User)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ConditionalConfidential/CCExample(CCExample__getConfidentialData(CCExample.User)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ConditionalConfidential/CCExample(CCExample__getConfidentialData(CCExample.User)).Non-interference contract.0.key index df70748c726..a33fa16028f 100644 --- a/key.ui/examples/InformationFlow/ConditionalConfidential/CCExample(CCExample__getConfidentialData(CCExample.User)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ConditionalConfidential/CCExample(CCExample__getConfidentialData(CCExample.User)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:40 CEST 2014 -name=ConditionalConfidentialExample[ConditionalConfidentialExample\\:\\:getConfidentialData(ConditionalConfidentialExample.User)].Non-interference contract.0 -contract=ConditionalConfidentialExample[ConditionalConfidentialExample\\:\\:getConfidentialData(ConditionalConfidentialExample.User)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "ConditionalConfidentialExample[ConditionalConfidentialExample::getConfidentialData(ConditionalConfidentialExample.User)].Non-interference contract.0", + "contract": "ConditionalConfidentialExample[ConditionalConfidentialExample::getConfidentialData(ConditionalConfidentialExample.User)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ConditionalConfidential/CCExample(CCExample__getConfidentialData(CCExample.User)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ConditionalConfidential/CCExample(CCExample__getConfidentialData(CCExample.User)).Non-interference contract.0.m.key index c314b4c1864..52c5ea7f8c8 100644 --- a/key.ui/examples/InformationFlow/ConditionalConfidential/CCExample(CCExample__getConfidentialData(CCExample.User)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ConditionalConfidential/CCExample(CCExample__getConfidentialData(CCExample.User)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:40 CEST 2014 -name=ConditionalConfidentialExample[ConditionalConfidentialExample\\:\\:getConfidentialData(ConditionalConfidentialExample.User)].Non-interference contract.0 -contract=ConditionalConfidentialExample[ConditionalConfidentialExample\\:\\:getConfidentialData(ConditionalConfidentialExample.User)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "ConditionalConfidentialExample[ConditionalConfidentialExample::getConfidentialData(ConditionalConfidentialExample.User)].Non-interference contract.0", + "contract": "ConditionalConfidentialExample[ConditionalConfidentialExample::getConfidentialData(ConditionalConfidentialExample.User)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ConditionalConfidential/CCExample(CCExample__hasAccessRight(CCExample.User)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ConditionalConfidential/CCExample(CCExample__hasAccessRight(CCExample.User)).JML normal_behavior operation contract.0.key index 35a662b8ee6..efdd13b1447 100644 --- a/key.ui/examples/InformationFlow/ConditionalConfidential/CCExample(CCExample__hasAccessRight(CCExample.User)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ConditionalConfidential/CCExample(CCExample__hasAccessRight(CCExample.User)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:40 CEST 2014 -name=ConditionalConfidentialExample[ConditionalConfidentialExample\\:\\:hasAccessRight(ConditionalConfidentialExample.User)].JML normal_behavior operation contract.0 -contract=ConditionalConfidentialExample[ConditionalConfidentialExample\\:\\:hasAccessRight(ConditionalConfidentialExample.User)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ConditionalConfidentialExample[ConditionalConfidentialExample::hasAccessRight(ConditionalConfidentialExample.User)].JML normal_behavior operation contract.0", + "contract": "ConditionalConfidentialExample[ConditionalConfidentialExample::hasAccessRight(ConditionalConfidentialExample.User)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__hammer(int)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__hammer(int)).JML normal_behavior operation contract.0.key index a875b19decc..6648bd535c5 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__hammer(int)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__hammer(int)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:hammer(int)].JML normal_behavior operation contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:hammer(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::hammer(int)].JML normal_behavior operation contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::hammer(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__hammer(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__hammer(int)).Non-interference contract.0.key index 800ab930e73..b77607475bd 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__hammer(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__hammer(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:hammer(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:hammer(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::hammer(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::hammer(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__hammer(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__hammer(int)).Non-interference contract.0.m.key index 8646f4e7f5c..921349fd087 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__hammer(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__hammer(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:hammer(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:hammer(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::hammer(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::hammer(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile(int)).JML operation contract.0.key index 4bf9cd36de6..b47345c4136 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_doubleNestedWhile(int)].JML operation contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_doubleNestedWhile(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_doubleNestedWhile(int)].JML operation contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_doubleNestedWhile(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile(int)).Non-interference contract.0.key index 06fab0e98ce..3ba9e760ae6 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_doubleNestedWhile(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_doubleNestedWhile(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_doubleNestedWhile(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_doubleNestedWhile(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile(int)).Non-interference contract.0.m.key index e5dd0aa0e73..6264db4d1db 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_doubleNestedWhile(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_doubleNestedWhile(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_doubleNestedWhile(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_doubleNestedWhile(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile2(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile2(int)).JML operation contract.0.key index 4db160145ba..3738f3ad4ae 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile2(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile2(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_doubleNestedWhile2(int)].JML operation contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_doubleNestedWhile2(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_doubleNestedWhile2(int)].JML operation contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_doubleNestedWhile2(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile2(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile2(int)).Non-interference contract.0.key index 1cd3adeb8f1..082b4c65b1f 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile2(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile2(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:58 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_doubleNestedWhile2(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_doubleNestedWhile2(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_doubleNestedWhile2(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_doubleNestedWhile2(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile2(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile2(int)).Non-interference contract.0.m.key index da355cf22ce..bd49a74f97f 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile2(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_doubleNestedWhile2(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:58 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_doubleNestedWhile2(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_doubleNestedWhile2(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_doubleNestedWhile2(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_doubleNestedWhile2(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile(int)).JML operation contract.0.key index 4cb4722a564..33eeb30cac7 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_twoWhile(int)].JML operation contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_twoWhile(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_twoWhile(int)].JML operation contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_twoWhile(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile(int)).Non-interference contract.0.key index 4b29db9709f..ee15056603e 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_twoWhile(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_twoWhile(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_twoWhile(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_twoWhile(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile(int)).Non-interference contract.0.m.key index 841534a1e4a..62a61dd5d76 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_twoWhile(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_twoWhile(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_twoWhile(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_twoWhile(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile_2(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile_2(int)).JML operation contract.0.key index fa8b7c7ee3f..351a4f66640 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile_2(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile_2(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_twoWhile_2(int)].JML operation contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_twoWhile_2(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_twoWhile_2(int)].JML operation contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_twoWhile_2(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile_2(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile_2(int)).Non-interference contract.0.key index 402d0d62830..509a00a97ad 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile_2(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile_2(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_twoWhile_2(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_twoWhile_2(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_twoWhile_2(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_twoWhile_2(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile_2(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile_2(int)).Non-interference contract.0.m.key index 0596261c052..593a8b81a4a 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile_2(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_twoWhile_2(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_twoWhile_2(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_twoWhile_2(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_twoWhile_2(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_twoWhile_2(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_while_3(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_while_3(int)).JML operation contract.0.key index ed05acbcd22..6078191b126 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_while_3(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_while_3(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:58 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_while_3(int)].JML operation contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_while_3(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_while_3(int)].JML operation contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_while_3(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_while_3(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_while_3(int)).Non-interference contract.0.key index 6999ea0871d..b5400ef49c8 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_while_3(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_while_3(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:58 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_while_3(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_while_3(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_while_3(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_while_3(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_while_3(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_while_3(int)).Non-interference contract.0.m.key index 7046423f99f..d5aace00ec6 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_while_3(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__insecure_while_3(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:58 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_while_3(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:insecure_while_3(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_while_3(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::insecure_while_3(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__loc_secure_while(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__loc_secure_while(int)).JML operation contract.0.key index 6604a24fd52..6cd5cbd64db 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__loc_secure_while(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__loc_secure_while(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:loc_secure_while(int)].JML operation contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:loc_secure_while(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::loc_secure_while(int)].JML operation contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::loc_secure_while(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__loc_secure_while(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__loc_secure_while(int)).Non-interference contract.0.key index 13e5614b859..fdab6dff7d1 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__loc_secure_while(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__loc_secure_while(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:loc_secure_while(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:loc_secure_while(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::loc_secure_while(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::loc_secure_while(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__loc_secure_while(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__loc_secure_while(int)).Non-interference contract.0.m.key index 822c36d8059..7be03e546d5 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__loc_secure_while(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__loc_secure_while(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:loc_secure_while(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:loc_secure_while(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::loc_secure_while(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::loc_secure_while(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while(int)).JML operation contract.0.key index b6890ffae8f..96dd67b1bf8 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:notSecure_while(int)].JML operation contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:notSecure_while(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::notSecure_while(int)].JML operation contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::notSecure_while(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while(int)).Non-interference contract.0.key index f96eeda194d..fe7379c999c 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:notSecure_while(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:notSecure_while(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::notSecure_while(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::notSecure_while(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while(int)).Non-interference contract.0.m.key index a4082f59adc..a157548cab6 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:notSecure_while(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:notSecure_while(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::notSecure_while(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::notSecure_while(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while_wrongInv(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while_wrongInv(int)).JML operation contract.0.key index 1324b18e155..2f9af8349c8 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while_wrongInv(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while_wrongInv(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:notSecure_while_wrongInv(int)].JML operation contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:notSecure_while_wrongInv(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::notSecure_while_wrongInv(int)].JML operation contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::notSecure_while_wrongInv(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while_wrongInv(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while_wrongInv(int)).Non-interference contract.0.key index 75484c727ee..4b62f06c41d 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while_wrongInv(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while_wrongInv(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:notSecure_while_wrongInv(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:notSecure_while_wrongInv(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::notSecure_while_wrongInv(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::notSecure_while_wrongInv(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while_wrongInv(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while_wrongInv(int)).Non-interference contract.0.m.key index 48a7a2217a6..e5bc8605cbb 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while_wrongInv(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__notSecure_while_wrongInv(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:notSecure_while_wrongInv(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:notSecure_while_wrongInv(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::notSecure_while_wrongInv(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::notSecure_while_wrongInv(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__print(int)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__print(int)).JML normal_behavior operation contract.0.key index 7aba55491f5..4ee40db8e9d 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__print(int)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__print(int)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:print(int)].JML normal_behavior operation contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:print(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::print(int)].JML normal_behavior operation contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::print(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__print(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__print(int)).Non-interference contract.0.key index d7c8a1c4986..0827f7596ae 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__print(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__print(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:print(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:print(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::print(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::print(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__print(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__print(int)).Non-interference contract.0.m.key index 70f8aee1555..8981e9c89ec 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__print(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__print(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:print(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:print(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::print(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::print(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_doubleNestedWhile(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_doubleNestedWhile(int)).JML operation contract.0.key index ccb0500e2b3..a4818b725be 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_doubleNestedWhile(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_doubleNestedWhile(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_doubleNestedWhile(int)].JML operation contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_doubleNestedWhile(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_doubleNestedWhile(int)].JML operation contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_doubleNestedWhile(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_doubleNestedWhile(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_doubleNestedWhile(int)).Non-interference contract.0.key index c6cdcae56ac..774da3cbb73 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_doubleNestedWhile(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_doubleNestedWhile(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_doubleNestedWhile(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_doubleNestedWhile(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_doubleNestedWhile(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_doubleNestedWhile(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_doubleNestedWhile(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_doubleNestedWhile(int)).Non-interference contract.0.m.key index 32b00917372..bf2422f7d27 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_doubleNestedWhile(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_doubleNestedWhile(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_doubleNestedWhile(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_doubleNestedWhile(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_doubleNestedWhile(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_doubleNestedWhile(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedTwoWhile(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedTwoWhile(int)).JML operation contract.0.key index 028b796ff50..4739e072a6b 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedTwoWhile(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedTwoWhile(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_nestedTwoWhile(int)].JML operation contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_nestedTwoWhile(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_nestedTwoWhile(int)].JML operation contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_nestedTwoWhile(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedTwoWhile(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedTwoWhile(int)).Non-interference contract.0.key index 0cc5357d529..836758d32b9 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedTwoWhile(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedTwoWhile(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_nestedTwoWhile(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_nestedTwoWhile(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_nestedTwoWhile(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_nestedTwoWhile(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedTwoWhile(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedTwoWhile(int)).Non-interference contract.0.m.key index 628f088d722..ea7c8639f1b 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedTwoWhile(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedTwoWhile(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_nestedTwoWhile(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_nestedTwoWhile(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_nestedTwoWhile(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_nestedTwoWhile(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedWhile(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedWhile(int)).JML operation contract.0.key index 80ce0492d22..4a4beb92ef9 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedWhile(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedWhile(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_nestedWhile(int)].JML operation contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_nestedWhile(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_nestedWhile(int)].JML operation contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_nestedWhile(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedWhile(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedWhile(int)).Non-interference contract.0.key index 9e46fe9b32f..d71fb971463 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedWhile(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedWhile(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_nestedWhile(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_nestedWhile(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_nestedWhile(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_nestedWhile(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedWhile(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedWhile(int)).Non-interference contract.0.m.key index db2ff5e3cd0..80dd2515d87 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedWhile(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_nestedWhile(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:59 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_nestedWhile(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_nestedWhile(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_nestedWhile(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_nestedWhile(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_twoWhile(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_twoWhile(int)).JML operation contract.0.key index 855d25cd10e..5c1dbdd3703 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_twoWhile(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_twoWhile(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_twoWhile(int)].JML operation contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_twoWhile(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_twoWhile(int)].JML operation contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_twoWhile(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_twoWhile(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_twoWhile(int)).Non-interference contract.0.key index 1b0dd118b7e..bfce6151942 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_twoWhile(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_twoWhile(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_twoWhile(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_twoWhile(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_twoWhile(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_twoWhile(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_twoWhile(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_twoWhile(int)).Non-interference contract.0.m.key index 1fce16e0825..fa6ba686183 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_twoWhile(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_twoWhile(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_twoWhile(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_twoWhile(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_twoWhile(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_twoWhile(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while(int)).JML operation contract.0.key index 0c8dfb06ba4..ca3d0e0083f 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while(int)].JML operation contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while(int)].JML operation contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while(int)).Non-interference contract.0.key index 85eb575b231..afad5925266 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while(int)).Non-interference contract.0.m.key index c1d31e8df5b..fa41fbd228b 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:00 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_2(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_2(int)).JML operation contract.0.key index 5a4116b17f7..6403ca679dd 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_2(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_2(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:58 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while_2(int)].JML operation contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while_2(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while_2(int)].JML operation contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while_2(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_2(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_2(int)).Non-interference contract.0.key index ed847fa0f09..8b8e158677b 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_2(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_2(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:58 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while_2(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while_2(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while_2(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while_2(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_2(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_2(int)).Non-interference contract.0.m.key index c631e10bf7a..a58c0613971 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_2(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_2(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:58 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while_2(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while_2(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while_2(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while_2(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_4(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_4(int)).JML operation contract.0.key index eed2f46be5f..6d85d13ab15 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_4(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_4(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:58 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while_4(int)].JML operation contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while_4(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while_4(int)].JML operation contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while_4(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_4(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_4(int)).Non-interference contract.0.key index f46b1d04aad..2d9322c1168 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_4(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_4(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:58 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while_4(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while_4(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while_4(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while_4(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_4(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_4(int)).Non-interference contract.0.m.key index 9bc45c9f1ad..f145a8ddb00 100644 --- a/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_4(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/LoopInvariants/loop.IFLoopExamples(loop.IFLoopExamples__secure_while_4(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/loop"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:58 CEST 2014 -name=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while_4(int)].Non-interference contract.0 -contract=loop.IFLoopExamples[loop.IFLoopExamples\\:\\:secure_while_4(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while_4(int)].Non-interference contract.0", + "contract": "loop.IFLoopExamples[loop.IFLoopExamples::secure_while_4(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_assignment_n2()).JML operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_assignment_n2()).JML operation contract.0.key index ddef436a0a3..26e5428ce5f 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_assignment_n2()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_assignment_n2()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:insecure_assignment_n2()].JML operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:insecure_assignment_n2()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::insecure_assignment_n2()].JML operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::insecure_assignment_n2()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_assignment_n2()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_assignment_n2()).Non-interference contract.0.key index 109efda7e02..ab3725711ed 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_assignment_n2()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_assignment_n2()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:insecure_assignment_n2()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:insecure_assignment_n2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::insecure_assignment_n2()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::insecure_assignment_n2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_assignment_n2()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_assignment_n2()).Non-interference contract.0.m.key index 3d3c4fa8854..f2a8e07f624 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_assignment_n2()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_assignment_n2()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:insecure_assignment_n2()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:insecure_assignment_n2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::insecure_assignment_n2()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::insecure_assignment_n2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_if_high_n5_n1()).JML operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_if_high_n5_n1()).JML operation contract.0.key index 26d5936c62e..9d421a89aab 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_if_high_n5_n1()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_if_high_n5_n1()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:insecure_if_high_n5_n1()].JML operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:insecure_if_high_n5_n1()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::insecure_if_high_n5_n1()].JML operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::insecure_if_high_n5_n1()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_if_high_n5_n1()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_if_high_n5_n1()).Non-interference contract.0.key index 9a803cf0ae3..ab1dea0c197 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_if_high_n5_n1()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_if_high_n5_n1()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:insecure_if_high_n5_n1()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:insecure_if_high_n5_n1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::insecure_if_high_n5_n1()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::insecure_if_high_n5_n1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_if_high_n5_n1()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_if_high_n5_n1()).Non-interference contract.0.m.key index 857539d3cb1..7caaafe5c0c 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_if_high_n5_n1()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__insecure_if_high_n5_n1()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:insecure_if_high_n5_n1()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:insecure_if_high_n5_n1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::insecure_if_high_n5_n1()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::insecure_if_high_n5_n1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n1()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n1()).JML normal_behavior operation contract.0.key index 85e9a20749b..a5adb94a4f1 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n1()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n1()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:38 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n1()].JML normal_behavior operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n1()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n1()].JML normal_behavior operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n1()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n1()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n1()).Non-interference contract.0.key index 8a804d2db22..0f79150303d 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n1()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n1()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:38 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n1()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n1()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n1()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n1()).Non-interference contract.0.m.key index 7c5c9780c33..45a06bca300 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n1()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n1()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:38 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n1()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n1()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n2()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n2()).JML normal_behavior operation contract.0.key index 42834875c88..9ab82d2d30f 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n2()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n2()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n2()].JML normal_behavior operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n2()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n2()].JML normal_behavior operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n2()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n2()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n2()).Non-interference contract.0.key index 16da8b76fe4..9caa510ea46 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n2()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n2()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n2()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n2()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n2()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n2()).Non-interference contract.0.m.key index a86ee596da8..1824f85cb16 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n2()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n2()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n2()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n2()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n3()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n3()).JML normal_behavior operation contract.0.key index 7c16caf9ca9..3c7e2609eb6 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n3()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n3()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n3()].JML normal_behavior operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n3()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n3()].JML normal_behavior operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n3()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n3()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n3()).Non-interference contract.0.key index f592168d940..ebfb981d18b 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n3()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n3()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n3()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n3()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n3()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n3()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n3()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n3()).Non-interference contract.0.m.key index e807a9651b4..165669350fd 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n3()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n3()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n3()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n3()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n3()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n3()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n4()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n4()).JML normal_behavior operation contract.0.key index b8ae782bd2c..3933d466515 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n4()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n4()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n4()].JML normal_behavior operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n4()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n4()].JML normal_behavior operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n4()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n4()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n4()).Non-interference contract.0.key index 8cb65c10fa2..47cb2555b60 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n4()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n4()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n4()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n4()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n4()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n4()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n4()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n4()).Non-interference contract.0.m.key index 5c5d811858f..927f1d2a85c 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n4()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n4()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n4()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n4()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n4()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n4()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n5(int)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n5(int)).JML normal_behavior operation contract.0.key index 80e2102d485..a95b9b8bb9a 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n5(int)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n5(int)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n5(int)].JML normal_behavior operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n5(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n5(int)].JML normal_behavior operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n5(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n5(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n5(int)).Non-interference contract.0.key index 92cb4b1730e..cf5b376c8d6 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n5(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n5(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n5(int)].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n5(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n5(int)].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n5(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n5(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n5(int)).Non-interference contract.0.m.key index 252428da078..b19561af07f 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n5(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n5(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n5(int)].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n5(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n5(int)].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n5(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n6()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n6()).JML normal_behavior operation contract.0.key index 61e649930f5..4cf08066fa7 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n6()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n6()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n6()].JML normal_behavior operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n6()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n6()].JML normal_behavior operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n6()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n6()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n6()).Non-interference contract.0.key index 12570b589e7..b6cd8d0c1e9 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n6()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n6()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n6()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n6()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n6()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n6()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n6()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n6()).Non-interference contract.0.m.key index 6587b71c2f7..d8df2e99218 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n6()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n6()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n6()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n6()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n6()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n6()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n9()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n9()).JML normal_behavior operation contract.0.key index 4c993221e30..a0ac21240db 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n9()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__n9()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:n9()].JML normal_behavior operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:n9()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::n9()].JML normal_behavior operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::n9()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_array_param((I,int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_array_param((I,int)).JML operation contract.0.key index a100e844af2..c486c116d46 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_array_param((I,int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_array_param((I,int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_array_param([I,int)].JML operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_array_param([I,int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_array_param([I,int)].JML operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_array_param([I,int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_array_param((I,int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_array_param((I,int)).Non-interference contract.0.key index 4fe8e0f513b..6fe6525ecb0 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_array_param((I,int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_array_param((I,int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_array_param([I,int)].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_array_param([I,int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_array_param([I,int)].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_array_param([I,int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_array_param((I,int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_array_param((I,int)).Non-interference contract.0.m.key index 8ebb0179d35..acd77cc8f4c 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_array_param((I,int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_array_param((I,int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_array_param([I,int)].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_array_param([I,int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_array_param([I,int)].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_array_param([I,int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_array_param_helper()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_array_param_helper()).JML normal_behavior operation contract.0.key index bd62605f86d..496a6d3455f 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_array_param_helper()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_array_param_helper()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_array_param_helper()].JML normal_behavior operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_array_param_helper()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_array_param_helper()].JML normal_behavior operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_array_param_helper()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignment_0_n9()).JML operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignment_0_n9()).JML operation contract.0.key index 6356342cb86..cf60b017a4d 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignment_0_n9()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignment_0_n9()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_assignment_0_n9()].JML operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_assignment_0_n9()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_assignment_0_n9()].JML operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_assignment_0_n9()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignment_0_n9()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignment_0_n9()).Non-interference contract.0.key index 04fb9a5dc4d..1a47922d8b9 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignment_0_n9()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignment_0_n9()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_assignment_0_n9()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_assignment_0_n9()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_assignment_0_n9()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_assignment_0_n9()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignment_0_n9()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignment_0_n9()).Non-interference contract.0.m.key index bf244dfcc9c..63459767189 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignment_0_n9()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignment_0_n9()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_assignment_0_n9()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_assignment_0_n9()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_assignment_0_n9()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_assignment_0_n9()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignments_n2()).JML operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignments_n2()).JML operation contract.0.key index ae8bebd996c..90e4eccb083 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignments_n2()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignments_n2()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_assignments_n2()].JML operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_assignments_n2()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_assignments_n2()].JML operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_assignments_n2()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignments_n2()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignments_n2()).Non-interference contract.0.key index d6eab728182..a9448798ba6 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignments_n2()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignments_n2()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_assignments_n2()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_assignments_n2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_assignments_n2()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_assignments_n2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignments_n2()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignments_n2()).Non-interference contract.0.m.key index 3546d9f936b..91b45a73f11 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignments_n2()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_assignments_n2()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_assignments_n2()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_assignments_n2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_assignments_n2()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_assignments_n2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_catch_exception()).JML operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_catch_exception()).JML operation contract.0.key index ea40c0cb8d8..10d26df4520 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_catch_exception()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_catch_exception()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_catch_exception()].JML operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_catch_exception()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_catch_exception()].JML operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_catch_exception()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_catch_exception()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_catch_exception()).Non-interference contract.0.key index c13f4050206..e76dd61d054 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_catch_exception()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_catch_exception()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_catch_exception()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_catch_exception()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_catch_exception()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_catch_exception()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_catch_exception()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_catch_exception()).Non-interference contract.0.m.key index d747ddd17cc..9e02c670775 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_catch_exception()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_catch_exception()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_catch_exception()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_catch_exception()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_catch_exception()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_catch_exception()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n1()).JML operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n1()).JML operation contract.0.key index e7c81257a6b..45980cc962c 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n1()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n1()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_if_high_n1()].JML operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_if_high_n1()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_if_high_n1()].JML operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_if_high_n1()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n1()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n1()).Non-interference contract.0.key index b177753c521..4bc24507475 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n1()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n1()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_if_high_n1()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_if_high_n1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_if_high_n1()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_if_high_n1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n1()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n1()).Non-interference contract.0.m.key index dbbff8e2d31..e37e5f6b4ea 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n1()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n1()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_if_high_n1()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_if_high_n1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_if_high_n1()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_if_high_n1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n5_n1()).JML operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n5_n1()).JML operation contract.0.key index 96424fc907f..a2f95e93f02 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n5_n1()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n5_n1()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_if_high_n5_n1()].JML operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_if_high_n5_n1()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_if_high_n5_n1()].JML operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_if_high_n5_n1()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n5_n1()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n5_n1()).Non-interference contract.0.key index 5eb20c27a96..71b022dff9b 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n5_n1()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n5_n1()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_if_high_n5_n1()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_if_high_n5_n1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_if_high_n5_n1()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_if_high_n5_n1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n5_n1()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n5_n1()).Non-interference contract.0.m.key index f9aa748eab3..2ba5d6a43d0 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n5_n1()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_if_high_n5_n1()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_if_high_n5_n1()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_if_high_n5_n1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_if_high_n5_n1()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_if_high_n5_n1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n5()).JML operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n5()).JML operation contract.0.key index ed378a3abe6..4448a001064 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n5()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n5()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_n5()].JML operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_n5()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_n5()].JML operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_n5()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n5()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n5()).Non-interference contract.0.key index 392cb7c5cbb..b7078637da9 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n5()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n5()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_n5()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_n5()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_n5()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_n5()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n5()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n5()).Non-interference contract.0.m.key index d029f3817f2..f6937b84ac8 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n5()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n5()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_n5()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_n5()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_n5()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_n5()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n6()).JML operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n6()).JML operation contract.0.key index 22f30d72a5e..07fd03fb994 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n6()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n6()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_n6()].JML operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_n6()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_n6()].JML operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_n6()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n6()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n6()).Non-interference contract.0.key index 0b518d70c8a..467ddf320e3 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n6()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n6()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_n6()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_n6()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_n6()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_n6()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n6()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n6()).Non-interference contract.0.m.key index 13882016d86..fd2ff30e513 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n6()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_n6()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_n6()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_n6()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_n6()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_n6()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion(int)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion(int)).JML normal_behavior operation contract.0.key index 98d72211aad..4768089a291 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion(int)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion(int)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_recursion(int)].JML normal_behavior operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_recursion(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_recursion(int)].JML normal_behavior operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_recursion(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion(int)).Non-interference contract.0.key index 7bc8c68e3bc..c84862c69a6 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_recursion(int)].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_recursion(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_recursion(int)].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_recursion(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion(int)).Non-interference contract.0.m.key index 8ebbd665532..02a9f37aab4 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_recursion(int)].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_recursion(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_recursion(int)].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_recursion(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion_2((I,int)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion_2((I,int)).JML normal_behavior operation contract.0.key index 3d9a86d3c80..aada6d721e7 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion_2((I,int)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion_2((I,int)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:36 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_recursion_2([I,int)].JML normal_behavior operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_recursion_2([I,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_recursion_2([I,int)].JML normal_behavior operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_recursion_2([I,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion_2((I,int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion_2((I,int)).Non-interference contract.0.key index 18174d036bc..2f5eedf5d35 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion_2((I,int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion_2((I,int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_recursion_2([I,int)].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_recursion_2([I,int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_recursion_2([I,int)].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_recursion_2([I,int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion_2((I,int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion_2((I,int)).Non-interference contract.0.m.key index 2361c268ebd..c8cb49b495f 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion_2((I,int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_recursion_2((I,int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:35 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_recursion_2([I,int)].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_recursion_2([I,int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_recursion_2([I,int)].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_recursion_2([I,int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n1_n2()).JML operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n1_n2()).JML operation contract.0.key index 66889f5d5c3..b09ab202ae2 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n1_n2()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n1_n2()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:38 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_sequential_n1_n2()].JML operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_sequential_n1_n2()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_sequential_n1_n2()].JML operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_sequential_n1_n2()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n1_n2()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n1_n2()).Non-interference contract.0.key index fb3b3c44bb7..9494d2038e1 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n1_n2()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n1_n2()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:38 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_sequential_n1_n2()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_sequential_n1_n2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_sequential_n1_n2()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_sequential_n1_n2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n1_n2()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n1_n2()).Non-interference contract.0.m.key index 4a2182e4dd9..dc386419536 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n1_n2()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n1_n2()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:38 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_sequential_n1_n2()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_sequential_n1_n2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_sequential_n1_n2()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_sequential_n1_n2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n3_precond_n4()).JML operation contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n3_precond_n4()).JML operation contract.0.key index 731abbc2316..34fde1d6cbe 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n3_precond_n4()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n3_precond_n4()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_sequential_n3_precond_n4()].JML operation contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_sequential_n3_precond_n4()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_sequential_n3_precond_n4()].JML operation contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_sequential_n3_precond_n4()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n3_precond_n4()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n3_precond_n4()).Non-interference contract.0.key index 2dc2ef93295..7564ca6716b 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n3_precond_n4()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n3_precond_n4()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_sequential_n3_precond_n4()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_sequential_n3_precond_n4()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_sequential_n3_precond_n4()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_sequential_n3_precond_n4()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n3_precond_n4()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n3_precond_n4()).Non-interference contract.0.m.key index da6ddc794d1..96d7be35efc 100644 --- a/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n3_precond_n4()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MethodContracts/contract.IFMethodContract(contract.IFMethodContract__secure_sequential_n3_precond_n4()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/contract"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:34:37 CEST 2014 -name=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_sequential_n3_precond_n4()].Non-interference contract.0 -contract=contract.IFMethodContract[contract.IFMethodContract\\:\\:secure_sequential_n3_precond_n4()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "contract.IFMethodContract[contract.IFMethodContract::secure_sequential_n3_precond_n4()].Non-interference contract.0", + "contract": "contract.IFMethodContract[contract.IFMethodContract::secure_sequential_n3_precond_n4()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)).JML operation contract.0.key index a87dc9b550d..c7202824a85 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:12 CEST 2014 -name=mini.AliasingExamples[mini.AliasingExamples\\:\\:insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)].JML operation contract.0 -contract=mini.AliasingExamples[mini.AliasingExamples\\:\\:insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.AliasingExamples[mini.AliasingExamples::insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)].JML operation contract.0", + "contract": "mini.AliasingExamples[mini.AliasingExamples::insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)).Non-interference contract.0.key index ecc80e916d9..7fa2530b125 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:12 CEST 2014 -name=mini.AliasingExamples[mini.AliasingExamples\\:\\:insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)].Non-interference contract.0 -contract=mini.AliasingExamples[mini.AliasingExamples\\:\\:insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.AliasingExamples[mini.AliasingExamples::insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)].Non-interference contract.0", + "contract": "mini.AliasingExamples[mini.AliasingExamples::insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)).Non-interference contract.0.m.key index a022ba1dd2d..ea3e346daa0 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:12 CEST 2014 -name=mini.AliasingExamples[mini.AliasingExamples\\:\\:insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)].Non-interference contract.0 -contract=mini.AliasingExamples[mini.AliasingExamples\\:\\:insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.AliasingExamples[mini.AliasingExamples::insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)].Non-interference contract.0", + "contract": "mini.AliasingExamples[mini.AliasingExamples::insecure_1(mini.AliasingExamples,mini.AliasingExamples,int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__secure_1(mini.AliasingExamples,mini.AliasingExamples,int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__secure_1(mini.AliasingExamples,mini.AliasingExamples,int)).JML operation contract.0.key index 9fe823298a2..b052b0eef8a 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__secure_1(mini.AliasingExamples,mini.AliasingExamples,int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__secure_1(mini.AliasingExamples,mini.AliasingExamples,int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:12 CEST 2014 -name=mini.AliasingExamples[mini.AliasingExamples\\:\\:secure_1(mini.AliasingExamples,mini.AliasingExamples,int)].JML operation contract.0 -contract=mini.AliasingExamples[mini.AliasingExamples\\:\\:secure_1(mini.AliasingExamples,mini.AliasingExamples,int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.AliasingExamples[mini.AliasingExamples::secure_1(mini.AliasingExamples,mini.AliasingExamples,int)].JML operation contract.0", + "contract": "mini.AliasingExamples[mini.AliasingExamples::secure_1(mini.AliasingExamples,mini.AliasingExamples,int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__secure_1(mini.AliasingExamples,mini.AliasingExamples,int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__secure_1(mini.AliasingExamples,mini.AliasingExamples,int)).Non-interference contract.0.key index bf10b6f22dc..0f918c20560 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__secure_1(mini.AliasingExamples,mini.AliasingExamples,int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__secure_1(mini.AliasingExamples,mini.AliasingExamples,int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:12 CEST 2014 -name=mini.AliasingExamples[mini.AliasingExamples\\:\\:secure_1(mini.AliasingExamples,mini.AliasingExamples,int)].Non-interference contract.0 -contract=mini.AliasingExamples[mini.AliasingExamples\\:\\:secure_1(mini.AliasingExamples,mini.AliasingExamples,int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.AliasingExamples[mini.AliasingExamples::secure_1(mini.AliasingExamples,mini.AliasingExamples,int)].Non-interference contract.0", + "contract": "mini.AliasingExamples[mini.AliasingExamples::secure_1(mini.AliasingExamples,mini.AliasingExamples,int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__secure_1(mini.AliasingExamples,mini.AliasingExamples,int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__secure_1(mini.AliasingExamples,mini.AliasingExamples,int)).Non-interference contract.0.m.key index 3f36d87b91e..824d5c9c9e9 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__secure_1(mini.AliasingExamples,mini.AliasingExamples,int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.AliasingExamples(mini.AliasingExamples__secure_1(mini.AliasingExamples,mini.AliasingExamples,int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:12 CEST 2014 -name=mini.AliasingExamples[mini.AliasingExamples\\:\\:secure_1(mini.AliasingExamples,mini.AliasingExamples,int)].Non-interference contract.0 -contract=mini.AliasingExamples[mini.AliasingExamples\\:\\:secure_1(mini.AliasingExamples,mini.AliasingExamples,int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.AliasingExamples[mini.AliasingExamples::secure_1(mini.AliasingExamples,mini.AliasingExamples,int)].Non-interference contract.0", + "contract": "mini.AliasingExamples[mini.AliasingExamples::secure_1(mini.AliasingExamples,mini.AliasingExamples,int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).JML normal_behavior operation contract.0.key index 27ceb33e221..0b5655cad3c 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.DifferenceSeqLocset[mini.DifferenceSeqLocset\\:\\:m()].JML normal_behavior operation contract.0 -contract=mini.DifferenceSeqLocset[mini.DifferenceSeqLocset\\:\\:m()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.DifferenceSeqLocset[mini.DifferenceSeqLocset::m()].JML normal_behavior operation contract.0", + "contract": "mini.DifferenceSeqLocset[mini.DifferenceSeqLocset::m()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).JML normal_behavior operation contract.1.key b/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).JML normal_behavior operation contract.1.key index e3aff3a20a1..1addff4d0b1 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).JML normal_behavior operation contract.1.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).JML normal_behavior operation contract.1.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.DifferenceSeqLocset[mini.DifferenceSeqLocset\\:\\:m()].JML normal_behavior operation contract.1 -contract=mini.DifferenceSeqLocset[mini.DifferenceSeqLocset\\:\\:m()].JML normal_behavior operation contract.1 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.DifferenceSeqLocset[mini.DifferenceSeqLocset::m()].JML normal_behavior operation contract.1", + "contract": "mini.DifferenceSeqLocset[mini.DifferenceSeqLocset::m()].JML normal_behavior operation contract.1", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).Non-interference contract.0.key index 1460f7f73f8..6e7863034da 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.DifferenceSeqLocset[mini.DifferenceSeqLocset\\:\\:m()].Non-interference contract.0 -contract=mini.DifferenceSeqLocset[mini.DifferenceSeqLocset\\:\\:m()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.DifferenceSeqLocset[mini.DifferenceSeqLocset::m()].Non-interference contract.0", + "contract": "mini.DifferenceSeqLocset[mini.DifferenceSeqLocset::m()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).Non-interference contract.0.m.key index c0f478b24f7..fe743234519 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.DifferenceSeqLocset[mini.DifferenceSeqLocset\\:\\:m()].Non-interference contract.0 -contract=mini.DifferenceSeqLocset[mini.DifferenceSeqLocset\\:\\:m()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.DifferenceSeqLocset[mini.DifferenceSeqLocset::m()].Non-interference contract.0", + "contract": "mini.DifferenceSeqLocset[mini.DifferenceSeqLocset::m()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).Non-interference contract.1.key b/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).Non-interference contract.1.key index e30f5de3bc2..a5627262bc1 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).Non-interference contract.1.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).Non-interference contract.1.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.DifferenceSeqLocset[mini.DifferenceSeqLocset\\:\\:m()].Non-interference contract.1 -contract=mini.DifferenceSeqLocset[mini.DifferenceSeqLocset\\:\\:m()].Non-interference contract.1 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.DifferenceSeqLocset[mini.DifferenceSeqLocset::m()].Non-interference contract.1", + "contract": "mini.DifferenceSeqLocset[mini.DifferenceSeqLocset::m()].Non-interference contract.1", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).Non-interference contract.1.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).Non-interference contract.1.m.key index c3eb42acf24..09daf915332 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).Non-interference contract.1.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.DifferenceSeqLocset(mini.DifferenceSeqLocset__m()).Non-interference contract.1.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.DifferenceSeqLocset[mini.DifferenceSeqLocset\\:\\:m()].Non-interference contract.1 -contract=mini.DifferenceSeqLocset[mini.DifferenceSeqLocset\\:\\:m()].Non-interference contract.1 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.DifferenceSeqLocset[mini.DifferenceSeqLocset::m()].Non-interference contract.1", + "contract": "mini.DifferenceSeqLocset[mini.DifferenceSeqLocset::m()].Non-interference contract.1", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_1()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_1()).JML normal_behavior operation contract.0.key index 2dc129cb762..73f713bd869 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_1()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_1()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:16 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p1_1()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p1_1()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::insecure_p1_1()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::insecure_p1_1()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_1()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_1()).Non-interference contract.0.key index a3f7b0f87f7..b17a1846bbe 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_1()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_1()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:16 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p1_1()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p1_1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::insecure_p1_1()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::insecure_p1_1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_1()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_1()).Non-interference contract.0.m.key index ad8ab54d886..242844614ee 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_1()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_1()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:16 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p1_1()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p1_1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::insecure_p1_1()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::insecure_p1_1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_2()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_2()).JML normal_behavior operation contract.0.key index 23930b34eee..fd24b8a7d6f 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_2()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_2()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p1_2()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p1_2()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::insecure_p1_2()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::insecure_p1_2()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_2()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_2()).Non-interference contract.0.key index cf575af865f..af4e783208c 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_2()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_2()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p1_2()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p1_2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::insecure_p1_2()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::insecure_p1_2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_2()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_2()).Non-interference contract.0.m.key index 5d581dc5fd3..179737ab75b 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_2()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p1_2()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p1_2()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p1_2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::insecure_p1_2()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::insecure_p1_2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_1()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_1()).JML normal_behavior operation contract.0.key index 876ff839e12..12ba848327a 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_1()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_1()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p2_1()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p2_1()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::insecure_p2_1()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::insecure_p2_1()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_1()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_1()).Non-interference contract.0.key index 923c0f6b220..a356e3beb67 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_1()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_1()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p2_1()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p2_1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::insecure_p2_1()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::insecure_p2_1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_1()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_1()).Non-interference contract.0.m.key index 19f370b662a..da4e2fae546 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_1()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_1()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p2_1()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p2_1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::insecure_p2_1()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::insecure_p2_1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_2()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_2()).JML normal_behavior operation contract.0.key index 6801918c2c1..d2f40daae46 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_2()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_2()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p2_2()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p2_2()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::insecure_p2_2()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::insecure_p2_2()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_2()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_2()).Non-interference contract.0.key index 1a4b9225881..27523a662f3 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_2()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_2()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p2_2()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p2_2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::insecure_p2_2()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::insecure_p2_2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_2()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_2()).Non-interference contract.0.m.key index 796bd79b13b..b9080356040 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_2()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__insecure_p2_2()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p2_2()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:insecure_p2_2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::insecure_p2_2()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::insecure_p2_2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).JML normal_behavior operation contract.0.key index 3bbfbc149f3..11ed76daf60 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_1()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_1()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_1()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_1()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).JML normal_behavior operation contract.1.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).JML normal_behavior operation contract.1.key index 93799038ea4..cbdfd8ee960 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).JML normal_behavior operation contract.1.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).JML normal_behavior operation contract.1.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_1()].JML normal_behavior operation contract.1 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_1()].JML normal_behavior operation contract.1 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_1()].JML normal_behavior operation contract.1", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_1()].JML normal_behavior operation contract.1", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).Non-interference contract.0.key index 9d5b2150186..0619f4762b1 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_1()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_1()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).Non-interference contract.0.m.key index 5b8ba87f55b..5356aa43e7d 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_1()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_1()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).Non-interference contract.1.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).Non-interference contract.1.key index 99193f21465..34e81a77372 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).Non-interference contract.1.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).Non-interference contract.1.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_1()].Non-interference contract.1 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_1()].Non-interference contract.1 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_1()].Non-interference contract.1", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_1()].Non-interference contract.1", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).Non-interference contract.1.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).Non-interference contract.1.m.key index 5e651492b4d..7135192982a 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).Non-interference contract.1.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_1()).Non-interference contract.1.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_1()].Non-interference contract.1 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_1()].Non-interference contract.1 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_1()].Non-interference contract.1", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_1()].Non-interference contract.1", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_2()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_2()).JML normal_behavior operation contract.0.key index 6449a397039..a3a8b5977db 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_2()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_2()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_2()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_2()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_2()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_2()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_2()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_2()).Non-interference contract.0.key index 105a1c624f5..8164d5e00e2 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_2()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_2()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_2()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_2()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_2()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_2()).Non-interference contract.0.m.key index 8b704ef4957..bf2fd70aa97 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_2()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_2()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_2()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_2()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_3()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_3()).JML normal_behavior operation contract.0.key index 492e322d488..050dde11658 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_3()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_3()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_3()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_3()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_3()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_3()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_3()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_3()).Non-interference contract.0.key index 2ff3637cc4b..332d2322eb3 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_3()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_3()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_3()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_3()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_3()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_3()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_3()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_3()).Non-interference contract.0.m.key index 41cdae5b6c6..283ce2e941e 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_3()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_3()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_3()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_3()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_3()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_3()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_4()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_4()).JML normal_behavior operation contract.0.key index 7c0c53d9cef..9f5f4a0c09e 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_4()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_4()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_4()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_4()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_4()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_4()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_4()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_4()).Non-interference contract.0.key index 89bcc6e53eb..8e4ecad1cda 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_4()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_4()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_4()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_4()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_4()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_4()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_4()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_4()).Non-interference contract.0.m.key index 630f303cb93..f72e807c5f8 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_4()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_4()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_4()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_4()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_4()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_4()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_5()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_5()).JML normal_behavior operation contract.0.key index 0595bf56aa6..27cb981ccc7 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_5()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_5()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_5()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_5()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_5()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_5()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_5()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_5()).Non-interference contract.0.key index 4830484de04..8082684ce34 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_5()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_5()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_5()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_5()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_5()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_5()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_5()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_5()).Non-interference contract.0.m.key index c5e9b6f706b..d40a614cdcb 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_5()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_5()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_5()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_5()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_5()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_5()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_6()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_6()).JML normal_behavior operation contract.0.key index 16600b45a18..33dff1847a3 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_6()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_6()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_6()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_6()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_6()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_6()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_6()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_6()).Non-interference contract.0.key index 713eb428f2a..95cb7c5cbb8 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_6()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_6()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_6()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_6()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_6()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_6()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_6()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_6()).Non-interference contract.0.m.key index 967633fcdf8..8ebacfd1135 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_6()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p1_6()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:15 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_6()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p1_6()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p1_6()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p1_6()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_1()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_1()).JML normal_behavior operation contract.0.key index e998af8ae5a..cb5d9fd0840 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_1()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_1()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_1()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_1()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_1()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_1()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_1()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_1()).Non-interference contract.0.key index a13abb40360..aa829aa7d6c 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_1()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_1()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_1()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_1()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_1()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_1()).Non-interference contract.0.m.key index ecb676a77e6..16d2b1b4b68 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_1()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_1()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_1()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_1()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_2()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_2()).JML normal_behavior operation contract.0.key index 380fbb7641a..27247c857cf 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_2()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_2()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_2()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_2()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_2()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_2()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_2()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_2()).Non-interference contract.0.key index 234998f4a7e..af3eb36bf65 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_2()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_2()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_2()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_2()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_2()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_2()).Non-interference contract.0.m.key index 3d75612ec6c..a3a448f8311 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_2()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_2()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_2()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_2()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_3()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_3()).JML normal_behavior operation contract.0.key index 787cd705fb0..188039cae2b 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_3()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_3()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_3()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_3()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_3()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_3()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_3()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_3()).Non-interference contract.0.key index db7829701a6..e4542d524b0 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_3()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_3()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_3()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_3()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_3()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_3()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_3()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_3()).Non-interference contract.0.m.key index e45fb80ab76..371eb63b338 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_3()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_3()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_3()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_3()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_3()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_3()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_4()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_4()).JML normal_behavior operation contract.0.key index f3fc063a4df..846bdb741d6 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_4()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_4()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_4()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_4()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_4()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_4()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_4()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_4()).Non-interference contract.0.key index 9cda301dc98..4595ffdfe0e 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_4()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_4()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_4()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_4()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_4()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_4()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_4()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_4()).Non-interference contract.0.m.key index dfec7c1d545..a52b1e7cc6d 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_4()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_4()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_4()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_4()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_4()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_4()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_5()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_5()).JML normal_behavior operation contract.0.key index 050e830265b..31d2f21b7e1 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_5()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_5()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_5()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_5()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_5()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_5()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_5()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_5()).Non-interference contract.0.key index fb5620c93a3..0bb90ec79e2 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_5()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_5()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_5()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_5()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_5()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_5()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_5()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_5()).Non-interference contract.0.m.key index f647c4c2615..c43104fbb93 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_5()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_5()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_5()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_5()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_5()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_5()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_6()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_6()).JML normal_behavior operation contract.0.key index 38bdcc51109..94be061698b 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_6()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_6()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_6()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_6()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_6()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_6()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_6()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_6()).Non-interference contract.0.key index e68095a1010..7f09c93ada5 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_6()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_6()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_6()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_6()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_6()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_6()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_6()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_6()).Non-interference contract.0.m.key index e47d73d9dbe..f1df86d552a 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_6()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_6()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_6()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_6()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_6()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_6()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_7()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_7()).JML normal_behavior operation contract.0.key index f764322bb25..5372a4ae66a 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_7()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_7()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_7()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_7()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_7()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_7()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_7()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_7()).Non-interference contract.0.key index f9723910c64..4c271dd8e9e 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_7()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_7()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_7()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_7()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_7()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_7()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_7()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_7()).Non-interference contract.0.m.key index 49a309ea268..a21ee90d537 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_7()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_7()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:14 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_7()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_7()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_7()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_7()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_8()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_8()).JML normal_behavior operation contract.0.key index 785e7834152..72678c6aa01 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_8()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_8()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_8()].JML normal_behavior operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_8()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_8()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_8()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_8()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_8()).Non-interference contract.0.key index 4f9b2416d5d..1d8af480e68 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_8()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_8()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_8()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_8()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_8()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_8()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_8()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_8()).Non-interference contract.0.m.key index 61929f167e3..04271b6e660 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_8()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_p2_8()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_8()].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_p2_8()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_p2_8()].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_p2_8()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_parameter(int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_parameter(int)).JML operation contract.0.key index 061a072bce6..fa84771dedc 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_parameter(int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_parameter(int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_parameter(int)].JML operation contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_parameter(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_parameter(int)].JML operation contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_parameter(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_parameter(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_parameter(int)).Non-interference contract.0.key index 9fec903a967..d3d92bf40ac 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_parameter(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_parameter(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_parameter(int)].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_parameter(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_parameter(int)].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_parameter(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_parameter(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_parameter(int)).Non-interference contract.0.m.key index 80fb28aec91..d1a74ee3193 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_parameter(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamples(mini.MiniExamples__secure_parameter(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamples[mini.MiniExamples\\:\\:secure_parameter(int)].Non-interference contract.0 -contract=mini.MiniExamples[mini.MiniExamples\\:\\:secure_parameter(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamples[mini.MiniExamples::secure_parameter(int)].Non-interference contract.0", + "contract": "mini.MiniExamples[mini.MiniExamples::secure_parameter(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_1()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_1()).JML normal_behavior operation contract.0.key index 8212f5d4a85..eecf8f82c96 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_1()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_1()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_1()].JML normal_behavior operation contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_1()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_1()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_1()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_1()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_1()).Non-interference contract.0.key index 29e5557f40f..03275c74d57 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_1()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_1()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_1()].Non-interference contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_1()].Non-interference contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_1()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_1()).Non-interference contract.0.m.key index 03a48ae01e8..de34df3b20c 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_1()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_1()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_1()].Non-interference contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_1()].Non-interference contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_2()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_2()).JML normal_behavior operation contract.0.key index 7dc11a5eb18..e1169d45654 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_2()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_2()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_2()].JML normal_behavior operation contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_2()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_2()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_2()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_2()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_2()).Non-interference contract.0.key index 5334ffb2ec6..e18892899d3 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_2()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_2()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_2()].Non-interference contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_2()].Non-interference contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_2()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_2()).Non-interference contract.0.m.key index 23587207083..41f4168e4ab 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_2()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_2()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_2()].Non-interference contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_2()].Non-interference contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_3()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_3()).JML normal_behavior operation contract.0.key index d6ddf27d88d..8dfd8e6d4fa 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_3()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_3()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_3()].JML normal_behavior operation contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_3()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_3()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_3()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_3()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_3()).Non-interference contract.0.key index 5af7580bf8b..6a24bfa130e 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_3()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_3()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_3()].Non-interference contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_3()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_3()].Non-interference contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_3()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_3()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_3()).Non-interference contract.0.m.key index 9479a7d0e9b..b7db99e9bd1 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_3()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_3()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_3()].Non-interference contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_3()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_3()].Non-interference contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_3()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_4()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_4()).JML normal_behavior operation contract.0.key index 3fef15e2fc1..a566baacea7 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_4()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_4()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_4()].JML normal_behavior operation contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_4()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_4()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_4()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_4()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_4()).Non-interference contract.0.key index 5e8451a08db..6e8e5e7cfb9 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_4()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_4()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_4()].Non-interference contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_4()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_4()].Non-interference contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_4()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_4()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_4()).Non-interference contract.0.m.key index 5e21468ea82..5d5a50765c2 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_4()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_4()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:13 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_4()].Non-interference contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_4()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_4()].Non-interference contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_4()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_5()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_5()).JML normal_behavior operation contract.0.key index c5bc8222c19..e826a804aca 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_5()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_5()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:12 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_5()].JML normal_behavior operation contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_5()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_5()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_5()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_5()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_5()).Non-interference contract.0.key index 694050c059a..64361620e68 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_5()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_5()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:12 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_5()].Non-interference contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_5()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_5()].Non-interference contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_5()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_5()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_5()).Non-interference contract.0.m.key index 1dd84131fb7..5afa8676647 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_5()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_5()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:12 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_5()].Non-interference contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_5()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_5()].Non-interference contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_5()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_6()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_6()).JML normal_behavior operation contract.0.key index e9e04f284a1..b1a1be82834 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_6()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_6()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:12 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_6()].JML normal_behavior operation contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_6()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_6()].JML normal_behavior operation contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_6()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_6()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_6()).Non-interference contract.0.key index 121bf2f09af..f6098ee809b 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_6()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_6()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:12 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_6()].Non-interference contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_6()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_6()].Non-interference contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_6()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_6()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_6()).Non-interference contract.0.m.key index 6f0392b14b8..fd4b200c94d 100644 --- a/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_6()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/MiniExamples/mini.MiniExamplesLecture(mini.MiniExamplesLecture__m_6()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/mini"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:12 CEST 2014 -name=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_6()].Non-interference contract.0 -contract=mini.MiniExamplesLecture[mini.MiniExamplesLecture\\:\\:m_6()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_6()].Non-interference contract.0", + "contract": "mini.MiniExamplesLecture[mini.MiniExamplesLecture::m_6()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__getQ()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__getQ()).JML normal_behavior operation contract.0.key index 17e2d68b54a..fe465cdb689 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__getQ()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__getQ()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:getQ()].JML normal_behavior operation contract.0 -contract=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:getQ()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee[object.AmtoftBanerjee::getQ()].JML normal_behavior operation contract.0", + "contract": "object.AmtoftBanerjee[object.AmtoftBanerjee::getQ()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__getQ()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__getQ()).Non-interference contract.0.key index 4b8da3a80ab..47b2844821d 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__getQ()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__getQ()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:getQ()].Non-interference contract.0 -contract=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:getQ()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee[object.AmtoftBanerjee::getQ()].Non-interference contract.0", + "contract": "object.AmtoftBanerjee[object.AmtoftBanerjee::getQ()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__getQ()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__getQ()).Non-interference contract.0.m.key index e9d10772f77..8b53de0102d 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__getQ()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__getQ()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:getQ()].Non-interference contract.0 -contract=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:getQ()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee[object.AmtoftBanerjee::getQ()].Non-interference contract.0", + "contract": "object.AmtoftBanerjee[object.AmtoftBanerjee::getQ()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).JML normal_behavior operation contract.0.key index e4e89c387f1..39833bb9744 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_1()].JML normal_behavior operation contract.0 -contract=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_1()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_1()].JML normal_behavior operation contract.0", + "contract": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_1()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).JML normal_behavior operation contract.1.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).JML normal_behavior operation contract.1.key index 4279c75f064..bbdf6859cf5 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).JML normal_behavior operation contract.1.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).JML normal_behavior operation contract.1.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_1()].JML normal_behavior operation contract.1 -contract=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_1()].JML normal_behavior operation contract.1 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_1()].JML normal_behavior operation contract.1", + "contract": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_1()].JML normal_behavior operation contract.1", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).Non-interference contract.0.key index 5f911608976..3766e02793c 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:34 CEST 2014 -name=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_1()].Non-interference contract.0 -contract=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_1()].Non-interference contract.0", + "contract": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).Non-interference contract.0.m.key index ed207949bdb..009deaaffee 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:34 CEST 2014 -name=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_1()].Non-interference contract.0 -contract=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_1()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_1()].Non-interference contract.0", + "contract": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_1()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).Non-interference contract.1.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).Non-interference contract.1.key index 5e7160af72a..30343cb0b72 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).Non-interference contract.1.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).Non-interference contract.1.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:34 CEST 2014 -name=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_1()].Non-interference contract.1 -contract=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_1()].Non-interference contract.1 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_1()].Non-interference contract.1", + "contract": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_1()].Non-interference contract.1", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).Non-interference contract.1.m.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).Non-interference contract.1.m.key index 70bfd12eafc..c7174d60cf6 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).Non-interference contract.1.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_1()).Non-interference contract.1.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:34 CEST 2014 -name=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_1()].Non-interference contract.1 -contract=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_1()].Non-interference contract.1 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_1()].Non-interference contract.1", + "contract": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_1()].Non-interference contract.1", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_2()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_2()).JML normal_behavior operation contract.0.key index b8532dd4c34..7519e5f4bef 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_2()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_2()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:34 CEST 2014 -name=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_2()].JML normal_behavior operation contract.0 -contract=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_2()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_2()].JML normal_behavior operation contract.0", + "contract": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_2()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_2()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_2()).Non-interference contract.0.key index 0d96f89ce7e..10696edabee 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_2()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_2()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:34 CEST 2014 -name=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_2()].Non-interference contract.0 -contract=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_2()].Non-interference contract.0", + "contract": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_2()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_2()).Non-interference contract.0.m.key index a79a5de133e..0b7a0ea0a4d 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_2()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee(object.AmtoftBanerjee__m_2()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:34 CEST 2014 -name=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_2()].Non-interference contract.0 -contract=object.AmtoftBanerjee[object.AmtoftBanerjee\\:\\:m_2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_2()].Non-interference contract.0", + "contract": "object.AmtoftBanerjee[object.AmtoftBanerjee::m_2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__cexp(int)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__cexp(int)).JML normal_behavior operation contract.0.key index 50cdd1e7561..f8aae5dab11 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__cexp(int)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__cexp(int)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:37 CEST 2014 -name=object.AmtoftBanerjee2[object.AmtoftBanerjee2\\:\\:cexp(int)].JML normal_behavior operation contract.0 -contract=object.AmtoftBanerjee2[object.AmtoftBanerjee2\\:\\:cexp(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee2[object.AmtoftBanerjee2::cexp(int)].JML normal_behavior operation contract.0", + "contract": "object.AmtoftBanerjee2[object.AmtoftBanerjee2::cexp(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__cexp(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__cexp(int)).Non-interference contract.0.key index 1267f1caa78..f9a744e2460 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__cexp(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__cexp(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:37 CEST 2014 -name=object.AmtoftBanerjee2[object.AmtoftBanerjee2\\:\\:cexp(int)].Non-interference contract.0 -contract=object.AmtoftBanerjee2[object.AmtoftBanerjee2\\:\\:cexp(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee2[object.AmtoftBanerjee2::cexp(int)].Non-interference contract.0", + "contract": "object.AmtoftBanerjee2[object.AmtoftBanerjee2::cexp(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__cexp(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__cexp(int)).Non-interference contract.0.m.key index 699505aabee..26f5c25304f 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__cexp(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__cexp(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:37 CEST 2014 -name=object.AmtoftBanerjee2[object.AmtoftBanerjee2\\:\\:cexp(int)].Non-interference contract.0 -contract=object.AmtoftBanerjee2[object.AmtoftBanerjee2\\:\\:cexp(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee2[object.AmtoftBanerjee2::cexp(int)].Non-interference contract.0", + "contract": "object.AmtoftBanerjee2[object.AmtoftBanerjee2::cexp(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__expensive(int)).JML accessible clause.0.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__expensive(int)).JML accessible clause.0.key index 3a1985da13e..6a936cc96fb 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__expensive(int)).JML accessible clause.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__expensive(int)).JML accessible clause.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:37 CEST 2014 -name=object.AmtoftBanerjee2[object.AmtoftBanerjee2\\:\\:expensive(int)].JML accessible clause.0 -contract=object.AmtoftBanerjee2[object.AmtoftBanerjee2\\:\\:expensive(int)].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee2[object.AmtoftBanerjee2::expensive(int)].JML accessible clause.0", + "contract": "object.AmtoftBanerjee2[object.AmtoftBanerjee2::expensive(int)].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__expensive(int)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__expensive(int)).JML normal_behavior operation contract.0.key index 568d9c72d4d..e861f372de5 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__expensive(int)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__expensive(int)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:37 CEST 2014 -name=object.AmtoftBanerjee2[object.AmtoftBanerjee2\\:\\:expensive(int)].JML normal_behavior operation contract.0 -contract=object.AmtoftBanerjee2[object.AmtoftBanerjee2\\:\\:expensive(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee2[object.AmtoftBanerjee2::expensive(int)].JML normal_behavior operation contract.0", + "contract": "object.AmtoftBanerjee2[object.AmtoftBanerjee2::expensive(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__expensive(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__expensive(int)).Non-interference contract.0.key index 1de511a15f2..4b789a7d211 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__expensive(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__expensive(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:37 CEST 2014 -name=object.AmtoftBanerjee2[object.AmtoftBanerjee2\\:\\:expensive(int)].Non-interference contract.0 -contract=object.AmtoftBanerjee2[object.AmtoftBanerjee2\\:\\:expensive(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee2[object.AmtoftBanerjee2::expensive(int)].Non-interference contract.0", + "contract": "object.AmtoftBanerjee2[object.AmtoftBanerjee2::expensive(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__expensive(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__expensive(int)).Non-interference contract.0.m.key index 0dc4483a7d3..d2ca9b763ab 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__expensive(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee2(object.AmtoftBanerjee2__expensive(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:37 CEST 2014 -name=object.AmtoftBanerjee2[object.AmtoftBanerjee2\\:\\:expensive(int)].Non-interference contract.0 -contract=object.AmtoftBanerjee2[object.AmtoftBanerjee2\\:\\:expensive(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee2[object.AmtoftBanerjee2::expensive(int)].Non-interference contract.0", + "contract": "object.AmtoftBanerjee2[object.AmtoftBanerjee2::expensive(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee3(object.AmtoftBanerjee3__m()).JML operation contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee3(object.AmtoftBanerjee3__m()).JML operation contract.0.key index ce66dc33eaa..b2e6e0e51ac 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee3(object.AmtoftBanerjee3__m()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee3(object.AmtoftBanerjee3__m()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:34 CEST 2014 -name=object.AmtoftBanerjee3[object.AmtoftBanerjee3\\:\\:m()].JML operation contract.0 -contract=object.AmtoftBanerjee3[object.AmtoftBanerjee3\\:\\:m()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee3[object.AmtoftBanerjee3::m()].JML operation contract.0", + "contract": "object.AmtoftBanerjee3[object.AmtoftBanerjee3::m()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee3(object.AmtoftBanerjee3__m()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee3(object.AmtoftBanerjee3__m()).Non-interference contract.0.key index 692d2eef2cd..cec43d26d3d 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee3(object.AmtoftBanerjee3__m()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee3(object.AmtoftBanerjee3__m()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:34 CEST 2014 -name=object.AmtoftBanerjee3[object.AmtoftBanerjee3\\:\\:m()].Non-interference contract.0 -contract=object.AmtoftBanerjee3[object.AmtoftBanerjee3\\:\\:m()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee3[object.AmtoftBanerjee3::m()].Non-interference contract.0", + "contract": "object.AmtoftBanerjee3[object.AmtoftBanerjee3::m()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee3(object.AmtoftBanerjee3__m()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee3(object.AmtoftBanerjee3__m()).Non-interference contract.0.m.key index 9cd9ebe6884..246b22cd4bb 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee3(object.AmtoftBanerjee3__m()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.AmtoftBanerjee3(object.AmtoftBanerjee3__m()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:34 CEST 2014 -name=object.AmtoftBanerjee3[object.AmtoftBanerjee3\\:\\:m()].Non-interference contract.0 -contract=object.AmtoftBanerjee3[object.AmtoftBanerjee3\\:\\:m()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.AmtoftBanerjee3[object.AmtoftBanerjee3::m()].Non-interference contract.0", + "contract": "object.AmtoftBanerjee3[object.AmtoftBanerjee3::m()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.Naumann(object.Naumann__Pair_m(int,int)).JML operation contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.Naumann(object.Naumann__Pair_m(int,int)).JML operation contract.0.key index 79fc10d42c8..09dff09fdfa 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.Naumann(object.Naumann__Pair_m(int,int)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.Naumann(object.Naumann__Pair_m(int,int)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.Naumann[object.Naumann\\:\\:Pair_m(int,int)].JML operation contract.0 -contract=object.Naumann[object.Naumann\\:\\:Pair_m(int,int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.Naumann[object.Naumann::Pair_m(int,int)].JML operation contract.0", + "contract": "object.Naumann[object.Naumann::Pair_m(int,int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.Naumann(object.Naumann__Pair_m(int,int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.Naumann(object.Naumann__Pair_m(int,int)).Non-interference contract.0.key index a25dd38cf82..bf8a2461f26 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.Naumann(object.Naumann__Pair_m(int,int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.Naumann(object.Naumann__Pair_m(int,int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.Naumann[object.Naumann\\:\\:Pair_m(int,int)].Non-interference contract.0 -contract=object.Naumann[object.Naumann\\:\\:Pair_m(int,int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.Naumann[object.Naumann::Pair_m(int,int)].Non-interference contract.0", + "contract": "object.Naumann[object.Naumann::Pair_m(int,int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.Naumann(object.Naumann__Pair_m(int,int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/NewObjects/object.Naumann(object.Naumann__Pair_m(int,int)).Non-interference contract.0.m.key index de91eb7146b..c93866f0c17 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.Naumann(object.Naumann__Pair_m(int,int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.Naumann(object.Naumann__Pair_m(int,int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.Naumann[object.Naumann\\:\\:Pair_m(int,int)].Non-interference contract.0 -contract=object.Naumann[object.Naumann\\:\\:Pair_m(int,int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.Naumann[object.Naumann::Pair_m(int,int)].Non-interference contract.0", + "contract": "object.Naumann[object.Naumann::Pair_m(int,int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).JML operation contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).JML operation contract.0.key index 86f15927fc2..b13f266cd5a 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:if_two_object_creation_next()].JML operation contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:if_two_object_creation_next()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::if_two_object_creation_next()].JML operation contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::if_two_object_creation_next()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).JML operation contract.1.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).JML operation contract.1.key index a115e16a61b..59badf4f3e5 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).JML operation contract.1.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).JML operation contract.1.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:if_two_object_creation_next()].JML operation contract.1 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:if_two_object_creation_next()].JML operation contract.1 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::if_two_object_creation_next()].JML operation contract.1", + "contract": "object.ObjectOrientation[object.ObjectOrientation::if_two_object_creation_next()].JML operation contract.1", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).Non-interference contract.0.key index 39881ef167f..b211b4f5766 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:if_two_object_creation_next()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:if_two_object_creation_next()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::if_two_object_creation_next()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::if_two_object_creation_next()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).Non-interference contract.0.m.key index 50c659db3b0..624cffe2c08 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:if_two_object_creation_next()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:if_two_object_creation_next()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::if_two_object_creation_next()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::if_two_object_creation_next()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).Non-interference contract.1.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).Non-interference contract.1.key index 1e0973adf61..b14cd207076 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).Non-interference contract.1.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).Non-interference contract.1.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:if_two_object_creation_next()].Non-interference contract.1 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:if_two_object_creation_next()].Non-interference contract.1 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::if_two_object_creation_next()].Non-interference contract.1", + "contract": "object.ObjectOrientation[object.ObjectOrientation::if_two_object_creation_next()].Non-interference contract.1", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).Non-interference contract.1.m.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).Non-interference contract.1.m.key index fcde6b07a5e..7cac48a1724 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).Non-interference contract.1.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__if_two_object_creation_next()).Non-interference contract.1.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:if_two_object_creation_next()].Non-interference contract.1 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:if_two_object_creation_next()].Non-interference contract.1 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::if_two_object_creation_next()].Non-interference contract.1", + "contract": "object.ObjectOrientation[object.ObjectOrientation::if_two_object_creation_next()].Non-interference contract.1", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).JML operation contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).JML operation contract.0.key index 838d431cef0..26b79970689 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_object_assignment()].JML operation contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_object_assignment()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::insecure_object_assignment()].JML operation contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::insecure_object_assignment()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).JML operation contract.1.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).JML operation contract.1.key index 75be5f31b64..f2b19f344a2 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).JML operation contract.1.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).JML operation contract.1.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_object_assignment()].JML operation contract.1 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_object_assignment()].JML operation contract.1 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::insecure_object_assignment()].JML operation contract.1", + "contract": "object.ObjectOrientation[object.ObjectOrientation::insecure_object_assignment()].JML operation contract.1", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).Non-interference contract.0.key index 71080a69420..fa517cdef81 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_object_assignment()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_object_assignment()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::insecure_object_assignment()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::insecure_object_assignment()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).Non-interference contract.0.m.key index d87debbc35a..8a8e6a8a582 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_object_assignment()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_object_assignment()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::insecure_object_assignment()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::insecure_object_assignment()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).Non-interference contract.1.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).Non-interference contract.1.key index 71e3283a0e4..772d272e412 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).Non-interference contract.1.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).Non-interference contract.1.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_object_assignment()].Non-interference contract.1 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_object_assignment()].Non-interference contract.1 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::insecure_object_assignment()].Non-interference contract.1", + "contract": "object.ObjectOrientation[object.ObjectOrientation::insecure_object_assignment()].Non-interference contract.1", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).Non-interference contract.1.m.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).Non-interference contract.1.m.key index a9b86e2194a..4be1676be8c 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).Non-interference contract.1.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_object_assignment()).Non-interference contract.1.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_object_assignment()].Non-interference contract.1 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_object_assignment()].Non-interference contract.1 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::insecure_object_assignment()].Non-interference contract.1", + "contract": "object.ObjectOrientation[object.ObjectOrientation::insecure_object_assignment()].Non-interference contract.1", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_two_object_creation()).JML operation contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_two_object_creation()).JML operation contract.0.key index 218a8c8a9bc..58e7989b05a 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_two_object_creation()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_two_object_creation()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_two_object_creation()].JML operation contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_two_object_creation()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::insecure_two_object_creation()].JML operation contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::insecure_two_object_creation()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_two_object_creation()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_two_object_creation()).Non-interference contract.0.key index 27566dd20c6..9af2bc8bc8c 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_two_object_creation()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_two_object_creation()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_two_object_creation()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_two_object_creation()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::insecure_two_object_creation()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::insecure_two_object_creation()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_two_object_creation()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_two_object_creation()).Non-interference contract.0.m.key index a0f06fd5492..f4bb8ec09f9 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_two_object_creation()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__insecure_two_object_creation()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_two_object_creation()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:insecure_two_object_creation()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::insecure_two_object_creation()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::insecure_two_object_creation()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_if_two_object_creation()).JML operation contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_if_two_object_creation()).JML operation contract.0.key index e4040869fa2..82071dbae1c 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_if_two_object_creation()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_if_two_object_creation()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_if_two_object_creation()].JML operation contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_if_two_object_creation()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_if_two_object_creation()].JML operation contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_if_two_object_creation()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_if_two_object_creation()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_if_two_object_creation()).Non-interference contract.0.key index 3dcb8fff2db..19f601a8a0e 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_if_two_object_creation()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_if_two_object_creation()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_if_two_object_creation()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_if_two_object_creation()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_if_two_object_creation()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_if_two_object_creation()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_if_two_object_creation()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_if_two_object_creation()).Non-interference contract.0.m.key index ad47e66c882..dcef988b11f 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_if_two_object_creation()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_if_two_object_creation()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_if_two_object_creation()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_if_two_object_creation()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_if_two_object_creation()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_if_two_object_creation()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_method_call()).JML operation contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_method_call()).JML operation contract.0.key index edec81bb53b..a0dd0a71e40 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_method_call()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_method_call()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_method_call()].JML operation contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_method_call()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_method_call()].JML operation contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_method_call()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_method_call()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_method_call()).Non-interference contract.0.key index 58a11d47b52..c194600154c 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_method_call()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_method_call()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_method_call()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_method_call()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_method_call()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_method_call()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_method_call()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_method_call()).Non-interference contract.0.m.key index e6049ef2b59..da4ed56f2ac 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_method_call()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_method_call()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_method_call()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_method_call()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_method_call()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_method_call()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation()).JML operation contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation()).JML operation contract.0.key index 2817942cd2c..b7aafc1d8ea 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:37 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation()].JML operation contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation()].JML operation contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation()).Non-interference contract.0.key index e92898a3632..7f1f1c2e097 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation()).Non-interference contract.0.m.key index 88f1b2ba505..72ebdfd7faa 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_2()).JML operation contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_2()).JML operation contract.0.key index e031d264dad..f9caec96340 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_2()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_2()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation_2()].JML operation contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation_2()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation_2()].JML operation contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation_2()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_2()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_2()).Non-interference contract.0.key index 5b5c3525e1d..b2fff880b7e 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_2()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_2()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation_2()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation_2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation_2()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation_2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_2()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_2()).Non-interference contract.0.m.key index 990cd2dbe86..a8c382524c1 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_2()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_2()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation_2()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation_2()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation_2()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation_2()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_3()).JML operation contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_3()).JML operation contract.0.key index 6e943860083..4480eef4778 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_3()).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_3()).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation_3()].JML operation contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation_3()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation_3()].JML operation contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation_3()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_3()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_3()).Non-interference contract.0.key index d20403b004c..e5017031451 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_3()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_3()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation_3()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation_3()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation_3()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation_3()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_3()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_3()).Non-interference contract.0.m.key index a0dada74457..a8e863dd702 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_3()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_object_creation_3()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation_3()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_object_creation_3()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation_3()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_object_creation_3()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_two_object_creation()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_two_object_creation()).JML normal_behavior operation contract.0.key index 029be062f95..098973bc4ff 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_two_object_creation()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_two_object_creation()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_two_object_creation()].JML normal_behavior operation contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_two_object_creation()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_two_object_creation()].JML normal_behavior operation contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_two_object_creation()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_two_object_creation()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_two_object_creation()).Non-interference contract.0.key index fdd86c4e7b7..5b6caeb1111 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_two_object_creation()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_two_object_creation()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_two_object_creation()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_two_object_creation()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_two_object_creation()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_two_object_creation()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_two_object_creation()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_two_object_creation()).Non-interference contract.0.m.key index df600d71e3a..83426d2deaa 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_two_object_creation()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_two_object_creation()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:36 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_two_object_creation()].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_two_object_creation()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_two_object_creation()].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_two_object_creation()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_while_i((Ljava.lang.Object)).JML operation contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_while_i((Ljava.lang.Object)).JML operation contract.0.key index c45c38c3867..b3937c2d129 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_while_i((Ljava.lang.Object)).JML operation contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_while_i((Ljava.lang.Object)).JML operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_while_i([Ljava.lang.Object)].JML operation contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_while_i([Ljava.lang.Object)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_while_i([Ljava.lang.Object)].JML operation contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_while_i([Ljava.lang.Object)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_while_i((Ljava.lang.Object)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_while_i((Ljava.lang.Object)).Non-interference contract.0.key index b67f279fe7b..4a06518b199 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_while_i((Ljava.lang.Object)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_while_i((Ljava.lang.Object)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_while_i([Ljava.lang.Object)].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_while_i([Ljava.lang.Object)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_while_i([Ljava.lang.Object)].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_while_i([Ljava.lang.Object)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_while_i((Ljava.lang.Object)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_while_i((Ljava.lang.Object)).Non-interference contract.0.m.key index 8c57e7ef10a..84737aa74ed 100644 --- a/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_while_i((Ljava.lang.Object)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/NewObjects/object.ObjectOrientation(object.ObjectOrientation__secure_while_i((Ljava.lang.Object)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/object"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:35 CEST 2014 -name=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_while_i([Ljava.lang.Object)].Non-interference contract.0 -contract=object.ObjectOrientation[object.ObjectOrientation\\:\\:secure_while_i([Ljava.lang.Object)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "object.ObjectOrientation[object.ObjectOrientation::secure_while_i([Ljava.lang.Object)].Non-interference contract.0", + "contract": "object.ObjectOrientation[object.ObjectOrientation::secure_while_i([Ljava.lang.Object)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/PasswordFile/passwordfile.SecurePasswordFile(passwordfile.SecurePasswordFile___userIndex()).JML accessible clause.0.key b/key.ui/examples/InformationFlow/PasswordFile/passwordfile.SecurePasswordFile(passwordfile.SecurePasswordFile___userIndex()).JML accessible clause.0.key index 96ec6ceaaa6..118588de4a5 100644 --- a/key.ui/examples/InformationFlow/PasswordFile/passwordfile.SecurePasswordFile(passwordfile.SecurePasswordFile___userIndex()).JML accessible clause.0.key +++ b/key.ui/examples/InformationFlow/PasswordFile/passwordfile.SecurePasswordFile(passwordfile.SecurePasswordFile___userIndex()).JML accessible clause.0.key @@ -41,12 +41,11 @@ \javaSource "src/passwordfile"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:35:59 CEST 2014 -name=passwordfile.SecurePasswordFile[passwordfile.SecurePasswordFile\\:\\:$userIndex()].JML accessible clause.0 -contract=passwordfile.SecurePasswordFile[passwordfile.SecurePasswordFile\\:\\:$userIndex()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "passwordfile.SecurePasswordFile[passwordfile.SecurePasswordFile::$userIndex()].JML accessible clause.0", + "contract": "passwordfile.SecurePasswordFile[passwordfile.SecurePasswordFile::$userIndex()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment___rep()).JML accessible clause.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment___rep()).JML accessible clause.0.key index ef1d3cc39d5..6ad77e87729 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment___rep()).JML accessible clause.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment___rep()).JML accessible clause.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:17 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:$rep()].JML accessible clause.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:$rep()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::$rep()].JML accessible clause.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::$rep()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput()).JML normal_behavior operation contract.0.key index 13701282cf5..3cbcf757ced 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:17 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInput()].JML normal_behavior operation contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInput()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedInput()].JML normal_behavior operation contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedInput()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput()).Non-interference contract.0.key index 5789493d008..21e95f71ddc 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:17 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInput()].Non-interference contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInput()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedInput()].Non-interference contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedInput()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput()).Non-interference contract.0.m.key index cde59662b19..cd8cf44d586 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:17 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInput()].Non-interference contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInput()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedInput()].Non-interference contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedInput()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput(int)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput(int)).JML normal_behavior operation contract.0.key index 3cc0be27f0a..d0054f29283 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput(int)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput(int)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:16 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInput(int)].JML normal_behavior operation contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInput(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedInput(int)].JML normal_behavior operation contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedInput(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput(int)).Non-interference contract.0.key index cc6e5bb686a..c7b21722f6f 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:16 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInput(int)].Non-interference contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInput(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedInput(int)].Non-interference contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedInput(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput(int)).Non-interference contract.0.m.key index 75f1ee5676b..146119a2d9f 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInput(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:16 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInput(int)].Non-interference contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInput(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedInput(int)].Non-interference contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedInput(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage((B)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage((B)).JML normal_behavior operation contract.0.key index 4bf8068f156..2b6ac5a8de2 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage((B)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage((B)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:16 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInputMessage([B)].JML normal_behavior operation contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInputMessage([B)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedInputMessage([B)].JML normal_behavior operation contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedInputMessage([B)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage((B)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage((B)).Non-interference contract.0.key index 9a33be950df..6c154a3153f 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage((B)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage((B)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:16 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInputMessage([B)].Non-interference contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInputMessage([B)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedInputMessage([B)].Non-interference contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedInputMessage([B)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage((B)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage((B)).Non-interference contract.0.m.key index 34181444837..5965bb56e0f 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage((B)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage((B)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:16 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInputMessage([B)].Non-interference contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInputMessage([B)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedInputMessage([B)].Non-interference contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedInputMessage([B)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage()).JML normal_behavior operation contract.0.key index f9db4e3e864..2e1cae98e12 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:16 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInputMessage()].JML normal_behavior operation contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInputMessage()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedInputMessage()].JML normal_behavior operation contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedInputMessage()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage()).Non-interference contract.0.key index 6b984c7cf3a..ac590227490 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:16 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInputMessage()].Non-interference contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInputMessage()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedInputMessage()].Non-interference contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedInputMessage()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage()).Non-interference contract.0.m.key index f7f704782b4..3ca27176d86 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedInputMessage()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:16 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInputMessage()].Non-interference contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedInputMessage()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedInputMessage()].Non-interference contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedInputMessage()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutput(int)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutput(int)).JML normal_behavior operation contract.0.key index 2b33e9be629..634b5ff2a46 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutput(int)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutput(int)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:16 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedOutput(int)].JML normal_behavior operation contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedOutput(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedOutput(int)].JML normal_behavior operation contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedOutput(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutput(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutput(int)).Non-interference contract.0.key index bb42ff8865e..afeefff2104 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutput(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutput(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:16 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedOutput(int)].Non-interference contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedOutput(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedOutput(int)].Non-interference contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedOutput(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutput(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutput(int)).Non-interference contract.0.m.key index 5bda8c96e86..356e79e8566 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutput(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutput(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:16 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedOutput(int)].Non-interference contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedOutput(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedOutput(int)].Non-interference contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedOutput(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutputMessage((B)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutputMessage((B)).JML normal_behavior operation contract.0.key index da4f6fa1a17..bb4d18d20bf 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutputMessage((B)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutputMessage((B)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:15 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedOutputMessage([B)].JML normal_behavior operation contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedOutputMessage([B)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedOutputMessage([B)].JML normal_behavior operation contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedOutputMessage([B)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutputMessage((B)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutputMessage((B)).Non-interference contract.0.key index 660ce80e8eb..814efef7bd8 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutputMessage((B)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutputMessage((B)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:15 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedOutputMessage([B)].Non-interference contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedOutputMessage([B)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedOutputMessage([B)].Non-interference contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedOutputMessage([B)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutputMessage((B)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutputMessage((B)).Non-interference contract.0.m.key index 8ea21eb566a..6f179188fed 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutputMessage((B)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Environment(simple_evoting.Environment__untrustedOutputMessage((B)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:15 CEST 2014 -name=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedOutputMessage([B)].Non-interference contract.0 -contract=simple_evoting.Environment[simple_evoting.Environment\\:\\:untrustedOutputMessage([B)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Environment[simple_evoting.Environment::untrustedOutputMessage([B)].Non-interference contract.0", + "contract": "simple_evoting.Environment[simple_evoting.Environment::untrustedOutputMessage([B)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Message(java.lang.Object___inv_()).JML accessible clause.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Message(java.lang.Object___inv_()).JML accessible clause.0.key index 07ab12727a1..b677f7ee8e1 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Message(java.lang.Object___inv_()).JML accessible clause.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Message(java.lang.Object___inv_()).JML accessible clause.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:17 CEST 2014 -name=simple_evoting.Message[java.lang.Object\\:\\:()].JML accessible clause.0 -contract=simple_evoting.Message[java.lang.Object\\:\\:()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "simple_evoting.Message[java.lang.Object::()].JML accessible clause.0", + "contract": "simple_evoting.Message[java.lang.Object::()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.NetworkClient(simple_evoting.NetworkClient__send((B,simple_evoting.Server,int)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.NetworkClient(simple_evoting.NetworkClient__send((B,simple_evoting.Server,int)).JML normal_behavior operation contract.0.key index 59dee0d801f..972a35ea4f0 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.NetworkClient(simple_evoting.NetworkClient__send((B,simple_evoting.Server,int)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.NetworkClient(simple_evoting.NetworkClient__send((B,simple_evoting.Server,int)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:18 CEST 2014 -name=simple_evoting.NetworkClient[simple_evoting.NetworkClient\\:\\:send([B,simple_evoting.Server,int)].JML normal_behavior operation contract.0 -contract=simple_evoting.NetworkClient[simple_evoting.NetworkClient\\:\\:send([B,simple_evoting.Server,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.NetworkClient[simple_evoting.NetworkClient::send([B,simple_evoting.Server,int)].JML normal_behavior operation contract.0", + "contract": "simple_evoting.NetworkClient[simple_evoting.NetworkClient::send([B,simple_evoting.Server,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.NetworkClient(simple_evoting.NetworkClient__send((B,simple_evoting.Server,int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.NetworkClient(simple_evoting.NetworkClient__send((B,simple_evoting.Server,int)).Non-interference contract.0.key index a968a8ca8b8..a26667659cb 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.NetworkClient(simple_evoting.NetworkClient__send((B,simple_evoting.Server,int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.NetworkClient(simple_evoting.NetworkClient__send((B,simple_evoting.Server,int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:18 CEST 2014 -name=simple_evoting.NetworkClient[simple_evoting.NetworkClient\\:\\:send([B,simple_evoting.Server,int)].Non-interference contract.0 -contract=simple_evoting.NetworkClient[simple_evoting.NetworkClient\\:\\:send([B,simple_evoting.Server,int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.NetworkClient[simple_evoting.NetworkClient::send([B,simple_evoting.Server,int)].Non-interference contract.0", + "contract": "simple_evoting.NetworkClient[simple_evoting.NetworkClient::send([B,simple_evoting.Server,int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.NetworkClient(simple_evoting.NetworkClient__send((B,simple_evoting.Server,int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.NetworkClient(simple_evoting.NetworkClient__send((B,simple_evoting.Server,int)).Non-interference contract.0.m.key index c5a03f95a8e..cc84232c3c8 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.NetworkClient(simple_evoting.NetworkClient__send((B,simple_evoting.Server,int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.NetworkClient(simple_evoting.NetworkClient__send((B,simple_evoting.Server,int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:18 CEST 2014 -name=simple_evoting.NetworkClient[simple_evoting.NetworkClient\\:\\:send([B,simple_evoting.Server,int)].Non-interference contract.0 -contract=simple_evoting.NetworkClient[simple_evoting.NetworkClient\\:\\:send([B,simple_evoting.Server,int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.NetworkClient[simple_evoting.NetworkClient::send([B,simple_evoting.Server,int)].Non-interference contract.0", + "contract": "simple_evoting.NetworkClient[simple_evoting.NetworkClient::send([B,simple_evoting.Server,int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).JML normal_behavior operation contract.0.key index 2d793748cc5..63b468a3725 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:17 CEST 2014 -name=simple_evoting.SMT[simple_evoting.SMT\\:\\:send(simple_evoting.Message,int,simple_evoting.Server)].JML normal_behavior operation contract.0 -contract=simple_evoting.SMT[simple_evoting.SMT\\:\\:send(simple_evoting.Message,int,simple_evoting.Server)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.SMT[simple_evoting.SMT::send(simple_evoting.Message,int,simple_evoting.Server)].JML normal_behavior operation contract.0", + "contract": "simple_evoting.SMT[simple_evoting.SMT::send(simple_evoting.Message,int,simple_evoting.Server)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).JML normal_behavior operation contract.1.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).JML normal_behavior operation contract.1.key index 1350635c5d7..d0346ab59aa 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).JML normal_behavior operation contract.1.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).JML normal_behavior operation contract.1.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:17 CEST 2014 -name=simple_evoting.SMT[simple_evoting.SMT\\:\\:send(simple_evoting.Message,int,simple_evoting.Server)].JML normal_behavior operation contract.1 -contract=simple_evoting.SMT[simple_evoting.SMT\\:\\:send(simple_evoting.Message,int,simple_evoting.Server)].JML normal_behavior operation contract.1 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.SMT[simple_evoting.SMT::send(simple_evoting.Message,int,simple_evoting.Server)].JML normal_behavior operation contract.1", + "contract": "simple_evoting.SMT[simple_evoting.SMT::send(simple_evoting.Message,int,simple_evoting.Server)].JML normal_behavior operation contract.1", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).Non-interference contract.0.key index 678b1a49195..e27f0a467e9 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:17 CEST 2014 -name=simple_evoting.SMT[simple_evoting.SMT\\:\\:send(simple_evoting.Message,int,simple_evoting.Server)].Non-interference contract.0 -contract=simple_evoting.SMT[simple_evoting.SMT\\:\\:send(simple_evoting.Message,int,simple_evoting.Server)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.SMT[simple_evoting.SMT::send(simple_evoting.Message,int,simple_evoting.Server)].Non-interference contract.0", + "contract": "simple_evoting.SMT[simple_evoting.SMT::send(simple_evoting.Message,int,simple_evoting.Server)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).Non-interference contract.0.m.key index 3266b4741e2..e777f088432 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:17 CEST 2014 -name=simple_evoting.SMT[simple_evoting.SMT\\:\\:send(simple_evoting.Message,int,simple_evoting.Server)].Non-interference contract.0 -contract=simple_evoting.SMT[simple_evoting.SMT\\:\\:send(simple_evoting.Message,int,simple_evoting.Server)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.SMT[simple_evoting.SMT::send(simple_evoting.Message,int,simple_evoting.Server)].Non-interference contract.0", + "contract": "simple_evoting.SMT[simple_evoting.SMT::send(simple_evoting.Message,int,simple_evoting.Server)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).Non-interference contract.1.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).Non-interference contract.1.key index 1c2188e1baa..7e5a9ab27f9 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).Non-interference contract.1.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).Non-interference contract.1.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:17 CEST 2014 -name=simple_evoting.SMT[simple_evoting.SMT\\:\\:send(simple_evoting.Message,int,simple_evoting.Server)].Non-interference contract.1 -contract=simple_evoting.SMT[simple_evoting.SMT\\:\\:send(simple_evoting.Message,int,simple_evoting.Server)].Non-interference contract.1 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.SMT[simple_evoting.SMT::send(simple_evoting.Message,int,simple_evoting.Server)].Non-interference contract.1", + "contract": "simple_evoting.SMT[simple_evoting.SMT::send(simple_evoting.Message,int,simple_evoting.Server)].Non-interference contract.1", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).Non-interference contract.1.m.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).Non-interference contract.1.m.key index 693c5780d0f..cf747f44c0f 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).Non-interference contract.1.m.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMT(simple_evoting.SMT__send(simple_evoting.Message,int,simple_evoting.Server)).Non-interference contract.1.m.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:17 CEST 2014 -name=simple_evoting.SMT[simple_evoting.SMT\\:\\:send(simple_evoting.Message,int,simple_evoting.Server)].Non-interference contract.1 -contract=simple_evoting.SMT[simple_evoting.SMT\\:\\:send(simple_evoting.Message,int,simple_evoting.Server)].Non-interference contract.1 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.SMT[simple_evoting.SMT::send(simple_evoting.Message,int,simple_evoting.Server)].Non-interference contract.1", + "contract": "simple_evoting.SMT[simple_evoting.SMT::send(simple_evoting.Message,int,simple_evoting.Server)].Non-interference contract.1", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMTEnv(simple_evoting.SMTEnv__send(int,int,int,simple_evoting.Server,int)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMTEnv(simple_evoting.SMTEnv__send(int,int,int,simple_evoting.Server,int)).JML normal_behavior operation contract.0.key index c8453e6649c..df13f23a8cf 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMTEnv(simple_evoting.SMTEnv__send(int,int,int,simple_evoting.Server,int)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMTEnv(simple_evoting.SMTEnv__send(int,int,int,simple_evoting.Server,int)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:18 CEST 2014 -name=simple_evoting.SMTEnv[simple_evoting.SMTEnv\\:\\:send(int,int,int,simple_evoting.Server,int)].JML normal_behavior operation contract.0 -contract=simple_evoting.SMTEnv[simple_evoting.SMTEnv\\:\\:send(int,int,int,simple_evoting.Server,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.SMTEnv[simple_evoting.SMTEnv::send(int,int,int,simple_evoting.Server,int)].JML normal_behavior operation contract.0", + "contract": "simple_evoting.SMTEnv[simple_evoting.SMTEnv::send(int,int,int,simple_evoting.Server,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMTEnv(simple_evoting.SMTEnv__send(int,int,int,simple_evoting.Server,int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMTEnv(simple_evoting.SMTEnv__send(int,int,int,simple_evoting.Server,int)).Non-interference contract.0.key index 9f717a64e57..6c662c8459f 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMTEnv(simple_evoting.SMTEnv__send(int,int,int,simple_evoting.Server,int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMTEnv(simple_evoting.SMTEnv__send(int,int,int,simple_evoting.Server,int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:18 CEST 2014 -name=simple_evoting.SMTEnv[simple_evoting.SMTEnv\\:\\:send(int,int,int,simple_evoting.Server,int)].Non-interference contract.0 -contract=simple_evoting.SMTEnv[simple_evoting.SMTEnv\\:\\:send(int,int,int,simple_evoting.Server,int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.SMTEnv[simple_evoting.SMTEnv::send(int,int,int,simple_evoting.Server,int)].Non-interference contract.0", + "contract": "simple_evoting.SMTEnv[simple_evoting.SMTEnv::send(int,int,int,simple_evoting.Server,int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMTEnv(simple_evoting.SMTEnv__send(int,int,int,simple_evoting.Server,int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMTEnv(simple_evoting.SMTEnv__send(int,int,int,simple_evoting.Server,int)).Non-interference contract.0.m.key index d6b3d12ca1f..49ca304db36 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMTEnv(simple_evoting.SMTEnv__send(int,int,int,simple_evoting.Server,int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.SMTEnv(simple_evoting.SMTEnv__send(int,int,int,simple_evoting.Server,int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:18 CEST 2014 -name=simple_evoting.SMTEnv[simple_evoting.SMTEnv\\:\\:send(int,int,int,simple_evoting.Server,int)].Non-interference contract.0 -contract=simple_evoting.SMTEnv[simple_evoting.SMTEnv\\:\\:send(int,int,int,simple_evoting.Server,int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.SMTEnv[simple_evoting.SMTEnv::send(int,int,int,simple_evoting.Server,int)].Non-interference contract.0", + "contract": "simple_evoting.SMTEnv[simple_evoting.SMTEnv::send(int,int,int,simple_evoting.Server,int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(java.lang.Object___inv_()).JML accessible clause.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(java.lang.Object___inv_()).JML accessible clause.0.key index 14eb01c1568..67fbc5ffb17 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(java.lang.Object___inv_()).JML accessible clause.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(java.lang.Object___inv_()).JML accessible clause.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:18 CEST 2014 -name=simple_evoting.Server[java.lang.Object\\:\\:()].JML accessible clause.0 -contract=simple_evoting.Server[java.lang.Object\\:\\:()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "simple_evoting.Server[java.lang.Object::()].JML accessible clause.0", + "contract": "simple_evoting.Server[java.lang.Object::()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__onCollectBallot(simple_evoting.Message)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__onCollectBallot(simple_evoting.Message)).JML normal_behavior operation contract.0.key index 8fb8a1232a2..52516f8b53a 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__onCollectBallot(simple_evoting.Message)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__onCollectBallot(simple_evoting.Message)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:18 CEST 2014 -name=simple_evoting.Server[simple_evoting.Server\\:\\:onCollectBallot(simple_evoting.Message)].JML normal_behavior operation contract.0 -contract=simple_evoting.Server[simple_evoting.Server\\:\\:onCollectBallot(simple_evoting.Message)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.Server[simple_evoting.Server::onCollectBallot(simple_evoting.Message)].JML normal_behavior operation contract.0", + "contract": "simple_evoting.Server[simple_evoting.Server::onCollectBallot(simple_evoting.Message)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__onCollectBallot(simple_evoting.Message)).JML normal_behavior operation contract.1.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__onCollectBallot(simple_evoting.Message)).JML normal_behavior operation contract.1.key index dde4ea23502..b9e126b0f67 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__onCollectBallot(simple_evoting.Message)).JML normal_behavior operation contract.1.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__onCollectBallot(simple_evoting.Message)).JML normal_behavior operation contract.1.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:18 CEST 2014 -name=simple_evoting.Server[simple_evoting.Server\\:\\:onCollectBallot(simple_evoting.Message)].JML normal_behavior operation contract.1 -contract=simple_evoting.Server[simple_evoting.Server\\:\\:onCollectBallot(simple_evoting.Message)].JML normal_behavior operation contract.1 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.Server[simple_evoting.Server::onCollectBallot(simple_evoting.Message)].JML normal_behavior operation contract.1", + "contract": "simple_evoting.Server[simple_evoting.Server::onCollectBallot(simple_evoting.Message)].JML normal_behavior operation contract.1", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__onSendResult()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__onSendResult()).JML normal_behavior operation contract.0.key index 41005424558..955a05931a2 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__onSendResult()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__onSendResult()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:18 CEST 2014 -name=simple_evoting.Server[simple_evoting.Server\\:\\:onSendResult()].JML normal_behavior operation contract.0 -contract=simple_evoting.Server[simple_evoting.Server\\:\\:onSendResult()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.Server[simple_evoting.Server::onSendResult()].JML normal_behavior operation contract.0", + "contract": "simple_evoting.Server[simple_evoting.Server::onSendResult()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__resultReady()).JML accessible clause.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__resultReady()).JML accessible clause.0.key index 0ceff379b4a..faa7222fd30 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__resultReady()).JML accessible clause.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__resultReady()).JML accessible clause.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:17 CEST 2014 -name=simple_evoting.Server[simple_evoting.Server\\:\\:resultReady()].JML accessible clause.0 -contract=simple_evoting.Server[simple_evoting.Server\\:\\:resultReady()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "simple_evoting.Server[simple_evoting.Server::resultReady()].JML accessible clause.0", + "contract": "simple_evoting.Server[simple_evoting.Server::resultReady()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__resultReady()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__resultReady()).JML normal_behavior operation contract.0.key index c52f0d22626..dd0083d1c16 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__resultReady()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Server(simple_evoting.Server__resultReady()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:17 CEST 2014 -name=simple_evoting.Server[simple_evoting.Server\\:\\:resultReady()].JML normal_behavior operation contract.0 -contract=simple_evoting.Server[simple_evoting.Server\\:\\:resultReady()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.Server[simple_evoting.Server::resultReady()].JML normal_behavior operation contract.0", + "contract": "simple_evoting.Server[simple_evoting.Server::resultReady()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(java.lang.Object___inv_()).JML accessible clause.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(java.lang.Object___inv_()).JML accessible clause.0.key index 2750c6ab19d..2e6363b5ad5 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(java.lang.Object___inv_()).JML accessible clause.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(java.lang.Object___inv_()).JML accessible clause.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:19 CEST 2014 -name=simple_evoting.Setup[java.lang.Object\\:\\:()].JML accessible clause.0 -contract=simple_evoting.Setup[java.lang.Object\\:\\:()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "simple_evoting.Setup[java.lang.Object::()].JML accessible clause.0", + "contract": "simple_evoting.Setup[java.lang.Object::()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__main()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__main()).JML normal_behavior operation contract.0.key index 1c23dca00c5..4bcb92c34ff 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__main()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__main()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:19 CEST 2014 -name=simple_evoting.Setup[simple_evoting.Setup\\:\\:main()].JML normal_behavior operation contract.0 -contract=simple_evoting.Setup[simple_evoting.Setup\\:\\:main()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.Setup[simple_evoting.Setup::main()].JML normal_behavior operation contract.0", + "contract": "simple_evoting.Setup[simple_evoting.Setup::main()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__main()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__main()).Non-interference contract.0.key index cfad07ac87b..e1d2f20cc96 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__main()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__main()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:19 CEST 2014 -name=simple_evoting.Setup[simple_evoting.Setup\\:\\:main()].Non-interference contract.0 -contract=simple_evoting.Setup[simple_evoting.Setup\\:\\:main()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Setup[simple_evoting.Setup::main()].Non-interference contract.0", + "contract": "simple_evoting.Setup[simple_evoting.Setup::main()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__main()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__main()).Non-interference contract.0.m.key index 8aef2c3d435..a8646ae5b3f 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__main()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__main()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:19 CEST 2014 -name=simple_evoting.Setup[simple_evoting.Setup\\:\\:main()].Non-interference contract.0 -contract=simple_evoting.Setup[simple_evoting.Setup\\:\\:main()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Setup[simple_evoting.Setup::main()].Non-interference contract.0", + "contract": "simple_evoting.Setup[simple_evoting.Setup::main()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__publishResult()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__publishResult()).JML normal_behavior operation contract.0.key index 64af9cddfb5..c2b2cb77bbb 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__publishResult()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__publishResult()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:19 CEST 2014 -name=simple_evoting.Setup[simple_evoting.Setup\\:\\:publishResult()].JML normal_behavior operation contract.0 -contract=simple_evoting.Setup[simple_evoting.Setup\\:\\:publishResult()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.Setup[simple_evoting.Setup::publishResult()].JML normal_behavior operation contract.0", + "contract": "simple_evoting.Setup[simple_evoting.Setup::publishResult()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__publishResult()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__publishResult()).Non-interference contract.0.key index d40c2678533..f3964890a30 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__publishResult()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__publishResult()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:18 CEST 2014 -name=simple_evoting.Setup[simple_evoting.Setup\\:\\:publishResult()].Non-interference contract.0 -contract=simple_evoting.Setup[simple_evoting.Setup\\:\\:publishResult()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Setup[simple_evoting.Setup::publishResult()].Non-interference contract.0", + "contract": "simple_evoting.Setup[simple_evoting.Setup::publishResult()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__publishResult()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__publishResult()).Non-interference contract.0.m.key index 65956cb4acc..6c24a490ad6 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__publishResult()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Setup(simple_evoting.Setup__publishResult()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:18 CEST 2014 -name=simple_evoting.Setup[simple_evoting.Setup\\:\\:publishResult()].Non-interference contract.0 -contract=simple_evoting.Setup[simple_evoting.Setup\\:\\:publishResult()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Setup[simple_evoting.Setup::publishResult()].Non-interference contract.0", + "contract": "simple_evoting.Setup[simple_evoting.Setup::publishResult()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(java.lang.Object___inv_()).JML accessible clause.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(java.lang.Object___inv_()).JML accessible clause.0.key index 99bf3169f5e..0db201aca0f 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(java.lang.Object___inv_()).JML accessible clause.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(java.lang.Object___inv_()).JML accessible clause.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:19 CEST 2014 -name=simple_evoting.Voter[java.lang.Object\\:\\:()].JML accessible clause.0 -contract=simple_evoting.Voter[java.lang.Object\\:\\:()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "simple_evoting.Voter[java.lang.Object::()].JML accessible clause.0", + "contract": "simple_evoting.Voter[java.lang.Object::()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).JML normal_behavior operation contract.0.key index 3824f397022..4110313c65f 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:19 CEST 2014 -name=simple_evoting.Voter[simple_evoting.Voter\\:\\:onSendBallot(simple_evoting.Server)].JML normal_behavior operation contract.0 -contract=simple_evoting.Voter[simple_evoting.Voter\\:\\:onSendBallot(simple_evoting.Server)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.Voter[simple_evoting.Voter::onSendBallot(simple_evoting.Server)].JML normal_behavior operation contract.0", + "contract": "simple_evoting.Voter[simple_evoting.Voter::onSendBallot(simple_evoting.Server)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).JML normal_behavior operation contract.1.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).JML normal_behavior operation contract.1.key index 0ad215a9bc3..009b5c3897b 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).JML normal_behavior operation contract.1.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).JML normal_behavior operation contract.1.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:19 CEST 2014 -name=simple_evoting.Voter[simple_evoting.Voter\\:\\:onSendBallot(simple_evoting.Server)].JML normal_behavior operation contract.1 -contract=simple_evoting.Voter[simple_evoting.Voter\\:\\:onSendBallot(simple_evoting.Server)].JML normal_behavior operation contract.1 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "simple_evoting.Voter[simple_evoting.Voter::onSendBallot(simple_evoting.Server)].JML normal_behavior operation contract.1", + "contract": "simple_evoting.Voter[simple_evoting.Voter::onSendBallot(simple_evoting.Server)].JML normal_behavior operation contract.1", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).Non-interference contract.0.key index 787d41a2c00..d06abc237bd 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:19 CEST 2014 -name=simple_evoting.Voter[simple_evoting.Voter\\:\\:onSendBallot(simple_evoting.Server)].Non-interference contract.0 -contract=simple_evoting.Voter[simple_evoting.Voter\\:\\:onSendBallot(simple_evoting.Server)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Voter[simple_evoting.Voter::onSendBallot(simple_evoting.Server)].Non-interference contract.0", + "contract": "simple_evoting.Voter[simple_evoting.Voter::onSendBallot(simple_evoting.Server)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).Non-interference contract.0.m.key index 8ce96bfbd8f..a3505a2a16b 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:19 CEST 2014 -name=simple_evoting.Voter[simple_evoting.Voter\\:\\:onSendBallot(simple_evoting.Server)].Non-interference contract.0 -contract=simple_evoting.Voter[simple_evoting.Voter\\:\\:onSendBallot(simple_evoting.Server)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Voter[simple_evoting.Voter::onSendBallot(simple_evoting.Server)].Non-interference contract.0", + "contract": "simple_evoting.Voter[simple_evoting.Voter::onSendBallot(simple_evoting.Server)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).Non-interference contract.1.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).Non-interference contract.1.key index 4d586bebbaf..10155fbd70d 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).Non-interference contract.1.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).Non-interference contract.1.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:19 CEST 2014 -name=simple_evoting.Voter[simple_evoting.Voter\\:\\:onSendBallot(simple_evoting.Server)].Non-interference contract.1 -contract=simple_evoting.Voter[simple_evoting.Voter\\:\\:onSendBallot(simple_evoting.Server)].Non-interference contract.1 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Voter[simple_evoting.Voter::onSendBallot(simple_evoting.Server)].Non-interference contract.1", + "contract": "simple_evoting.Voter[simple_evoting.Voter::onSendBallot(simple_evoting.Server)].Non-interference contract.1", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).Non-interference contract.1.m.key b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).Non-interference contract.1.m.key index 01b32c40215..59aad78927b 100644 --- a/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).Non-interference contract.1.m.key +++ b/key.ui/examples/InformationFlow/SimpleEvoting/simple_evoting.Voter(simple_evoting.Voter__onSendBallot(simple_evoting.Server)).Non-interference contract.1.m.key @@ -41,12 +41,11 @@ \javaSource "src/simple_evoting"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:36:19 CEST 2014 -name=simple_evoting.Voter[simple_evoting.Voter\\:\\:onSendBallot(simple_evoting.Server)].Non-interference contract.1 -contract=simple_evoting.Voter[simple_evoting.Voter\\:\\:onSendBallot(simple_evoting.Server)].Non-interference contract.1 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "simple_evoting.Voter[simple_evoting.Voter::onSendBallot(simple_evoting.Server)].Non-interference contract.1", + "contract": "simple_evoting.Voter[simple_evoting.Voter::onSendBallot(simple_evoting.Server)].Non-interference contract.1", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/Sum/SumExample(SumExample__getSum()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/Sum/SumExample(SumExample__getSum()).JML normal_behavior operation contract.0.key index 95fed2e9837..482b361079a 100644 --- a/key.ui/examples/InformationFlow/Sum/SumExample(SumExample__getSum()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/Sum/SumExample(SumExample__getSum()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:41 CEST 2014 -name=SumExample[SumExample\\:\\:getSum()].JML normal_behavior operation contract.0 -contract=SumExample[SumExample\\:\\:getSum()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "SumExample[SumExample::getSum()].JML normal_behavior operation contract.0", + "contract": "SumExample[SumExample::getSum()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/Sum/SumExample(SumExample__getSum()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/Sum/SumExample(SumExample__getSum()).Non-interference contract.0.key index ca7c3c9b04d..bb9435474a2 100644 --- a/key.ui/examples/InformationFlow/Sum/SumExample(SumExample__getSum()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/Sum/SumExample(SumExample__getSum()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:41 CEST 2014 -name=SumExample[SumExample\\:\\:getSum()].Non-interference contract.0 -contract=SumExample[SumExample\\:\\:getSum()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "SumExample[SumExample::getSum()].Non-interference contract.0", + "contract": "SumExample[SumExample::getSum()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/Sum/SumExample(SumExample__getSum()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/Sum/SumExample(SumExample__getSum()).Non-interference contract.0.m.key index be69f32a75e..fd56916fd29 100644 --- a/key.ui/examples/InformationFlow/Sum/SumExample(SumExample__getSum()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/Sum/SumExample(SumExample__getSum()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:41 CEST 2014 -name=SumExample[SumExample\\:\\:getSum()].Non-interference contract.0 -contract=SumExample[SumExample\\:\\:getSum()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "SumExample[SumExample::getSum()].Non-interference contract.0", + "contract": "SumExample[SumExample::getSum()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.Bank(banking_example.Bank__login(int,(C)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.Bank(banking_example.Bank__login(int,(C)).JML normal_behavior operation contract.0.key index 8e6a74f07a2..c99f46e1100 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.Bank(banking_example.Bank__login(int,(C)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.Bank(banking_example.Bank__login(int,(C)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:48 CEST 2014 -name=banking_example.Bank[banking_example.Bank\\:\\:login(int,[C)].JML normal_behavior operation contract.0 -contract=banking_example.Bank[banking_example.Bank\\:\\:login(int,[C)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "banking_example.Bank[banking_example.Bank::login(int,[C)].JML normal_behavior operation contract.0", + "contract": "banking_example.Bank[banking_example.Bank::login(int,[C)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.Bank(banking_example.Bank__login(int,(C)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.Bank(banking_example.Bank__login(int,(C)).Non-interference contract.0.key index 94f644b7bd2..45590fa12c2 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.Bank(banking_example.Bank__login(int,(C)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.Bank(banking_example.Bank__login(int,(C)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:47 CEST 2014 -name=banking_example.Bank[banking_example.Bank\\:\\:login(int,[C)].Non-interference contract.0 -contract=banking_example.Bank[banking_example.Bank\\:\\:login(int,[C)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example.Bank[banking_example.Bank::login(int,[C)].Non-interference contract.0", + "contract": "banking_example.Bank[banking_example.Bank::login(int,[C)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.Bank(banking_example.Bank__login(int,(C)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.Bank(banking_example.Bank__login(int,(C)).Non-interference contract.0.m.key index 18704552571..8b6ad2c3354 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.Bank(banking_example.Bank__login(int,(C)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.Bank(banking_example.Bank__login(int,(C)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:47 CEST 2014 -name=banking_example.Bank[banking_example.Bank\\:\\:login(int,[C)].Non-interference contract.0 -contract=banking_example.Bank[banking_example.Bank\\:\\:login(int,[C)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example.Bank[banking_example.Bank::login(int,[C)].Non-interference contract.0", + "contract": "banking_example.Bank[banking_example.Bank::login(int,[C)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__depositMoney(int)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__depositMoney(int)).JML normal_behavior operation contract.0.key index 2c3d13e456e..110750c6a54 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__depositMoney(int)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__depositMoney(int)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:47 CEST 2014 -name=banking_example.BankAccount[banking_example.BankAccount\\:\\:depositMoney(int)].JML normal_behavior operation contract.0 -contract=banking_example.BankAccount[banking_example.BankAccount\\:\\:depositMoney(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "banking_example.BankAccount[banking_example.BankAccount::depositMoney(int)].JML normal_behavior operation contract.0", + "contract": "banking_example.BankAccount[banking_example.BankAccount::depositMoney(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__depositMoney(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__depositMoney(int)).Non-interference contract.0.key index a1ed5500997..1dfdec9d929 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__depositMoney(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__depositMoney(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:47 CEST 2014 -name=banking_example.BankAccount[banking_example.BankAccount\\:\\:depositMoney(int)].Non-interference contract.0 -contract=banking_example.BankAccount[banking_example.BankAccount\\:\\:depositMoney(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example.BankAccount[banking_example.BankAccount::depositMoney(int)].Non-interference contract.0", + "contract": "banking_example.BankAccount[banking_example.BankAccount::depositMoney(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__depositMoney(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__depositMoney(int)).Non-interference contract.0.m.key index 8bd7ed9bea0..29825dcb1a6 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__depositMoney(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__depositMoney(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:47 CEST 2014 -name=banking_example.BankAccount[banking_example.BankAccount\\:\\:depositMoney(int)].Non-interference contract.0 -contract=banking_example.BankAccount[banking_example.BankAccount\\:\\:depositMoney(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example.BankAccount[banking_example.BankAccount::depositMoney(int)].Non-interference contract.0", + "contract": "banking_example.BankAccount[banking_example.BankAccount::depositMoney(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getBalance()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getBalance()).JML normal_behavior operation contract.0.key index 5a1f7b91d9d..550a601e89d 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getBalance()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getBalance()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:47 CEST 2014 -name=banking_example.BankAccount[banking_example.BankAccount\\:\\:getBalance()].JML normal_behavior operation contract.0 -contract=banking_example.BankAccount[banking_example.BankAccount\\:\\:getBalance()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "banking_example.BankAccount[banking_example.BankAccount::getBalance()].JML normal_behavior operation contract.0", + "contract": "banking_example.BankAccount[banking_example.BankAccount::getBalance()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getBalance()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getBalance()).Non-interference contract.0.key index 8916c3cc8d6..5e19932c47e 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getBalance()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getBalance()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:47 CEST 2014 -name=banking_example.BankAccount[banking_example.BankAccount\\:\\:getBalance()].Non-interference contract.0 -contract=banking_example.BankAccount[banking_example.BankAccount\\:\\:getBalance()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example.BankAccount[banking_example.BankAccount::getBalance()].Non-interference contract.0", + "contract": "banking_example.BankAccount[banking_example.BankAccount::getBalance()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getBalance()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getBalance()).Non-interference contract.0.m.key index 06ee5e31eb5..064a88f4ba7 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getBalance()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getBalance()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:47 CEST 2014 -name=banking_example.BankAccount[banking_example.BankAccount\\:\\:getBalance()].Non-interference contract.0 -contract=banking_example.BankAccount[banking_example.BankAccount\\:\\:getBalance()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example.BankAccount[banking_example.BankAccount::getBalance()].Non-interference contract.0", + "contract": "banking_example.BankAccount[banking_example.BankAccount::getBalance()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getId()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getId()).JML normal_behavior operation contract.0.key index 4cd7f069dfe..55e24821bb9 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getId()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getId()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:47 CEST 2014 -name=banking_example.BankAccount[banking_example.BankAccount\\:\\:getId()].JML normal_behavior operation contract.0 -contract=banking_example.BankAccount[banking_example.BankAccount\\:\\:getId()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "banking_example.BankAccount[banking_example.BankAccount::getId()].JML normal_behavior operation contract.0", + "contract": "banking_example.BankAccount[banking_example.BankAccount::getId()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getId()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getId()).Non-interference contract.0.key index 9110e7f17a2..c7982eb7c8f 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getId()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getId()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:47 CEST 2014 -name=banking_example.BankAccount[banking_example.BankAccount\\:\\:getId()].Non-interference contract.0 -contract=banking_example.BankAccount[banking_example.BankAccount\\:\\:getId()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example.BankAccount[banking_example.BankAccount::getId()].Non-interference contract.0", + "contract": "banking_example.BankAccount[banking_example.BankAccount::getId()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getId()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getId()).Non-interference contract.0.m.key index af47950c55a..800607731a4 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getId()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.BankAccount(banking_example.BankAccount__getId()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:47 CEST 2014 -name=banking_example.BankAccount[banking_example.BankAccount\\:\\:getId()].Non-interference contract.0 -contract=banking_example.BankAccount[banking_example.BankAccount\\:\\:getId()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example.BankAccount[banking_example.BankAccount::getId()].Non-interference contract.0", + "contract": "banking_example.BankAccount[banking_example.BankAccount::getId()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__getBankAccount(int)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__getBankAccount(int)).JML normal_behavior operation contract.0.key index b2f3ab5dc7c..dd3da8694a9 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__getBankAccount(int)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__getBankAccount(int)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:46 CEST 2014 -name=banking_example.UserAccount[banking_example.UserAccount\\:\\:getBankAccount(int)].JML normal_behavior operation contract.0 -contract=banking_example.UserAccount[banking_example.UserAccount\\:\\:getBankAccount(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "banking_example.UserAccount[banking_example.UserAccount::getBankAccount(int)].JML normal_behavior operation contract.0", + "contract": "banking_example.UserAccount[banking_example.UserAccount::getBankAccount(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__getBankAccount(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__getBankAccount(int)).Non-interference contract.0.key index 99b13337720..707da55ca1b 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__getBankAccount(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__getBankAccount(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:46 CEST 2014 -name=banking_example.UserAccount[banking_example.UserAccount\\:\\:getBankAccount(int)].Non-interference contract.0 -contract=banking_example.UserAccount[banking_example.UserAccount\\:\\:getBankAccount(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example.UserAccount[banking_example.UserAccount::getBankAccount(int)].Non-interference contract.0", + "contract": "banking_example.UserAccount[banking_example.UserAccount::getBankAccount(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__getBankAccount(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__getBankAccount(int)).Non-interference contract.0.m.key index fd0642dd74c..6fbb81fe494 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__getBankAccount(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__getBankAccount(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:46 CEST 2014 -name=banking_example.UserAccount[banking_example.UserAccount\\:\\:getBankAccount(int)].Non-interference contract.0 -contract=banking_example.UserAccount[banking_example.UserAccount\\:\\:getBankAccount(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example.UserAccount[banking_example.UserAccount::getBankAccount(int)].Non-interference contract.0", + "contract": "banking_example.UserAccount[banking_example.UserAccount::getBankAccount(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__tryLogin(int,(C)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__tryLogin(int,(C)).JML normal_behavior operation contract.0.key index d9c91fe74d4..a4d236e1848 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__tryLogin(int,(C)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__tryLogin(int,(C)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:47 CEST 2014 -name=banking_example.UserAccount[banking_example.UserAccount\\:\\:tryLogin(int,[C)].JML normal_behavior operation contract.0 -contract=banking_example.UserAccount[banking_example.UserAccount\\:\\:tryLogin(int,[C)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "banking_example.UserAccount[banking_example.UserAccount::tryLogin(int,[C)].JML normal_behavior operation contract.0", + "contract": "banking_example.UserAccount[banking_example.UserAccount::tryLogin(int,[C)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__tryLogin(int,(C)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__tryLogin(int,(C)).Non-interference contract.0.key index ce1083ea4af..3b446538359 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__tryLogin(int,(C)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__tryLogin(int,(C)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:46 CEST 2014 -name=banking_example.UserAccount[banking_example.UserAccount\\:\\:tryLogin(int,[C)].Non-interference contract.0 -contract=banking_example.UserAccount[banking_example.UserAccount\\:\\:tryLogin(int,[C)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example.UserAccount[banking_example.UserAccount::tryLogin(int,[C)].Non-interference contract.0", + "contract": "banking_example.UserAccount[banking_example.UserAccount::tryLogin(int,[C)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__tryLogin(int,(C)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__tryLogin(int,(C)).Non-interference contract.0.m.key index 6a894e53540..133b7b90053 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__tryLogin(int,(C)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(banking_example.UserAccount__tryLogin(int,(C)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:46 CEST 2014 -name=banking_example.UserAccount[banking_example.UserAccount\\:\\:tryLogin(int,[C)].Non-interference contract.0 -contract=banking_example.UserAccount[banking_example.UserAccount\\:\\:tryLogin(int,[C)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example.UserAccount[banking_example.UserAccount::tryLogin(int,[C)].Non-interference contract.0", + "contract": "banking_example.UserAccount[banking_example.UserAccount::tryLogin(int,[C)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(java.lang.Object___inv_()).JML accessible clause.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(java.lang.Object___inv_()).JML accessible clause.0.key index 7cfa6bcdfd1..49e48b1ac7a 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(java.lang.Object___inv_()).JML accessible clause.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example.UserAccount(java.lang.Object___inv_()).JML accessible clause.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:26:47 CEST 2014 -name=banking_example.UserAccount[java.lang.Object\\:\\:()].JML accessible clause.0 -contract=banking_example.UserAccount[java.lang.Object\\:\\:()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "banking_example.UserAccount[java.lang.Object::()].JML accessible clause.0", + "contract": "banking_example.UserAccount[java.lang.Object::()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.Bank(banking_example2.Bank__login(int,(C)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.Bank(banking_example2.Bank__login(int,(C)).JML normal_behavior operation contract.0.key index 0d341b2afc0..805b43f3d13 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.Bank(banking_example2.Bank__login(int,(C)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.Bank(banking_example2.Bank__login(int,(C)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:51 CEST 2014 -name=banking_example2.Bank[banking_example2.Bank\\:\\:login(int,[C)].JML normal_behavior operation contract.0 -contract=banking_example2.Bank[banking_example2.Bank\\:\\:login(int,[C)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "banking_example2.Bank[banking_example2.Bank::login(int,[C)].JML normal_behavior operation contract.0", + "contract": "banking_example2.Bank[banking_example2.Bank::login(int,[C)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.Bank(banking_example2.Bank__login(int,(C)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.Bank(banking_example2.Bank__login(int,(C)).Non-interference contract.0.key index bd76441851a..5844e11ba29 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.Bank(banking_example2.Bank__login(int,(C)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.Bank(banking_example2.Bank__login(int,(C)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:51 CEST 2014 -name=banking_example2.Bank[banking_example2.Bank\\:\\:login(int,[C)].Non-interference contract.0 -contract=banking_example2.Bank[banking_example2.Bank\\:\\:login(int,[C)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example2.Bank[banking_example2.Bank::login(int,[C)].Non-interference contract.0", + "contract": "banking_example2.Bank[banking_example2.Bank::login(int,[C)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.Bank(banking_example2.Bank__login(int,(C)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.Bank(banking_example2.Bank__login(int,(C)).Non-interference contract.0.m.key index 0ba8e82b224..d358bd82570 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.Bank(banking_example2.Bank__login(int,(C)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.Bank(banking_example2.Bank__login(int,(C)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:51 CEST 2014 -name=banking_example2.Bank[banking_example2.Bank\\:\\:login(int,[C)].Non-interference contract.0 -contract=banking_example2.Bank[banking_example2.Bank\\:\\:login(int,[C)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example2.Bank[banking_example2.Bank::login(int,[C)].Non-interference contract.0", + "contract": "banking_example2.Bank[banking_example2.Bank::login(int,[C)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__depositMoney(int)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__depositMoney(int)).JML normal_behavior operation contract.0.key index 8031ef68372..ce338c484c8 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__depositMoney(int)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__depositMoney(int)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:51 CEST 2014 -name=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:depositMoney(int)].JML normal_behavior operation contract.0 -contract=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:depositMoney(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "banking_example2.BankAccount[banking_example2.BankAccount::depositMoney(int)].JML normal_behavior operation contract.0", + "contract": "banking_example2.BankAccount[banking_example2.BankAccount::depositMoney(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__depositMoney(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__depositMoney(int)).Non-interference contract.0.key index c707c135fbd..18e19805238 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__depositMoney(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__depositMoney(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:51 CEST 2014 -name=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:depositMoney(int)].Non-interference contract.0 -contract=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:depositMoney(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example2.BankAccount[banking_example2.BankAccount::depositMoney(int)].Non-interference contract.0", + "contract": "banking_example2.BankAccount[banking_example2.BankAccount::depositMoney(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__depositMoney(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__depositMoney(int)).Non-interference contract.0.m.key index 3e193afcc7e..ae3e9bc2fb5 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__depositMoney(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__depositMoney(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:51 CEST 2014 -name=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:depositMoney(int)].Non-interference contract.0 -contract=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:depositMoney(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example2.BankAccount[banking_example2.BankAccount::depositMoney(int)].Non-interference contract.0", + "contract": "banking_example2.BankAccount[banking_example2.BankAccount::depositMoney(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getBalance()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getBalance()).JML normal_behavior operation contract.0.key index 04d721595a5..ba8f6b0cb52 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getBalance()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getBalance()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:51 CEST 2014 -name=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:getBalance()].JML normal_behavior operation contract.0 -contract=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:getBalance()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "banking_example2.BankAccount[banking_example2.BankAccount::getBalance()].JML normal_behavior operation contract.0", + "contract": "banking_example2.BankAccount[banking_example2.BankAccount::getBalance()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getBalance()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getBalance()).Non-interference contract.0.key index b9f0df355f4..8854d102834 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getBalance()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getBalance()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:51 CEST 2014 -name=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:getBalance()].Non-interference contract.0 -contract=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:getBalance()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example2.BankAccount[banking_example2.BankAccount::getBalance()].Non-interference contract.0", + "contract": "banking_example2.BankAccount[banking_example2.BankAccount::getBalance()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getBalance()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getBalance()).Non-interference contract.0.m.key index b52a53c511a..6cf873dcf7f 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getBalance()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getBalance()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:51 CEST 2014 -name=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:getBalance()].Non-interference contract.0 -contract=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:getBalance()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example2.BankAccount[banking_example2.BankAccount::getBalance()].Non-interference contract.0", + "contract": "banking_example2.BankAccount[banking_example2.BankAccount::getBalance()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getId()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getId()).JML normal_behavior operation contract.0.key index bc4bbb2ee0d..636b84bd9fc 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getId()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getId()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:51 CEST 2014 -name=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:getId()].JML normal_behavior operation contract.0 -contract=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:getId()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "banking_example2.BankAccount[banking_example2.BankAccount::getId()].JML normal_behavior operation contract.0", + "contract": "banking_example2.BankAccount[banking_example2.BankAccount::getId()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getId()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getId()).Non-interference contract.0.key index 07dfa81d0e6..301dad1140f 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getId()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getId()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:51 CEST 2014 -name=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:getId()].Non-interference contract.0 -contract=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:getId()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example2.BankAccount[banking_example2.BankAccount::getId()].Non-interference contract.0", + "contract": "banking_example2.BankAccount[banking_example2.BankAccount::getId()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getId()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getId()).Non-interference contract.0.m.key index ba022c0ef36..521016aa98f 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getId()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.BankAccount(banking_example2.BankAccount__getId()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:51 CEST 2014 -name=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:getId()].Non-interference contract.0 -contract=banking_example2.BankAccount[banking_example2.BankAccount\\:\\:getId()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example2.BankAccount[banking_example2.BankAccount::getId()].Non-interference contract.0", + "contract": "banking_example2.BankAccount[banking_example2.BankAccount::getId()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__getBankAccount(int)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__getBankAccount(int)).JML normal_behavior operation contract.0.key index aa545378e83..b0e2bb1b792 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__getBankAccount(int)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__getBankAccount(int)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:50 CEST 2014 -name=banking_example2.UserAccount[banking_example2.UserAccount\\:\\:getBankAccount(int)].JML normal_behavior operation contract.0 -contract=banking_example2.UserAccount[banking_example2.UserAccount\\:\\:getBankAccount(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "banking_example2.UserAccount[banking_example2.UserAccount::getBankAccount(int)].JML normal_behavior operation contract.0", + "contract": "banking_example2.UserAccount[banking_example2.UserAccount::getBankAccount(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__getBankAccount(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__getBankAccount(int)).Non-interference contract.0.key index 7e8f8fc97c0..f205969944c 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__getBankAccount(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__getBankAccount(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:50 CEST 2014 -name=banking_example2.UserAccount[banking_example2.UserAccount\\:\\:getBankAccount(int)].Non-interference contract.0 -contract=banking_example2.UserAccount[banking_example2.UserAccount\\:\\:getBankAccount(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example2.UserAccount[banking_example2.UserAccount::getBankAccount(int)].Non-interference contract.0", + "contract": "banking_example2.UserAccount[banking_example2.UserAccount::getBankAccount(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__getBankAccount(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__getBankAccount(int)).Non-interference contract.0.m.key index f882f65bf56..d81fcbfcebd 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__getBankAccount(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__getBankAccount(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:50 CEST 2014 -name=banking_example2.UserAccount[banking_example2.UserAccount\\:\\:getBankAccount(int)].Non-interference contract.0 -contract=banking_example2.UserAccount[banking_example2.UserAccount\\:\\:getBankAccount(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example2.UserAccount[banking_example2.UserAccount::getBankAccount(int)].Non-interference contract.0", + "contract": "banking_example2.UserAccount[banking_example2.UserAccount::getBankAccount(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__tryLogin(int,(C)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__tryLogin(int,(C)).JML normal_behavior operation contract.0.key index 834dfe6bb4e..766b4f89c82 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__tryLogin(int,(C)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__tryLogin(int,(C)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:50 CEST 2014 -name=banking_example2.UserAccount[banking_example2.UserAccount\\:\\:tryLogin(int,[C)].JML normal_behavior operation contract.0 -contract=banking_example2.UserAccount[banking_example2.UserAccount\\:\\:tryLogin(int,[C)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "banking_example2.UserAccount[banking_example2.UserAccount::tryLogin(int,[C)].JML normal_behavior operation contract.0", + "contract": "banking_example2.UserAccount[banking_example2.UserAccount::tryLogin(int,[C)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__tryLogin(int,(C)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__tryLogin(int,(C)).Non-interference contract.0.key index 9f2bb35871a..0c873f13fd3 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__tryLogin(int,(C)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__tryLogin(int,(C)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:50 CEST 2014 -name=banking_example2.UserAccount[banking_example2.UserAccount\\:\\:tryLogin(int,[C)].Non-interference contract.0 -contract=banking_example2.UserAccount[banking_example2.UserAccount\\:\\:tryLogin(int,[C)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example2.UserAccount[banking_example2.UserAccount::tryLogin(int,[C)].Non-interference contract.0", + "contract": "banking_example2.UserAccount[banking_example2.UserAccount::tryLogin(int,[C)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__tryLogin(int,(C)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__tryLogin(int,(C)).Non-interference contract.0.m.key index 17ecedce584..1c0dbd8f3f0 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__tryLogin(int,(C)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(banking_example2.UserAccount__tryLogin(int,(C)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:50 CEST 2014 -name=banking_example2.UserAccount[banking_example2.UserAccount\\:\\:tryLogin(int,[C)].Non-interference contract.0 -contract=banking_example2.UserAccount[banking_example2.UserAccount\\:\\:tryLogin(int,[C)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "banking_example2.UserAccount[banking_example2.UserAccount::tryLogin(int,[C)].Non-interference contract.0", + "contract": "banking_example2.UserAccount[banking_example2.UserAccount::tryLogin(int,[C)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(java.lang.Object___inv_()).JML accessible clause.0.key b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(java.lang.Object___inv_()).JML accessible clause.0.key index 166280221f6..0ca8b509b77 100644 --- a/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(java.lang.Object___inv_()).JML accessible clause.0.key +++ b/key.ui/examples/InformationFlow/ToyBanking/banking_example2.UserAccount(java.lang.Object___inv_()).JML accessible clause.0.key @@ -41,12 +41,11 @@ \javaSource "src/banking_example2"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:33:51 CEST 2014 -name=banking_example2.UserAccount[java.lang.Object\\:\\:()].JML accessible clause.0 -contract=banking_example2.UserAccount[java.lang.Object\\:\\:()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "banking_example2.UserAccount[java.lang.Object::()].JML accessible clause.0", + "contract": "banking_example2.UserAccount[java.lang.Object::()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__inputVote()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__inputVote()).JML normal_behavior operation contract.0.key index dc9021dd8a9..fe2ef31f1f9 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__inputVote()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__inputVote()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:39 CEST 2014 -name=Voter[Voter\\:\\:inputVote()].JML normal_behavior operation contract.0 -contract=Voter[Voter\\:\\:inputVote()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Voter[Voter::inputVote()].JML normal_behavior operation contract.0", + "contract": "Voter[Voter::inputVote()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__inputVote()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__inputVote()).Non-interference contract.0.key index fa8fa749189..e76d1f67b1d 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__inputVote()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__inputVote()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:39 CEST 2014 -name=Voter[Voter\\:\\:inputVote()].Non-interference contract.0 -contract=Voter[Voter\\:\\:inputVote()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "Voter[Voter::inputVote()].Non-interference contract.0", + "contract": "Voter[Voter::inputVote()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__inputVote()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__inputVote()).Non-interference contract.0.m.key index a5475e2b5dd..84f66f60f75 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__inputVote()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__inputVote()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:39 CEST 2014 -name=Voter[Voter\\:\\:inputVote()].Non-interference contract.0 -contract=Voter[Voter\\:\\:inputVote()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "Voter[Voter::inputVote()].Non-interference contract.0", + "contract": "Voter[Voter::inputVote()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__insecure_voting()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__insecure_voting()).JML normal_behavior operation contract.0.key index 5d0b35fac1a..47d3d0b4c23 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__insecure_voting()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__insecure_voting()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:37 CEST 2014 -name=Voter[Voter\\:\\:insecure_voting()].JML normal_behavior operation contract.0 -contract=Voter[Voter\\:\\:insecure_voting()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Voter[Voter::insecure_voting()].JML normal_behavior operation contract.0", + "contract": "Voter[Voter::insecure_voting()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__insecure_voting()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__insecure_voting()).Non-interference contract.0.key index 53598a84cc9..720730752a4 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__insecure_voting()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__insecure_voting()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:36 CEST 2014 -name=Voter[Voter\\:\\:insecure_voting()].Non-interference contract.0 -contract=Voter[Voter\\:\\:insecure_voting()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "Voter[Voter::insecure_voting()].Non-interference contract.0", + "contract": "Voter[Voter::insecure_voting()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__insecure_voting()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__insecure_voting()).Non-interference contract.0.m.key index 0e159f447b4..adeda69551c 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__insecure_voting()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__insecure_voting()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:36 CEST 2014 -name=Voter[Voter\\:\\:insecure_voting()].Non-interference contract.0 -contract=Voter[Voter\\:\\:insecure_voting()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "Voter[Voter::insecure_voting()].Non-interference contract.0", + "contract": "Voter[Voter::insecure_voting()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__isValid(int)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__isValid(int)).JML normal_behavior operation contract.0.key index 48d11dd4e57..b8fb572c90c 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__isValid(int)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__isValid(int)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:38 CEST 2014 -name=Voter[Voter\\:\\:isValid(int)].JML normal_behavior operation contract.0 -contract=Voter[Voter\\:\\:isValid(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Voter[Voter::isValid(int)].JML normal_behavior operation contract.0", + "contract": "Voter[Voter::isValid(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__isValid(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__isValid(int)).Non-interference contract.0.key index 253f13d6724..48f90830cfe 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__isValid(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__isValid(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:37 CEST 2014 -name=Voter[Voter\\:\\:isValid(int)].Non-interference contract.0 -contract=Voter[Voter\\:\\:isValid(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "Voter[Voter::isValid(int)].Non-interference contract.0", + "contract": "Voter[Voter::isValid(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__isValid(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__isValid(int)).Non-interference contract.0.m.key index ffb79b4a8ba..e474d224e73 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__isValid(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__isValid(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:37 CEST 2014 -name=Voter[Voter\\:\\:isValid(int)].Non-interference contract.0 -contract=Voter[Voter\\:\\:isValid(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "Voter[Voter::isValid(int)].Non-interference contract.0", + "contract": "Voter[Voter::isValid(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__publishVoterParticipation()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__publishVoterParticipation()).JML normal_behavior operation contract.0.key index 1e9b725d94b..6dd460e6bd2 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__publishVoterParticipation()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__publishVoterParticipation()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:37 CEST 2014 -name=Voter[Voter\\:\\:publishVoterParticipation()].JML normal_behavior operation contract.0 -contract=Voter[Voter\\:\\:publishVoterParticipation()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Voter[Voter::publishVoterParticipation()].JML normal_behavior operation contract.0", + "contract": "Voter[Voter::publishVoterParticipation()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__publishVoterParticipation()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__publishVoterParticipation()).Non-interference contract.0.key index d5e20227fa2..27c16fb9641 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__publishVoterParticipation()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__publishVoterParticipation()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:37 CEST 2014 -name=Voter[Voter\\:\\:publishVoterParticipation()].Non-interference contract.0 -contract=Voter[Voter\\:\\:publishVoterParticipation()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "Voter[Voter::publishVoterParticipation()].Non-interference contract.0", + "contract": "Voter[Voter::publishVoterParticipation()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__publishVoterParticipation()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__publishVoterParticipation()).Non-interference contract.0.m.key index 412b5a2deff..8664d34d097 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__publishVoterParticipation()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__publishVoterParticipation()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:37 CEST 2014 -name=Voter[Voter\\:\\:publishVoterParticipation()].Non-interference contract.0 -contract=Voter[Voter\\:\\:publishVoterParticipation()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "Voter[Voter::publishVoterParticipation()].Non-interference contract.0", + "contract": "Voter[Voter::publishVoterParticipation()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__secure_voting()).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__secure_voting()).JML normal_behavior operation contract.0.key index f85709a92d2..122673d9207 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__secure_voting()).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__secure_voting()).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:39 CEST 2014 -name=Voter[Voter\\:\\:secure_voting()].JML normal_behavior operation contract.0 -contract=Voter[Voter\\:\\:secure_voting()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Voter[Voter::secure_voting()].JML normal_behavior operation contract.0", + "contract": "Voter[Voter::secure_voting()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__secure_voting()).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__secure_voting()).Non-interference contract.0.key index 598e63b68fa..d0cd59e46c9 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__secure_voting()).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__secure_voting()).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:39 CEST 2014 -name=Voter[Voter\\:\\:secure_voting()].Non-interference contract.0 -contract=Voter[Voter\\:\\:secure_voting()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "Voter[Voter::secure_voting()].Non-interference contract.0", + "contract": "Voter[Voter::secure_voting()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__secure_voting()).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__secure_voting()).Non-interference contract.0.m.key index 1b2295214e4..fa393b45cd3 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__secure_voting()).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__secure_voting()).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:39 CEST 2014 -name=Voter[Voter\\:\\:secure_voting()].Non-interference contract.0 -contract=Voter[Voter\\:\\:secure_voting()].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "Voter[Voter::secure_voting()].Non-interference contract.0", + "contract": "Voter[Voter::secure_voting()].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__sendVote(int)).JML normal_behavior operation contract.0.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__sendVote(int)).JML normal_behavior operation contract.0.key index 64b04e95ff2..34ef5a009bf 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__sendVote(int)).JML normal_behavior operation contract.0.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__sendVote(int)).JML normal_behavior operation contract.0.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:38 CEST 2014 -name=Voter[Voter\\:\\:sendVote(int)].JML normal_behavior operation contract.0 -contract=Voter[Voter\\:\\:sendVote(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Voter[Voter::sendVote(int)].JML normal_behavior operation contract.0", + "contract": "Voter[Voter::sendVote(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__sendVote(int)).Non-interference contract.0.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__sendVote(int)).Non-interference contract.0.key index 3c4b72f4df7..7701fab8b70 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__sendVote(int)).Non-interference contract.0.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__sendVote(int)).Non-interference contract.0.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:38 CEST 2014 -name=Voter[Voter\\:\\:sendVote(int)].Non-interference contract.0 -contract=Voter[Voter\\:\\:sendVote(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "Voter[Voter::sendVote(int)].Non-interference contract.0", + "contract": "Voter[Voter::sendVote(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "de4c58c270d097d36f2ff647cca5aa0c0c488891")) diff --git a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__sendVote(int)).Non-interference contract.0.m.key b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__sendVote(int)).Non-interference contract.0.m.key index 9fabc0d6f50..304a19710aa 100644 --- a/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__sendVote(int)).Non-interference contract.0.m.key +++ b/key.ui/examples/InformationFlow/ToyVoting/Voter(Voter__sendVote(int)).Non-interference contract.0.m.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 04 18:23:38 CEST 2014 -name=Voter[Voter\\:\\:sendVote(int)].Non-interference contract.0 -contract=Voter[Voter\\:\\:sendVote(int)].Non-interference contract.0 -class=de.uka.ilkd.key.informationflow.po.InfFlowContractPO -"; +\proofObligation { + "name": "Voter[Voter::sendVote(int)].Non-interference contract.0", + "contract": "Voter[Voter::sendVote(int)].Non-interference contract.0", + "class": "de.uka.ilkd.key.informationflow.po.InfFlowContractPO", + } \proofScript "macro 'infflow-autopilot';" diff --git a/key.ui/examples/completionscopes/testCcatchBreakLabel.key b/key.ui/examples/completionscopes/testCcatchBreakLabel.key index 2d4e8b8d359..da468cca731 100644 --- a/key.ui/examples/completionscopes/testCcatchBreakLabel.key +++ b/key.ui/examples/completionscopes/testCcatchBreakLabel.key @@ -44,9 +44,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 13 09:57:59 CEST 2020 -name=CompletionScopes[CompletionScopes\\:\\:testBreakLabel()].JML normal_behavior operation contract.0 -contract=CompletionScopes[CompletionScopes\\:\\:testBreakLabel()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "CompletionScopes[CompletionScopes::testBreakLabel()].JML normal_behavior operation contract.0", + "contract": "CompletionScopes[CompletionScopes::testBreakLabel()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/completionscopes/testCcatchBreakLabelNonmatchingNested.key b/key.ui/examples/completionscopes/testCcatchBreakLabelNonmatchingNested.key index 801138fd764..169f127735f 100644 --- a/key.ui/examples/completionscopes/testCcatchBreakLabelNonmatchingNested.key +++ b/key.ui/examples/completionscopes/testCcatchBreakLabelNonmatchingNested.key @@ -44,9 +44,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 13 09:57:59 CEST 2020 -name=CompletionScopes[CompletionScopes\\:\\:testBreakLabelNonmatchingNested()].JML normal_behavior operation contract.0 -contract=CompletionScopes[CompletionScopes\\:\\:testBreakLabelNonmatchingNested()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "CompletionScopes[CompletionScopes::testBreakLabelNonmatchingNested()].JML normal_behavior operation contract.0", + "contract": "CompletionScopes[CompletionScopes::testBreakLabelNonmatchingNested()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/completionscopes/testCcatchBreakLabelWildcard.key b/key.ui/examples/completionscopes/testCcatchBreakLabelWildcard.key index abce1f2592b..cd207555a0a 100644 --- a/key.ui/examples/completionscopes/testCcatchBreakLabelWildcard.key +++ b/key.ui/examples/completionscopes/testCcatchBreakLabelWildcard.key @@ -44,9 +44,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 13 09:57:59 CEST 2020 -name=CompletionScopes[CompletionScopes\\:\\:testBreakLabelWildcard()].JML normal_behavior operation contract.0 -contract=CompletionScopes[CompletionScopes\\:\\:testBreakLabelWildcard()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "CompletionScopes[CompletionScopes::testBreakLabelWildcard()].JML normal_behavior operation contract.0", + "contract": "CompletionScopes[CompletionScopes::testBreakLabelWildcard()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/completionscopes/testCcatchContinueLabel.key b/key.ui/examples/completionscopes/testCcatchContinueLabel.key index 3bf463ed3c6..269883a029a 100644 --- a/key.ui/examples/completionscopes/testCcatchContinueLabel.key +++ b/key.ui/examples/completionscopes/testCcatchContinueLabel.key @@ -44,9 +44,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 13 09:57:59 CEST 2020 -name=CompletionScopes[CompletionScopes\\:\\:testContinueLabel()].JML normal_behavior operation contract.0 -contract=CompletionScopes[CompletionScopes\\:\\:testContinueLabel()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "CompletionScopes[CompletionScopes::testContinueLabel()].JML normal_behavior operation contract.0", + "contract": "CompletionScopes[CompletionScopes::testContinueLabel()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/completionscopes/testCcatchContinueLabelWildcard.key b/key.ui/examples/completionscopes/testCcatchContinueLabelWildcard.key index f0b45416f0b..2f1a6e589c6 100644 --- a/key.ui/examples/completionscopes/testCcatchContinueLabelWildcard.key +++ b/key.ui/examples/completionscopes/testCcatchContinueLabelWildcard.key @@ -44,9 +44,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 13 09:57:59 CEST 2020 -name=CompletionScopes[CompletionScopes\\:\\:testContinueLabelWildcard()].JML normal_behavior operation contract.0 -contract=CompletionScopes[CompletionScopes\\:\\:testContinueLabelWildcard()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "CompletionScopes[CompletionScopes::testContinueLabelWildcard()].JML normal_behavior operation contract.0", + "contract": "CompletionScopes[CompletionScopes::testContinueLabelWildcard()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/completionscopes/testCcatchReturnVal.key b/key.ui/examples/completionscopes/testCcatchReturnVal.key index 22c3a6bd1a5..e6cce694d35 100644 --- a/key.ui/examples/completionscopes/testCcatchReturnVal.key +++ b/key.ui/examples/completionscopes/testCcatchReturnVal.key @@ -44,9 +44,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 13 09:57:59 CEST 2020 -name=CompletionScopes[CompletionScopes\\:\\:testCcatchReturnVal()].JML normal_behavior operation contract.0 -contract=CompletionScopes[CompletionScopes\\:\\:testCcatchReturnVal()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "CompletionScopes[CompletionScopes::testCcatchReturnVal()].JML normal_behavior operation contract.0", + "contract": "CompletionScopes[CompletionScopes::testCcatchReturnVal()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/completionscopes/testMultCcatchClauses.key b/key.ui/examples/completionscopes/testMultCcatchClauses.key index 27d7a2ec479..adb50159a33 100644 --- a/key.ui/examples/completionscopes/testMultCcatchClauses.key +++ b/key.ui/examples/completionscopes/testMultCcatchClauses.key @@ -44,9 +44,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 13 09:58:26 CEST 2020 -name=CompletionScopes[CompletionScopes\\:\\:testMultCcatchClauses()].JML normal_behavior operation contract.0 -contract=CompletionScopes[CompletionScopes\\:\\:testMultCcatchClauses()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "CompletionScopes[CompletionScopes::testMultCcatchClauses()].JML normal_behavior operation contract.0", + "contract": "CompletionScopes[CompletionScopes::testMultCcatchClauses()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/completionscopes/testNestedExec.key b/key.ui/examples/completionscopes/testNestedExec.key index 9e7254cbe22..ac28cc50d36 100644 --- a/key.ui/examples/completionscopes/testNestedExec.key +++ b/key.ui/examples/completionscopes/testNestedExec.key @@ -44,9 +44,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 13 09:58:40 CEST 2020 -name=CompletionScopes[CompletionScopes\\:\\:testMultCcatchClauses()].JML normal_behavior operation contract.0 -contract=CompletionScopes[CompletionScopes\\:\\:testMultCcatchClauses()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "CompletionScopes[CompletionScopes::testMultCcatchClauses()].JML normal_behavior operation contract.0", + "contract": "CompletionScopes[CompletionScopes::testMultCcatchClauses()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/firstTouch/05-ReverseArray/reverseArray.key b/key.ui/examples/firstTouch/05-ReverseArray/reverseArray.key index 48309b7e4e4..e5cfee9a045 100644 --- a/key.ui/examples/firstTouch/05-ReverseArray/reverseArray.key +++ b/key.ui/examples/firstTouch/05-ReverseArray/reverseArray.key @@ -40,8 +40,8 @@ \javaSource "src"; -\proofObligation " -name=ReverseArray[ReverseArray\\:\\:reverse()].JML normal_behavior operation contract.0 -contract=ReverseArray[ReverseArray\\:\\:reverse()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ReverseArray[ReverseArray::reverse()].JML normal_behavior operation contract.0", + "contract": "ReverseArray[ReverseArray::reverse()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/firstTouch/05-ReverseArray/reverseArray.proof b/key.ui/examples/firstTouch/05-ReverseArray/reverseArray.proof index 0c8cb620edb..b772b95f7a1 100644 --- a/key.ui/examples/firstTouch/05-ReverseArray/reverseArray.proof +++ b/key.ui/examples/firstTouch/05-ReverseArray/reverseArray.proof @@ -44,12 +44,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Dec 08 19:30:36 CET 2022 -contract=ReverseArray[ReverseArray\\:\\:reverse()].JML normal_behavior operation contract.0 -name=ReverseArray[ReverseArray\\:\\:reverse()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "ReverseArray[ReverseArray::reverse()].JML normal_behavior operation contract.0", + "name": "ReverseArray[ReverseArray::reverse()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "008f011f15")) diff --git a/key.ui/examples/firstTouch/08-Java5/project.key b/key.ui/examples/firstTouch/08-Java5/project.key index cc1165e2216..74e4ff685f6 100644 --- a/key.ui/examples/firstTouch/08-Java5/project.key +++ b/key.ui/examples/firstTouch/08-Java5/project.key @@ -45,10 +45,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Aug 15 11:01:30 CEST 2012 -name=For[For\\:\\:sum()].JML operation contract.0 -contract=For[For\\:\\:sum()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "For[For::sum()].JML operation contract.0", + "contract": "For[For::sum()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/firstTouch/09-Quicktour/proof/paycard.LogRecord(paycard.LogRecord__getBalance()).JML normal_behavior operation contract.0.proof b/key.ui/examples/firstTouch/09-Quicktour/proof/paycard.LogRecord(paycard.LogRecord__getBalance()).JML normal_behavior operation contract.0.proof index 5790e02d734..14086d859d8 100644 --- a/key.ui/examples/firstTouch/09-Quicktour/proof/paycard.LogRecord(paycard.LogRecord__getBalance()).JML normal_behavior operation contract.0.proof +++ b/key.ui/examples/firstTouch/09-Quicktour/proof/paycard.LogRecord(paycard.LogRecord__getBalance()).JML normal_behavior operation contract.0.proof @@ -41,12 +41,11 @@ \javaSource "../paycard"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 16:17:22 CET 2014 -name=paycard.LogRecord[paycard.LogRecord\\:\\:getBalance()].JML normal_behavior operation contract.0 -contract=paycard.LogRecord[paycard.LogRecord\\:\\:getBalance()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "paycard.LogRecord[paycard.LogRecord::getBalance()].JML normal_behavior operation contract.0", + "contract": "paycard.LogRecord[paycard.LogRecord::getBalance()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Martin" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/BoyerMoore/BM(BM__bm((I)).JML normal_behavior operation contract.0.proof b/key.ui/examples/heap/BoyerMoore/BM(BM__bm((I)).JML normal_behavior operation contract.0.proof new file mode 100644 index 00000000000..bbe096cf120 --- /dev/null +++ b/key.ui/examples/heap/BoyerMoore/BM(BM__bm((I)).JML normal_behavior operation contract.0.proof @@ -0,0 +1,8496 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:on", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_OFF", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_OFF", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\javaSource "src"; + +\proofObligation "#Proof Obligation Settings +#Fri Apr 12 16:53:51 CEST 2024 +contract=BoyerMoore[BoyerMoore\\:\\:bm([I)].JML normal_behavior operation contract.0 +name=BoyerMoore[BoyerMoore\\:\\:bm([I)].JML normal_behavior operation contract.0 +class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO +"; + +\proof { +(keyLog "0" (keyUser "mattias" ) (keyVersion "9cc569ccced37e242b3a85779f2afdc42b0031ca")) + +(autoModeTime "2904") + +(branch "dummy ID" + (builtin "One Step Simplification" (formula "1") (newnames "heapAtPre,o,f")) +(rule "impRight" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "3")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "5")) +(rule "andLeft" (formula "1")) +(rule "notLeft" (formula "7")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "notLeft" (formula "2")) +(rule "eqSymm" (formula "10") (term "1,0,0,1,0,1")) +(rule "replace_known_right" (formula "4") (term "0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "4")) +(rule "assignment" (formula "10") (term "1")) + (builtin "One Step Simplification" (formula "10")) +(rule "methodBodyExpand" (formula "10") (term "1") (newnames "heapBefore_bm,savedHeapBefore_bm,_aBefore_bm")) + (builtin "One Step Simplification" (formula "10")) +(rule "variableDeclarationAssign" (formula "10") (term "1")) +(rule "variableDeclaration" (formula "10") (term "1") (newnames "mc")) +(rule "assignment" (formula "10") (term "1")) + (builtin "One Step Simplification" (formula "10")) +(rule "variableDeclarationAssign" (formula "10") (term "1")) +(rule "variableDeclaration" (formula "10") (term "1") (newnames "mx")) +(rule "assignment" (formula "10") (term "1")) + (builtin "One Step Simplification" (formula "10")) +(rule "for_to_while" (formula "10") (term "1") (inst "#outerLabel=_label1") (inst "#innerLabel=_label0")) +(rule "variableDeclarationAssign" (formula "10") (term "1")) +(rule "variableDeclaration" (formula "10") (term "1") (newnames "k")) +(rule "assignment" (formula "10") (term "1")) + (builtin "One Step Simplification" (formula "10")) +(rule "elim_double_block_3" (formula "10") (term "1")) + (builtin "Loop Invariant" (formula "10") (newnames "variant,b,heapBefore_LOOP,kBefore_LOOP,mxBefore_LOOP,mcBefore_LOOP,k_0,mx_0,mc_0,heap_After_LOOP,anon_heap_LOOP,o,f")) +(branch "Invariant Initially Valid" + (rule "andRight" (formula "10")) + (branch "Case 1" + (rule "andRight" (formula "10")) + (branch "Case 1" + (rule "andRight" (formula "10")) + (branch "Case 1" + (opengoal " wellFormed(heap)<>, ( boolean::select(heap, self, java.lang.Object::) = TRUE)<>, (BoyerMoore::exactInstance(self) = TRUE)<>, ( boolean::select(heap, a, java.lang.Object::) = TRUE)<>, measuredByEmpty<>, IntOpt::<$inv>(heap), java.lang.Object::(heap, self)<> ==> (self<> = null)<>, (a = null)<>, {(heapAtPre:=heap || _a:=a || exc:=null || mc:=Z(0(#)) || mx:=Z(0(#)) || k:=Z(0(#))< (implicit)\",\"[ensures @ file BoyerMoore.java @ line 34, ensures @ file BoyerMoore.java @ line 36, ensures (implicit), assignable (implicit)]\")>>)< (implicit)\",\"[ensures @ file BoyerMoore.java @ line 34, ensures @ file BoyerMoore.java @ line 36, ensures (implicit), assignable (implicit)]\")>>} (( (leq(Z(0(#)), k) & leq(k, length(_a)))<> & geq(mc, Z(0(#)))<>)<>)") + ) + (branch "Case 2" + (builtin "One Step Simplification" (formula "10")) + (rule "add_zero_left" (formula "10") (term "1")) + (rule "polySimp_mulComm0" (formula "10") (term "0")) + (rule "inEqSimp_leqRight" (formula "10")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "inEqSimp_sepPosMonomial1" (formula "1")) + (rule "mul_literals" (formula "1") (term "1")) + (rule "elimGcdGeq_antec" (formula "1") (inst "elimGcd=Z(2(#))") (inst "elimGcdLeftDiv=BoyerMoore::count(heap, self, a, Z(0(#)), Z(0(#)))") (inst "elimGcdRightDiv=Z(1(#))")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0,1,0")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0,0,0,0,1,0")) + (rule "leq_literals" (formula "1") (term "0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "mul_literals" (formula "1") (term "1,0,0,0,0,0")) + (rule "polySimp_addLiterals" (formula "1") (term "0,0,0,0")) + (rule "add_literals" (formula "1") (term "0,0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "leq_literals" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) + (rule "Static_class_invariant_axiom_for_IntOpt" (formula "7")) + (rule "andLeft" (formula "7")) + (rule "notLeft" (formula "7")) + (rule "notLeft" (formula "7")) + (rule "Class_invariant_axiom_for_BoyerMoore" (formula "7") (ifseqformula "4")) + (rule "true_left" (formula "7")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "0") (inst "l=l")) + (rule "bsum_lower_equals_upper" (formula "1") (term "1,0,1")) + (rule "leq_literals" (formula "1") (term "0,0,0,0,0,0,0")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "11")) (ifInst "" (formula "3")) (ifInst "" (formula "4")) (ifInst "" (formula "10"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0")) + (rule "inEqSimp_contradEq7" (formula "1") (term "0,1") (ifseqformula "2")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,1")) + (rule "add_zero_right" (formula "1") (term "0,0,0,1")) + (rule "leq_literals" (formula "1") (term "0,0,1")) + (builtin "One Step Simplification" (formula "1")) + (rule "notLeft" (formula "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "1") (term "0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "1")) + (rule "castDel" (formula "1") (term "0")) + (rule "qeq_literals" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + ) + (branch "Case 2" + (builtin "One Step Simplification" (formula "10")) + (rule "sub_literals" (formula "10") (term "1,1,0")) + (rule "allRight" (formula "10") (inst "sk=x_0")) + (rule "impRight" (formula "10")) + (rule "notLeft" (formula "1")) + (rule "polySimp_mulComm0" (formula "11") (term "0")) + (rule "inEqSimp_leqRight" (formula "11")) + (rule "mul_literals" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "inEqSimp_sepPosMonomial1" (formula "1")) + (rule "mul_literals" (formula "1") (term "1")) + (rule "elimGcdGeq_antec" (formula "1") (inst "elimGcd=Z(2(#))") (inst "elimGcdLeftDiv=BoyerMoore::count(heap, self, a, Z(0(#)), x_0)") (inst "elimGcdRightDiv=Z(1(#))")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0,1,0")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0,0,0,0,1,0")) + (rule "leq_literals" (formula "1") (term "0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "mul_literals" (formula "1") (term "1,0,0,0,0,0")) + (rule "polySimp_addLiterals" (formula "1") (term "0,0,0,0")) + (rule "add_literals" (formula "1") (term "0,0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "leq_literals" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) + (rule "Static_class_invariant_axiom_for_IntOpt" (formula "7")) + (rule "andLeft" (formula "7")) + (rule "notLeft" (formula "7")) + (rule "notLeft" (formula "7")) + (rule "Class_invariant_axiom_for_BoyerMoore" (formula "7") (ifseqformula "4")) + (rule "true_left" (formula "7")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "0") (inst "l=l")) + (rule "bsum_lower_equals_upper" (formula "1") (term "1,0,1")) + (rule "leq_literals" (formula "1") (term "0,0,0,0,0,0,0")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "12")) (ifInst "" (formula "3")) (ifInst "" (formula "4")) (ifInst "" (formula "11"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0")) + (rule "inEqSimp_contradEq7" (formula "1") (term "0,1") (ifseqformula "2")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,1")) + (rule "add_zero_right" (formula "1") (term "0,0,0,1")) + (rule "leq_literals" (formula "1") (term "0,0,1")) + (builtin "One Step Simplification" (formula "1")) + (rule "notLeft" (formula "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "1") (term "0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "1")) + (rule "castDel" (formula "1") (term "0")) + (rule "qeq_literals" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + ) + (branch "Case 2" + (opengoal " wellFormed(heap)<>, ( boolean::select(heap, self, java.lang.Object::) = TRUE)<>, (BoyerMoore::exactInstance(self) = TRUE)<>, ( boolean::select(heap, a, java.lang.Object::) = TRUE)<>, measuredByEmpty<>, IntOpt::<$inv>(heap), java.lang.Object::(heap, self)<> ==> (self<> = null)<>, (a = null)<>, {(heapAtPre:=heap || _a:=a || exc:=null || mc:=Z(0(#)) || mx:=Z(0(#)) || k:=Z(0(#))< (implicit)\",\"[ensures @ file BoyerMoore.java @ line 34, ensures @ file BoyerMoore.java @ line 36, ensures (implicit), assignable (implicit)]\")>>)< (implicit)\",\"[ensures @ file BoyerMoore.java @ line 34, ensures @ file BoyerMoore.java @ line 36, ensures (implicit), assignable (implicit)]\")>>} wellFormed(heap)") + ) +) +(branch "Body Preserves Invariant" + (builtin "One Step Simplification" (formula "9")) + (builtin "One Step Simplification" (formula "12")) + (rule "andLeft" (formula "9")) + (rule "impRight" (formula "13")) + (rule "andLeft" (formula "10")) + (rule "andLeft" (formula "10")) + (rule "andLeft" (formula "10")) + (rule "eqSymm" (formula "17") (term "0,0,1,0,1,1,0,1")) + (rule "polySimp_elimSub" (formula "14") (term "1,1,0")) + (rule "polySimp_elimSub" (formula "17") (term "0,1,1,1,0")) + (rule "polySimp_elimSub" (formula "17") (term "1,1,0,1,0,0,1,1,0,1")) + (rule "polySimp_elimSub" (formula "17") (term "0,1,1,1,0,1")) + (rule "polySimp_mulComm0" (formula "14") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "17") (term "0,1,0,0,0,1,1,0,1")) + (rule "polySimp_mulComm0" (formula "17") (term "0,1,0,1,0,0,1,1,0,1")) + (rule "polySimp_mulComm0" (formula "13") (term "0")) + (rule "polySimp_addComm0" (formula "17") (term "0,1,1,1,0")) + (rule "polySimp_addComm0" (formula "17") (term "0,1,1,1,0,1")) + (rule "inEqSimp_commuteLeq" (formula "17") (term "1,0,0,0,0,0,1,1,0,1")) + (rule "inEqSimp_commuteLeq" (formula "17") (term "0,0,0,0,0,0,1,1,0,1")) + (rule "inEqSimp_commuteLeq" (formula "10")) + (rule "inEqSimp_commuteLeq" (formula "11")) + (rule "variableDeclarationAssign" (formula "1") (term "1")) + (rule "variableDeclarationAssign" (formula "17") (term "1")) + (rule "variableDeclaration" (formula "1") (term "1") (newnames "b_1")) + (rule "variableDeclaration" (formula "17") (term "1") (newnames "exc_1")) + (rule "assignment" (formula "17") (term "1")) + (builtin "One Step Simplification" (formula "17")) + (rule "variableDeclaration" (formula "17") (term "1") (newnames "thrownExc")) + (rule "blockThrow" (formula "17") (term "1,0,0,1")) + (rule "boxToDiamond" (formula "1") (term "1")) + (builtin "One Step Simplification" (formula "1")) + (rule "notLeft" (formula "1")) + (rule "limit_BoyerMoore_count[I\bigint\bigint" (formula "12") (term "0,0")) + (rule "compound_less_than_comparison_2" (formula "15") (term "1") (inst "#v1=i_1") (inst "#v0=i")) + (rule "variableDeclarationAssign" (formula "15") (term "1")) + (rule "variableDeclaration" (formula "15") (term "1") (newnames "i")) + (rule "assignment" (formula "15") (term "1")) + (builtin "One Step Simplification" (formula "15")) + (rule "variableDeclarationAssign" (formula "15") (term "1")) + (rule "variableDeclaration" (formula "15") (term "1") (newnames "i_1")) + (rule "assignment_read_length" (formula "15")) + (branch "Normal Execution (mc == 0 != null)" + (builtin "One Step Simplification" (formula "15")) + (rule "less_than_comparison_simple" (formula "15") (term "1")) + (builtin "One Step Simplification" (formula "15")) + (rule "methodCallEmpty" (formula "15") (term "1")) + (rule "emptyModality" (formula "15") (term "1")) + (builtin "One Step Simplification" (formula "15")) + (rule "notRight" (formula "15")) + (rule "ifUnfold" (formula "18") (term "1") (inst "#boolv=b_2")) + (rule "variableDeclaration" (formula "18") (term "1") (newnames "b_2")) + (rule "compound_less_than_comparison_2" (formula "18") (term "1") (inst "#v1=i_3") (inst "#v0=i_2")) + (rule "variableDeclarationAssign" (formula "18") (term "1")) + (rule "variableDeclaration" (formula "18") (term "1") (newnames "i_2")) + (rule "assignment" (formula "18") (term "1")) + (builtin "One Step Simplification" (formula "18")) + (rule "variableDeclarationAssign" (formula "18") (term "1")) + (rule "variableDeclaration" (formula "18") (term "1") (newnames "i_3")) + (rule "assignment_read_length" (formula "18")) + (branch "Normal Execution (mc == 0 != null)" + (builtin "One Step Simplification" (formula "18")) + (rule "less_than_comparison_simple" (formula "18") (term "1")) + (builtin "One Step Simplification" (formula "18")) + (rule "replace_known_left" (formula "18") (term "0,0,1,0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "18")) + (rule "ifSplit" (formula "18")) + (branch "if k < _a.length true" + (builtin "One Step Simplification" (formula "19")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "ifElseUnfold" (formula "18") (term "1") (inst "#boolv=b_3")) + (rule "variableDeclaration" (formula "18") (term "1") (newnames "b_3")) + (rule "equality_comparison_simple" (formula "18") (term "1")) + (builtin "One Step Simplification" (formula "18")) + (rule "arrayLengthIsAShort" (formula "11") (term "0")) + (builtin "One Step Simplification" (formula "11")) + (rule "true_left" (formula "11")) + (rule "arrayLengthNotNegative" (formula "11") (term "0")) + (rule "ifElseSplit" (formula "19")) + (branch "if mc == 0 true" + (builtin "One Step Simplification" (formula "1")) + (builtin "One Step Simplification" (formula "20")) + (rule "assignment" (formula "20") (term "1")) + (builtin "One Step Simplification" (formula "20")) + (rule "assignment_array2" (formula "20")) + (branch "Normal Execution (mc == 0 != null)" + (builtin "One Step Simplification" (formula "20")) + (rule "blockEmpty" (formula "20") (term "1")) + (rule "applyEq" (formula "16") (term "1,1") (ifseqformula "1")) + (rule "add_zero_right" (formula "16") (term "1")) + (rule "applyEqRigid" (formula "17") (term "0,1,1,1,0") (ifseqformula "1")) + (rule "times_zero_2" (formula "17") (term "1,1,1,0")) + (rule "add_zero_right" (formula "17") (term "1,1,0")) + (rule "applyEq" (formula "14") (term "0") (ifseqformula "1")) + (rule "qeq_literals" (formula "14")) + (rule "true_left" (formula "14")) + (rule "postincrement" (formula "19") (term "1")) + (rule "compound_int_cast_expression" (formula "19") (term "1") (inst "#v=i_4")) + (rule "variableDeclarationAssign" (formula "19") (term "1")) + (rule "variableDeclaration" (formula "19") (term "1") (newnames "i_4")) + (rule "remove_parentheses_right" (formula "19") (term "1")) + (rule "assignmentAdditionInt" (formula "19") (term "1")) + (builtin "One Step Simplification" (formula "19")) + (rule "translateJavaAddInt" (formula "19") (term "0,1,0")) + (rule "polySimp_addComm0" (formula "19") (term "0,1,0")) + (rule "widening_identity_cast_5" (formula "19") (term "1")) + (rule "assignment" (formula "19") (term "1")) + (builtin "One Step Simplification" (formula "19")) + (rule "tryEmpty" (formula "19") (term "1")) + (rule "methodCallEmpty" (formula "19") (term "1")) + (rule "emptyModality" (formula "19") (term "1")) + (builtin "One Step Simplification" (formula "19")) + (rule "andRight" (formula "19")) + (branch + (rule "andRight" (formula "19")) + (branch "Case 1" + (rule "andRight" (formula "19")) + (branch "Case 1" + (opengoal " (mc_0 = Z(0(#)))< (implicit)\",\"[ensures @ file BoyerMoore.java @ line 34, ensures @ file BoyerMoore.java @ line 36, ensures (implicit), assignable (implicit), decreases @ file BoyerMoore.java @ line 50, loop_invariant @ file BoyerMoore.java @ line 45, loop_invariant @ file BoyerMoore.java @ line 46, loop_invariant @ file BoyerMoore.java @ line 47, loop_invariant @ file BoyerMoore.java @ line 48]\")>>, lt(k_0, length(a<>))<>, wellFormed(heap)<>, ( boolean::select(heap, self, java.lang.Object::) = TRUE)<>, (BoyerMoore::exactInstance(self) = TRUE)<>, ( boolean::select(heap, a, java.lang.Object::) = TRUE)<>, measuredByEmpty<>, IntOpt::<$inv>(heap), java.lang.Object::(heap, self)<>, wellFormed(anon_heap_LOOP<>), geq(k_0, Z(0(#)))<>, geq(length(a), Z(0(#))), geq(length(a), k_0)<>, BoyerMoore::count$lmtd(heap, self, a, k_0, mx_0) = BoyerMoore::count(heap, self, a, k_0, mx_0), leq(mul(BoyerMoore::count(heap, self, a, k_0, mx_0), Z(2(#))), k_0)<>, (\\forall int x; ( !x = mx_0 -> leq(mul(BoyerMoore::count(heap, self, a, k_0, x), Z(2(#))), k_0)))<> ==> (self<> = null)<>, (a = null)<>, ( (geq(add(Z(1(#)), k_0), Z(0(#))) & geq(length(a), add(Z(1(#)), k_0)))<> & geq(Z(1(#)), Z(0(#)))<>)< (implicit)\",\"[loop_invariant @ file BoyerMoore.java @ line 45, loop_invariant @ file BoyerMoore.java @ line 46]\")>>") + ) + (branch "Case 2" + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "19") (term "0,0") (ifseqformula "5")) + (rule "ifthenelse_split" (formula "19") (term "0,0,0")) + (branch "1 + k_0 = 0 TRUE" + (rule "castDel" (formula "20") (term "0,0")) + (rule "times_zero_2" (formula "20") (term "0")) + (rule "polySimp_addComm1" (formula "20") (term "1")) + (rule "add_literals" (formula "20") (term "0,1")) + (rule "inEqSimp_leqRight" (formula "20")) + (rule "add_zero_right" (formula "1") (term "0")) + (rule "polySimp_rightDist" (formula "1") (term "1,0")) + (rule "mul_literals" (formula "1") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "inEqSimp_ltToLeq" (formula "4")) + (rule "polySimp_mulComm0" (formula "4") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "polySimp_sepPosMonomial" (formula "2")) + (rule "mul_literals" (formula "2") (term "1")) + (rule "applyEq" (formula "17") (term "1") (ifseqformula "2")) + (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "2")) + (rule "mul_literals" (formula "1") (term "1,0")) + (rule "add_literals" (formula "1") (term "0")) + (rule "qeq_literals" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + (branch "1 + k_0 = 0 FALSE" + (rule "ifthenelse_split" (formula "20") (term "0,0,0,0")) + (branch "a[1 + k_0 - 1] = a[k_0] TRUE" + (rule "castDel" (formula "21") (term "0,0")) + (rule "unlimit_BoyerMoore_count[I\bigint\bigint" (formula "21") (term "1,0,0")) + (rule "polySimp_elimSub" (formula "21") (term "3,1,0,0")) + (rule "mul_literals" (formula "21") (term "1,3,1,0,0")) + (rule "polySimp_elimSub" (formula "1") (term "0,2,0")) + (rule "mul_literals" (formula "1") (term "1,0,2,0")) + (rule "polySimp_mulComm0" (formula "21") (term "0")) + (rule "polySimp_addComm1" (formula "21") (term "1")) + (rule "add_literals" (formula "21") (term "0,1")) + (rule "polySimp_addComm1" (formula "1") (term "0,2,0")) + (rule "add_literals" (formula "1") (term "0,0,2,0")) + (rule "add_zero_left" (formula "1") (term "0,2,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "polySimp_addComm1" (formula "20") (term "3,1,1,0")) + (rule "add_literals" (formula "20") (term "0,3,1,1,0")) + (rule "add_zero_left" (formula "20") (term "3,1,1,0")) + (rule "polySimp_rightDist" (formula "20") (term "0")) + (rule "mul_literals" (formula "20") (term "0,0")) + (rule "inEqSimp_ltToLeq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "inEqSimp_leqRight" (formula "20")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "mul_literals" (formula "1") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "polySimp_addComm1" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "polySimp_sepPosMonomial" (formula "20")) + (rule "mul_literals" (formula "20") (term "1")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1")) + (rule "mul_literals" (formula "1") (term "0,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,1")) + (rule "inEqSimp_contradEq7" (formula "20") (ifseqformula "12")) + (rule "add_zero_left" (formula "20") (term "0,0")) + (rule "mul_literals" (formula "20") (term "0,0")) + (rule "leq_literals" (formula "20") (term "0")) + (builtin "One Step Simplification" (formula "20")) + (rule "false_right" (formula "20")) + (rule "inEqSimp_subsumption1" (formula "14") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "14") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0,0")) + (rule "add_literals" (formula "14") (term "1,1,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0")) + (rule "qeq_literals" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "true_left" (formula "14")) + (rule "nnf_imp2or" (formula "16") (term "0")) + (builtin "One Step Simplification" (formula "16")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "15") (term "0,0") (inst "l=l")) + (rule "eqSymm" (formula "15") (term "0,1")) + (rule "replace_known_left" (formula "15") (term "1,0,0,0,0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "15") (ifInst "" (formula "10")) (ifInst "" (formula "19")) (ifInst "" (formula "5")) (ifInst "" (formula "18")) (ifInst "" (formula "10"))) + (rule "measuredByCheckEmpty" (formula "15") (term "1,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "15")) + (rule "inEqSimp_commuteLeq" (formula "15") (term "0,0")) + (rule "replace_known_left" (formula "15") (term "0,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "15")) + (rule "inEqSimp_commuteLeq" (formula "15") (term "0")) + (rule "inEqSimp_subsumption1" (formula "15") (term "0") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "15") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "15") (term "0,0,0")) + (rule "add_literals" (formula "15") (term "1,1,0,0,0")) + (rule "times_zero_1" (formula "15") (term "1,0,0,0")) + (rule "add_zero_right" (formula "15") (term "0,0,0")) + (rule "qeq_literals" (formula "15") (term "0,0")) + (builtin "One Step Simplification" (formula "15")) + (rule "Static_class_invariant_axiom_for_IntOpt" (formula "9")) + (rule "andLeft" (formula "9")) + (rule "notLeft" (formula "9")) + (rule "notLeft" (formula "9")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "13") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "13") (term "0,1")) + (rule "replace_known_left" (formula "13") (term "1,0,0,0") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "13") (ifInst "" (formula "9")) (ifInst "" (formula "21")) (ifInst "" (formula "4")) (ifInst "" (formula "20")) (ifInst "" (formula "15")) (ifInst "" (formula "9"))) + (rule "true_left" (formula "13")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "0,0") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "0,1,0,0,0,0,0") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "21")) (ifInst "" (formula "5")) (ifInst "" (formula "6")) (ifInst "" (formula "20")) (ifInst "" (formula "10"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0")) + (rule "replace_known_left" (formula "1") (term "0,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0") (ifseqformula "4")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0")) + (rule "qeq_literals" (formula "1") (term "0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "Class_invariant_axiom_for_BoyerMoore" (formula "10") (ifseqformula "7")) + (rule "true_left" (formula "10")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "13") (term "1") (ifseqformula "7")) + (rule "castDel" (formula "13") (term "1")) + (rule "eqSymm" (formula "13")) + (rule "polySimp_elimSub" (formula "13") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "13") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_elimSub" (formula "13") (term "3,1,2,0")) + (rule "mul_literals" (formula "13") (term "1,3,1,2,0")) + (rule "polySimp_addComm0" (formula "13") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "13") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "13") (term "2,0")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "15") (term "0,0") (ifseqformula "7")) + (rule "castDel" (formula "15") (term "0,0")) + (rule "polySimp_elimSub" (formula "15") (term "0,2,0,0,0,2,0,0")) + (rule "mul_literals" (formula "15") (term "1,0,2,0,0,0,2,0,0")) + (rule "polySimp_elimSub" (formula "15") (term "3,1,2,0,0")) + (rule "mul_literals" (formula "15") (term "1,3,1,2,0,0")) + (rule "polySimp_addComm0" (formula "15") (term "0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "15") (term "3,1,2,0,0")) + (rule "polySimp_addComm0" (formula "15") (term "2,0,0")) + (rule "applyEq" (formula "15") (term "0,0") (ifseqformula "13")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "14") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "14") (term "0,1")) + (rule "replace_known_left" (formula "14") (term "1,0,0,0") (ifseqformula "6")) + (builtin "One Step Simplification" (formula "14") (ifInst "" (formula "21")) (ifInst "" (formula "5")) (ifInst "" (formula "20")) (ifInst "" (formula "15"))) + (rule "measuredByCheckEmpty" (formula "14") (term "1,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "14")) + (rule "inEqSimp_commuteLeq" (formula "14") (term "0,0,0")) + (rule "replace_known_left" (formula "14") (term "0,0,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "14")) + (rule "inEqSimp_commuteLeq" (formula "14") (term "0,0")) + (rule "inEqSimp_subsumption1" (formula "14") (term "0,0") (ifseqformula "4")) + (rule "inEqSimp_homoInEq0" (formula "14") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0,0,0,0")) + (rule "add_literals" (formula "14") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0,0,0")) + (rule "qeq_literals" (formula "14") (term "0,0,0")) + (builtin "One Step Simplification" (formula "14")) + (rule "true_left" (formula "14")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "0,0") (ifseqformula "7")) + (rule "castDel" (formula "2") (term "0,0")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,0,0")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,0,0")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,0,0")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "2,0,0")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "1,0,0,0,0") (ifseqformula "6")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "21")) (ifInst "" (formula "7")) (ifInst "" (formula "20")) (ifInst "" (formula "2"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "replace_known_left" (formula "1") (term "0,0,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0,0") (ifseqformula "5")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0")) + (rule "qeq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "16") (term "0,0,1,0") (ifseqformula "7")) + (rule "castDel" (formula "16") (term "0,0,1,0")) + (rule "eqSymm" (formula "16") (term "0,0,2,0,0,1,0")) + (rule "polySimp_elimSub" (formula "16") (term "3,1,2,0,0,1,0")) + (rule "mul_literals" (formula "16") (term "1,3,1,2,0,0,1,0")) + (rule "polySimp_elimSub" (formula "16") (term "0,2,1,0,0,2,0,0,1,0")) + (rule "mul_literals" (formula "16") (term "1,0,2,1,0,0,2,0,0,1,0")) + (rule "polySimp_addComm0" (formula "16") (term "3,1,2,0,0,1,0")) + (rule "polySimp_addComm0" (formula "16") (term "0,2,1,0,0,2,0,0,1,0")) + (rule "polySimp_addComm0" (formula "16") (term "2,0,0,1,0")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "14") (term "1") (ifseqformula "7")) + (rule "castDel" (formula "14") (term "1")) + (rule "polySimp_elimSub" (formula "14") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "14") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "14") (term "3,1,2,1")) + (rule "mul_literals" (formula "14") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "14") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "14") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "14") (term "2,1")) + (rule "applyEq" (formula "14") (term "1") (ifseqformula "13")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (ifseqformula "7")) + (rule "castDel" (formula "1") (term "1")) + (rule "polySimp_elimSub" (formula "1") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "1") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "1") (term "3,1,2,1")) + (rule "mul_literals" (formula "1") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "1") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "1") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "1") (term "2,1")) + (rule "ifthenelse_split" (formula "13") (term "0")) + (branch "k_0 = 0 TRUE" + (rule "eqSymm" (formula "14")) + (rule "replace_known_left" (formula "2") (term "0,0,0") (ifseqformula "13")) + (builtin "One Step Simplification" (formula "2")) + (rule "mul_literals" (formula "2") (term "0")) + (rule "replace_known_left" (formula "17") (term "0,0,0,1,0") (ifseqformula "13")) + (builtin "One Step Simplification" (formula "17")) + (rule "times_zero_2" (formula "17") (term "0,1,0")) + (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "13")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "17") (term "1,0")) + (rule "replace_known_left" (formula "17") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "17")) + (rule "true_left" (formula "17")) + (rule "inEqSimp_homoInEq1" (formula "2")) + (rule "times_zero_2" (formula "2") (term "1,0")) + (rule "add_zero_right" (formula "2") (term "0")) + (rule "applyEqRigid" (formula "1") (term "1,0") (ifseqformula "13")) + (rule "bsum_lower_equals_upper" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "applyEqRigid" (formula "15") (term "1") (ifseqformula "12")) + (rule "applyEq" (formula "15") (term "3,0,0") (ifseqformula "12")) + (rule "applyEq" (formula "1") (term "1,0") (ifseqformula "12")) + (rule "add_zero_right" (formula "1") (term "0")) + (rule "leq_literals" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + (branch "k_0 = 0 FALSE" + (rule "replace_known_right" (formula "16") (term "0,0,0,1,0") (ifseqformula "17")) + (builtin "One Step Simplification" (formula "16")) + (rule "replace_known_right" (formula "1") (term "0,1") (ifseqformula "17")) + (builtin "One Step Simplification" (formula "1")) + (rule "replace_known_right" (formula "2") (term "0,0,0") (ifseqformula "17")) + (builtin "One Step Simplification" (formula "2")) + (rule "polySimp_homoEq" (formula "13")) + (rule "polySimp_mulComm0" (formula "16") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "2") (term "0")) + (rule "polySimp_mulComm0" (formula "13") (term "1,0")) + (rule "polySimp_rightDist" (formula "16") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "16") (term "0,0,1,0")) + (rule "polySimp_rightDist" (formula "2") (term "0")) + (rule "polySimp_mulComm0" (formula "2") (term "0,0")) + (rule "polySimp_rightDist" (formula "13") (term "1,0")) + (rule "polySimp_mulComm0" (formula "13") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "13") (term "0")) + (rule "inEqSimp_homoInEq0" (formula "16") (term "1,0")) + (rule "polySimp_mulComm0" (formula "16") (term "1,0,1,0")) + (rule "polySimp_rightDist" (formula "16") (term "1,0,1,0")) + (rule "polySimp_mulLiterals" (formula "16") (term "1,1,0,1,0")) + (rule "polySimp_mulAssoc" (formula "16") (term "0,1,0,1,0")) + (rule "polySimp_mulComm0" (formula "16") (term "0,0,1,0,1,0")) + (rule "polySimp_mulLiterals" (formula "16") (term "0,1,0,1,0")) + (rule "polySimp_addAssoc" (formula "16") (term "0,1,0")) + (rule "inEqSimp_homoInEq1" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0")) + (rule "polySimp_rightDist" (formula "2") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "2") (term "1,1,0")) + (rule "polySimp_mulAssoc" (formula "2") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "2") (term "0,0,1,0")) + (rule "polySimp_mulLiterals" (formula "2") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "2") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "13")) + (rule "polySimp_mulLiterals" (formula "13") (term "0")) + (rule "polySimp_elimOne" (formula "13") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "16") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "16") (term "0,1,0")) + (rule "inEqSimp_sepNegMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "inEqSimp_strengthen1" (formula "11") (ifseqformula "17")) + (rule "add_zero_right" (formula "11") (term "1")) + (rule "inEqSimp_contradEq7" (formula "17") (ifseqformula "11")) + (rule "times_zero_1" (formula "17") (term "1,0,0")) + (rule "add_zero_right" (formula "17") (term "0,0")) + (rule "leq_literals" (formula "17") (term "0")) + (builtin "One Step Simplification" (formula "17")) + (rule "false_right" (formula "17")) + (rule "ifthenelse_split" (formula "1") (term "1,1")) + (branch "a[-1 + k_0] = a[k_0] TRUE" + (rule "replace_known_left" (formula "3") (term "0,0,0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "3")) + (rule "mul_literals" (formula "3") (term "0")) + (rule "polySimp_addComm0" (formula "2") (term "1")) + (rule "inEqSimp_homoInEq1" (formula "3")) + (rule "mul_literals" (formula "3") (term "1,0")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "polySimp_addComm1" (formula "3") (term "0,0")) + (rule "add_literals" (formula "3") (term "0,0,0")) + (rule "applyEq" (formula "14") (term "0,0,0") (ifseqformula "1")) + (rule "applyEq" (formula "17") (term "1,0,0,0,1,0") (ifseqformula "1")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "ifthenelse_split" (formula "14") (term "0")) + (branch "a[k_0] = mx_0 TRUE" + (rule "polySimp_homoEq" (formula "15")) + (rule "mul_literals" (formula "15") (term "1,0")) + (rule "polySimp_addComm1" (formula "15") (term "0")) + (rule "polySimp_addComm0" (formula "15") (term "0,0")) + (rule "applyEq" (formula "3") (term "4,0,0") (ifseqformula "14")) + (rule "applyEq" (formula "1") (term "1") (ifseqformula "14")) + (rule "applyEq" (formula "18") (term "1,0,0,0,1,0") (ifseqformula "14")) + (rule "applyEq" (formula "2") (term "4,1,1") (ifseqformula "14")) + (rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "14")) + (rule "applyEq" (formula "2") (term "0") (ifseqformula "16")) + (rule "polySimp_homoEq" (formula "2")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "15")) + (rule "polySimp_mulLiterals" (formula "15") (term "0")) + (rule "polySimp_elimOne" (formula "15") (term "0")) + (rule "applyEq" (formula "3") (term "0,0") (ifseqformula "15")) + (rule "polySimp_mulComm0" (formula "3") (term "0")) + (rule "polySimp_rightDist" (formula "3") (term "0")) + (rule "mul_literals" (formula "3") (term "0,0")) + (rule "inEqSimp_homoInEq1" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0")) + (rule "polySimp_rightDist" (formula "3") (term "1,0")) + (rule "mul_literals" (formula "3") (term "0,1,0")) + (rule "polySimp_mulLiterals" (formula "3") (term "1,1,0")) + (rule "polySimp_addAssoc" (formula "3") (term "0")) + (rule "polySimp_addComm1" (formula "3") (term "0,0")) + (rule "add_literals" (formula "3") (term "0,0,0")) + (rule "applyEq" (formula "2") (term "1,0") (ifseqformula "15")) + (rule "polySimp_addAssoc" (formula "2") (term "0")) + (rule "polySimp_addComm1" (formula "2") (term "0,0")) + (rule "add_literals" (formula "2") (term "0,0,0")) + (rule "add_zero_left" (formula "2") (term "0,0")) + (rule "polySimp_pullOutFactor2" (formula "2") (term "0")) + (rule "add_literals" (formula "2") (term "1,0")) + (rule "times_zero_1" (formula "2") (term "0")) + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "inEqSimp_sepNegMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "inEqSimp_contradInEq4" (formula "16") (ifseqformula "2")) + (rule "greater_literals" (formula "16") (term "0,0")) + (builtin "One Step Simplification" (formula "16")) + (rule "greater_literals" (formula "16") (term "0,0")) + (builtin "One Step Simplification" (formula "16")) + (rule "andLeft" (formula "16")) + (rule "polySimp_mulComm0" (formula "16") (term "0")) + (rule "polySimp_rightDist" (formula "16") (term "1")) + (rule "mul_literals" (formula "16") (term "0,1")) + (rule "inEqSimp_homoInEq1" (formula "16")) + (rule "polySimp_mulLiterals" (formula "16") (term "1,0")) + (rule "polySimp_pullOutFactor0b" (formula "16") (term "0")) + (rule "add_literals" (formula "16") (term "1,1,0")) + (rule "times_zero_1" (formula "16") (term "1,0")) + (rule "add_zero_right" (formula "16") (term "0")) + (rule "leq_literals" (formula "16")) + (rule "closeFalse" (formula "16")) + ) + (branch "a[k_0] = mx_0 FALSE" + (rule "polySimp_homoEq" (formula "14")) + (rule "times_zero_2" (formula "14") (term "1,0")) + (rule "add_zero_right" (formula "14") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "14")) + (rule "polySimp_mulLiterals" (formula "14") (term "0")) + (rule "polySimp_elimOne" (formula "14") (term "0")) + (rule "allLeft" (formula "17") (inst "t=int::select(heap, a, arr(k_0))")) + (builtin "One Step Simplification" (formula "17") (ifInst "" (formula "19"))) + (rule "mul_literals" (formula "17") (term "0")) + (rule "inEqSimp_homoInEq0" (formula "17")) + (rule "mul_literals" (formula "17") (term "1,0")) + (rule "polySimp_addComm1" (formula "17") (term "0")) + (rule "polySimp_addComm0" (formula "17") (term "0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "17")) + (rule "polySimp_mulLiterals" (formula "17") (term "0")) + (rule "inEqSimp_contradInEq0" (formula "3") (ifseqformula "17")) + (rule "andLeft" (formula "3")) + (rule "inEqSimp_homoInEq1" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0")) + (rule "polySimp_rightDist" (formula "3") (term "1,0")) + (rule "mul_literals" (formula "3") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "3") (term "0")) + (rule "polySimp_addComm1" (formula "3") (term "0,0")) + (rule "add_literals" (formula "3") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "0")) + (rule "add_literals" (formula "3") (term "1,1,0")) + (rule "times_zero_1" (formula "3") (term "1,0")) + (rule "add_literals" (formula "3") (term "0")) + (rule "leq_literals" (formula "3")) + (rule "closeFalse" (formula "3")) + ) + ) + (branch "a[-1 + k_0] = a[k_0] FALSE" + (rule "add_zero_right" (formula "1") (term "1")) + (rule "replace_known_right" (formula "2") (term "0,0,0") (ifseqformula "17")) + (builtin "One Step Simplification" (formula "2")) + (rule "mul_literals" (formula "2") (term "0")) + (rule "inEqSimp_homoInEq1" (formula "2")) + (rule "times_zero_2" (formula "2") (term "1,0")) + (rule "add_zero_right" (formula "2") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "ifthenelse_split" (formula "13") (term "0")) + (branch "a[-1 + k_0] = mx_0 TRUE" + (rule "polySimp_homoEq" (formula "14")) + (rule "mul_literals" (formula "14") (term "1,0")) + (rule "polySimp_addComm1" (formula "14") (term "0")) + (rule "polySimp_addComm0" (formula "14") (term "0,0")) + (rule "applyEq" (formula "18") (term "0") (ifseqformula "13")) + (rule "eqSymm" (formula "18")) + (rule "applyEq" (formula "17") (term "1,0,0,0,1,0") (ifseqformula "13")) + (rule "polySimp_sepNegMonomial" (formula "14")) + (rule "polySimp_mulLiterals" (formula "14") (term "0")) + (rule "polySimp_elimOne" (formula "14") (term "0")) + (rule "allLeft" (formula "17") (inst "t=int::select(heap, a, arr(k_0))")) + (rule "replace_known_right" (formula "17") (term "0") (ifseqformula "19")) + (builtin "One Step Simplification" (formula "17") (ifInst "" (formula "19"))) + (rule "mul_literals" (formula "17") (term "0")) + (rule "inEqSimp_homoInEq0" (formula "17")) + (rule "times_zero_2" (formula "17") (term "1,0")) + (rule "add_zero_right" (formula "17") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "17")) + (rule "polySimp_mulLiterals" (formula "17") (term "0")) + (rule "inEqSimp_contradInEq1" (formula "17") (ifseqformula "2")) + (rule "andLeft" (formula "17")) + (rule "inEqSimp_homoInEq1" (formula "17")) + (rule "polySimp_pullOutFactor1b" (formula "17") (term "0")) + (rule "add_literals" (formula "17") (term "1,1,0")) + (rule "times_zero_1" (formula "17") (term "1,0")) + (rule "add_literals" (formula "17") (term "0")) + (rule "leq_literals" (formula "17")) + (rule "closeFalse" (formula "17")) + ) + (branch "a[-1 + k_0] = mx_0 FALSE" + (rule "polySimp_homoEq" (formula "13")) + (rule "times_zero_2" (formula "13") (term "1,0")) + (rule "add_zero_right" (formula "13") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "13")) + (rule "polySimp_mulLiterals" (formula "13") (term "0")) + (rule "polySimp_elimOne" (formula "13") (term "0")) + (rule "onlyCreatedObjectsAreReferenced" (formula "19") (term "1,0") (ifseqformula "5")) + (rule "replace_known_right" (formula "1") (term "0") (ifseqformula "21")) + (builtin "One Step Simplification" (formula "1")) + (rule "allLeft" (formula "17") (inst "t=int::select(heap, a, arr(k_0))")) + (rule "eqSymm" (formula "17") (term "0,0,0,1")) + (rule "replace_known_right" (formula "17") (term "0,0,0,1") (ifseqformula "20")) + (builtin "One Step Simplification" (formula "17")) + (rule "times_zero_2" (formula "17") (term "0,1")) + (rule "inEqSimp_homoInEq0" (formula "17") (term "1")) + (rule "times_zero_2" (formula "17") (term "1,0,1")) + (rule "add_zero_right" (formula "17") (term "0,1")) + (rule "inEqSimp_sepNegMonomial1" (formula "17") (term "1")) + (rule "polySimp_mulLiterals" (formula "17") (term "0,1")) + (rule "inEqSimp_contradInEq4" (formula "17") (term "1") (ifseqformula "3")) + (rule "greater_literals" (formula "17") (term "0,1,0,1")) + (builtin "One Step Simplification" (formula "17")) + (rule "greater_literals" (formula "17") (term "0,0,1")) + (builtin "One Step Simplification" (formula "17")) + (rule "polySimp_mulComm0" (formula "17") (term "0,0,1")) + (rule "polySimp_rightDist" (formula "17") (term "1,0,1")) + (rule "mul_literals" (formula "17") (term "0,1,0,1")) + (rule "inEqSimp_homoInEq1" (formula "17") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "17") (term "1,0,0,1")) + (rule "polySimp_pullOutFactor0b" (formula "17") (term "0,0,1")) + (rule "add_literals" (formula "17") (term "1,1,0,0,1")) + (rule "times_zero_1" (formula "17") (term "1,0,0,1")) + (rule "add_zero_right" (formula "17") (term "0,0,1")) + (rule "leq_literals" (formula "17") (term "0,1")) + (builtin "One Step Simplification" (formula "17")) + (rule "applyEq" (formula "3") (term "4,0,0") (ifseqformula "17")) + (rule "applyEq" (formula "3") (term "0,0") (ifseqformula "14")) + (rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "17")) + (rule "applyEq" (formula "15") (term "0") (ifseqformula "2")) + (rule "applyEq" (formula "15") (term "4,0") (ifseqformula "17")) + (rule "applyEq" (formula "19") (term "1") (ifseqformula "16")) + (rule "applyEq" (formula "2") (term "4,1") (ifseqformula "16")) + (rule "applyEq" (formula "2") (term "1") (ifseqformula "14")) + (rule "inEqSimp_contradInEq4" (formula "15") (ifseqformula "3")) + (rule "greater_literals" (formula "15") (term "0,1,0")) + (builtin "One Step Simplification" (formula "15")) + (rule "greater_literals" (formula "15") (term "0,0")) + (builtin "One Step Simplification" (formula "15")) + (rule "andLeft" (formula "15")) + (rule "polySimp_mulComm0" (formula "15") (term "0")) + (rule "polySimp_rightDist" (formula "15") (term "1")) + (rule "mul_literals" (formula "15") (term "0,1")) + (rule "inEqSimp_homoInEq1" (formula "15")) + (rule "polySimp_mulLiterals" (formula "15") (term "1,0")) + (rule "polySimp_pullOutFactor0b" (formula "15") (term "0")) + (rule "add_literals" (formula "15") (term "1,1,0")) + (rule "times_zero_1" (formula "15") (term "1,0")) + (rule "add_literals" (formula "15") (term "0")) + (rule "leq_literals" (formula "15")) + (rule "closeFalse" (formula "15")) + ) + ) + ) + ) + (branch "a[1 + k_0 - 1] = a[k_0] FALSE" + (rule "castDel" (formula "21") (term "0,0")) + (rule "add_zero_left" (formula "21") (term "0,0")) + (rule "polySimp_elimSub" (formula "20") (term "0,2,0")) + (rule "mul_literals" (formula "20") (term "1,0,2,0")) + (rule "polySimp_elimSub" (formula "21") (term "3,0,0")) + (rule "mul_literals" (formula "21") (term "1,3,0,0")) + (rule "polySimp_addComm1" (formula "21") (term "1")) + (rule "add_literals" (formula "21") (term "0,1")) + (rule "polySimp_addComm1" (formula "20") (term "0,2,0")) + (rule "add_literals" (formula "20") (term "0,0,2,0")) + (rule "add_zero_left" (formula "20") (term "0,2,0")) + (builtin "One Step Simplification" (formula "20")) + (rule "closeTrue" (formula "20")) + ) + ) + ) + ) + (branch "Case 2" + (rule "allRight" (formula "19") (inst "sk=x_0")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "19") (term "0,0,1") (ifseqformula "5")) + (rule "unlimit_BoyerMoore_count[I\bigint\bigint" (formula "19") (term "1,2,0,0,0,1")) + (rule "castDel" (formula "19") (term "0,0,1")) + (rule "mul_literals" (formula "19") (term "1,1,1")) + (rule "impRight" (formula "19")) + (rule "notLeft" (formula "1")) + (rule "eqSymm" (formula "17")) + (rule "polySimp_elimSub" (formula "20") (term "0,2,0,0,0,2,0,0")) + (rule "mul_literals" (formula "20") (term "1,0,2,0,0,0,2,0,0")) + (rule "polySimp_elimSub" (formula "20") (term "3,1,2,0,0")) + (rule "mul_literals" (formula "20") (term "1,3,1,2,0,0")) + (rule "polySimp_addComm1" (formula "20") (term "1")) + (rule "add_literals" (formula "20") (term "0,1")) + (rule "add_zero_left" (formula "20") (term "1")) + (rule "polySimp_addComm1" (formula "20") (term "0,2,0,0,0,2,0,0")) + (rule "add_literals" (formula "20") (term "0,0,2,0,0,0,2,0,0")) + (rule "add_zero_left" (formula "20") (term "0,2,0,0,0,2,0,0")) + (rule "replace_known_right" (formula "20") (term "0,0,2,0,0") (ifseqformula "17")) + (builtin "One Step Simplification" (formula "20")) + (rule "add_zero_left" (formula "20") (term "2,0,0")) + (rule "polySimp_addComm1" (formula "20") (term "3,2,0,0")) + (rule "add_literals" (formula "20") (term "0,3,2,0,0")) + (rule "add_zero_left" (formula "20") (term "3,2,0,0")) + (rule "inEqSimp_ltToLeq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "inEqSimp_leqRight" (formula "20")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) + (rule "polySimp_sepPosMonomial" (formula "1") (term "0,0,1,0")) + (rule "mul_literals" (formula "1") (term "1,0,0,1,0")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "mul_literals" (formula "1") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,1")) + (rule "inEqSimp_contradEq7" (formula "1") (term "0,0,0") (ifseqformula "12")) + (rule "add_zero_left" (formula "1") (term "0,0,0,0,0")) + (rule "mul_literals" (formula "1") (term "0,0,0,0,0")) + (rule "leq_literals" (formula "1") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_subsumption1" (formula "14") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "14") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0,0")) + (rule "add_literals" (formula "14") (term "1,1,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0")) + (rule "qeq_literals" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "true_left" (formula "14")) + (rule "nnf_imp2or" (formula "16") (term "0")) + (builtin "One Step Simplification" (formula "16")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "14") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "14") (term "0,1")) + (rule "replace_known_left" (formula "14") (term "1,1") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "14") (ifInst "" (formula "10")) (ifInst "" (formula "20")) (ifInst "" (formula "4")) (ifInst "" (formula "5")) (ifInst "" (formula "19"))) + (rule "measuredByCheckEmpty" (formula "14") (term "1,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "14")) + (rule "inEqSimp_commuteLeq" (formula "14") (term "1,0")) + (rule "inEqSimp_commuteLeq" (formula "14") (term "0,0")) + (rule "replace_known_left" (formula "14") (term "0,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "14")) + (rule "inEqSimp_subsumption1" (formula "14") (term "0") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "14") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0,0,0")) + (rule "add_literals" (formula "14") (term "1,1,0,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0,0")) + (rule "qeq_literals" (formula "14") (term "0,0")) + (builtin "One Step Simplification" (formula "14")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "16") (term "0,0") (inst "l=l")) + (rule "eqSymm" (formula "16") (term "0,1")) + (rule "replace_known_left" (formula "16") (term "1,0,0,0,0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "16") (ifInst "" (formula "10")) (ifInst "" (formula "21")) (ifInst "" (formula "5")) (ifInst "" (formula "20")) (ifInst "" (formula "14")) (ifInst "" (formula "10"))) + (rule "true_left" (formula "16")) + (rule "Static_class_invariant_axiom_for_IntOpt" (formula "9")) + (rule "andLeft" (formula "9")) + (rule "notLeft" (formula "9")) + (rule "notLeft" (formula "9")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "0,0") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "1,0,0,0,0") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "10")) (ifInst "" (formula "22")) (ifInst "" (formula "6")) (ifInst "" (formula "21")) (ifInst "" (formula "10"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0")) + (rule "replace_known_left" (formula "1") (term "0,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0") (ifseqformula "4")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0")) + (rule "qeq_literals" (formula "1") (term "0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "Class_invariant_axiom_for_BoyerMoore" (formula "10") (ifseqformula "7")) + (rule "true_left" (formula "10")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "14") (term "1") (ifseqformula "7")) + (rule "castDel" (formula "14") (term "1")) + (rule "eqSymm" (formula "14")) + (rule "polySimp_elimSub" (formula "14") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "14") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_elimSub" (formula "14") (term "3,1,2,0")) + (rule "mul_literals" (formula "14") (term "1,3,1,2,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "14") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "14") (term "2,0")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "15") (term "0,0") (ifseqformula "7")) + (rule "castDel" (formula "15") (term "0,0")) + (rule "polySimp_elimSub" (formula "15") (term "3,1,2,0,0")) + (rule "mul_literals" (formula "15") (term "1,3,1,2,0,0")) + (rule "polySimp_elimSub" (formula "15") (term "0,2,0,0,0,2,0,0")) + (rule "mul_literals" (formula "15") (term "1,0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "15") (term "3,1,2,0,0")) + (rule "polySimp_addComm0" (formula "15") (term "0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "15") (term "2,0,0")) + (rule "applyEq" (formula "15") (term "0,0") (ifseqformula "14")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "13") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "13") (term "0,1")) + (rule "replace_known_left" (formula "13") (term "1,0,0,0") (ifseqformula "6")) + (builtin "One Step Simplification" (formula "13") (ifInst "" (formula "22")) (ifInst "" (formula "5")) (ifInst "" (formula "21")) (ifInst "" (formula "14"))) + (rule "measuredByCheckEmpty" (formula "13") (term "1,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "13")) + (rule "inEqSimp_commuteLeq" (formula "13") (term "0,0,0")) + (rule "replace_known_left" (formula "13") (term "0,0,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "13")) + (rule "inEqSimp_commuteLeq" (formula "13") (term "0,0")) + (rule "inEqSimp_subsumption1" (formula "13") (term "0,0") (ifseqformula "4")) + (rule "inEqSimp_homoInEq0" (formula "13") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "13") (term "0,0,0,0")) + (rule "add_literals" (formula "13") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "13") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "13") (term "0,0,0,0")) + (rule "qeq_literals" (formula "13") (term "0,0,0")) + (builtin "One Step Simplification" (formula "13")) + (rule "true_left" (formula "13")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "0,0") (ifseqformula "7")) + (rule "castDel" (formula "2") (term "0,0")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,0,0")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,0,0")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,0,0")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "2,0,0")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "1,0,0,0,0") (ifseqformula "6")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "22")) (ifInst "" (formula "7")) (ifInst "" (formula "21")) (ifInst "" (formula "2"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "replace_known_left" (formula "1") (term "0,0,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0,0") (ifseqformula "5")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0")) + (rule "qeq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "16") (term "0,0,1,0") (ifseqformula "7")) + (rule "castDel" (formula "16") (term "0,0,1,0")) + (rule "eqSymm" (formula "16") (term "0,0,2,0,0,1,0")) + (rule "polySimp_elimSub" (formula "16") (term "3,1,2,0,0,1,0")) + (rule "mul_literals" (formula "16") (term "1,3,1,2,0,0,1,0")) + (rule "polySimp_elimSub" (formula "16") (term "0,2,1,0,0,2,0,0,1,0")) + (rule "mul_literals" (formula "16") (term "1,0,2,1,0,0,2,0,0,1,0")) + (rule "polySimp_addComm0" (formula "16") (term "3,1,2,0,0,1,0")) + (rule "polySimp_addComm0" (formula "16") (term "0,2,1,0,0,2,0,0,1,0")) + (rule "polySimp_addComm0" (formula "16") (term "2,0,0,1,0")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "13") (term "1") (ifseqformula "7")) + (rule "castDel" (formula "13") (term "1")) + (rule "polySimp_elimSub" (formula "13") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "13") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "13") (term "3,1,2,1")) + (rule "mul_literals" (formula "13") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "13") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "13") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "13") (term "2,1")) + (rule "applyEq" (formula "13") (term "1") (ifseqformula "14")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (ifseqformula "7")) + (rule "castDel" (formula "1") (term "1")) + (rule "polySimp_elimSub" (formula "1") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "1") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "1") (term "3,1,2,1")) + (rule "mul_literals" (formula "1") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "1") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "1") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "1") (term "2,1")) + (rule "ifthenelse_split" (formula "14") (term "0")) + (branch "k_0 = 0 TRUE" + (rule "eqSymm" (formula "15")) + (rule "replace_known_left" (formula "2") (term "0,0,0") (ifseqformula "14")) + (builtin "One Step Simplification" (formula "2")) + (rule "times_zero_2" (formula "2") (term "0")) + (rule "replace_known_left" (formula "17") (term "0,0,0,1,0") (ifseqformula "14")) + (builtin "One Step Simplification" (formula "17")) + (rule "mul_literals" (formula "17") (term "0,1,0")) + (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "14")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "17") (term "1,0")) + (rule "replace_known_left" (formula "17") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "17")) + (rule "true_left" (formula "17")) + (rule "inEqSimp_homoInEq1" (formula "2")) + (rule "times_zero_2" (formula "2") (term "1,0")) + (rule "add_zero_right" (formula "2") (term "0")) + (rule "applyEqRigid" (formula "4") (term "1,1") (ifseqformula "14")) + (rule "add_zero_right" (formula "4") (term "1")) + (rule "applyEqRigid" (formula "19") (term "0,2,0") (ifseqformula "14")) + (rule "applyEq" (formula "2") (term "1,0") (ifseqformula "14")) + (rule "add_zero_right" (formula "2") (term "0")) + (rule "leq_literals" (formula "2")) + (rule "closeFalse" (formula "2")) + ) + (branch "k_0 = 0 FALSE" + (rule "replace_known_right" (formula "16") (term "0,0,0,1,0") (ifseqformula "17")) + (builtin "One Step Simplification" (formula "16")) + (rule "replace_known_right" (formula "1") (term "0,1") (ifseqformula "17")) + (builtin "One Step Simplification" (formula "1")) + (rule "replace_known_right" (formula "2") (term "0,0,0") (ifseqformula "17")) + (builtin "One Step Simplification" (formula "2")) + (rule "polySimp_homoEq" (formula "14")) + (rule "polySimp_mulComm0" (formula "16") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "2") (term "0")) + (rule "polySimp_mulComm0" (formula "14") (term "1,0")) + (rule "polySimp_rightDist" (formula "16") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "16") (term "0,0,1,0")) + (rule "polySimp_rightDist" (formula "2") (term "0")) + (rule "polySimp_mulComm0" (formula "2") (term "0,0")) + (rule "polySimp_rightDist" (formula "14") (term "1,0")) + (rule "polySimp_mulComm0" (formula "14") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "14") (term "0")) + (rule "inEqSimp_homoInEq0" (formula "16") (term "1,0")) + (rule "polySimp_mulComm0" (formula "16") (term "1,0,1,0")) + (rule "polySimp_rightDist" (formula "16") (term "1,0,1,0")) + (rule "polySimp_mulLiterals" (formula "16") (term "1,1,0,1,0")) + (rule "polySimp_mulAssoc" (formula "16") (term "0,1,0,1,0")) + (rule "polySimp_mulComm0" (formula "16") (term "0,0,1,0,1,0")) + (rule "polySimp_mulLiterals" (formula "16") (term "0,1,0,1,0")) + (rule "polySimp_addAssoc" (formula "16") (term "0,1,0")) + (rule "inEqSimp_homoInEq1" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0")) + (rule "polySimp_rightDist" (formula "2") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "2") (term "1,1,0")) + (rule "polySimp_mulAssoc" (formula "2") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "2") (term "0,0,1,0")) + (rule "polySimp_mulLiterals" (formula "2") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "2") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "14")) + (rule "polySimp_mulLiterals" (formula "14") (term "0")) + (rule "polySimp_elimOne" (formula "14") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "16") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "16") (term "0,1,0")) + (rule "inEqSimp_sepNegMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "inEqSimp_strengthen1" (formula "11") (ifseqformula "17")) + (rule "add_zero_right" (formula "11") (term "1")) + (rule "inEqSimp_contradEq7" (formula "17") (ifseqformula "11")) + (rule "times_zero_1" (formula "17") (term "1,0,0")) + (rule "add_zero_right" (formula "17") (term "0,0")) + (rule "leq_literals" (formula "17") (term "0")) + (builtin "One Step Simplification" (formula "17")) + (rule "false_right" (formula "17")) + (rule "ifthenelse_split" (formula "1") (term "1,1")) + (branch "a[-1 + k_0] = x_0 TRUE" + (rule "replace_known_left" (formula "3") (term "0,0,0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "3")) + (rule "mul_literals" (formula "3") (term "0")) + (rule "polySimp_addComm0" (formula "2") (term "1")) + (rule "inEqSimp_homoInEq1" (formula "3")) + (rule "mul_literals" (formula "3") (term "1,0")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "polySimp_addComm1" (formula "3") (term "0,0")) + (rule "add_literals" (formula "3") (term "0,0,0")) + (rule "applyEq" (formula "15") (term "0,0,0") (ifseqformula "1")) + (rule "applyEq" (formula "17") (term "1,0,0,0,1,0") (ifseqformula "1")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "ifthenelse_split" (formula "15") (term "0")) + (branch "x_0 = mx_0 TRUE" + (rule "polySimp_homoEq" (formula "16")) + (rule "mul_literals" (formula "16") (term "1,0")) + (rule "polySimp_addComm1" (formula "16") (term "0")) + (rule "polySimp_addComm0" (formula "16") (term "0,0")) + (rule "applyEqRigid" (formula "3") (term "4,0,0") (ifseqformula "15")) + (rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "15")) + (rule "applyEq" (formula "2") (term "0") (ifseqformula "14")) + (rule "polySimp_homoEq" (formula "2")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "applyEqRigid" (formula "21") (term "1") (ifseqformula "15")) + (rule "applyEqRigid" (formula "18") (term "1,0,0,0,1,0") (ifseqformula "15")) + (rule "applyEq" (formula "1") (term "1") (ifseqformula "15")) + (rule "applyEq" (formula "2") (term "4,1,0") (ifseqformula "15")) + (rule "polySimp_sepNegMonomial" (formula "16")) + (rule "polySimp_mulLiterals" (formula "16") (term "0")) + (rule "polySimp_elimOne" (formula "16") (term "0")) + (rule "applyEq" (formula "3") (term "0,0") (ifseqformula "16")) + (rule "polySimp_mulComm0" (formula "3") (term "0")) + (rule "polySimp_rightDist" (formula "3") (term "0")) + (rule "mul_literals" (formula "3") (term "0,0")) + (rule "inEqSimp_homoInEq1" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0")) + (rule "polySimp_rightDist" (formula "3") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "3") (term "1,1,0")) + (rule "mul_literals" (formula "3") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "3") (term "0")) + (rule "polySimp_addComm1" (formula "3") (term "0,0")) + (rule "add_literals" (formula "3") (term "0,0,0")) + (rule "applyEq" (formula "2") (term "1,0") (ifseqformula "16")) + (rule "polySimp_addAssoc" (formula "2") (term "0")) + (rule "polySimp_addComm1" (formula "2") (term "0,0")) + (rule "add_literals" (formula "2") (term "0,0,0")) + (rule "add_zero_left" (formula "2") (term "0,0")) + (rule "polySimp_pullOutFactor2" (formula "2") (term "0")) + (rule "add_literals" (formula "2") (term "1,0")) + (rule "times_zero_1" (formula "2") (term "0")) + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "inEqSimp_sepNegMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "inEqSimp_contradInEq2" (formula "2") (ifseqformula "16")) + (rule "greater_literals" (formula "2") (term "0,1,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "greater_literals" (formula "2") (term "0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "andLeft" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "0")) + (rule "polySimp_rightDist" (formula "2") (term "1")) + (rule "mul_literals" (formula "2") (term "0,1")) + (rule "inEqSimp_homoInEq1" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "1,0")) + (rule "polySimp_pullOutFactor0b" (formula "2") (term "0")) + (rule "add_literals" (formula "2") (term "1,1,0")) + (rule "times_zero_1" (formula "2") (term "1,0")) + (rule "add_literals" (formula "2") (term "0")) + (rule "leq_literals" (formula "2")) + (rule "closeFalse" (formula "2")) + ) + (branch "x_0 = mx_0 FALSE" + (rule "polySimp_homoEq" (formula "15")) + (rule "times_zero_2" (formula "15") (term "1,0")) + (rule "add_zero_right" (formula "15") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "15")) + (rule "polySimp_mulLiterals" (formula "15") (term "0")) + (rule "polySimp_elimOne" (formula "15") (term "0")) + (rule "allLeft" (formula "17") (inst "t=x_0")) + (builtin "One Step Simplification" (formula "17") (ifInst "" (formula "19"))) + (rule "mul_literals" (formula "17") (term "0")) + (rule "inEqSimp_homoInEq0" (formula "17")) + (rule "mul_literals" (formula "17") (term "1,0")) + (rule "polySimp_addComm1" (formula "17") (term "0")) + (rule "polySimp_addComm0" (formula "17") (term "0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "17")) + (rule "polySimp_mulLiterals" (formula "17") (term "0")) + (rule "inEqSimp_contradInEq4" (formula "17") (ifseqformula "3")) + (rule "greater_literals" (formula "17") (term "0,1,0")) + (builtin "One Step Simplification" (formula "17")) + (rule "greater_literals" (formula "17") (term "0,0")) + (builtin "One Step Simplification" (formula "17")) + (rule "andLeft" (formula "17")) + (rule "polySimp_rightDist" (formula "17") (term "1")) + (rule "mul_literals" (formula "17") (term "0,1")) + (rule "polySimp_rightDist" (formula "17") (term "0")) + (rule "mul_literals" (formula "17") (term "0,0")) + (rule "inEqSimp_homoInEq1" (formula "17")) + (rule "polySimp_mulComm0" (formula "17") (term "1,0")) + (rule "polySimp_rightDist" (formula "17") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "17") (term "1,1,0")) + (rule "mul_literals" (formula "17") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "17") (term "0")) + (rule "polySimp_addComm1" (formula "17") (term "0,0")) + (rule "add_literals" (formula "17") (term "0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "17") (term "0")) + (rule "add_literals" (formula "17") (term "1,1,0")) + (rule "times_zero_1" (formula "17") (term "1,0")) + (rule "add_zero_right" (formula "17") (term "0")) + (rule "leq_literals" (formula "17")) + (rule "closeFalse" (formula "17")) + ) + ) + (branch "a[-1 + k_0] = x_0 FALSE" + (rule "add_zero_right" (formula "1") (term "1")) + (rule "replace_known_right" (formula "2") (term "0,0,0") (ifseqformula "17")) + (builtin "One Step Simplification" (formula "2")) + (rule "times_zero_2" (formula "2") (term "0")) + (rule "inEqSimp_homoInEq1" (formula "2")) + (rule "times_zero_2" (formula "2") (term "1,0")) + (rule "add_zero_right" (formula "2") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "ifthenelse_split" (formula "14") (term "0")) + (branch "a[-1 + k_0] = mx_0 TRUE" + (rule "polySimp_homoEq" (formula "15")) + (rule "mul_literals" (formula "15") (term "1,0")) + (rule "polySimp_addComm1" (formula "15") (term "0")) + (rule "polySimp_addComm0" (formula "15") (term "0,0")) + (rule "applyEq" (formula "18") (term "0") (ifseqformula "14")) + (rule "eqSymm" (formula "18")) + (rule "applyEq" (formula "17") (term "1,0,0,0,1,0") (ifseqformula "14")) + (rule "polySimp_sepNegMonomial" (formula "15")) + (rule "polySimp_mulLiterals" (formula "15") (term "0")) + (rule "polySimp_elimOne" (formula "15") (term "0")) + (rule "allLeft" (formula "17") (inst "t=x_0")) + (rule "replace_known_right" (formula "17") (term "0") (ifseqformula "19")) + (builtin "One Step Simplification" (formula "17") (ifInst "" (formula "19"))) + (rule "times_zero_2" (formula "17") (term "0")) + (rule "inEqSimp_homoInEq0" (formula "17")) + (rule "times_zero_2" (formula "17") (term "1,0")) + (rule "add_zero_right" (formula "17") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "17")) + (rule "polySimp_mulLiterals" (formula "17") (term "0")) + (rule "inEqSimp_contradInEq0" (formula "2") (ifseqformula "17")) + (rule "andLeft" (formula "2")) + (rule "inEqSimp_homoInEq1" (formula "2")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "0")) + (rule "add_literals" (formula "2") (term "1,1,0")) + (rule "times_zero_1" (formula "2") (term "1,0")) + (rule "add_zero_right" (formula "2") (term "0")) + (rule "leq_literals" (formula "2")) + (rule "closeFalse" (formula "2")) + ) + (branch "a[-1 + k_0] = mx_0 FALSE" + (rule "polySimp_homoEq" (formula "14")) + (rule "times_zero_2" (formula "14") (term "1,0")) + (rule "add_zero_right" (formula "14") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "14")) + (rule "polySimp_mulLiterals" (formula "14") (term "0")) + (rule "polySimp_elimOne" (formula "14") (term "0")) + (rule "onlyCreatedObjectsAreReferenced" (formula "19") (term "1,0") (ifseqformula "5")) + (rule "replace_known_right" (formula "1") (term "0") (ifseqformula "21")) + (builtin "One Step Simplification" (formula "1")) + (rule "allLeft" (formula "17") (inst "t=x_0")) + (rule "eqSymm" (formula "17") (term "0,0,0,1")) + (rule "replace_known_right" (formula "17") (term "0,0,0,1") (ifseqformula "20")) + (builtin "One Step Simplification" (formula "17")) + (rule "mul_literals" (formula "17") (term "0,1")) + (rule "inEqSimp_homoInEq0" (formula "17") (term "1")) + (rule "times_zero_2" (formula "17") (term "1,0,1")) + (rule "add_zero_right" (formula "17") (term "0,1")) + (rule "inEqSimp_sepNegMonomial1" (formula "17") (term "1")) + (rule "polySimp_mulLiterals" (formula "17") (term "0,1")) + (rule "inEqSimp_contradInEq4" (formula "17") (term "1") (ifseqformula "3")) + (rule "greater_literals" (formula "17") (term "0,0,1")) + (builtin "One Step Simplification" (formula "17")) + (rule "greater_literals" (formula "17") (term "0,0,1")) + (builtin "One Step Simplification" (formula "17")) + (rule "polySimp_mulComm0" (formula "17") (term "0,0,1")) + (rule "polySimp_rightDist" (formula "17") (term "1,0,1")) + (rule "mul_literals" (formula "17") (term "0,1,0,1")) + (rule "inEqSimp_homoInEq1" (formula "17") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "17") (term "1,0,0,1")) + (rule "polySimp_pullOutFactor0b" (formula "17") (term "0,0,1")) + (rule "add_literals" (formula "17") (term "1,1,0,0,1")) + (rule "times_zero_1" (formula "17") (term "1,0,0,1")) + (rule "add_zero_right" (formula "17") (term "0,0,1")) + (rule "leq_literals" (formula "17") (term "0,1")) + (builtin "One Step Simplification" (formula "17")) + (rule "applyEq" (formula "3") (term "4,0,0") (ifseqformula "17")) + (rule "applyEq" (formula "3") (term "0,0") (ifseqformula "15")) + (rule "applyEqRigid" (formula "2") (term "4,1") (ifseqformula "17")) + (rule "applyEq" (formula "20") (term "1") (ifseqformula "17")) + (rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "17")) + (rule "applyEqRigid" (formula "22") (term "1") (ifseqformula "17")) + (rule "applyEq" (formula "14") (term "0") (ifseqformula "2")) + (rule "applyEq" (formula "2") (term "1") (ifseqformula "14")) + (rule "inEqSimp_contradInEq1" (formula "15") (ifseqformula "3")) + (rule "andLeft" (formula "15")) + (rule "inEqSimp_homoInEq1" (formula "15")) + (rule "polySimp_pullOutFactor1b" (formula "15") (term "0")) + (rule "add_literals" (formula "15") (term "1,1,0")) + (rule "times_zero_1" (formula "15") (term "1,0")) + (rule "add_zero_right" (formula "15") (term "0")) + (rule "leq_literals" (formula "15")) + (rule "closeFalse" (formula "15")) + ) + ) + ) + ) + ) + (branch + (rule "polySimp_mulComm0" (formula "19") (term "0,0")) + (rule "polySimp_rightDist" (formula "19") (term "0,0")) + (rule "mul_literals" (formula "19") (term "0,0,0")) + (rule "precOfInt" (formula "19")) + (rule "inEqSimp_ltToLeq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "19") (term "1")) + (rule "polySimp_rightDist" (formula "19") (term "1,0,0,1")) + (rule "polySimp_mulAssoc" (formula "19") (term "0,1,0,0,1")) + (rule "polySimp_mulComm0" (formula "19") (term "0,0,1,0,0,1")) + (rule "polySimp_mulLiterals" (formula "19") (term "0,1,0,0,1")) + (rule "polySimp_elimOne" (formula "19") (term "0,1,0,0,1")) + (rule "polySimp_addAssoc" (formula "19") (term "0,0,1")) + (rule "polySimp_addAssoc" (formula "19") (term "0,1")) + (rule "polySimp_addComm1" (formula "19") (term "0,0,1")) + (rule "polySimp_pullOutFactor2b" (formula "19") (term "0,1")) + (rule "add_literals" (formula "19") (term "1,1,0,1")) + (rule "times_zero_1" (formula "19") (term "1,0,1")) + (rule "add_zero_right" (formula "19") (term "0,1")) + (rule "polySimp_addAssoc" (formula "19") (term "0,1")) + (rule "polySimp_addComm1" (formula "19") (term "0,0,1")) + (rule "add_literals" (formula "19") (term "0,0,0,1")) + (rule "add_zero_left" (formula "19") (term "0,0,1")) + (rule "polySimp_pullOutFactor1" (formula "19") (term "0,1")) + (rule "add_literals" (formula "19") (term "1,0,1")) + (rule "times_zero_1" (formula "19") (term "0,1")) + (rule "leq_literals" (formula "19") (term "1")) + (builtin "One Step Simplification" (formula "19")) + (rule "inEqSimp_leqRight" (formula "19")) + (rule "add_zero_right" (formula "1") (term "0")) + (rule "polySimp_rightDist" (formula "1") (term "1,0")) + (rule "polySimp_rightDist" (formula "1") (term "0,1,0")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0,1,0")) + (rule "mul_literals" (formula "1") (term "0,0,1,0")) + (rule "polySimp_elimOne" (formula "1") (term "1,0,1,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_subsumption1" (formula "14") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "14") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0,0")) + (rule "add_literals" (formula "14") (term "1,1,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0")) + (rule "qeq_literals" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "true_left" (formula "14")) + (rule "inEqSimp_contradInEq0" (formula "3") (ifseqformula "1")) + (rule "andLeft" (formula "3")) + (rule "inEqSimp_homoInEq1" (formula "3")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "0")) + (rule "add_literals" (formula "3") (term "1,1,0")) + (rule "times_zero_1" (formula "3") (term "1,0")) + (rule "add_zero_right" (formula "3") (term "0")) + (rule "leq_literals" (formula "3")) + (rule "closeFalse" (formula "3")) + ) + ) + (branch "Null Reference (mc == 0 = null)" + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "closeFalse" (formula "1")) + ) + (branch "Index Out of Bounds (mc == 0 != null, but k < _a.length Out of Bounds!)" + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "false_right" (formula "21")) + (rule "inEqSimp_ltToLeq" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "1") (term "1")) + (rule "times_zero_1" (formula "1") (term "1,0,0,1")) + (rule "add_zero_right" (formula "1") (term "0,0,1")) + (rule "applyEqRigid" (formula "17") (term "1,1") (ifseqformula "2")) + (rule "add_zero_right" (formula "17") (term "1")) + (rule "applyEq" (formula "18") (term "0,1,1,1,0") (ifseqformula "2")) + (rule "times_zero_2" (formula "18") (term "1,1,1,0")) + (rule "add_zero_right" (formula "18") (term "1,1,0")) + (rule "applyEqRigid" (formula "15") (term "0") (ifseqformula "2")) + (rule "qeq_literals" (formula "15")) + (rule "true_left" (formula "15")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) + (rule "mul_literals" (formula "1") (term "1,1")) + (rule "inEqSimp_subsumption1" (formula "14") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "14") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0,0")) + (rule "add_literals" (formula "14") (term "1,1,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0")) + (rule "qeq_literals" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "true_left" (formula "14")) + (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "12")) + (rule "qeq_literals" (formula "1") (term "0,1")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "3")) + (rule "andLeft" (formula "1")) + (rule "inEqSimp_homoInEq1" (formula "1")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "1,1,0")) + (rule "times_zero_1" (formula "1") (term "1,0")) + (rule "add_zero_right" (formula "1") (term "0")) + (rule "leq_literals" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + ) + (branch "if mc == 0 false" + (builtin "One Step Simplification" (formula "1")) + (builtin "One Step Simplification" (formula "20")) + (rule "notLeft" (formula "1")) + (rule "elim_double_block_2" (formula "20") (term "1")) + (rule "ifElseUnfold" (formula "20") (term "1") (inst "#boolv=b_4")) + (rule "variableDeclaration" (formula "20") (term "1") (newnames "b_4")) + (rule "compound_equality_comparison_2" (formula "20") (term "1") (inst "#v1=i_5") (inst "#v0=i_4")) + (rule "variableDeclarationAssign" (formula "20") (term "1")) + (rule "variableDeclaration" (formula "20") (term "1") (newnames "i_4")) + (rule "assignment" (formula "20") (term "1")) + (builtin "One Step Simplification" (formula "20")) + (rule "variableDeclarationAssign" (formula "20") (term "1")) + (rule "variableDeclaration" (formula "20") (term "1") (newnames "i_5")) + (rule "assignment_array2" (formula "20")) + (branch "Normal Execution (mc == 0 != null)" + (builtin "One Step Simplification" (formula "20")) + (rule "equality_comparison_simple" (formula "20") (term "1")) + (builtin "One Step Simplification" (formula "20")) + (rule "eqSymm" (formula "20") (term "0,0,1,0")) + (rule "ifElseSplit" (formula "20")) + (branch "if mx == _a[k] true" + (builtin "One Step Simplification" (formula "21")) + (builtin "One Step Simplification" (formula "1")) + (rule "postincrement" (formula "21") (term "1")) + (rule "compound_reference_cast_expression_primitive" (formula "21") (term "1") (inst "#v=i_6")) + (rule "variableDeclarationAssign" (formula "21") (term "1")) + (rule "variableDeclaration" (formula "21") (term "1") (newnames "i_6")) + (rule "remove_parentheses_right" (formula "21") (term "1")) + (rule "assignmentAdditionInt" (formula "21") (term "1")) + (builtin "One Step Simplification" (formula "21")) + (rule "translateJavaAddInt" (formula "21") (term "0,1,0")) + (rule "polySimp_addComm0" (formula "21") (term "0,1,0")) + (rule "widening_identity_cast_5" (formula "21") (term "1")) + (rule "assignment" (formula "21") (term "1")) + (builtin "One Step Simplification" (formula "21")) + (rule "blockEmpty" (formula "21") (term "1")) + (rule "postincrement" (formula "21") (term "1")) + (rule "compound_int_cast_expression" (formula "21") (term "1") (inst "#v=i_7")) + (rule "variableDeclarationAssign" (formula "21") (term "1")) + (rule "variableDeclaration" (formula "21") (term "1") (newnames "i_7")) + (rule "remove_parentheses_right" (formula "21") (term "1")) + (rule "assignmentAdditionInt" (formula "21") (term "1")) + (builtin "One Step Simplification" (formula "21")) + (rule "translateJavaAddInt" (formula "21") (term "0,1,0")) + (rule "polySimp_addComm0" (formula "21") (term "0,1,0")) + (rule "widening_identity_cast_5" (formula "21") (term "1")) + (rule "assignment" (formula "21") (term "1")) + (builtin "One Step Simplification" (formula "21")) + (rule "tryEmpty" (formula "21") (term "1")) + (rule "methodCallEmpty" (formula "21") (term "1")) + (rule "emptyModality" (formula "21") (term "1")) + (builtin "One Step Simplification" (formula "21")) + (rule "andRight" (formula "21")) + (branch + (rule "andRight" (formula "21")) + (branch "Case 1" + (rule "andRight" (formula "21")) + (branch "Case 1" + (rule "andRight" (formula "21")) + (branch "Case 1" + (rule "andRight" (formula "21")) + (branch "Case 1" + (rule "inEqSimp_geqRight" (formula "21")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "inEqSimp_ltToLeq" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "mul_literals" (formula "1") (term "1")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_strengthen1" (formula "15") (ifseqformula "19")) + (rule "add_zero_right" (formula "15") (term "1")) + (rule "inEqSimp_contradEq7" (formula "19") (ifseqformula "15")) + (rule "times_zero_1" (formula "19") (term "1,0,0")) + (rule "add_zero_right" (formula "19") (term "0,0")) + (rule "leq_literals" (formula "19") (term "0")) + (builtin "One Step Simplification" (formula "19")) + (rule "false_right" (formula "19")) + (rule "inEqSimp_subsumption1" (formula "14") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "14") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0,0")) + (rule "add_literals" (formula "14") (term "1,1,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0")) + (rule "qeq_literals" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "true_left" (formula "14")) + (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "12")) + (rule "qeq_literals" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + (branch "Case 2" + (rule "inEqSimp_geqRight" (formula "21")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "mul_literals" (formula "1") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0")) + (rule "inEqSimp_ltToLeq" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1")) + (rule "polySimp_elimOne" (formula "1") (term "1")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_strengthen1" (formula "15") (ifseqformula "19")) + (rule "add_zero_right" (formula "15") (term "1")) + (rule "inEqSimp_contradEq7" (formula "19") (ifseqformula "15")) + (rule "times_zero_1" (formula "19") (term "1,0,0")) + (rule "add_zero_right" (formula "19") (term "0,0")) + (rule "leq_literals" (formula "19") (term "0")) + (builtin "One Step Simplification" (formula "19")) + (rule "false_right" (formula "19")) + (rule "inEqSimp_subsumption1" (formula "14") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "14") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0,0")) + (rule "add_literals" (formula "14") (term "1,1,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0")) + (rule "qeq_literals" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "true_left" (formula "14")) + (rule "inEqSimp_contradInEq0" (formula "3") (ifseqformula "1")) + (rule "andLeft" (formula "3")) + (rule "inEqSimp_homoInEq1" (formula "3")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "0")) + (rule "add_literals" (formula "3") (term "1,1,0")) + (rule "times_zero_1" (formula "3") (term "1,0")) + (rule "add_zero_right" (formula "3") (term "0")) + (rule "leq_literals" (formula "3")) + (rule "closeFalse" (formula "3")) + ) + ) + (branch "Case 2" + (rule "inEqSimp_geqRight" (formula "21")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "inEqSimp_ltToLeq" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "mul_literals" (formula "1") (term "1")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_contradEq3" (formula "19") (ifseqformula "1")) + (rule "times_zero_1" (formula "19") (term "1,0,0")) + (rule "add_zero_right" (formula "19") (term "0,0")) + (rule "qeq_literals" (formula "19") (term "0")) + (builtin "One Step Simplification" (formula "19")) + (rule "false_right" (formula "19")) + (rule "inEqSimp_contradInEq0" (formula "15") (ifseqformula "1")) + (rule "qeq_literals" (formula "15") (term "0")) + (builtin "One Step Simplification" (formula "15")) + (rule "closeFalse" (formula "15")) + ) + ) + (branch "Case 2" + (rule "polySimp_addAssoc" (formula "21") (term "1")) + (rule "polySimp_addComm1" (formula "21") (term "0,1")) + (rule "add_literals" (formula "21") (term "0,0,1")) + (rule "inEqSimp_leqRight" (formula "21")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "polySimp_rightDist" (formula "1") (term "0,1,0,0")) + (rule "mul_literals" (formula "1") (term "0,0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0,0")) + (rule "add_literals" (formula "1") (term "0,0,0,0")) + (rule "inEqSimp_ltToLeq" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,1")) + (rule "polySimp_rightDist" (formula "1") (term "0,1")) + (rule "mul_literals" (formula "1") (term "0,0,1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,0,1")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_strengthen1" (formula "15") (ifseqformula "19")) + (rule "add_zero_right" (formula "15") (term "1")) + (rule "inEqSimp_contradEq7" (formula "19") (ifseqformula "15")) + (rule "times_zero_1" (formula "19") (term "1,0,0")) + (rule "add_zero_right" (formula "19") (term "0,0")) + (rule "leq_literals" (formula "19") (term "0")) + (builtin "One Step Simplification" (formula "19")) + (rule "false_right" (formula "19")) + (rule "inEqSimp_subsumption1" (formula "14") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "14") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0,0")) + (rule "add_literals" (formula "14") (term "1,1,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0")) + (rule "qeq_literals" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "true_left" (formula "14")) + (rule "nnf_imp2or" (formula "17") (term "0")) + (builtin "One Step Simplification" (formula "17")) + (rule "Static_class_invariant_axiom_for_IntOpt" (formula "9")) + (rule "andLeft" (formula "9")) + (rule "notLeft" (formula "9")) + (rule "notLeft" (formula "9")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "15") (term "0,0") (inst "l=l")) + (rule "eqSymm" (formula "15") (term "0,1")) + (rule "replace_known_right" (formula "15") (term "0,1,0,0") (ifseqformula "20")) + (builtin "One Step Simplification" (formula "15") (ifInst "" (formula "9")) (ifInst "" (formula "21")) (ifInst "" (formula "4")) (ifInst "" (formula "5")) (ifInst "" (formula "9"))) + (rule "measuredByCheckEmpty" (formula "15") (term "1,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "15")) + (rule "inEqSimp_commuteLeq" (formula "15") (term "0,0")) + (rule "replace_known_left" (formula "15") (term "0,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "15")) + (rule "inEqSimp_commuteLeq" (formula "15") (term "0")) + (rule "inEqSimp_subsumption1" (formula "15") (term "0") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "15") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "15") (term "0,0,0")) + (rule "add_literals" (formula "15") (term "1,1,0,0,0")) + (rule "times_zero_1" (formula "15") (term "1,0,0,0")) + (rule "add_zero_right" (formula "15") (term "0,0,0")) + (rule "qeq_literals" (formula "15") (term "0,0")) + (builtin "One Step Simplification" (formula "15")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "14") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "14") (term "0,1")) + (rule "replace_known_left" (formula "14") (term "1,0,0,0") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "14") (ifInst "" (formula "9")) (ifInst "" (formula "22")) (ifInst "" (formula "4")) (ifInst "" (formula "21")) (ifInst "" (formula "16")) (ifInst "" (formula "9"))) + (rule "true_left" (formula "14")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "0,0") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "1,0,0,0") (ifseqformula "6")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "10")) (ifInst "" (formula "22")) (ifInst "" (formula "5")) (ifInst "" (formula "21")) (ifInst "" (formula "10"))) + (rule "bsum_induction_upper_concrete" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "0,1,1,0,1") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "1")) + (rule "polySimp_homoEq" (formula "1") (term "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0,1")) + (rule "polySimp_addComm0" (formula "1") (term "1,1,0,1")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,1")) + (rule "polySimp_mulComm0" (formula "1") (term "0,1,0,1")) + (rule "polySimp_addAssoc" (formula "1") (term "0,1")) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,1,0,0,1")) + (rule "replace_known_left" (formula "1") (term "0,0,1,0,0,1") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "1")) + (rule "mul_literals" (formula "1") (term "1,0,0,1")) + (rule "polySimp_addComm0" (formula "1") (term "0,0,1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "1,0")) + (rule "replace_known_left" (formula "1") (term "1,0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0")) + (rule "times_zero_2" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "applyEq" (formula "1") (term "0,1,0,1") (ifseqformula "16")) + (rule "polySimp_addComm1" (formula "1") (term "0,1")) + (rule "polySimp_sepPosMonomial" (formula "1") (term "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1,1")) + (rule "polySimp_rightDist" (formula "1") (term "1,1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1")) + (rule "mul_literals" (formula "1") (term "0,1,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,1,1")) + (rule "inEqSimp_sepPosMonomial1" (formula "1") (term "0")) + (rule "mul_literals" (formula "1") (term "1,0")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0") (ifseqformula "12")) + (rule "leq_literals" (formula "1") (term "0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "applyEq" (formula "2") (term "0,0") (ifseqformula "1")) + (rule "polySimp_mulComm0" (formula "2") (term "0")) + (rule "polySimp_rightDist" (formula "2") (term "0")) + (rule "mul_literals" (formula "2") (term "0,0")) + (rule "inEqSimp_homoInEq1" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0")) + (rule "polySimp_rightDist" (formula "2") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "2") (term "1,1,0")) + (rule "mul_literals" (formula "2") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "2") (term "0")) + (rule "polySimp_addComm1" (formula "2") (term "0,0")) + (rule "polySimp_addComm1" (formula "2") (term "0,0,0")) + (rule "add_literals" (formula "2") (term "0,0,0,0")) + (rule "inEqSimp_sepNegMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "inEqSimp_contradInEq0" (formula "2") (ifseqformula "17")) + (rule "andLeft" (formula "2")) + (rule "inEqSimp_homoInEq1" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0")) + (rule "polySimp_rightDist" (formula "2") (term "1,0")) + (rule "polySimp_mulComm0" (formula "2") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "2") (term "0")) + (rule "polySimp_addComm1" (formula "2") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "0,0,0")) + (rule "add_literals" (formula "2") (term "1,1,0,0,0")) + (rule "times_zero_1" (formula "2") (term "1,0,0,0")) + (rule "add_zero_right" (formula "2") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "0")) + (rule "add_literals" (formula "2") (term "1,1,0")) + (rule "times_zero_1" (formula "2") (term "1,0")) + (rule "add_zero_right" (formula "2") (term "0")) + (rule "leq_literals" (formula "2")) + (rule "closeFalse" (formula "2")) + ) + ) + (branch "Case 2" + (rule "allRight" (formula "21") (inst "sk=x_0")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "21") (term "0,0,1") (ifseqformula "5")) + (rule "unlimit_BoyerMoore_count[I\bigint\bigint" (formula "21") (term "1,2,0,0,0,1")) + (rule "castDel" (formula "21") (term "0,0,1")) + (rule "impRight" (formula "21")) + (rule "notLeft" (formula "1")) + (rule "polySimp_elimSub" (formula "22") (term "3,1,2,0,0")) + (rule "mul_literals" (formula "22") (term "1,3,1,2,0,0")) + (rule "polySimp_elimSub" (formula "22") (term "0,2,0,0,0,2,0,0")) + (rule "mul_literals" (formula "22") (term "1,0,2,0,0,0,2,0,0")) + (rule "polySimp_mulComm0" (formula "22") (term "1,1")) + (rule "polySimp_addComm1" (formula "22") (term "3,1,2,0,0")) + (rule "add_literals" (formula "22") (term "0,3,1,2,0,0")) + (rule "add_zero_left" (formula "22") (term "3,1,2,0,0")) + (rule "polySimp_addComm1" (formula "22") (term "0,2,0,0,0,2,0,0")) + (rule "add_literals" (formula "22") (term "0,0,2,0,0,0,2,0,0")) + (rule "add_zero_left" (formula "22") (term "0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "22") (term "2,0,0")) + (rule "polySimp_rightDist" (formula "22") (term "1,1")) + (rule "mul_literals" (formula "22") (term "0,1,1")) + (rule "polySimp_addAssoc" (formula "22") (term "1")) + (rule "polySimp_addComm1" (formula "22") (term "0,1")) + (rule "add_literals" (formula "22") (term "0,0,1")) + (rule "add_zero_left" (formula "22") (term "0,1")) + (rule "inEqSimp_ltToLeq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "inEqSimp_leqRight" (formula "22")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1,0,0")) + (rule "polySimp_elimOne" (formula "1") (term "1,1,0,0")) + (rule "polySimp_mulComm0" (formula "1") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "applyEq" (formula "1") (term "0,0,1,2,0,1,0") (ifseqformula "2")) + (rule "eqSymm" (formula "1") (term "0,1,2,0,1,0")) + (rule "replace_known_right" (formula "1") (term "0,1,2,0,1,0") (ifseqformula "19")) + (builtin "One Step Simplification" (formula "1")) + (rule "add_zero_right" (formula "1") (term "2,0,1,0")) + (rule "polySimp_sepPosMonomial" (formula "1") (term "0,0,1,0")) + (rule "mul_literals" (formula "1") (term "1,0,0,1,0")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "0,1")) + (rule "mul_literals" (formula "1") (term "0,0,1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,0,1")) + (rule "inEqSimp_contradEq7" (formula "1") (term "0,0,0") (ifseqformula "12")) + (rule "add_zero_left" (formula "1") (term "0,0,0,0,0")) + (rule "mul_literals" (formula "1") (term "0,0,0,0,0")) + (rule "leq_literals" (formula "1") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_strengthen1" (formula "15") (ifseqformula "20")) + (rule "add_zero_right" (formula "15") (term "1")) + (rule "inEqSimp_contradEq7" (formula "20") (ifseqformula "15")) + (rule "times_zero_1" (formula "20") (term "1,0,0")) + (rule "add_zero_right" (formula "20") (term "0,0")) + (rule "leq_literals" (formula "20") (term "0")) + (builtin "One Step Simplification" (formula "20")) + (rule "false_right" (formula "20")) + (rule "inEqSimp_subsumption1" (formula "14") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "14") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0,0")) + (rule "add_literals" (formula "14") (term "1,1,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0")) + (rule "qeq_literals" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "true_left" (formula "14")) + (rule "nnf_imp2or" (formula "17") (term "0")) + (builtin "One Step Simplification" (formula "17")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "15") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "15") (term "0,1")) + (rule "replace_known_left" (formula "15") (term "1,1") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "15") (ifInst "" (formula "10")) (ifInst "" (formula "21")) (ifInst "" (formula "4")) (ifInst "" (formula "5")) (ifInst "" (formula "20"))) + (rule "measuredByCheckEmpty" (formula "15") (term "1,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "15")) + (rule "inEqSimp_commuteLeq" (formula "15") (term "1,0")) + (rule "inEqSimp_commuteLeq" (formula "15") (term "0,0")) + (rule "replace_known_left" (formula "15") (term "0,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "15")) + (rule "inEqSimp_subsumption1" (formula "15") (term "0") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "15") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "15") (term "0,0,0")) + (rule "add_literals" (formula "15") (term "1,1,0,0,0")) + (rule "times_zero_1" (formula "15") (term "1,0,0,0")) + (rule "add_zero_right" (formula "15") (term "0,0,0")) + (rule "qeq_literals" (formula "15") (term "0,0")) + (builtin "One Step Simplification" (formula "15")) + (rule "Static_class_invariant_axiom_for_IntOpt" (formula "9")) + (rule "andLeft" (formula "9")) + (rule "notLeft" (formula "9")) + (rule "notLeft" (formula "9")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "16") (term "0,0") (inst "l=l")) + (rule "eqSymm" (formula "16") (term "0,1")) + (rule "replace_known_right" (formula "16") (term "0,1,0,0") (ifseqformula "22")) + (builtin "One Step Simplification" (formula "16") (ifInst "" (formula "9")) (ifInst "" (formula "23")) (ifInst "" (formula "4")) (ifInst "" (formula "5")) (ifInst "" (formula "14")) (ifInst "" (formula "9"))) + (rule "true_left" (formula "16")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "0,0") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_right" (formula "1") (term "0,1,1,0,0,0,0,0") (ifseqformula "23")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "10")) (ifInst "" (formula "5")) (ifInst "" (formula "6")) (ifInst "" (formula "22")) (ifInst "" (formula "10"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0")) + (rule "replace_known_left" (formula "1") (term "0,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0") (ifseqformula "4")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0")) + (rule "qeq_literals" (formula "1") (term "0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "17") (term "0,0") (ifseqformula "7")) + (rule "castDel" (formula "17") (term "0,0")) + (rule "polySimp_elimSub" (formula "17") (term "3,1,2,0,0")) + (rule "mul_literals" (formula "17") (term "1,3,1,2,0,0")) + (rule "polySimp_elimSub" (formula "17") (term "0,2,0,0,0,2,0,0")) + (rule "mul_literals" (formula "17") (term "1,0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "17") (term "3,1,2,0,0")) + (rule "polySimp_addComm0" (formula "17") (term "0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "17") (term "2,0,0")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "16") (term "1") (ifseqformula "7")) + (rule "castDel" (formula "16") (term "1")) + (rule "eqSymm" (formula "16")) + (rule "polySimp_elimSub" (formula "16") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "16") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_elimSub" (formula "16") (term "3,1,2,0")) + (rule "mul_literals" (formula "16") (term "1,3,1,2,0")) + (rule "polySimp_addComm0" (formula "16") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "16") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "16") (term "2,0")) + (rule "applyEq" (formula "17") (term "0,0") (ifseqformula "16")) + (rule "Class_invariant_axiom_for_BoyerMoore" (formula "10") (ifseqformula "7")) + (rule "true_left" (formula "10")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "14") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "14") (term "0,1")) + (rule "replace_known_left" (formula "14") (term "1,0,0,0,0") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "14") (ifInst "" (formula "23")) (ifInst "" (formula "6")) (ifInst "" (formula "22")) (ifInst "" (formula "15"))) + (rule "measuredByCheckEmpty" (formula "14") (term "1,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "14")) + (rule "inEqSimp_commuteLeq" (formula "14") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "14") (term "0,0,0")) + (rule "replace_known_left" (formula "14") (term "0,0,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "14")) + (rule "inEqSimp_subsumption1" (formula "14") (term "0,0") (ifseqformula "4")) + (rule "inEqSimp_homoInEq0" (formula "14") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0,0,0,0")) + (rule "add_literals" (formula "14") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0,0,0")) + (rule "qeq_literals" (formula "14") (term "0,0,0")) + (builtin "One Step Simplification" (formula "14")) + (rule "true_left" (formula "14")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "0,0") (ifseqformula "7")) + (rule "castDel" (formula "2") (term "0,0")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,0,0")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,0,0")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,0,0")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "2,0,0")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_right" (formula "1") (term "0,1,1,0,0,0,0,0") (ifseqformula "23")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "6")) (ifInst "" (formula "7")) (ifInst "" (formula "22")) (ifInst "" (formula "2"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "replace_known_left" (formula "1") (term "0,0,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0,0") (ifseqformula "5")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0")) + (rule "qeq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "17") (term "0,0,1,0") (ifseqformula "7")) + (rule "castDel" (formula "17") (term "0,0,1,0")) + (rule "eqSymm" (formula "17") (term "0,0,2,0,0,1,0")) + (rule "polySimp_elimSub" (formula "17") (term "3,1,2,0,0,1,0")) + (rule "mul_literals" (formula "17") (term "1,3,1,2,0,0,1,0")) + (rule "polySimp_elimSub" (formula "17") (term "0,2,1,0,0,2,0,0,1,0")) + (rule "mul_literals" (formula "17") (term "1,0,2,1,0,0,2,0,0,1,0")) + (rule "polySimp_addComm0" (formula "17") (term "3,1,2,0,0,1,0")) + (rule "polySimp_addComm0" (formula "17") (term "0,2,1,0,0,2,0,0,1,0")) + (rule "polySimp_addComm0" (formula "17") (term "2,0,0,1,0")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "14") (term "1") (ifseqformula "7")) + (rule "castDel" (formula "14") (term "1")) + (rule "polySimp_elimSub" (formula "14") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "14") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "14") (term "3,1,2,1")) + (rule "mul_literals" (formula "14") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "14") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "14") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "14") (term "2,1")) + (rule "applyEq" (formula "14") (term "1") (ifseqformula "15")) + (rule "limit_BoyerMoore_count[I\bigint\bigint" (formula "1") (term "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "2") (term "1")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,1")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "2") (term "2,1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "1,0,0,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "24")) (ifInst "" (formula "7")) (ifInst "" (formula "23"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "replace_known_left" (formula "1") (term "0,0,0") (ifseqformula "13")) + (builtin "One Step Simplification" (formula "1")) + (rule "applyEq" (formula "1") (term "0,0,1") (ifseqformula "3")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0")) + (rule "qeq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (ifseqformula "9")) + (rule "castDel" (formula "2") (term "1")) + (rule "eqSymm" (formula "2")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,0")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,0")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "2,0")) + (rule "applyEq" (formula "1") (term "0,0,1") (ifseqformula "2")) + (rule "applyEq" (formula "4") (term "0,0") (ifseqformula "2")) + (rule "applyEq" (formula "3") (term "1") (ifseqformula "2")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1,0,1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "1,0,0,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "25")) (ifInst "" (formula "8")) (ifInst "" (formula "24"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "replace_known_left" (formula "1") (term "0,0,0") (ifseqformula "14")) + (builtin "One Step Simplification" (formula "1")) + (rule "applyEq" (formula "1") (term "0,0,1") (ifseqformula "4")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0,0") (ifseqformula "7")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0")) + (rule "qeq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "2"))) + (rule "true_left" (formula "1")) + (rule "Class_invariant_axiom_for_BoyerMoore" (formula "1") (term "1,1") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1,1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "1,0,0,0,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "25")) (ifInst "" (formula "9")) (ifInst "" (formula "24"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "replace_known_left" (formula "1") (term "0,0,0") (ifseqformula "14")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0")) + (rule "applyEq" (formula "1") (term "0,0,1") (ifseqformula "4")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0,0") (ifseqformula "7")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0")) + (rule "qeq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "Class_invariant_axiom_for_BoyerMoore" (formula "2") (term "0") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "2")) + (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "applyEq" (formula "4") (term "0,0") (ifseqformula "1")) + (rule "applyEq" (formula "2") (term "1") (ifseqformula "1")) + (rule "applyEq" (formula "3") (term "1") (ifseqformula "1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "1,0,0,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "25")) (ifInst "" (formula "8")) (ifInst "" (formula "24")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "replace_known_left" (formula "1") (term "0,0,0") (ifseqformula "14")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0,0") (ifseqformula "7")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0")) + (rule "qeq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "4") (term "0,0") (inst "l=l")) + (rule "eqSymm" (formula "4") (term "0,1")) + (rule "replace_known_right" (formula "4") (term "0,1,1,0,0,0,0,0") (ifseqformula "25")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "8")) (ifInst "" (formula "9")) (ifInst "" (formula "24")) (ifInst "" (formula "3"))) + (rule "measuredByCheckEmpty" (formula "4") (term "1,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "4")) + (rule "inEqSimp_commuteLeq" (formula "4") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "4") (term "0,0,0")) + (rule "replace_known_left" (formula "4") (term "0,0,0") (ifseqformula "14")) + (builtin "One Step Simplification" (formula "4")) + (rule "inEqSimp_subsumption1" (formula "4") (term "0,0") (ifseqformula "7")) + (rule "inEqSimp_homoInEq0" (formula "4") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "4") (term "0,0,0,0")) + (rule "add_literals" (formula "4") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "4") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "4") (term "0,0,0,0")) + (rule "qeq_literals" (formula "4") (term "0,0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "true_left" (formula "4")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "2") (term "0,1")) + (rule "replace_known_right" (formula "2") (term "0,1,1,0,0,0,0,0") (ifseqformula "25")) + (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "8")) (ifInst "" (formula "9")) (ifInst "" (formula "24")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "2") (term "1,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "2")) + (rule "inEqSimp_commuteLeq" (formula "2") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "2") (term "0,0,0")) + (rule "replace_known_left" (formula "2") (term "0,0,0") (ifseqformula "14")) + (builtin "One Step Simplification" (formula "2")) + (rule "inEqSimp_subsumption1" (formula "2") (term "0,0") (ifseqformula "7")) + (rule "inEqSimp_homoInEq0" (formula "2") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "0,0,0,0")) + (rule "add_literals" (formula "2") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "2") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "2") (term "0,0,0,0")) + (rule "qeq_literals" (formula "2") (term "0,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (ifseqformula "9")) + (rule "castDel" (formula "1") (term "1")) + (rule "eqSymm" (formula "1")) + (rule "polySimp_elimSub" (formula "1") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "1") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_elimSub" (formula "1") (term "3,1,2,0")) + (rule "mul_literals" (formula "1") (term "1,3,1,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "2,0")) + (rule "applyEq" (formula "2") (term "0") (ifseqformula "1")) + (rule "applyEq" (formula "1") (term "1") (ifseqformula "2")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "3") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "3") (term "0,1")) + (rule "replace_known_right" (formula "3") (term "0,1,1,0,0,0,0,0") (ifseqformula "25")) + (builtin "One Step Simplification" (formula "3") (ifInst "" (formula "8")) (ifInst "" (formula "9")) (ifInst "" (formula "24")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "3") (term "1,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "3")) + (rule "inEqSimp_commuteLeq" (formula "3") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) + (rule "replace_known_left" (formula "3") (term "0,0,0") (ifseqformula "14")) + (builtin "One Step Simplification" (formula "3")) + (rule "inEqSimp_subsumption1" (formula "3") (term "0,0") (ifseqformula "7")) + (rule "inEqSimp_homoInEq0" (formula "3") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "0,0,0,0")) + (rule "add_literals" (formula "3") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "3") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "3") (term "0,0,0,0")) + (rule "qeq_literals" (formula "3") (term "0,0,0")) + (builtin "One Step Simplification" (formula "3")) + (rule "true_left" (formula "3")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (ifseqformula "9")) + (rule "castDel" (formula "2") (term "1")) + (rule "eqSymm" (formula "2")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,0")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "2,0")) + (rule "applyEq" (formula "1") (term "0") (ifseqformula "2")) + (rule "applyEq" (formula "2") (term "1") (ifseqformula "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "4") (term "0,0") (ifseqformula "9")) + (rule "castDel" (formula "4") (term "0,0")) + (rule "polySimp_elimSub" (formula "4") (term "0,2,0,0,0,2,0,0")) + (rule "mul_literals" (formula "4") (term "1,0,2,0,0,0,2,0,0")) + (rule "polySimp_elimSub" (formula "4") (term "3,1,2,0,0")) + (rule "mul_literals" (formula "4") (term "1,3,1,2,0,0")) + (rule "polySimp_addComm0" (formula "4") (term "0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "4") (term "3,1,2,0,0")) + (rule "polySimp_addComm0" (formula "4") (term "2,0,0")) + (rule "applyEq" (formula "4") (term "0,0") (ifseqformula "2")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "3") (term "1") (ifseqformula "9")) + (rule "castDel" (formula "3") (term "1")) + (rule "polySimp_elimSub" (formula "3") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "3") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "3") (term "3,1,2,1")) + (rule "mul_literals" (formula "3") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "2,1")) + (rule "applyEq" (formula "3") (term "1") (ifseqformula "2")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_right" (formula "1") (term "0,1,1,0,0,0,0,0") (ifseqformula "25")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "8")) (ifInst "" (formula "9")) (ifInst "" (formula "24")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "replace_known_left" (formula "1") (term "0,0,0") (ifseqformula "14")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0,0") (ifseqformula "7")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0")) + (rule "qeq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "2") (term "0,1")) + (rule "replace_known_right" (formula "2") (term "0,1,1,0,0,0,0,0") (ifseqformula "25")) + (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "8")) (ifInst "" (formula "9")) (ifInst "" (formula "24")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "2") (term "1,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "2")) + (rule "inEqSimp_commuteLeq" (formula "2") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "2") (term "0,0,0")) + (rule "replace_known_left" (formula "2") (term "0,0,0") (ifseqformula "14")) + (builtin "One Step Simplification" (formula "2")) + (rule "inEqSimp_subsumption1" (formula "2") (term "0,0") (ifseqformula "7")) + (rule "inEqSimp_homoInEq0" (formula "2") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "0,0,0,0")) + (rule "add_literals" (formula "2") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "2") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "2") (term "0,0,0,0")) + (rule "qeq_literals" (formula "2") (term "0,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "ifthenelse_split" (formula "17") (term "0")) + (branch "k_0 = 0 TRUE" + (rule "eqSymm" (formula "18")) + (rule "replace_known_left" (formula "2") (term "0,0") (ifseqformula "17")) + (builtin "One Step Simplification" (formula "2")) + (rule "eqSymm" (formula "2")) + (rule "replace_known_left" (formula "20") (term "0,0,0,1,0") (ifseqformula "17")) + (builtin "One Step Simplification" (formula "20")) + (rule "times_zero_2" (formula "20") (term "0,1,0")) + (rule "inEqSimp_homoInEq0" (formula "20") (term "1,0")) + (rule "times_zero_2" (formula "20") (term "1,0,1,0")) + (rule "add_zero_right" (formula "20") (term "0,1,0")) + (rule "applyEq" (formula "2") (term "3,0") (ifseqformula "17")) + (rule "applyEq" (formula "19") (term "0,0") (ifseqformula "18")) + (rule "times_zero_2" (formula "19") (term "0")) + (rule "inEqSimp_homoInEq0" (formula "19")) + (rule "times_zero_2" (formula "19") (term "1,0")) + (rule "add_zero_right" (formula "19") (term "0")) + (rule "applyEq" (formula "4") (term "3,0,0") (ifseqformula "17")) + (rule "applyEqRigid" (formula "1") (term "3,0") (ifseqformula "17")) + (rule "applyEq" (formula "6") (term "1,1") (ifseqformula "17")) + (rule "add_zero_right" (formula "6") (term "1")) + (rule "applyEq" (formula "3") (term "1,0") (ifseqformula "17")) + (rule "bsum_lower_equals_upper" (formula "3") (term "0")) + (rule "eqSymm" (formula "3")) + (rule "applyEqRigid" (formula "13") (term "0") (ifseqformula "17")) + (rule "qeq_literals" (formula "13")) + (rule "true_left" (formula "13")) + (rule "applyEq" (formula "15") (term "1,0") (ifseqformula "16")) + (rule "bsum_lower_equals_upper" (formula "15") (term "0")) + (rule "eqSymm" (formula "15")) + (rule "applyEqRigid" (formula "5") (term "0,2,0") (ifseqformula "15")) + (rule "applyEqRigid" (formula "16") (term "3,0") (ifseqformula "15")) + (rule "applyEq" (formula "1") (term "3,1") (ifseqformula "15")) + (rule "applyEq" (formula "4") (term "1,0,1") (ifseqformula "15")) + (rule "add_zero_right" (formula "4") (term "0,1")) + (rule "applyEqRigid" (formula "3") (term "3,0") (ifseqformula "15")) + (rule "applyEq" (formula "3") (term "0,0") (ifseqformula "2")) + (rule "times_zero_2" (formula "3") (term "0")) + (rule "inEqSimp_homoInEq1" (formula "3")) + (rule "times_zero_2" (formula "3") (term "1,0")) + (rule "add_zero_right" (formula "3") (term "0")) + (rule "applyEqRigid" (formula "17") (term "0,0,1,0") (ifseqformula "14")) + (rule "add_zero_left" (formula "17") (term "0,1,0")) + (rule "applyEqRigid" (formula "16") (term "0,0") (ifseqformula "14")) + (rule "add_zero_left" (formula "16") (term "0")) + (rule "applyEq" (formula "1") (term "1") (ifseqformula "2")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_invertInEq1" (formula "16") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "16") (term "0,1,0")) + (rule "times_zero_2" (formula "16") (term "1,1,0")) + (rule "polySimp_elimOne" (formula "16") (term "0,1,0")) + (rule "inEqSimp_subsumption1" (formula "15") (ifseqformula "12")) + (rule "leq_literals" (formula "15") (term "0")) + (builtin "One Step Simplification" (formula "15")) + (rule "true_left" (formula "15")) + (rule "inEqSimp_subsumption1" (formula "11") (ifseqformula "4")) + (rule "leq_literals" (formula "11") (term "0")) + (builtin "One Step Simplification" (formula "11")) + (rule "true_left" (formula "11")) + (rule "inEqSimp_contradInEq1" (formula "14") (term "1,0") (ifseqformula "11")) + (rule "qeq_literals" (formula "14") (term "0,1,0")) + (builtin "One Step Simplification" (formula "14")) + (rule "closeFalse" (formula "14")) + ) + (branch "k_0 = 0 FALSE" + (rule "replace_known_right" (formula "19") (term "0,0,0,1,0") (ifseqformula "20")) + (builtin "One Step Simplification" (formula "19")) + (rule "replace_known_right" (formula "2") (term "0,0") (ifseqformula "20")) + (builtin "One Step Simplification" (formula "2")) + (rule "polySimp_homoEq" (formula "17")) + (rule "polySimp_homoEq" (formula "2")) + (rule "polySimp_mulComm0" (formula "19") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "17") (term "1,0")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0")) + (rule "polySimp_rightDist" (formula "19") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "19") (term "0,0,1,0")) + (rule "polySimp_rightDist" (formula "17") (term "1,0")) + (rule "polySimp_mulComm0" (formula "17") (term "0,1,0")) + (rule "polySimp_rightDist" (formula "2") (term "1,0")) + (rule "polySimp_mulComm0" (formula "2") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "17") (term "0")) + (rule "polySimp_addAssoc" (formula "2") (term "0")) + (rule "inEqSimp_homoInEq0" (formula "19") (term "1,0")) + (rule "polySimp_mulComm0" (formula "19") (term "1,0,1,0")) + (rule "polySimp_rightDist" (formula "19") (term "1,0,1,0")) + (rule "polySimp_mulLiterals" (formula "19") (term "1,1,0,1,0")) + (rule "polySimp_mulAssoc" (formula "19") (term "0,1,0,1,0")) + (rule "polySimp_mulComm0" (formula "19") (term "0,0,1,0,1,0")) + (rule "polySimp_mulLiterals" (formula "19") (term "0,1,0,1,0")) + (rule "polySimp_addAssoc" (formula "19") (term "0,1,0")) + (rule "polySimp_sepNegMonomial" (formula "17")) + (rule "polySimp_mulLiterals" (formula "17") (term "0")) + (rule "polySimp_elimOne" (formula "17") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "19") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "19") (term "0,1,0")) + (rule "inEqSimp_strengthen1" (formula "13") (ifseqformula "20")) + (rule "add_zero_right" (formula "13") (term "1")) + (rule "inEqSimp_contradEq7" (formula "20") (ifseqformula "13")) + (rule "times_zero_1" (formula "20") (term "1,0,0")) + (rule "add_zero_right" (formula "20") (term "0,0")) + (rule "leq_literals" (formula "20") (term "0")) + (builtin "One Step Simplification" (formula "20")) + (rule "false_right" (formula "20")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "4") (term "0,0") (inst "l=l")) + (rule "eqSymm" (formula "4") (term "0,1")) + (rule "replace_known_right" (formula "4") (term "0,1,0,0") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "25")) (ifInst "" (formula "8")) (ifInst "" (formula "9")) (ifInst "" (formula "3"))) + (rule "measuredByCheckEmpty" (formula "4") (term "1,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "4")) + (rule "inEqSimp_commuteLeq" (formula "4") (term "0,0,0")) + (rule "inEqSimp_commuteLeq" (formula "4") (term "1,0,0")) + (rule "inEqSimp_subsumption1" (formula "4") (term "0,0,0") (ifseqformula "14")) + (rule "leq_literals" (formula "4") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "inEqSimp_subsumption1" (formula "4") (term "0,0") (ifseqformula "7")) + (rule "inEqSimp_homoInEq0" (formula "4") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "4") (term "0,0,0,0")) + (rule "add_literals" (formula "4") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "4") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "4") (term "0,0,0,0")) + (rule "qeq_literals" (formula "4") (term "0,0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "true_left" (formula "4")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "3") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "3") (term "0,1")) + (rule "replace_known_right" (formula "3") (term "0,1,0,0") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "3") (ifInst "" (formula "25")) (ifInst "" (formula "8")) (ifInst "" (formula "9")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "3") (term "1,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "3")) + (rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) + (rule "inEqSimp_commuteLeq" (formula "3") (term "1,0,0")) + (rule "inEqSimp_subsumption1" (formula "3") (term "0,0,0") (ifseqformula "14")) + (rule "leq_literals" (formula "3") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "3")) + (rule "inEqSimp_subsumption1" (formula "3") (term "0,0") (ifseqformula "7")) + (rule "inEqSimp_homoInEq0" (formula "3") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "0,0,0,0")) + (rule "add_literals" (formula "3") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "3") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "3") (term "0,0,0,0")) + (rule "qeq_literals" (formula "3") (term "0,0,0")) + (builtin "One Step Simplification" (formula "3")) + (rule "true_left" (formula "3")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (ifseqformula "9")) + (rule "castDel" (formula "1") (term "1")) + (rule "eqSymm" (formula "1")) + (rule "polySimp_elimSub" (formula "1") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "1") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_elimSub" (formula "1") (term "3,1,2,0")) + (rule "mul_literals" (formula "1") (term "1,3,1,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "2,0")) + (rule "applyEq" (formula "1") (term "1,2,0") (ifseqformula "2")) + (rule "polySimp_addAssoc" (formula "1") (term "2,0")) + (rule "polySimp_addComm0" (formula "1") (term "0,2,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "2,0")) + (rule "add_literals" (formula "1") (term "1,1,2,0")) + (rule "times_zero_1" (formula "1") (term "1,2,0")) + (rule "add_zero_right" (formula "1") (term "2,0")) + (rule "inEqSimp_contradEq7" (formula "1") (term "0,0") (ifseqformula "13")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0")) + (rule "leq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "eqSymm" (formula "1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "2") (term "0,1") (inst "l=l")) + (rule "eqSymm" (formula "2") (term "0,1")) + (rule "replace_known_right" (formula "2") (term "0,1,0,0") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "25")) (ifInst "" (formula "8")) (ifInst "" (formula "9")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "2") (term "1,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "2")) + (rule "inEqSimp_commuteLeq" (formula "2") (term "0,0,0")) + (rule "inEqSimp_commuteLeq" (formula "2") (term "1,0,0")) + (rule "inEqSimp_subsumption1" (formula "2") (term "0,0,0") (ifseqformula "14")) + (rule "leq_literals" (formula "2") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "inEqSimp_subsumption1" (formula "2") (term "0,0") (ifseqformula "7")) + (rule "inEqSimp_homoInEq0" (formula "2") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "0,0,0,0")) + (rule "add_literals" (formula "2") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "2") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "2") (term "0,0,0,0")) + (rule "qeq_literals" (formula "2") (term "0,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "4") (term "0,0") (ifseqformula "9")) + (rule "castDel" (formula "4") (term "0,0")) + (rule "polySimp_elimSub" (formula "4") (term "0,2,0,0,0,2,0,0")) + (rule "mul_literals" (formula "4") (term "1,0,2,0,0,0,2,0,0")) + (rule "polySimp_elimSub" (formula "4") (term "3,1,2,0,0")) + (rule "mul_literals" (formula "4") (term "1,3,1,2,0,0")) + (rule "polySimp_addComm0" (formula "4") (term "0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "4") (term "3,1,2,0,0")) + (rule "polySimp_addComm0" (formula "4") (term "2,0,0")) + (rule "applyEq" (formula "4") (term "1,2,0,0") (ifseqformula "2")) + (rule "polySimp_addAssoc" (formula "4") (term "2,0,0")) + (rule "polySimp_addComm0" (formula "4") (term "0,2,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "4") (term "2,0,0")) + (rule "add_literals" (formula "4") (term "1,1,2,0,0")) + (rule "times_zero_1" (formula "4") (term "1,2,0,0")) + (rule "add_zero_right" (formula "4") (term "2,0,0")) + (rule "inEqSimp_contradEq7" (formula "4") (term "0,0,0") (ifseqformula "13")) + (rule "times_zero_1" (formula "4") (term "1,0,0,0,0,0")) + (rule "add_zero_right" (formula "4") (term "0,0,0,0,0")) + (rule "leq_literals" (formula "4") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "3") (term "1") (ifseqformula "9")) + (rule "castDel" (formula "3") (term "1")) + (rule "polySimp_elimSub" (formula "3") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "3") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "3") (term "3,1,2,1")) + (rule "mul_literals" (formula "3") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "2,1")) + (rule "applyEq" (formula "3") (term "1,2,1") (ifseqformula "2")) + (rule "polySimp_addAssoc" (formula "3") (term "2,1")) + (rule "polySimp_addComm0" (formula "3") (term "0,2,1")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "2,1")) + (rule "add_literals" (formula "3") (term "1,1,2,1")) + (rule "times_zero_1" (formula "3") (term "1,2,1")) + (rule "add_zero_right" (formula "3") (term "2,1")) + (rule "inEqSimp_contradEq7" (formula "3") (term "0,1") (ifseqformula "13")) + (rule "times_zero_1" (formula "3") (term "1,0,0,0,1")) + (rule "add_zero_right" (formula "3") (term "0,0,0,1")) + (rule "leq_literals" (formula "3") (term "0,0,1")) + (builtin "One Step Simplification" (formula "3")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_right" (formula "1") (term "0,1,0,0") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "25")) (ifInst "" (formula "8")) (ifInst "" (formula "9")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "1,0,0")) + (rule "inEqSimp_subsumption1" (formula "1") (term "1,0,0") (ifseqformula "7")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,1,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,1,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,1,0,0")) + (rule "qeq_literals" (formula "1") (term "0,1,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0,0") (ifseqformula "14")) + (rule "leq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "0,1") (ifseqformula "9")) + (rule "castDel" (formula "2") (term "0,1")) + (rule "polySimp_homoEq" (formula "2")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,0,0,0")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,0,0,0")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,0,0,0")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,0,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,0,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,0,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,0")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "polySimp_addComm0" (formula "2") (term "2,1,0")) + (rule "polySimp_sepPosMonomial" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1")) + (rule "polySimp_rightDist" (formula "2") (term "1")) + (rule "polySimp_mulLiterals" (formula "2") (term "1,1")) + (rule "polySimp_elimOne" (formula "2") (term "1,1")) + (rule "polySimp_mulAssoc" (formula "2") (term "0,1")) + (rule "polySimp_mulComm0" (formula "2") (term "0,0,1")) + (rule "polySimp_mulLiterals" (formula "2") (term "0,1")) + (rule "polySimp_elimOne" (formula "2") (term "0,1")) + (builtin "One Step Simplification" (formula "2")) + (rule "polySimp_homoEq" (formula "2") (term "1")) + (rule "times_zero_2" (formula "2") (term "1,0,1")) + (rule "add_zero_right" (formula "2") (term "0,1")) + (rule "polySimp_sepPosMonomial" (formula "2") (term "1")) + (rule "inEqSimp_contradEq7" (formula "2") (term "0,0") (ifseqformula "13")) + (rule "times_zero_1" (formula "2") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "2") (term "0,0,0,0")) + (rule "leq_literals" (formula "2") (term "0,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "3") (term "0,0") (inst "l=l")) + (rule "eqSymm" (formula "3") (term "0,1")) + (rule "replace_known_right" (formula "3") (term "0,1,1,0,0,0,0,0") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "3") (ifInst "" (formula "7")) (ifInst "" (formula "8")) (ifInst "" (formula "23")) (ifInst "" (formula "2"))) + (rule "measuredByCheckEmpty" (formula "3") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "3")) + (rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) + (rule "inEqSimp_commuteLeq" (formula "3") (term "1,0,0")) + (rule "inEqSimp_subsumption1" (formula "3") (term "1,0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "3") (term "0,1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "0,0,1,0,0")) + (rule "add_literals" (formula "3") (term "1,1,0,0,1,0,0")) + (rule "times_zero_1" (formula "3") (term "1,0,0,1,0,0")) + (rule "add_zero_right" (formula "3") (term "0,0,1,0,0")) + (rule "qeq_literals" (formula "3") (term "0,1,0,0")) + (builtin "One Step Simplification" (formula "3")) + (rule "inEqSimp_subsumption1" (formula "3") (term "0,0") (ifseqformula "13")) + (rule "leq_literals" (formula "3") (term "0,0,0")) + (builtin "One Step Simplification" (formula "3")) + (rule "true_left" (formula "3")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "1") (term "1")) + (rule "eqSymm" (formula "1")) + (rule "polySimp_elimSub" (formula "1") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "1") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_elimSub" (formula "1") (term "3,1,2,0")) + (rule "mul_literals" (formula "1") (term "1,3,1,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "2,0")) + (rule "inEqSimp_contradEq7" (formula "1") (term "0,0") (ifseqformula "12")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0")) + (rule "leq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "polySimp_homoEq" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0")) + (rule "polySimp_rightDist" (formula "1") (term "1,0")) + (rule "polySimp_mulComm0" (formula "1") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "2") (term "0,1")) + (rule "replace_known_left" (formula "2") (term "1,0,0,0,0") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "24")) (ifInst "" (formula "8")) (ifInst "" (formula "23")) (ifInst "" (formula "3"))) + (rule "measuredByCheckEmpty" (formula "2") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "2")) + (rule "inEqSimp_commuteLeq" (formula "2") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "2") (term "0,0,0")) + (rule "inEqSimp_subsumption1" (formula "2") (term "1,0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "2") (term "0,1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "0,0,1,0,0")) + (rule "add_literals" (formula "2") (term "1,1,0,0,1,0,0")) + (rule "times_zero_1" (formula "2") (term "1,0,0,1,0,0")) + (rule "add_zero_right" (formula "2") (term "0,0,1,0,0")) + (rule "qeq_literals" (formula "2") (term "0,1,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "inEqSimp_subsumption1" (formula "2") (term "0,0") (ifseqformula "13")) + (rule "leq_literals" (formula "2") (term "0,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "3") (term "0,0") (ifseqformula "8")) + (rule "castDel" (formula "3") (term "0,0")) + (rule "polySimp_elimSub" (formula "3") (term "3,1,2,0,0")) + (rule "mul_literals" (formula "3") (term "1,3,1,2,0,0")) + (rule "polySimp_elimSub" (formula "3") (term "0,2,0,0,0,2,0,0")) + (rule "mul_literals" (formula "3") (term "1,0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "3") (term "3,1,2,0,0")) + (rule "polySimp_addComm0" (formula "3") (term "0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "3") (term "2,0,0")) + (rule "applyEq" (formula "3") (term "1,2,0,0") (ifseqformula "1")) + (rule "polySimp_addAssoc" (formula "3") (term "2,0,0")) + (rule "polySimp_addComm0" (formula "3") (term "0,2,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "2,0,0")) + (rule "add_literals" (formula "3") (term "1,1,2,0,0")) + (rule "times_zero_1" (formula "3") (term "1,2,0,0")) + (rule "add_zero_right" (formula "3") (term "2,0,0")) + (rule "inEqSimp_contradEq7" (formula "3") (term "0,0,0") (ifseqformula "12")) + (rule "times_zero_1" (formula "3") (term "1,0,0,0,0,0")) + (rule "add_literals" (formula "3") (term "0,0,0,0,0")) + (rule "leq_literals" (formula "3") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "3")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "2") (term "1")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,1")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "2") (term "2,1")) + (rule "applyEq" (formula "2") (term "1,2,1") (ifseqformula "1")) + (rule "polySimp_addAssoc" (formula "2") (term "2,1")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,1")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "2,1")) + (rule "add_literals" (formula "2") (term "1,1,2,1")) + (rule "times_zero_1" (formula "2") (term "1,2,1")) + (rule "add_zero_right" (formula "2") (term "2,1")) + (rule "inEqSimp_contradEq7" (formula "2") (term "0,1") (ifseqformula "12")) + (rule "times_zero_1" (formula "2") (term "1,0,0,0,1")) + (rule "add_zero_right" (formula "2") (term "0,0,0,1")) + (rule "leq_literals" (formula "2") (term "0,0,1")) + (builtin "One Step Simplification" (formula "2")) + (rule "ifthenelse_split" (formula "16") (term "0")) + (branch "a[-1 + k_0] = mx_0 TRUE" + (rule "polySimp_homoEq" (formula "17")) + (rule "mul_literals" (formula "17") (term "1,0")) + (rule "polySimp_addComm1" (formula "17") (term "0")) + (rule "polySimp_addComm0" (formula "17") (term "0,0")) + (rule "applyEq" (formula "1") (term "0,0,0") (ifseqformula "16")) + (rule "eqSymm" (formula "1") (term "0,0")) + (rule "replace_known_right" (formula "1") (term "0,0") (ifseqformula "22")) + (builtin "One Step Simplification" (formula "1")) + (rule "polySimp_homoEq" (formula "1")) + (rule "times_zero_2" (formula "1") (term "1,0")) + (rule "add_zero_right" (formula "1") (term "0")) + (rule "applyEq" (formula "19") (term "1,0,0,0,1,0") (ifseqformula "16")) + (rule "polySimp_sepNegMonomial" (formula "17")) + (rule "polySimp_mulLiterals" (formula "17") (term "0")) + (rule "polySimp_elimOne" (formula "17") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "onlyCreatedObjectsAreReferenced" (formula "20") (term "1,0") (ifseqformula "6")) + (rule "replace_known_right" (formula "1") (term "0") (ifseqformula "22")) + (builtin "One Step Simplification" (formula "1")) + (rule "allLeft" (formula "20") (inst "t=x_0")) + (rule "replace_known_right" (formula "20") (term "0") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "20") (ifInst "" (formula "24"))) + (rule "times_zero_2" (formula "20") (term "0")) + (rule "inEqSimp_homoInEq0" (formula "20")) + (rule "mul_literals" (formula "20") (term "1,0")) + (rule "add_zero_right" (formula "20") (term "0")) + (rule "applyEq" (formula "20") (term "0,1,0") (ifseqformula "2")) + (rule "inEqSimp_sepNegMonomial1" (formula "20")) + (rule "polySimp_mulLiterals" (formula "20") (term "0")) + (rule "inEqSimp_contradInEq1" (formula "20") (ifseqformula "4")) + (rule "andLeft" (formula "20")) + (rule "inEqSimp_homoInEq1" (formula "20")) + (rule "polySimp_mulComm0" (formula "20") (term "1,0")) + (rule "polySimp_rightDist" (formula "20") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "20") (term "1,1,0")) + (rule "polySimp_elimOne" (formula "20") (term "1,1,0")) + (rule "polySimp_mulComm0" (formula "20") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "20") (term "0")) + (rule "polySimp_addComm1" (formula "20") (term "0,0")) + (rule "polySimp_pullOutFactor2b" (formula "20") (term "0")) + (rule "add_literals" (formula "20") (term "1,1,0")) + (rule "times_zero_1" (formula "20") (term "1,0")) + (rule "add_zero_right" (formula "20") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "20") (term "0")) + (rule "add_literals" (formula "20") (term "1,1,0")) + (rule "times_zero_1" (formula "20") (term "1,0")) + (rule "add_literals" (formula "20") (term "0")) + (rule "leq_literals" (formula "20")) + (rule "closeFalse" (formula "20")) + ) + (branch "a[-1 + k_0] = mx_0 FALSE" + (rule "polySimp_homoEq" (formula "16")) + (rule "times_zero_2" (formula "16") (term "1,0")) + (rule "add_zero_right" (formula "16") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "16")) + (rule "polySimp_mulLiterals" (formula "16") (term "0")) + (rule "polySimp_elimOne" (formula "16") (term "0")) + (rule "onlyCreatedObjectsAreReferenced" (formula "20") (term "1,0") (ifseqformula "6")) + (rule "replace_known_right" (formula "1") (term "0") (ifseqformula "22")) + (builtin "One Step Simplification" (formula "1")) + (rule "ifthenelse_split" (formula "2") (term "0")) + (branch "a[-1 + k_0] = x_0 TRUE" + (rule "polySimp_homoEq" (formula "3")) + (rule "mul_literals" (formula "3") (term "1,0")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "polySimp_addComm0" (formula "3") (term "0,0")) + (rule "applyEq" (formula "21") (term "0") (ifseqformula "2")) + (rule "applyEq" (formula "20") (term "1,0,0,0,1,0") (ifseqformula "2")) + (rule "polySimp_sepNegMonomial" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "allLeft" (formula "20") (inst "t=x_0")) + (builtin "One Step Simplification" (formula "20") (ifInst "" (formula "24"))) + (rule "mul_literals" (formula "20") (term "0")) + (rule "inEqSimp_homoInEq0" (formula "20")) + (rule "mul_literals" (formula "20") (term "1,0")) + (rule "polySimp_addComm1" (formula "20") (term "0")) + (rule "polySimp_addComm1" (formula "20") (term "0,0")) + (rule "polySimp_addComm0" (formula "20") (term "0,0,0")) + (rule "applyEq" (formula "20") (term "0,1,0") (ifseqformula "3")) + (rule "polySimp_mulComm0" (formula "20") (term "1,0")) + (rule "polySimp_rightDist" (formula "20") (term "1,0")) + (rule "mul_literals" (formula "20") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "20") (term "0")) + (rule "polySimp_addComm1" (formula "20") (term "0,0")) + (rule "polySimp_addComm1" (formula "20") (term "0,0,0")) + (rule "add_literals" (formula "20") (term "0,0,0,0")) + (rule "add_zero_left" (formula "20") (term "0,0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "20")) + (rule "polySimp_mulLiterals" (formula "20") (term "0")) + (rule "inEqSimp_contradInEq0" (formula "5") (ifseqformula "20")) + (rule "andLeft" (formula "5")) + (rule "inEqSimp_homoInEq1" (formula "5")) + (rule "polySimp_mulComm0" (formula "5") (term "1,0")) + (rule "polySimp_rightDist" (formula "5") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "5") (term "1,1,0")) + (rule "polySimp_elimOne" (formula "5") (term "1,1,0")) + (rule "polySimp_mulComm0" (formula "5") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "5") (term "0")) + (rule "polySimp_addComm1" (formula "5") (term "0,0")) + (rule "polySimp_pullOutFactor2b" (formula "5") (term "0")) + (rule "add_literals" (formula "5") (term "1,1,0")) + (rule "times_zero_1" (formula "5") (term "1,0")) + (rule "add_zero_right" (formula "5") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "5") (term "0")) + (rule "add_literals" (formula "5") (term "1,1,0")) + (rule "times_zero_1" (formula "5") (term "1,0")) + (rule "add_literals" (formula "5") (term "0")) + (rule "leq_literals" (formula "5")) + (rule "closeFalse" (formula "5")) + ) + (branch "a[-1 + k_0] = x_0 FALSE" + (rule "polySimp_homoEq" (formula "2")) + (rule "times_zero_2" (formula "2") (term "1,0")) + (rule "add_zero_right" (formula "2") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "allLeft" (formula "19") (inst "t=x_0")) + (rule "eqSymm" (formula "19") (term "0,0,0,1")) + (rule "replace_known_right" (formula "19") (term "0,0,0,1") (ifseqformula "21")) + (builtin "One Step Simplification" (formula "19") (ifInst "" (formula "25"))) + (rule "times_zero_2" (formula "19") (term "0")) + (rule "inEqSimp_homoInEq0" (formula "19")) + (rule "times_zero_2" (formula "19") (term "1,0")) + (rule "add_zero_right" (formula "19") (term "0")) + (rule "applyEq" (formula "19") (term "0,1,0") (ifseqformula "2")) + (rule "inEqSimp_sepNegMonomial1" (formula "19")) + (rule "polySimp_mulLiterals" (formula "19") (term "0")) + (rule "inEqSimp_contradInEq1" (formula "19") (ifseqformula "4")) + (rule "andLeft" (formula "19")) + (rule "inEqSimp_homoInEq1" (formula "19")) + (rule "polySimp_mulComm0" (formula "19") (term "1,0")) + (rule "polySimp_rightDist" (formula "19") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "19") (term "1,1,0")) + (rule "polySimp_elimOne" (formula "19") (term "1,1,0")) + (rule "polySimp_mulComm0" (formula "19") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "19") (term "0")) + (rule "polySimp_addComm1" (formula "19") (term "0,0")) + (rule "polySimp_pullOutFactor2b" (formula "19") (term "0")) + (rule "add_literals" (formula "19") (term "1,1,0")) + (rule "times_zero_1" (formula "19") (term "1,0")) + (rule "add_zero_right" (formula "19") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "19") (term "0")) + (rule "add_literals" (formula "19") (term "1,1,0")) + (rule "times_zero_1" (formula "19") (term "1,0")) + (rule "add_zero_right" (formula "19") (term "0")) + (rule "leq_literals" (formula "19")) + (rule "closeFalse" (formula "19")) + ) + ) + ) + ) + ) + (branch + (rule "polySimp_mulComm0" (formula "21") (term "0,0")) + (rule "polySimp_rightDist" (formula "21") (term "0,0")) + (rule "mul_literals" (formula "21") (term "0,0,0")) + (rule "precOfInt" (formula "21")) + (rule "inEqSimp_ltToLeq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "21") (term "1")) + (rule "polySimp_rightDist" (formula "21") (term "1,0,0,1")) + (rule "polySimp_mulAssoc" (formula "21") (term "0,1,0,0,1")) + (rule "polySimp_mulComm0" (formula "21") (term "0,0,1,0,0,1")) + (rule "polySimp_mulLiterals" (formula "21") (term "0,1,0,0,1")) + (rule "polySimp_elimOne" (formula "21") (term "0,1,0,0,1")) + (rule "polySimp_addAssoc" (formula "21") (term "0,0,1")) + (rule "polySimp_addAssoc" (formula "21") (term "0,1")) + (rule "polySimp_addComm1" (formula "21") (term "0,0,1")) + (rule "polySimp_pullOutFactor2b" (formula "21") (term "0,1")) + (rule "add_literals" (formula "21") (term "1,1,0,1")) + (rule "times_zero_1" (formula "21") (term "1,0,1")) + (rule "add_zero_right" (formula "21") (term "0,1")) + (rule "polySimp_addAssoc" (formula "21") (term "0,1")) + (rule "polySimp_addComm1" (formula "21") (term "0,0,1")) + (rule "add_literals" (formula "21") (term "0,0,0,1")) + (rule "add_zero_left" (formula "21") (term "0,0,1")) + (rule "polySimp_pullOutFactor1" (formula "21") (term "0,1")) + (rule "add_literals" (formula "21") (term "1,0,1")) + (rule "times_zero_1" (formula "21") (term "0,1")) + (rule "leq_literals" (formula "21") (term "1")) + (builtin "One Step Simplification" (formula "21")) + (rule "inEqSimp_leqRight" (formula "21")) + (rule "add_zero_right" (formula "1") (term "0")) + (rule "polySimp_rightDist" (formula "1") (term "1,0")) + (rule "polySimp_rightDist" (formula "1") (term "0,1,0")) + (rule "mul_literals" (formula "1") (term "0,0,1,0")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0,1,0")) + (rule "polySimp_elimOne" (formula "1") (term "1,0,1,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_strengthen1" (formula "15") (ifseqformula "19")) + (rule "add_zero_right" (formula "15") (term "1")) + (rule "inEqSimp_contradEq7" (formula "19") (ifseqformula "15")) + (rule "times_zero_1" (formula "19") (term "1,0,0")) + (rule "add_zero_right" (formula "19") (term "0,0")) + (rule "leq_literals" (formula "19") (term "0")) + (builtin "One Step Simplification" (formula "19")) + (rule "false_right" (formula "19")) + (rule "inEqSimp_subsumption1" (formula "14") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "14") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0,0")) + (rule "add_literals" (formula "14") (term "1,1,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0")) + (rule "qeq_literals" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "true_left" (formula "14")) + (rule "inEqSimp_contradInEq0" (formula "3") (ifseqformula "1")) + (rule "andLeft" (formula "3")) + (rule "inEqSimp_homoInEq1" (formula "3")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "0")) + (rule "add_literals" (formula "3") (term "1,1,0")) + (rule "times_zero_1" (formula "3") (term "1,0")) + (rule "add_zero_right" (formula "3") (term "0")) + (rule "leq_literals" (formula "3")) + (rule "closeFalse" (formula "3")) + ) + ) + (branch "if mx == _a[k] false" + (builtin "One Step Simplification" (formula "21")) + (builtin "One Step Simplification" (formula "1")) + (rule "notLeft" (formula "1")) + (rule "postdecrement" (formula "21") (term "1")) + (rule "compound_subtraction_1" (formula "21") (term "1") (inst "#v=i_6")) + (rule "variableDeclarationAssign" (formula "21") (term "1")) + (rule "variableDeclaration" (formula "21") (term "1") (newnames "i_6")) + (rule "widening_identity_cast_5" (formula "21") (term "1")) + (rule "assignment" (formula "21") (term "1")) + (builtin "One Step Simplification" (formula "21")) + (rule "assignmentSubtractionInt" (formula "21") (term "1")) + (builtin "One Step Simplification" (formula "21")) + (rule "translateJavaSubInt" (formula "21") (term "0,1,0")) + (rule "polySimp_elimSub" (formula "21") (term "0,1,0")) + (rule "mul_literals" (formula "21") (term "1,0,1,0")) + (rule "polySimp_addComm0" (formula "21") (term "0,1,0")) + (rule "blockEmpty" (formula "21") (term "1")) + (rule "postincrement" (formula "21") (term "1")) + (rule "compound_int_cast_expression" (formula "21") (term "1") (inst "#v=i_7")) + (rule "variableDeclarationAssign" (formula "21") (term "1")) + (rule "variableDeclaration" (formula "21") (term "1") (newnames "i_7")) + (rule "remove_parentheses_right" (formula "21") (term "1")) + (rule "assignmentAdditionInt" (formula "21") (term "1")) + (builtin "One Step Simplification" (formula "21")) + (rule "translateJavaAddInt" (formula "21") (term "0,1,0")) + (rule "polySimp_addComm0" (formula "21") (term "0,1,0")) + (rule "widening_identity_cast_5" (formula "21") (term "1")) + (rule "assignment" (formula "21") (term "1")) + (builtin "One Step Simplification" (formula "21")) + (rule "tryEmpty" (formula "21") (term "1")) + (rule "methodCallEmpty" (formula "21") (term "1")) + (rule "emptyModality" (formula "21") (term "1")) + (builtin "One Step Simplification" (formula "21")) + (rule "andRight" (formula "21")) + (branch + (rule "andRight" (formula "21")) + (branch "Case 1" + (rule "andRight" (formula "21")) + (branch "Case 1" + (rule "andRight" (formula "21")) + (branch "Case 1" + (rule "andRight" (formula "21")) + (branch "Case 1" + (rule "inEqSimp_geqRight" (formula "21")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "inEqSimp_ltToLeq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "mul_literals" (formula "1") (term "1")) + (rule "inEqSimp_sepNegMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_strengthen1" (formula "14") (ifseqformula "19")) + (rule "add_zero_right" (formula "14") (term "1")) + (rule "inEqSimp_contradEq7" (formula "19") (ifseqformula "14")) + (rule "times_zero_1" (formula "19") (term "1,0,0")) + (rule "add_zero_right" (formula "19") (term "0,0")) + (rule "leq_literals" (formula "19") (term "0")) + (builtin "One Step Simplification" (formula "19")) + (rule "false_right" (formula "19")) + (rule "inEqSimp_contradInEq0" (formula "11") (ifseqformula "1")) + (rule "qeq_literals" (formula "11") (term "0")) + (builtin "One Step Simplification" (formula "11")) + (rule "closeFalse" (formula "11")) + ) + (branch "Case 2" + (rule "inEqSimp_geqRight" (formula "21")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "mul_literals" (formula "1") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0")) + (rule "inEqSimp_ltToLeq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1")) + (rule "polySimp_elimOne" (formula "1") (term "1")) + (rule "inEqSimp_sepNegMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_strengthen1" (formula "14") (ifseqformula "19")) + (rule "add_zero_right" (formula "14") (term "1")) + (rule "inEqSimp_contradEq7" (formula "19") (ifseqformula "14")) + (rule "times_zero_1" (formula "19") (term "1,0,0")) + (rule "add_zero_right" (formula "19") (term "0,0")) + (rule "leq_literals" (formula "19") (term "0")) + (builtin "One Step Simplification" (formula "19")) + (rule "false_right" (formula "19")) + (rule "inEqSimp_subsumption1" (formula "13") (ifseqformula "2")) + (rule "inEqSimp_homoInEq0" (formula "13") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "13") (term "0,0")) + (rule "add_literals" (formula "13") (term "1,1,0,0")) + (rule "times_zero_1" (formula "13") (term "1,0,0")) + (rule "add_zero_right" (formula "13") (term "0,0")) + (rule "qeq_literals" (formula "13") (term "0")) + (builtin "One Step Simplification" (formula "13")) + (rule "true_left" (formula "13")) + (rule "inEqSimp_contradInEq0" (formula "2") (ifseqformula "1")) + (rule "andLeft" (formula "2")) + (rule "inEqSimp_homoInEq1" (formula "2")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "0")) + (rule "add_literals" (formula "2") (term "1,1,0")) + (rule "times_zero_1" (formula "2") (term "1,0")) + (rule "add_zero_right" (formula "2") (term "0")) + (rule "leq_literals" (formula "2")) + (rule "closeFalse" (formula "2")) + ) + ) + (branch "Case 2" + (rule "inEqSimp_geqRight" (formula "21")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "add_zero_left" (formula "1") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_strengthen0" (formula "1") (ifseqformula "19")) + (rule "add_zero_right" (formula "1") (term "1")) + (rule "inEqSimp_contradEq3" (formula "19") (ifseqformula "1")) + (rule "times_zero_1" (formula "19") (term "1,0,0")) + (rule "add_zero_right" (formula "19") (term "0,0")) + (rule "qeq_literals" (formula "19") (term "0")) + (builtin "One Step Simplification" (formula "19")) + (rule "false_right" (formula "19")) + (rule "inEqSimp_contradInEq0" (formula "14") (ifseqformula "1")) + (rule "qeq_literals" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "closeFalse" (formula "14")) + ) + ) + (branch "Case 2" + (rule "polySimp_addAssoc" (formula "21") (term "1")) + (rule "polySimp_addComm1" (formula "21") (term "0,1")) + (rule "add_literals" (formula "21") (term "0,0,1")) + (rule "add_zero_left" (formula "21") (term "0,1")) + (rule "inEqSimp_leqRight" (formula "21")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "polySimp_mulComm0" (formula "1") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "inEqSimp_ltToLeq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,1")) + (rule "polySimp_rightDist" (formula "1") (term "0,1")) + (rule "mul_literals" (formula "1") (term "0,0,1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,0,1")) + (rule "inEqSimp_sepNegMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_strengthen1" (formula "14") (ifseqformula "19")) + (rule "add_zero_right" (formula "14") (term "1")) + (rule "inEqSimp_contradEq7" (formula "19") (ifseqformula "14")) + (rule "times_zero_1" (formula "19") (term "1,0,0")) + (rule "add_zero_right" (formula "19") (term "0,0")) + (rule "leq_literals" (formula "19") (term "0")) + (builtin "One Step Simplification" (formula "19")) + (rule "false_right" (formula "19")) + (rule "inEqSimp_subsumption1" (formula "13") (ifseqformula "2")) + (rule "inEqSimp_homoInEq0" (formula "13") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "13") (term "0,0")) + (rule "add_literals" (formula "13") (term "1,1,0,0")) + (rule "times_zero_1" (formula "13") (term "1,0,0")) + (rule "add_zero_right" (formula "13") (term "0,0")) + (rule "qeq_literals" (formula "13") (term "0")) + (builtin "One Step Simplification" (formula "13")) + (rule "true_left" (formula "13")) + (rule "nnf_imp2or" (formula "16") (term "0")) + (builtin "One Step Simplification" (formula "16")) + (rule "Static_class_invariant_axiom_for_IntOpt" (formula "8")) + (rule "andLeft" (formula "8")) + (rule "notLeft" (formula "8")) + (rule "notLeft" (formula "8")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "14") (term "0,0") (inst "l=l")) + (rule "eqSymm" (formula "14") (term "0,1")) + (rule "replace_known_left" (formula "14") (term "1,0,0,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "14") (ifInst "" (formula "8")) (ifInst "" (formula "21")) (ifInst "" (formula "4")) (ifInst "" (formula "20")) (ifInst "" (formula "8"))) + (rule "measuredByCheckEmpty" (formula "14") (term "1,0") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "14")) + (rule "inEqSimp_commuteLeq" (formula "14") (term "1,0")) + (rule "inEqSimp_commuteLeq" (formula "14") (term "0,0")) + (rule "replace_known_left" (formula "14") (term "0,0") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "14")) + (rule "inEqSimp_subsumption1" (formula "14") (term "0") (ifseqformula "2")) + (rule "inEqSimp_homoInEq0" (formula "14") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0,0,0")) + (rule "add_literals" (formula "14") (term "1,1,0,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0,0")) + (rule "qeq_literals" (formula "14") (term "0,0")) + (builtin "One Step Simplification" (formula "14")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "13") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "13") (term "0,1")) + (rule "replace_known_left" (formula "13") (term "0,1,0,0,0,0,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "13") (ifInst "" (formula "22")) (ifInst "" (formula "3")) (ifInst "" (formula "4")) (ifInst "" (formula "21")) (ifInst "" (formula "15")) (ifInst "" (formula "8"))) + (rule "true_left" (formula "13")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "0,0") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "0,1,0,0,0,0,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "22")) (ifInst "" (formula "4")) (ifInst "" (formula "5")) (ifInst "" (formula "21")) (ifInst "" (formula "9"))) + (rule "bsum_induction_upper_concrete" (formula "1") (term "0,1")) + (rule "replace_known_right" (formula "1") (term "0,1,1,0,1") (ifseqformula "20")) + (builtin "One Step Simplification" (formula "1")) + (rule "add_zero_right" (formula "1") (term "0,1")) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "1,0")) + (rule "replace_known_left" (formula "1") (term "1,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0")) + (rule "times_zero_2" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "applyEq" (formula "1") (term "0,1") (ifseqformula "15")) + (rule "eqSymm" (formula "1") (term "1")) + (rule "inEqSimp_sepPosMonomial1" (formula "1") (term "0")) + (rule "mul_literals" (formula "1") (term "1,0")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0") (ifseqformula "11")) + (rule "leq_literals" (formula "1") (term "0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "applyEq" (formula "2") (term "0,0") (ifseqformula "1")) + (rule "inEqSimp_contradInEq1" (formula "16") (ifseqformula "2")) + (rule "andLeft" (formula "16")) + (rule "inEqSimp_homoInEq1" (formula "16")) + (rule "polySimp_mulComm0" (formula "16") (term "1,0")) + (rule "polySimp_rightDist" (formula "16") (term "1,0")) + (rule "polySimp_mulComm0" (formula "16") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "16") (term "0")) + (rule "polySimp_addComm1" (formula "16") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "16") (term "0")) + (rule "add_literals" (formula "16") (term "1,1,0")) + (rule "times_zero_1" (formula "16") (term "1,0")) + (rule "add_zero_right" (formula "16") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "16") (term "0")) + (rule "add_literals" (formula "16") (term "1,1,0")) + (rule "times_zero_1" (formula "16") (term "1,0")) + (rule "add_literals" (formula "16") (term "0")) + (rule "leq_literals" (formula "16")) + (rule "closeFalse" (formula "16")) + ) + ) + (branch "Case 2" + (rule "allRight" (formula "21") (inst "sk=x_0")) + (rule "impRight" (formula "21")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "22") (term "0,0") (ifseqformula "5")) + (rule "unlimit_BoyerMoore_count[I\bigint\bigint" (formula "22") (term "1,2,0,0,0")) + (rule "castDel" (formula "22") (term "0,0")) + (rule "notLeft" (formula "1")) + (rule "polySimp_elimSub" (formula "22") (term "0,2,0,0,0,2,0,0")) + (rule "mul_literals" (formula "22") (term "1,0,2,0,0,0,2,0,0")) + (rule "polySimp_elimSub" (formula "22") (term "3,1,2,0,0")) + (rule "mul_literals" (formula "22") (term "1,3,1,2,0,0")) + (rule "polySimp_mulComm0" (formula "22") (term "1,1")) + (rule "polySimp_addComm1" (formula "22") (term "0,2,0,0,0,2,0,0")) + (rule "add_literals" (formula "22") (term "0,0,2,0,0,0,2,0,0")) + (rule "add_zero_left" (formula "22") (term "0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm1" (formula "22") (term "3,1,2,0,0")) + (rule "add_literals" (formula "22") (term "0,3,1,2,0,0")) + (rule "add_zero_left" (formula "22") (term "3,1,2,0,0")) + (rule "polySimp_addComm0" (formula "22") (term "2,0,0")) + (rule "polySimp_rightDist" (formula "22") (term "1,1")) + (rule "mul_literals" (formula "22") (term "0,1,1")) + (rule "polySimp_addAssoc" (formula "22") (term "1")) + (rule "polySimp_addComm1" (formula "22") (term "0,1")) + (rule "add_literals" (formula "22") (term "0,0,1")) + (rule "inEqSimp_ltToLeq" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "1") (term "0")) + (rule "inEqSimp_leqRight" (formula "22")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1,0,0")) + (rule "polySimp_elimOne" (formula "1") (term "1,1,0,0")) + (rule "polySimp_rightDist" (formula "1") (term "0,1,0,0")) + (rule "mul_literals" (formula "1") (term "0,0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0,0")) + (rule "add_literals" (formula "1") (term "0,0,0,0")) + (rule "polySimp_sepPosMonomial" (formula "1") (term "0,0,1,0")) + (rule "mul_literals" (formula "1") (term "1,0,0,1,0")) + (rule "inEqSimp_sepNegMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "0,1")) + (rule "mul_literals" (formula "1") (term "0,0,1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,0,1")) + (rule "inEqSimp_contradEq7" (formula "1") (term "0,0,0") (ifseqformula "11")) + (rule "add_zero_left" (formula "1") (term "0,0,0,0,0")) + (rule "mul_literals" (formula "1") (term "0,0,0,0,0")) + (rule "leq_literals" (formula "1") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "0")) + (rule "polySimp_rightDist" (formula "1") (term "0")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "inEqSimp_homoInEq1" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0")) + (rule "polySimp_rightDist" (formula "1") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1,0")) + (rule "polySimp_mulAssoc" (formula "1") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0,1,0")) + (rule "polySimp_mulLiterals" (formula "1") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "inEqSimp_strengthen1" (formula "14") (ifseqformula "20")) + (rule "add_zero_right" (formula "14") (term "1")) + (rule "inEqSimp_contradEq7" (formula "20") (ifseqformula "14")) + (rule "times_zero_1" (formula "20") (term "1,0,0")) + (rule "add_zero_right" (formula "20") (term "0,0")) + (rule "leq_literals" (formula "20") (term "0")) + (builtin "One Step Simplification" (formula "20")) + (rule "false_right" (formula "20")) + (rule "inEqSimp_subsumption1" (formula "13") (ifseqformula "2")) + (rule "inEqSimp_homoInEq0" (formula "13") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "13") (term "0,0")) + (rule "add_literals" (formula "13") (term "1,1,0,0")) + (rule "times_zero_1" (formula "13") (term "1,0,0")) + (rule "add_zero_right" (formula "13") (term "0,0")) + (rule "qeq_literals" (formula "13") (term "0")) + (builtin "One Step Simplification" (formula "13")) + (rule "true_left" (formula "13")) + (rule "nnf_imp2or" (formula "16") (term "0")) + (builtin "One Step Simplification" (formula "16")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "14") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "14") (term "0,1")) + (rule "replace_known_left" (formula "14") (term "1,1") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "14") (ifInst "" (formula "9")) (ifInst "" (formula "21")) (ifInst "" (formula "3")) (ifInst "" (formula "4")) (ifInst "" (formula "20"))) + (rule "measuredByCheckEmpty" (formula "14") (term "1,0") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "14")) + (rule "inEqSimp_commuteLeq" (formula "14") (term "0,0")) + (rule "replace_known_left" (formula "14") (term "0,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "14")) + (rule "inEqSimp_commuteLeq" (formula "14") (term "0")) + (rule "inEqSimp_subsumption1" (formula "14") (term "0") (ifseqformula "2")) + (rule "inEqSimp_homoInEq0" (formula "14") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0,0,0")) + (rule "add_literals" (formula "14") (term "1,1,0,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0,0")) + (rule "qeq_literals" (formula "14") (term "0,0")) + (builtin "One Step Simplification" (formula "14")) + (rule "Static_class_invariant_axiom_for_IntOpt" (formula "8")) + (rule "andLeft" (formula "8")) + (rule "notLeft" (formula "9")) + (rule "notLeft" (formula "8")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "15") (term "0,0") (inst "l=l")) + (rule "eqSymm" (formula "15") (term "0,1")) + (rule "replace_known_left" (formula "15") (term "1,0,0,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "15") (ifInst "" (formula "8")) (ifInst "" (formula "23")) (ifInst "" (formula "4")) (ifInst "" (formula "22")) (ifInst "" (formula "13")) (ifInst "" (formula "8"))) + (rule "true_left" (formula "15")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "0,1,1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "1,0,0,0") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "9")) (ifInst "" (formula "23")) (ifInst "" (formula "4")) (ifInst "" (formula "22")) (ifInst "" (formula "9"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0")) + (rule "replace_known_left" (formula "1") (term "0,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0")) + (rule "qeq_literals" (formula "1") (term "0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "15") (term "1") (ifseqformula "6")) + (rule "castDel" (formula "15") (term "1")) + (rule "eqSymm" (formula "15")) + (rule "polySimp_elimSub" (formula "15") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "15") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_elimSub" (formula "15") (term "3,1,2,0")) + (rule "mul_literals" (formula "15") (term "1,3,1,2,0")) + (rule "polySimp_addComm0" (formula "15") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "15") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "15") (term "2,0")) + (rule "Class_invariant_axiom_for_BoyerMoore" (formula "9") (ifseqformula "6")) + (rule "true_left" (formula "9")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "15") (term "0,0") (ifseqformula "6")) + (rule "castDel" (formula "15") (term "0,0")) + (rule "polySimp_elimSub" (formula "15") (term "0,2,0,0,0,2,0,0")) + (rule "mul_literals" (formula "15") (term "1,0,2,0,0,0,2,0,0")) + (rule "polySimp_elimSub" (formula "15") (term "3,1,2,0,0")) + (rule "mul_literals" (formula "15") (term "1,3,1,2,0,0")) + (rule "polySimp_addComm0" (formula "15") (term "0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "15") (term "3,1,2,0,0")) + (rule "polySimp_addComm0" (formula "15") (term "2,0,0")) + (rule "applyEq" (formula "15") (term "0,0") (ifseqformula "14")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "13") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "13") (term "0,1")) + (rule "replace_known_left" (formula "13") (term "1,0,0,0,0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "13") (ifInst "" (formula "23")) (ifInst "" (formula "5")) (ifInst "" (formula "22")) (ifInst "" (formula "14"))) + (rule "measuredByCheckEmpty" (formula "13") (term "1,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "13")) + (rule "inEqSimp_commuteLeq" (formula "13") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "13") (term "0,0,0")) + (rule "replace_known_left" (formula "13") (term "0,0,0") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "13")) + (rule "inEqSimp_subsumption1" (formula "13") (term "0,0") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "13") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "13") (term "0,0,0,0")) + (rule "add_literals" (formula "13") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "13") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "13") (term "0,0,0,0")) + (rule "qeq_literals" (formula "13") (term "0,0,0")) + (builtin "One Step Simplification" (formula "13")) + (rule "true_left" (formula "13")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "0,1,1") (ifseqformula "6")) + (rule "castDel" (formula "2") (term "0,1,1")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,0,1,1")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,0,1,1")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,0,1,1")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,0,1,1")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,0,1,1")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,0,1,1")) + (rule "polySimp_addComm0" (formula "2") (term "2,0,1,1")) + (rule "inEqSimp_homoInEq1" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "1,0")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_right" (formula "1") (term "0,1,0,0") (ifseqformula "22")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "23")) (ifInst "" (formula "5")) (ifInst "" (formula "6")) (ifInst "" (formula "2"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "replace_known_left" (formula "1") (term "0,0,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0,0") (ifseqformula "4")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0")) + (rule "qeq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "16") (term "0,0,1,0") (ifseqformula "6")) + (rule "castDel" (formula "16") (term "0,0,1,0")) + (rule "eqSymm" (formula "16") (term "0,0,2,0,0,1,0")) + (rule "polySimp_elimSub" (formula "16") (term "3,1,2,0,0,1,0")) + (rule "mul_literals" (formula "16") (term "1,3,1,2,0,0,1,0")) + (rule "polySimp_elimSub" (formula "16") (term "0,2,1,0,0,2,0,0,1,0")) + (rule "mul_literals" (formula "16") (term "1,0,2,1,0,0,2,0,0,1,0")) + (rule "polySimp_addComm0" (formula "16") (term "3,1,2,0,0,1,0")) + (rule "polySimp_addComm0" (formula "16") (term "0,2,1,0,0,2,0,0,1,0")) + (rule "polySimp_addComm0" (formula "16") (term "2,0,0,1,0")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "13") (term "1") (ifseqformula "6")) + (rule "castDel" (formula "13") (term "1")) + (rule "polySimp_elimSub" (formula "13") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "13") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "13") (term "3,1,2,1")) + (rule "mul_literals" (formula "13") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "13") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "13") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "13") (term "2,1")) + (rule "applyEq" (formula "13") (term "1") (ifseqformula "14")) + (rule "limit_BoyerMoore_count[I\bigint\bigint" (formula "1") (term "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (ifseqformula "7")) + (rule "castDel" (formula "2") (term "1")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,1")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,1")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "2") (term "2,1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_right" (formula "1") (term "0,1,1,0,0,0,0,0") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "6")) (ifInst "" (formula "7")) (ifInst "" (formula "23"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "replace_known_left" (formula "1") (term "0,0,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "1")) + (rule "applyEq" (formula "1") (term "0,0,1") (ifseqformula "3")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0,0") (ifseqformula "5")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0")) + (rule "qeq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "2") (term "1")) + (rule "eqSymm" (formula "2")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,0")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,0")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "2,0")) + (rule "applyEq" (formula "1") (term "0,0,1") (ifseqformula "2")) + (rule "applyEq" (formula "4") (term "0,0") (ifseqformula "2")) + (rule "inEqSimp_homoInEq1" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,0")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "applyEq" (formula "3") (term "1") (ifseqformula "2")) + (rule "inEqSimp_sepNegMonomial0" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "0")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1,0,1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_right" (formula "1") (term "0,1,0,0") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "25")) (ifInst "" (formula "7")) (ifInst "" (formula "8"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "replace_known_left" (formula "1") (term "0,0,0") (ifseqformula "13")) + (builtin "One Step Simplification" (formula "1")) + (rule "applyEq" (formula "1") (term "0,0,1") (ifseqformula "4")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0")) + (rule "qeq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "2"))) + (rule "true_left" (formula "1")) + (rule "Class_invariant_axiom_for_BoyerMoore" (formula "1") (term "0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "1")) + (rule "andLeft" (formula "1")) + (rule "applyEq" (formula "5") (term "0,1,1") (ifseqformula "1")) + (rule "applyEq" (formula "3") (term "1") (ifseqformula "1")) + (rule "applyEq" (formula "4") (term "1") (ifseqformula "1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "1,0,0,0,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "3")) (ifInst "" (formula "26")) (ifInst "" (formula "9")) (ifInst "" (formula "25")) (ifInst "" (formula "5")) (ifInst "" (formula "3"))) + (rule "true_left" (formula "1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "5") (term "0,1,1") (inst "l=l")) + (rule "eqSymm" (formula "5") (term "0,1")) + (rule "replace_known_left" (formula "5") (term "1,0,0,0,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "5") (ifInst "" (formula "2")) (ifInst "" (formula "26")) (ifInst "" (formula "9")) (ifInst "" (formula "25")) (ifInst "" (formula "4")) (ifInst "" (formula "2"))) + (rule "true_left" (formula "5")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "3") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "3") (term "0,1")) + (rule "replace_known_right" (formula "3") (term "0,1,0,0") (ifseqformula "25")) + (builtin "One Step Simplification" (formula "3") (ifInst "" (formula "2")) (ifInst "" (formula "26")) (ifInst "" (formula "8")) (ifInst "" (formula "9")) (ifInst "" (formula "5")) (ifInst "" (formula "2"))) + (rule "true_left" (formula "3")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "4") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "4") (term "0,1")) + (rule "replace_known_left" (formula "4") (term "1,0,0,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "2")) (ifInst "" (formula "26")) (ifInst "" (formula "8")) (ifInst "" (formula "25")) (ifInst "" (formula "5")) (ifInst "" (formula "2"))) + (rule "true_left" (formula "4")) + (rule "Class_invariant_axiom_for_BoyerMoore" (formula "2") (ifseqformula "9")) + (rule "true_left" (formula "2")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "1") (term "1")) + (rule "eqSymm" (formula "1")) + (rule "polySimp_elimSub" (formula "1") (term "3,1,2,0")) + (rule "mul_literals" (formula "1") (term "1,3,1,2,0")) + (rule "polySimp_elimSub" (formula "1") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "1") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "2,0")) + (rule "applyEq" (formula "2") (term "0") (ifseqformula "1")) + (rule "applyEq" (formula "1") (term "1") (ifseqformula "2")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "4") (term "0,1,1") (ifseqformula "8")) + (rule "castDel" (formula "4") (term "0,1,1")) + (rule "polySimp_elimSub" (formula "4") (term "0,2,0,0,0,2,0,1,1")) + (rule "mul_literals" (formula "4") (term "1,0,2,0,0,0,2,0,1,1")) + (rule "polySimp_elimSub" (formula "4") (term "3,1,2,0,1,1")) + (rule "mul_literals" (formula "4") (term "1,3,1,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "0,2,0,0,0,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "3,1,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "2,0,1,1")) + (rule "inEqSimp_homoInEq1" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,0")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "applyEq" (formula "4") (term "0,1,0") (ifseqformula "1")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "0")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "2") (term "1")) + (rule "eqSymm" (formula "2")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,0")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,0")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "2,0")) + (rule "applyEq" (formula "1") (term "0") (ifseqformula "2")) + (rule "applyEq" (formula "2") (term "1") (ifseqformula "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "3") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "3") (term "1")) + (rule "polySimp_elimSub" (formula "3") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "3") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "3") (term "3,1,2,1")) + (rule "mul_literals" (formula "3") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "2,1")) + (rule "applyEq" (formula "3") (term "1") (ifseqformula "2")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "1,0,0,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "25")) (ifInst "" (formula "7")) (ifInst "" (formula "24")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "replace_known_left" (formula "1") (term "0,0,0") (ifseqformula "13")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0")) + (rule "qeq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "4") (term "0,1,1") (inst "l=l")) + (rule "eqSymm" (formula "4") (term "0,1")) + (rule "replace_known_left" (formula "4") (term "1,0,0,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "25")) (ifInst "" (formula "7")) (ifInst "" (formula "24")) (ifInst "" (formula "3"))) + (rule "measuredByCheckEmpty" (formula "4") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "4")) + (rule "inEqSimp_commuteLeq" (formula "4") (term "0,0,0")) + (rule "replace_known_left" (formula "4") (term "0,0,0") (ifseqformula "13")) + (builtin "One Step Simplification" (formula "4")) + (rule "inEqSimp_commuteLeq" (formula "4") (term "0,0")) + (rule "inEqSimp_subsumption1" (formula "4") (term "0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "4") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "4") (term "0,0,0,0")) + (rule "add_literals" (formula "4") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "4") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "4") (term "0,0,0,0")) + (rule "qeq_literals" (formula "4") (term "0,0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "true_left" (formula "4")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "2") (term "0,1")) + (rule "replace_known_left" (formula "2") (term "1,0,0,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "25")) (ifInst "" (formula "7")) (ifInst "" (formula "24")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "2") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "2")) + (rule "inEqSimp_commuteLeq" (formula "2") (term "0,0,0")) + (rule "replace_known_left" (formula "2") (term "0,0,0") (ifseqformula "13")) + (builtin "One Step Simplification" (formula "2")) + (rule "inEqSimp_commuteLeq" (formula "2") (term "0,0")) + (rule "inEqSimp_subsumption1" (formula "2") (term "0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "2") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "0,0,0,0")) + (rule "add_literals" (formula "2") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "2") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "2") (term "0,0,0,0")) + (rule "qeq_literals" (formula "2") (term "0,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "1") (term "1")) + (rule "eqSymm" (formula "1")) + (rule "polySimp_elimSub" (formula "1") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "1") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_elimSub" (formula "1") (term "3,1,2,0")) + (rule "mul_literals" (formula "1") (term "1,3,1,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "2,0")) + (rule "applyEq" (formula "2") (term "0") (ifseqformula "1")) + (rule "applyEq" (formula "1") (term "1") (ifseqformula "2")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "3") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "3") (term "0,1")) + (rule "replace_known_left" (formula "3") (term "1,0,0,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "3") (ifInst "" (formula "25")) (ifInst "" (formula "7")) (ifInst "" (formula "24")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "3") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "3")) + (rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) + (rule "replace_known_left" (formula "3") (term "0,0,0") (ifseqformula "13")) + (builtin "One Step Simplification" (formula "3")) + (rule "inEqSimp_commuteLeq" (formula "3") (term "0,0")) + (rule "inEqSimp_subsumption1" (formula "3") (term "0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "3") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "0,0,0,0")) + (rule "add_literals" (formula "3") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "3") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "3") (term "0,0,0,0")) + (rule "qeq_literals" (formula "3") (term "0,0,0")) + (builtin "One Step Simplification" (formula "3")) + (rule "true_left" (formula "3")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "4") (term "0,1,1") (ifseqformula "8")) + (rule "castDel" (formula "4") (term "0,1,1")) + (rule "polySimp_elimSub" (formula "4") (term "0,2,0,0,0,2,0,1,1")) + (rule "mul_literals" (formula "4") (term "1,0,2,0,0,0,2,0,1,1")) + (rule "polySimp_elimSub" (formula "4") (term "3,1,2,0,1,1")) + (rule "mul_literals" (formula "4") (term "1,3,1,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "0,2,0,0,0,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "3,1,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "2,0,1,1")) + (rule "inEqSimp_homoInEq1" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,0")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "applyEq" (formula "4") (term "0,1,0") (ifseqformula "1")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "0")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "2") (term "1")) + (rule "eqSymm" (formula "2")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,0")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "2,0")) + (rule "applyEq" (formula "1") (term "0") (ifseqformula "2")) + (rule "applyEq" (formula "2") (term "1") (ifseqformula "1")) + (rule "ifthenelse_split" (formula "16") (term "0")) + (branch "k_0 = 0 TRUE" + (rule "eqSymm" (formula "17")) + (rule "replace_known_left" (formula "19") (term "0,0,0,1,0") (ifseqformula "16")) + (builtin "One Step Simplification" (formula "19")) + (rule "times_zero_2" (formula "19") (term "0,1,0")) + (rule "replace_known_left" (formula "2") (term "0,0") (ifseqformula "16")) + (builtin "One Step Simplification" (formula "2")) + (rule "eqSymm" (formula "2")) + (rule "inEqSimp_homoInEq0" (formula "19") (term "1,0")) + (rule "times_zero_2" (formula "19") (term "1,0,1,0")) + (rule "add_zero_right" (formula "19") (term "0,1,0")) + (rule "applyEqRigid" (formula "17") (term "3,0") (ifseqformula "16")) + (rule "applyEqRigid" (formula "12") (term "0") (ifseqformula "16")) + (rule "qeq_literals" (formula "12")) + (rule "true_left" (formula "12")) + (rule "applyEq" (formula "1") (term "3,0") (ifseqformula "15")) + (rule "applyEqRigid" (formula "4") (term "3,0,1,1") (ifseqformula "15")) + (rule "applyEq" (formula "14") (term "1,0") (ifseqformula "15")) + (rule "bsum_lower_equals_upper" (formula "14") (term "0")) + (rule "eqSymm" (formula "14")) + (rule "applyEq" (formula "17") (term "3,0,0") (ifseqformula "15")) + (rule "applyEqRigid" (formula "5") (term "1,1") (ifseqformula "15")) + (rule "add_zero_right" (formula "5") (term "1")) + (rule "applyEqRigid" (formula "2") (term "3,0") (ifseqformula "15")) + (rule "applyEqRigid" (formula "3") (term "1,0") (ifseqformula "15")) + (rule "bsum_lower_equals_upper" (formula "3") (term "0")) + (rule "eqSymm" (formula "3")) + (rule "applyEqRigid" (formula "4") (term "0,2,0,0,0,0") (ifseqformula "15")) + (rule "applyEq" (formula "22") (term "0,2,0") (ifseqformula "15")) + (rule "applyEq" (formula "1") (term "3,1") (ifseqformula "15")) + (rule "applyEq" (formula "17") (term "0,1") (ifseqformula "15")) + (rule "add_zero_left" (formula "17") (term "1")) + (rule "applyEqRigid" (formula "4") (term "1,0,0,1") (ifseqformula "15")) + (rule "add_zero_right" (formula "4") (term "0,0,1")) + (rule "applyEq" (formula "17") (term "0,0") (ifseqformula "16")) + (rule "times_zero_2" (formula "17") (term "0")) + (rule "inEqSimp_commuteLeq" (formula "17")) + (rule "applyEq" (formula "14") (term "3,0") (ifseqformula "15")) + (rule "applyEq" (formula "4") (term "0,1,1") (ifseqformula "2")) + (rule "times_zero_2" (formula "4") (term "1,1")) + (rule "add_zero_right" (formula "4") (term "1")) + (rule "applyEq" (formula "3") (term "3,0") (ifseqformula "14")) + (rule "applyEqRigid" (formula "16") (term "0,0,1,0") (ifseqformula "13")) + (rule "add_zero_left" (formula "16") (term "0,1,0")) + (rule "applyEq" (formula "1") (term "1") (ifseqformula "2")) + (rule "inEqSimp_invertInEq1" (formula "16") (term "1,0")) + (rule "mul_literals" (formula "16") (term "1,1,0")) + (rule "polySimp_mulLiterals" (formula "16") (term "0,1,0")) + (rule "polySimp_elimOne" (formula "16") (term "0,1,0")) + (rule "inEqSimp_subsumption1" (formula "11") (ifseqformula "4")) + (rule "leq_literals" (formula "11") (term "0")) + (builtin "One Step Simplification" (formula "11")) + (rule "true_left" (formula "11")) + (rule "inEqSimp_subsumption1" (formula "14") (ifseqformula "11")) + (rule "leq_literals" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "true_left" (formula "14")) + (rule "inEqSimp_contradInEq1" (formula "14") (term "1,0") (ifseqformula "11")) + (rule "qeq_literals" (formula "14") (term "0,1,0")) + (builtin "One Step Simplification" (formula "14")) + (rule "closeFalse" (formula "14")) + ) + (branch "k_0 = 0 FALSE" + (rule "replace_known_right" (formula "18") (term "0,0,0,1,0") (ifseqformula "19")) + (builtin "One Step Simplification" (formula "18")) + (rule "replace_known_right" (formula "2") (term "0,0") (ifseqformula "19")) + (builtin "One Step Simplification" (formula "2")) + (rule "polySimp_homoEq" (formula "16")) + (rule "polySimp_homoEq" (formula "2")) + (rule "polySimp_mulComm0" (formula "18") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "16") (term "1,0")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0")) + (rule "polySimp_rightDist" (formula "18") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "18") (term "0,0,1,0")) + (rule "polySimp_rightDist" (formula "16") (term "1,0")) + (rule "polySimp_mulComm0" (formula "16") (term "0,1,0")) + (rule "polySimp_rightDist" (formula "2") (term "1,0")) + (rule "polySimp_mulComm0" (formula "2") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "16") (term "0")) + (rule "polySimp_addAssoc" (formula "2") (term "0")) + (rule "inEqSimp_homoInEq0" (formula "18") (term "1,0")) + (rule "polySimp_mulComm0" (formula "18") (term "1,0,1,0")) + (rule "polySimp_rightDist" (formula "18") (term "1,0,1,0")) + (rule "polySimp_mulLiterals" (formula "18") (term "1,1,0,1,0")) + (rule "polySimp_mulAssoc" (formula "18") (term "0,1,0,1,0")) + (rule "polySimp_mulComm0" (formula "18") (term "0,0,1,0,1,0")) + (rule "polySimp_mulLiterals" (formula "18") (term "0,1,0,1,0")) + (rule "polySimp_addAssoc" (formula "18") (term "0,1,0")) + (rule "polySimp_sepNegMonomial" (formula "16")) + (rule "polySimp_mulLiterals" (formula "16") (term "0")) + (rule "polySimp_elimOne" (formula "16") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "18") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "18") (term "0,1,0")) + (rule "inEqSimp_strengthen1" (formula "12") (ifseqformula "19")) + (rule "add_zero_right" (formula "12") (term "1")) + (rule "inEqSimp_contradEq7" (formula "19") (ifseqformula "12")) + (rule "times_zero_1" (formula "19") (term "1,0,0")) + (rule "add_zero_right" (formula "19") (term "0,0")) + (rule "leq_literals" (formula "19") (term "0")) + (builtin "One Step Simplification" (formula "19")) + (rule "false_right" (formula "19")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "3") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "3") (term "1")) + (rule "polySimp_elimSub" (formula "3") (term "3,1,2,1")) + (rule "mul_literals" (formula "3") (term "1,3,1,2,1")) + (rule "polySimp_elimSub" (formula "3") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "3") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "2,1")) + (rule "applyEq" (formula "3") (term "1,2,1") (ifseqformula "2")) + (rule "polySimp_addAssoc" (formula "3") (term "2,1")) + (rule "polySimp_addComm0" (formula "3") (term "0,2,1")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "2,1")) + (rule "add_literals" (formula "3") (term "1,1,2,1")) + (rule "times_zero_1" (formula "3") (term "1,2,1")) + (rule "add_zero_right" (formula "3") (term "2,1")) + (rule "inEqSimp_contradEq7" (formula "3") (term "0,1") (ifseqformula "12")) + (rule "times_zero_1" (formula "3") (term "1,0,0,0,1")) + (rule "add_zero_right" (formula "3") (term "0,0,0,1")) + (rule "leq_literals" (formula "3") (term "0,0,1")) + (builtin "One Step Simplification" (formula "3")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_right" (formula "1") (term "0,1,0,0") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "25")) (ifInst "" (formula "7")) (ifInst "" (formula "8")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "inEqSimp_subsumption1" (formula "1") (term "1,0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,1,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,1,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,1,0,0")) + (rule "qeq_literals" (formula "1") (term "0,1,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0,0") (ifseqformula "13")) + (rule "leq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "4") (term "0,1,1") (inst "l=l")) + (rule "eqSymm" (formula "4") (term "0,1")) + (rule "replace_known_right" (formula "4") (term "0,1,0,0") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "25")) (ifInst "" (formula "7")) (ifInst "" (formula "8")) (ifInst "" (formula "3"))) + (rule "measuredByCheckEmpty" (formula "4") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "4")) + (rule "inEqSimp_commuteLeq" (formula "4") (term "0,0,0")) + (rule "inEqSimp_commuteLeq" (formula "4") (term "1,0,0")) + (rule "inEqSimp_subsumption1" (formula "4") (term "0,0,0") (ifseqformula "13")) + (rule "leq_literals" (formula "4") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "inEqSimp_subsumption1" (formula "4") (term "0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "4") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "4") (term "0,0,0,0")) + (rule "add_literals" (formula "4") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "4") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "4") (term "0,0,0,0")) + (rule "qeq_literals" (formula "4") (term "0,0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "true_left" (formula "4")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "2") (term "0,1") (inst "l=l")) + (rule "eqSymm" (formula "2") (term "0,1")) + (rule "replace_known_right" (formula "2") (term "0,1,0,0") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "25")) (ifInst "" (formula "7")) (ifInst "" (formula "8")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "2") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "2")) + (rule "inEqSimp_commuteLeq" (formula "2") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "2") (term "0,0,0")) + (rule "inEqSimp_subsumption1" (formula "2") (term "1,0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "2") (term "0,1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "0,0,1,0,0")) + (rule "add_literals" (formula "2") (term "1,1,0,0,1,0,0")) + (rule "times_zero_1" (formula "2") (term "1,0,0,1,0,0")) + (rule "add_zero_right" (formula "2") (term "0,0,1,0,0")) + (rule "qeq_literals" (formula "2") (term "0,1,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "inEqSimp_subsumption1" (formula "2") (term "0,0") (ifseqformula "13")) + (rule "leq_literals" (formula "2") (term "0,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "1") (term "1")) + (rule "eqSymm" (formula "1")) + (rule "polySimp_elimSub" (formula "1") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "1") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_elimSub" (formula "1") (term "3,1,2,0")) + (rule "mul_literals" (formula "1") (term "1,3,1,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "2,0")) + (rule "applyEq" (formula "1") (term "1,2,0") (ifseqformula "2")) + (rule "polySimp_addAssoc" (formula "1") (term "2,0")) + (rule "polySimp_addComm0" (formula "1") (term "0,2,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "2,0")) + (rule "add_literals" (formula "1") (term "1,1,2,0")) + (rule "times_zero_1" (formula "1") (term "1,2,0")) + (rule "add_zero_right" (formula "1") (term "2,0")) + (rule "inEqSimp_contradEq7" (formula "1") (term "0,0") (ifseqformula "12")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0")) + (rule "leq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "eqSymm" (formula "1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "3") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "3") (term "0,1")) + (rule "replace_known_right" (formula "3") (term "0,1,1,0,0,0,0,0") (ifseqformula "25")) + (builtin "One Step Simplification" (formula "3") (ifInst "" (formula "7")) (ifInst "" (formula "8")) (ifInst "" (formula "24")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "3") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "3")) + (rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) + (rule "inEqSimp_commuteLeq" (formula "3") (term "1,0,0")) + (rule "inEqSimp_subsumption1" (formula "3") (term "0,0,0") (ifseqformula "13")) + (rule "leq_literals" (formula "3") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "3")) + (rule "inEqSimp_subsumption1" (formula "3") (term "0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "3") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "0,0,0,0")) + (rule "add_literals" (formula "3") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "3") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "3") (term "0,0,0,0")) + (rule "qeq_literals" (formula "3") (term "0,0,0")) + (builtin "One Step Simplification" (formula "3")) + (rule "true_left" (formula "3")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "4") (term "0,1,1") (ifseqformula "8")) + (rule "castDel" (formula "4") (term "0,1,1")) + (rule "polySimp_elimSub" (formula "4") (term "0,2,0,0,0,2,0,1,1")) + (rule "mul_literals" (formula "4") (term "1,0,2,0,0,0,2,0,1,1")) + (rule "polySimp_elimSub" (formula "4") (term "3,1,2,0,1,1")) + (rule "mul_literals" (formula "4") (term "1,3,1,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "0,2,0,0,0,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "3,1,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "2,0,1,1")) + (rule "inEqSimp_homoInEq1" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,0")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "applyEq" (formula "4") (term "1,2,0,1,0") (ifseqformula "2")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "polySimp_addAssoc" (formula "4") (term "2,0,1,0,0")) + (rule "polySimp_addComm0" (formula "4") (term "0,2,0,1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "4") (term "2,0,1,0,0")) + (rule "add_literals" (formula "4") (term "1,1,2,0,1,0,0")) + (rule "times_zero_1" (formula "4") (term "1,2,0,1,0,0")) + (rule "add_zero_right" (formula "4") (term "2,0,1,0,0")) + (rule "inEqSimp_sepNegMonomial0" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "0")) + (rule "inEqSimp_contradEq7" (formula "4") (term "0,0,1,1") (ifseqformula "12")) + (rule "times_zero_1" (formula "4") (term "1,0,0,0,0,1,1")) + (rule "add_zero_right" (formula "4") (term "0,0,0,0,1,1")) + (rule "leq_literals" (formula "4") (term "0,0,0,1,1")) + (builtin "One Step Simplification" (formula "4")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "0,1") (ifseqformula "8")) + (rule "castDel" (formula "2") (term "0,1")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,0,1")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,0,1")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,0,1")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,0,1")) + (rule "polySimp_homoEq" (formula "2")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,0,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,0,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,0")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "polySimp_addComm0" (formula "2") (term "2,1,0")) + (rule "polySimp_sepPosMonomial" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1")) + (rule "polySimp_rightDist" (formula "2") (term "1")) + (rule "polySimp_mulLiterals" (formula "2") (term "1,1")) + (rule "polySimp_elimOne" (formula "2") (term "1,1")) + (rule "polySimp_mulAssoc" (formula "2") (term "0,1")) + (rule "polySimp_mulComm0" (formula "2") (term "0,0,1")) + (rule "polySimp_mulLiterals" (formula "2") (term "0,1")) + (rule "polySimp_elimOne" (formula "2") (term "0,1")) + (builtin "One Step Simplification" (formula "2")) + (rule "polySimp_homoEq" (formula "2") (term "1")) + (rule "times_zero_2" (formula "2") (term "1,0,1")) + (rule "add_zero_right" (formula "2") (term "0,1")) + (rule "polySimp_sepPosMonomial" (formula "2") (term "1")) + (rule "inEqSimp_contradEq7" (formula "2") (term "0,0") (ifseqformula "12")) + (rule "times_zero_1" (formula "2") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "2") (term "0,0,0,0")) + (rule "leq_literals" (formula "2") (term "0,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (ifseqformula "7")) + (rule "castDel" (formula "2") (term "1")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,1")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "2") (term "2,1")) + (rule "inEqSimp_contradEq7" (formula "2") (term "0,1") (ifseqformula "11")) + (rule "times_zero_1" (formula "2") (term "1,0,0,0,1")) + (rule "add_zero_right" (formula "2") (term "0,0,0,1")) + (rule "leq_literals" (formula "2") (term "0,0,1")) + (builtin "One Step Simplification" (formula "2")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_right" (formula "1") (term "0,1,0,0") (ifseqformula "23")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "24")) (ifInst "" (formula "6")) (ifInst "" (formula "7"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "1,0,0")) + (rule "applyEq" (formula "1") (term "0,0,1") (ifseqformula "3")) + (rule "polySimp_homoEq" (formula "1") (term "0,1")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0,1")) + (rule "polySimp_mulComm0" (formula "1") (term "0,1,0,0,1")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0,1")) + (rule "polySimp_sepNegMonomial" (formula "1") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0,0,1")) + (rule "polySimp_elimOne" (formula "1") (term "0,0,1")) + (rule "inEqSimp_subsumption1" (formula "1") (term "1,0,0") (ifseqformula "5")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,1,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,1,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,1,0,0")) + (rule "qeq_literals" (formula "1") (term "0,1,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0,0") (ifseqformula "12")) + (rule "leq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "4") (term "0,1,1") (inst "l=l")) + (rule "eqSymm" (formula "4") (term "0,1")) + (rule "replace_known_right" (formula "4") (term "0,1,0,0") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "25")) (ifInst "" (formula "7")) (ifInst "" (formula "8"))) + (rule "measuredByCheckEmpty" (formula "4") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "4")) + (rule "inEqSimp_commuteLeq" (formula "4") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "4") (term "0,0,0")) + (rule "applyEq" (formula "4") (term "0,0,1") (ifseqformula "3")) + (rule "polySimp_homoEq" (formula "4") (term "0,1")) + (rule "polySimp_mulComm0" (formula "4") (term "1,0,0,1")) + (rule "polySimp_rightDist" (formula "4") (term "1,0,0,1")) + (rule "polySimp_mulComm0" (formula "4") (term "0,1,0,0,1")) + (rule "polySimp_addAssoc" (formula "4") (term "0,0,1")) + (rule "polySimp_sepNegMonomial" (formula "4") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "4") (term "0,0,1")) + (rule "polySimp_elimOne" (formula "4") (term "0,0,1")) + (rule "inEqSimp_subsumption1" (formula "4") (term "0,0,0") (ifseqformula "13")) + (rule "leq_literals" (formula "4") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "inEqSimp_subsumption1" (formula "4") (term "0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "4") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "4") (term "0,0,0,0")) + (rule "add_literals" (formula "4") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "4") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "4") (term "0,0,0,0")) + (rule "qeq_literals" (formula "4") (term "0,0,0")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "1"))) + (rule "true_left" (formula "4")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "2") (term "1")) + (rule "eqSymm" (formula "2")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,0")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,0")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "2,0")) + (rule "inEqSimp_contradEq7" (formula "2") (term "0,0") (ifseqformula "12")) + (rule "times_zero_1" (formula "2") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "2") (term "0,0,0,0")) + (rule "leq_literals" (formula "2") (term "0,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "polySimp_homoEq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0")) + (rule "polySimp_rightDist" (formula "2") (term "1,0")) + (rule "polySimp_mulComm0" (formula "2") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "2") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "applyEq" (formula "1") (term "0,0,1") (ifseqformula "2")) + (rule "polySimp_homoEq" (formula "1") (term "0,1")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0,1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1,0,0,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,1,0,0,1")) + (rule "polySimp_mulComm0" (formula "1") (term "0,1,0,0,1")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0,1")) + (rule "polySimp_addComm1" (formula "1") (term "0,0,0,1")) + (rule "polySimp_pullOutFactor2b" (formula "1") (term "0,0,1")) + (rule "add_literals" (formula "1") (term "1,1,0,0,1")) + (rule "times_zero_1" (formula "1") (term "1,0,0,1")) + (rule "add_zero_right" (formula "1") (term "0,0,1")) + (rule "applyEq" (formula "3") (term "1,1") (ifseqformula "2")) + (rule "polySimp_addAssoc" (formula "3") (term "1")) + (rule "polySimp_addComm0" (formula "3") (term "0,1")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "1")) + (rule "add_literals" (formula "3") (term "1,1,1")) + (rule "times_zero_1" (formula "3") (term "1,1")) + (rule "add_zero_right" (formula "3") (term "1")) + (rule "polySimp_sepNegMonomial" (formula "1") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0,0,1")) + (rule "polySimp_elimOne" (formula "1") (term "0,0,1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "4") (term "0,1,1") (ifseqformula "8")) + (rule "castDel" (formula "4") (term "0,1,1")) + (rule "polySimp_elimSub" (formula "4") (term "0,2,0,0,0,2,0,1,1")) + (rule "mul_literals" (formula "4") (term "1,0,2,0,0,0,2,0,1,1")) + (rule "polySimp_elimSub" (formula "4") (term "3,1,2,0,1,1")) + (rule "mul_literals" (formula "4") (term "1,3,1,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "0,2,0,0,0,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "3,1,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "2,0,1,1")) + (rule "inEqSimp_homoInEq1" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,0")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "applyEq" (formula "4") (term "1,2,0,1,0") (ifseqformula "2")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "polySimp_addAssoc" (formula "4") (term "2,0,1,0,0")) + (rule "polySimp_addComm0" (formula "4") (term "0,2,0,1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "4") (term "2,0,1,0,0")) + (rule "add_literals" (formula "4") (term "1,1,2,0,1,0,0")) + (rule "times_zero_1" (formula "4") (term "1,2,0,1,0,0")) + (rule "add_zero_right" (formula "4") (term "2,0,1,0,0")) + (rule "inEqSimp_sepNegMonomial0" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "0")) + (rule "inEqSimp_contradEq7" (formula "4") (term "0,0,1,1") (ifseqformula "12")) + (rule "times_zero_1" (formula "4") (term "1,0,0,0,0,1,1")) + (rule "add_zero_right" (formula "4") (term "0,0,0,0,1,1")) + (rule "leq_literals" (formula "4") (term "0,0,0,1,1")) + (builtin "One Step Simplification" (formula "4")) + (rule "ifthenelse_split" (formula "16") (term "0")) + (branch "a[-1 + k_0] = mx_0 TRUE" + (rule "polySimp_homoEq" (formula "17")) + (rule "mul_literals" (formula "17") (term "1,0")) + (rule "polySimp_addComm1" (formula "17") (term "0")) + (rule "polySimp_addComm0" (formula "17") (term "0,0")) + (rule "applyEq" (formula "2") (term "0,0,0") (ifseqformula "16")) + (rule "eqSymm" (formula "2") (term "0,0")) + (rule "replace_known_right" (formula "2") (term "0,0") (ifseqformula "22")) + (builtin "One Step Simplification" (formula "2")) + (rule "polySimp_homoEq" (formula "2")) + (rule "times_zero_2" (formula "2") (term "1,0")) + (rule "add_zero_right" (formula "2") (term "0")) + (rule "applyEq" (formula "19") (term "1,0,0,0,1,0") (ifseqformula "16")) + (rule "polySimp_sepNegMonomial" (formula "17")) + (rule "polySimp_mulLiterals" (formula "17") (term "0")) + (rule "polySimp_elimOne" (formula "17") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1,0,1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "1,0,0,0,0") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "26")) (ifInst "" (formula "8")) (ifInst "" (formula "25"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "1,0,0")) + (rule "applyEq" (formula "1") (term "0,0,1") (ifseqformula "4")) + (rule "inEqSimp_subsumption1" (formula "1") (term "1,0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,1,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,1,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,1,0,0")) + (rule "qeq_literals" (formula "1") (term "0,1,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0,0") (ifseqformula "13")) + (rule "leq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "2"))) + (rule "true_left" (formula "1")) + (rule "Class_invariant_axiom_for_BoyerMoore" (formula "1") (term "0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "1")) + (rule "andLeft" (formula "1")) + (rule "applyEq" (formula "5") (term "0,1,1") (ifseqformula "1")) + (rule "applyEq" (formula "4") (term "1") (ifseqformula "1")) + (rule "applyEq" (formula "3") (term "1") (ifseqformula "1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "0,1,0,0,0,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "27")) (ifInst "" (formula "8")) (ifInst "" (formula "9")) (ifInst "" (formula "26")) (ifInst "" (formula "5")) (ifInst "" (formula "3"))) + (rule "true_left" (formula "1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "5") (term "0,1,1") (inst "l=l")) + (rule "eqSymm" (formula "5") (term "0,1")) + (rule "replace_known_left" (formula "5") (term "0,1,0,0,0,0,0") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "5") (ifInst "" (formula "27")) (ifInst "" (formula "8")) (ifInst "" (formula "9")) (ifInst "" (formula "26")) (ifInst "" (formula "4")) (ifInst "" (formula "2"))) + (rule "true_left" (formula "5")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "4") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "4") (term "0,1")) + (rule "replace_known_right" (formula "4") (term "0,1,0,0") (ifseqformula "26")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "2")) (ifInst "" (formula "27")) (ifInst "" (formula "8")) (ifInst "" (formula "9")) (ifInst "" (formula "5")) (ifInst "" (formula "2"))) + (rule "true_left" (formula "4")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "3") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "3") (term "0,1")) + (rule "replace_known_left" (formula "3") (term "1,0,0,0,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "3") (ifInst "" (formula "2")) (ifInst "" (formula "27")) (ifInst "" (formula "9")) (ifInst "" (formula "26")) (ifInst "" (formula "5")) (ifInst "" (formula "2"))) + (rule "true_left" (formula "3")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (ifseqformula "9")) + (rule "castDel" (formula "1") (term "1")) + (rule "eqSymm" (formula "1")) + (rule "polySimp_elimSub" (formula "1") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "1") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_elimSub" (formula "1") (term "3,1,2,0")) + (rule "mul_literals" (formula "1") (term "1,3,1,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "2,0")) + (rule "applyEq" (formula "1") (term "0,0,1,2,0") (ifseqformula "17")) + (rule "eqSymm" (formula "1") (term "0,1,2,0")) + (rule "replace_known_right" (formula "1") (term "0,1,2,0") (ifseqformula "23")) + (builtin "One Step Simplification" (formula "1")) + (rule "add_zero_right" (formula "1") (term "2,0")) + (rule "applyEq" (formula "1") (term "2,0") (ifseqformula "3")) + (rule "inEqSimp_contradEq7" (formula "1") (term "0,0") (ifseqformula "13")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0")) + (rule "leq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "eqSymm" (formula "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "5") (term "0,1,1") (ifseqformula "9")) + (rule "castDel" (formula "5") (term "0,1,1")) + (rule "polySimp_elimSub" (formula "5") (term "0,2,0,0,0,2,0,1,1")) + (rule "mul_literals" (formula "5") (term "1,0,2,0,0,0,2,0,1,1")) + (rule "polySimp_elimSub" (formula "5") (term "3,1,2,0,1,1")) + (rule "mul_literals" (formula "5") (term "1,3,1,2,0,1,1")) + (rule "polySimp_addComm0" (formula "5") (term "0,2,0,0,0,2,0,1,1")) + (rule "polySimp_addComm0" (formula "5") (term "3,1,2,0,1,1")) + (rule "polySimp_addComm0" (formula "5") (term "2,0,1,1")) + (rule "inEqSimp_homoInEq1" (formula "5")) + (rule "polySimp_mulLiterals" (formula "5") (term "1,0")) + (rule "polySimp_addComm1" (formula "5") (term "0")) + (rule "applyEq" (formula "5") (term "0,0,1,2,0,1,0") (ifseqformula "17")) + (rule "eqSymm" (formula "5") (term "0,1,2,0,1,0")) + (rule "replace_known_right" (formula "5") (term "0,1,2,0,1,0") (ifseqformula "23")) + (builtin "One Step Simplification" (formula "5")) + (rule "add_zero_right" (formula "5") (term "2,0,1,0")) + (rule "polySimp_addComm1" (formula "5") (term "0")) + (rule "applyEq" (formula "5") (term "2,0,1,0,0") (ifseqformula "3")) + (rule "inEqSimp_sepNegMonomial0" (formula "5")) + (rule "polySimp_mulLiterals" (formula "5") (term "0")) + (rule "inEqSimp_contradEq7" (formula "5") (term "0,0,1,1") (ifseqformula "13")) + (rule "times_zero_1" (formula "5") (term "1,0,0,0,0,1,1")) + (rule "add_zero_right" (formula "5") (term "0,0,0,0,1,1")) + (rule "leq_literals" (formula "5") (term "0,0,0,1,1")) + (builtin "One Step Simplification" (formula "5")) + (rule "Class_invariant_axiom_for_BoyerMoore" (formula "2") (ifseqformula "9")) + (rule "true_left" (formula "2")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "3") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "3") (term "1")) + (rule "polySimp_elimSub" (formula "3") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "3") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "3") (term "3,1,2,1")) + (rule "mul_literals" (formula "3") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "2,1")) + (rule "applyEq" (formula "3") (term "0,0,1,2,1") (ifseqformula "16")) + (rule "eqSymm" (formula "3") (term "0,1,2,1")) + (rule "replace_known_right" (formula "3") (term "0,1,2,1") (ifseqformula "22")) + (builtin "One Step Simplification" (formula "3")) + (rule "add_zero_right" (formula "3") (term "2,1")) + (rule "applyEq" (formula "3") (term "2,1") (ifseqformula "2")) + (rule "inEqSimp_contradEq7" (formula "3") (term "0,1") (ifseqformula "12")) + (rule "times_zero_1" (formula "3") (term "1,0,0,0,1")) + (rule "add_zero_right" (formula "3") (term "0,0,0,1")) + (rule "leq_literals" (formula "3") (term "0,0,1")) + (builtin "One Step Simplification" (formula "3")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "2") (term "1")) + (rule "eqSymm" (formula "2")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,0")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,0")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "2,0")) + (rule "applyEq" (formula "2") (term "0,0,1,2,0") (ifseqformula "16")) + (rule "eqSymm" (formula "2") (term "0,1,2,0")) + (rule "replace_known_right" (formula "2") (term "0,1,2,0") (ifseqformula "22")) + (builtin "One Step Simplification" (formula "2")) + (rule "add_zero_right" (formula "2") (term "2,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "eqSymm" (formula "2") (term "1")) + (rule "inEqSimp_contradEq7" (formula "2") (term "0,0") (ifseqformula "12")) + (rule "times_zero_1" (formula "2") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "2") (term "0,0,0,0")) + (rule "leq_literals" (formula "2") (term "0,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "onlyCreatedObjectsAreReferenced" (formula "20") (term "1,0") (ifseqformula "5")) + (rule "replace_known_right" (formula "1") (term "0") (ifseqformula "20")) + (builtin "One Step Simplification" (formula "1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "2") (term "0,1")) + (rule "replace_known_left" (formula "2") (term "1,0,0,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "26")) (ifInst "" (formula "7")) (ifInst "" (formula "25")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "2") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "2")) + (rule "inEqSimp_commuteLeq" (formula "2") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "2") (term "0,0,0")) + (rule "inEqSimp_subsumption1" (formula "2") (term "1,0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "2") (term "0,1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "0,0,1,0,0")) + (rule "add_literals" (formula "2") (term "1,1,0,0,1,0,0")) + (rule "times_zero_1" (formula "2") (term "1,0,0,1,0,0")) + (rule "add_zero_right" (formula "2") (term "0,0,1,0,0")) + (rule "qeq_literals" (formula "2") (term "0,1,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "inEqSimp_subsumption1" (formula "2") (term "0,0") (ifseqformula "13")) + (rule "leq_literals" (formula "2") (term "0,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "4") (term "0,1,1") (inst "l=l")) + (rule "eqSymm" (formula "4") (term "0,1")) + (rule "replace_known_left" (formula "4") (term "1,0,0,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "26")) (ifInst "" (formula "7")) (ifInst "" (formula "25")) (ifInst "" (formula "3"))) + (rule "measuredByCheckEmpty" (formula "4") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "4")) + (rule "inEqSimp_commuteLeq" (formula "4") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "4") (term "0,0,0")) + (rule "inEqSimp_subsumption1" (formula "4") (term "1,0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "4") (term "0,1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "4") (term "0,0,1,0,0")) + (rule "add_literals" (formula "4") (term "1,1,0,0,1,0,0")) + (rule "times_zero_1" (formula "4") (term "1,0,0,1,0,0")) + (rule "add_zero_right" (formula "4") (term "0,0,1,0,0")) + (rule "qeq_literals" (formula "4") (term "0,1,0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "inEqSimp_subsumption1" (formula "4") (term "0,0") (ifseqformula "13")) + (rule "leq_literals" (formula "4") (term "0,0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "true_left" (formula "4")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "3") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "3") (term "0,1")) + (rule "replace_known_right" (formula "3") (term "0,1,0,0") (ifseqformula "25")) + (builtin "One Step Simplification" (formula "3") (ifInst "" (formula "26")) (ifInst "" (formula "7")) (ifInst "" (formula "8")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "3") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "3")) + (rule "inEqSimp_commuteLeq" (formula "3") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) + (rule "inEqSimp_subsumption1" (formula "3") (term "0,0,0") (ifseqformula "13")) + (rule "leq_literals" (formula "3") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "3")) + (rule "inEqSimp_subsumption1" (formula "3") (term "0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "3") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "0,0,0,0")) + (rule "add_literals" (formula "3") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "3") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "3") (term "0,0,0,0")) + (rule "qeq_literals" (formula "3") (term "0,0,0")) + (builtin "One Step Simplification" (formula "3")) + (rule "true_left" (formula "3")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "2") (term "1")) + (rule "eqSymm" (formula "2")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,0")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,0")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "2,0")) + (rule "inEqSimp_contradEq7" (formula "2") (term "0,0") (ifseqformula "12")) + (rule "times_zero_1" (formula "2") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "2") (term "0,0,0,0")) + (rule "leq_literals" (formula "2") (term "0,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "polySimp_homoEq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0")) + (rule "polySimp_rightDist" (formula "2") (term "1,0")) + (rule "polySimp_mulComm0" (formula "2") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "2") (term "0")) + (rule "applyEq" (formula "2") (term "0,0,0,1,0") (ifseqformula "16")) + (rule "eqSymm" (formula "2") (term "0,0,1,0")) + (rule "replace_known_right" (formula "2") (term "0,0,1,0") (ifseqformula "22")) + (builtin "One Step Simplification" (formula "2")) + (rule "times_zero_2" (formula "2") (term "1,0")) + (rule "add_zero_right" (formula "2") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "4") (term "0,1,1") (ifseqformula "8")) + (rule "castDel" (formula "4") (term "0,1,1")) + (rule "polySimp_elimSub" (formula "4") (term "3,1,2,0,1,1")) + (rule "mul_literals" (formula "4") (term "1,3,1,2,0,1,1")) + (rule "polySimp_elimSub" (formula "4") (term "0,2,0,0,0,2,0,1,1")) + (rule "mul_literals" (formula "4") (term "1,0,2,0,0,0,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "3,1,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "0,2,0,0,0,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "2,0,1,1")) + (rule "inEqSimp_homoInEq1" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,0")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "applyEq" (formula "4") (term "0,2,0,1,0") (ifseqformula "2")) + (rule "applyEq" (formula "4") (term "0,0,1,2,0,1,0") (ifseqformula "16")) + (rule "eqSymm" (formula "4") (term "0,1,2,0,1,0")) + (rule "replace_known_right" (formula "4") (term "0,1,2,0,1,0") (ifseqformula "22")) + (builtin "One Step Simplification" (formula "4")) + (rule "add_zero_right" (formula "4") (term "2,0,1,0")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "0")) + (rule "inEqSimp_contradEq7" (formula "4") (term "0,0,1,1") (ifseqformula "12")) + (rule "times_zero_1" (formula "4") (term "1,0,0,0,0,1,1")) + (rule "add_zero_right" (formula "4") (term "0,0,0,0,1,1")) + (rule "leq_literals" (formula "4") (term "0,0,0,1,1")) + (builtin "One Step Simplification" (formula "4")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "3") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "3") (term "1")) + (rule "polySimp_elimSub" (formula "3") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "3") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "3") (term "3,1,2,1")) + (rule "mul_literals" (formula "3") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "2,1")) + (rule "applyEq" (formula "3") (term "0,2,1") (ifseqformula "2")) + (rule "applyEq" (formula "3") (term "0,0,1,2,1") (ifseqformula "16")) + (rule "eqSymm" (formula "3") (term "0,1,2,1")) + (rule "replace_known_right" (formula "3") (term "0,1,2,1") (ifseqformula "22")) + (builtin "One Step Simplification" (formula "3")) + (rule "add_zero_right" (formula "3") (term "2,1")) + (rule "inEqSimp_contradEq7" (formula "3") (term "0,1") (ifseqformula "12")) + (rule "times_zero_1" (formula "3") (term "1,0,0,0,1")) + (rule "add_zero_right" (formula "3") (term "0,0,0,1")) + (rule "leq_literals" (formula "3") (term "0,0,1")) + (builtin "One Step Simplification" (formula "3")) + (rule "ifthenelse_split" (formula "4") (term "0,0")) + (branch "a[k_0] = x_0 TRUE" + (rule "mul_literals" (formula "5") (term "0")) + (rule "inEqSimp_homoInEq1" (formula "5")) + (rule "mul_literals" (formula "5") (term "1,0")) + (rule "polySimp_addComm1" (formula "5") (term "0")) + (rule "polySimp_addComm1" (formula "5") (term "0,0")) + (rule "polySimp_addComm1" (formula "5") (term "0,0,0")) + (rule "add_literals" (formula "5") (term "0,0,0,0")) + (rule "applyEq" (formula "24") (term "0") (ifseqformula "4")) + (rule "inEqSimp_sepNegMonomial0" (formula "5")) + (rule "polySimp_mulLiterals" (formula "5") (term "0")) + (rule "allLeft" (formula "20") (inst "t=x_0")) + (rule "replace_known_right" (formula "20") (term "0") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "20") (ifInst "" (formula "24"))) + (rule "times_zero_2" (formula "20") (term "0")) + (rule "inEqSimp_homoInEq0" (formula "20")) + (rule "mul_literals" (formula "20") (term "1,0")) + (rule "add_zero_right" (formula "20") (term "0")) + (rule "applyEq" (formula "20") (term "0,1,0") (ifseqformula "2")) + (rule "inEqSimp_sepNegMonomial1" (formula "20")) + (rule "polySimp_mulLiterals" (formula "20") (term "0")) + (rule "inEqSimp_contradInEq1" (formula "20") (ifseqformula "5")) + (rule "andLeft" (formula "20")) + (rule "inEqSimp_homoInEq1" (formula "20")) + (rule "polySimp_mulComm0" (formula "20") (term "1,0")) + (rule "polySimp_rightDist" (formula "20") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "20") (term "1,1,0")) + (rule "polySimp_elimOne" (formula "20") (term "1,1,0")) + (rule "polySimp_mulComm0" (formula "20") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "20") (term "0")) + (rule "polySimp_addComm1" (formula "20") (term "0,0")) + (rule "polySimp_pullOutFactor2b" (formula "20") (term "0")) + (rule "add_literals" (formula "20") (term "1,1,0")) + (rule "times_zero_1" (formula "20") (term "1,0")) + (rule "add_zero_right" (formula "20") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "20") (term "0")) + (rule "add_literals" (formula "20") (term "1,1,0")) + (rule "times_zero_1" (formula "20") (term "1,0")) + (rule "add_literals" (formula "20") (term "0")) + (rule "leq_literals" (formula "20")) + (rule "closeFalse" (formula "20")) + ) + (branch "a[k_0] = x_0 FALSE" + (rule "times_zero_2" (formula "4") (term "0")) + (rule "inEqSimp_homoInEq1" (formula "4")) + (rule "times_zero_2" (formula "4") (term "1,0")) + (rule "add_zero_right" (formula "4") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "0")) + (rule "allLeft" (formula "19") (inst "t=x_0")) + (rule "replace_known_right" (formula "19") (term "0,0,0,1") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "19") (ifInst "" (formula "24"))) + (rule "times_zero_2" (formula "19") (term "0")) + (rule "inEqSimp_homoInEq0" (formula "19")) + (rule "times_zero_2" (formula "19") (term "1,0")) + (rule "add_zero_right" (formula "19") (term "0")) + (rule "applyEq" (formula "19") (term "0,1,0") (ifseqformula "2")) + (rule "inEqSimp_sepNegMonomial1" (formula "19")) + (rule "polySimp_mulLiterals" (formula "19") (term "0")) + (rule "inEqSimp_contradInEq2" (formula "4") (ifseqformula "19")) + (rule "greater_literals" (formula "4") (term "0,1,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "greater_literals" (formula "4") (term "0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "andLeft" (formula "4")) + (rule "polySimp_rightDist" (formula "4") (term "1")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,1")) + (rule "polySimp_rightDist" (formula "4") (term "0")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,0")) + (rule "polySimp_mulComm0" (formula "4") (term "0,0")) + (rule "polySimp_rightDist" (formula "4") (term "0,1")) + (rule "mul_literals" (formula "4") (term "0,0,1")) + (rule "inEqSimp_homoInEq1" (formula "4")) + (rule "polySimp_mulComm0" (formula "4") (term "1,0")) + (rule "polySimp_rightDist" (formula "4") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,1,0")) + (rule "polySimp_mulAssoc" (formula "4") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "4") (term "0,0,1,0")) + (rule "polySimp_mulLiterals" (formula "4") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "4") (term "0")) + (rule "polySimp_addComm1" (formula "4") (term "0,0")) + (rule "polySimp_pullOutFactor0b" (formula "4") (term "0,0,0")) + (rule "add_literals" (formula "4") (term "1,1,0,0,0")) + (rule "times_zero_1" (formula "4") (term "1,0,0,0")) + (rule "add_literals" (formula "4") (term "0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "4") (term "0")) + (rule "add_literals" (formula "4") (term "1,1,0")) + (rule "times_zero_1" (formula "4") (term "1,0")) + (rule "add_zero_right" (formula "4") (term "0")) + (rule "leq_literals" (formula "4")) + (rule "closeFalse" (formula "4")) + ) + ) + (branch "a[-1 + k_0] = mx_0 FALSE" + (rule "polySimp_homoEq" (formula "16")) + (rule "times_zero_2" (formula "16") (term "1,0")) + (rule "add_zero_right" (formula "16") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "16")) + (rule "polySimp_mulLiterals" (formula "16") (term "0")) + (rule "polySimp_elimOne" (formula "16") (term "0")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1,0,1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "1,0,0,0,0") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "26")) (ifInst "" (formula "8")) (ifInst "" (formula "25"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "1,0,0")) + (rule "applyEq" (formula "1") (term "0,0,1") (ifseqformula "4")) + (rule "inEqSimp_subsumption1" (formula "1") (term "1,0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,1,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,1,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,1,0,0")) + (rule "add_literals" (formula "1") (term "0,0,1,0,0")) + (rule "qeq_literals" (formula "1") (term "0,1,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_subsumption1" (formula "1") (term "0,0") (ifseqformula "13")) + (rule "leq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "2"))) + (rule "true_left" (formula "1")) + (rule "Class_invariant_axiom_for_BoyerMoore" (formula "1") (term "0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "1")) + (rule "andLeft" (formula "1")) + (rule "applyEq" (formula "5") (term "0,1,1") (ifseqformula "1")) + (rule "applyEq" (formula "4") (term "1") (ifseqformula "1")) + (rule "applyEq" (formula "3") (term "0,1") (ifseqformula "1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "1,0,0,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "3")) (ifInst "" (formula "27")) (ifInst "" (formula "8")) (ifInst "" (formula "26")) (ifInst "" (formula "5")) (ifInst "" (formula "3"))) + (rule "true_left" (formula "1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "5") (term "0,1,1") (inst "l=l")) + (rule "eqSymm" (formula "5") (term "0,1")) + (rule "replace_known_left" (formula "5") (term "1,0,0,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "5") (ifInst "" (formula "2")) (ifInst "" (formula "27")) (ifInst "" (formula "8")) (ifInst "" (formula "26")) (ifInst "" (formula "4")) (ifInst "" (formula "2"))) + (rule "true_left" (formula "5")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "4") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "4") (term "0,1")) + (rule "replace_known_left" (formula "4") (term "1,0,0,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "2")) (ifInst "" (formula "27")) (ifInst "" (formula "8")) (ifInst "" (formula "26")) (ifInst "" (formula "5")) (ifInst "" (formula "2"))) + (rule "true_left" (formula "4")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "3") (term "0,1") (inst "l=l")) + (rule "eqSymm" (formula "3") (term "0,1")) + (rule "replace_known_left" (formula "3") (term "1,0,0,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "3") (ifInst "" (formula "2")) (ifInst "" (formula "27")) (ifInst "" (formula "8")) (ifInst "" (formula "26")) (ifInst "" (formula "5")) (ifInst "" (formula "2"))) + (rule "true_left" (formula "3")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "5") (term "0,1,1") (ifseqformula "9")) + (rule "castDel" (formula "5") (term "0,1,1")) + (rule "polySimp_elimSub" (formula "5") (term "3,1,2,0,1,1")) + (rule "mul_literals" (formula "5") (term "1,3,1,2,0,1,1")) + (rule "polySimp_elimSub" (formula "5") (term "0,2,0,0,0,2,0,1,1")) + (rule "mul_literals" (formula "5") (term "1,0,2,0,0,0,2,0,1,1")) + (rule "polySimp_addComm0" (formula "5") (term "3,1,2,0,1,1")) + (rule "polySimp_addComm0" (formula "5") (term "0,2,0,0,0,2,0,1,1")) + (rule "polySimp_addComm0" (formula "5") (term "2,0,1,1")) + (rule "inEqSimp_homoInEq1" (formula "5")) + (rule "polySimp_mulLiterals" (formula "5") (term "1,0")) + (rule "polySimp_addComm1" (formula "5") (term "0")) + (rule "applyEq" (formula "5") (term "1,2,0,1,0") (ifseqformula "3")) + (rule "polySimp_addComm1" (formula "5") (term "0")) + (rule "polySimp_addAssoc" (formula "5") (term "2,0,1,0,0")) + (rule "polySimp_addComm0" (formula "5") (term "0,2,0,1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "5") (term "2,0,1,0,0")) + (rule "add_literals" (formula "5") (term "1,1,2,0,1,0,0")) + (rule "times_zero_1" (formula "5") (term "1,2,0,1,0,0")) + (rule "add_zero_right" (formula "5") (term "2,0,1,0,0")) + (rule "inEqSimp_sepNegMonomial0" (formula "5")) + (rule "polySimp_mulLiterals" (formula "5") (term "0")) + (rule "inEqSimp_contradEq7" (formula "5") (term "0,0,1,1") (ifseqformula "13")) + (rule "times_zero_1" (formula "5") (term "1,0,0,0,0,1,1")) + (rule "add_zero_right" (formula "5") (term "0,0,0,0,1,1")) + (rule "leq_literals" (formula "5") (term "0,0,0,1,1")) + (builtin "One Step Simplification" (formula "5")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (ifseqformula "9")) + (rule "castDel" (formula "1") (term "1")) + (rule "eqSymm" (formula "1")) + (rule "polySimp_elimSub" (formula "1") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "1") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_elimSub" (formula "1") (term "3,1,2,0")) + (rule "mul_literals" (formula "1") (term "1,3,1,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "2,0")) + (rule "applyEq" (formula "1") (term "1,2,0") (ifseqformula "3")) + (rule "polySimp_addAssoc" (formula "1") (term "2,0")) + (rule "polySimp_addComm0" (formula "1") (term "0,2,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "2,0")) + (rule "add_literals" (formula "1") (term "1,1,2,0")) + (rule "times_zero_1" (formula "1") (term "1,2,0")) + (rule "add_zero_right" (formula "1") (term "2,0")) + (rule "inEqSimp_contradEq7" (formula "1") (term "0,0") (ifseqformula "13")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0")) + (rule "leq_literals" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "eqSymm" (formula "1")) + (rule "Class_invariant_axiom_for_BoyerMoore" (formula "2") (ifseqformula "9")) + (rule "true_left" (formula "2")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "3") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "3") (term "1")) + (rule "polySimp_elimSub" (formula "3") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "3") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "3") (term "3,1,2,1")) + (rule "mul_literals" (formula "3") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "2,1")) + (rule "applyEq" (formula "3") (term "1,2,1") (ifseqformula "2")) + (rule "polySimp_addAssoc" (formula "3") (term "2,1")) + (rule "polySimp_addComm0" (formula "3") (term "0,2,1")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "2,1")) + (rule "add_literals" (formula "3") (term "1,1,2,1")) + (rule "times_zero_1" (formula "3") (term "1,2,1")) + (rule "add_zero_right" (formula "3") (term "2,1")) + (rule "inEqSimp_contradEq7" (formula "3") (term "0,1") (ifseqformula "12")) + (rule "times_zero_1" (formula "3") (term "1,0,0,0,1")) + (rule "add_zero_right" (formula "3") (term "0,0,0,1")) + (rule "leq_literals" (formula "3") (term "0,0,1")) + (builtin "One Step Simplification" (formula "3")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "0,1") (ifseqformula "8")) + (rule "castDel" (formula "2") (term "0,1")) + (rule "polySimp_homoEq" (formula "2")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,0,0,0")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,0,0,0")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,0,0,0")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,0,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,0,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,0,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,0")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "polySimp_addComm0" (formula "2") (term "2,1,0")) + (rule "polySimp_sepPosMonomial" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1")) + (rule "polySimp_rightDist" (formula "2") (term "1")) + (rule "polySimp_mulLiterals" (formula "2") (term "1,1")) + (rule "polySimp_elimOne" (formula "2") (term "1,1")) + (rule "polySimp_mulAssoc" (formula "2") (term "0,1")) + (rule "polySimp_mulComm0" (formula "2") (term "0,0,1")) + (rule "polySimp_mulLiterals" (formula "2") (term "0,1")) + (rule "polySimp_elimOne" (formula "2") (term "0,1")) + (builtin "One Step Simplification" (formula "2")) + (rule "polySimp_homoEq" (formula "2") (term "1")) + (rule "times_zero_2" (formula "2") (term "1,0,1")) + (rule "add_zero_right" (formula "2") (term "0,1")) + (rule "polySimp_sepPosMonomial" (formula "2") (term "1")) + (rule "inEqSimp_contradEq7" (formula "2") (term "0,0") (ifseqformula "12")) + (rule "times_zero_1" (formula "2") (term "1,0,0,0,0")) + (rule "add_literals" (formula "2") (term "0,0,0,0")) + (rule "leq_literals" (formula "2") (term "0,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "onlyCreatedObjectsAreReferenced" (formula "19") (term "0") (ifseqformula "5")) + (rule "replace_known_right" (formula "1") (term "0") (ifseqformula "20")) + (builtin "One Step Simplification" (formula "1")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "4") (term "0,1,1") (inst "l=l")) + (rule "eqSymm" (formula "4") (term "0,1")) + (rule "replace_known_left" (formula "4") (term "1,0,0,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "26")) (ifInst "" (formula "7")) (ifInst "" (formula "25")) (ifInst "" (formula "3"))) + (rule "measuredByCheckEmpty" (formula "4") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "4")) + (rule "inEqSimp_commuteLeq" (formula "4") (term "0,0,0")) + (rule "inEqSimp_commuteLeq" (formula "4") (term "1,0,0")) + (rule "inEqSimp_subsumption1" (formula "4") (term "0,0,0") (ifseqformula "13")) + (rule "leq_literals" (formula "4") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "inEqSimp_subsumption1" (formula "4") (term "0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "4") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "4") (term "0,0,0,0")) + (rule "add_literals" (formula "4") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "4") (term "1,0,0,0,0")) + (rule "add_literals" (formula "4") (term "0,0,0,0")) + (rule "qeq_literals" (formula "4") (term "0,0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "true_left" (formula "4")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "2") (term "0,1")) + (rule "replace_known_right" (formula "2") (term "0,1,1,0,0,0,0,0") (ifseqformula "26")) + (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "7")) (ifInst "" (formula "8")) (ifInst "" (formula "25")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "2") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "2")) + (rule "inEqSimp_commuteLeq" (formula "2") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "2") (term "0,0,0")) + (rule "inEqSimp_subsumption1" (formula "2") (term "0,0,0") (ifseqformula "13")) + (rule "leq_literals" (formula "2") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "inEqSimp_subsumption1" (formula "2") (term "0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "2") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "0,0,0,0")) + (rule "add_literals" (formula "2") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "2") (term "1,0,0,0,0")) + (rule "add_literals" (formula "2") (term "0,0,0,0")) + (rule "qeq_literals" (formula "2") (term "0,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "3") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "3") (term "0,1")) + (rule "replace_known_right" (formula "3") (term "0,1,1,0,0,0,0,0") (ifseqformula "26")) + (builtin "One Step Simplification" (formula "3") (ifInst "" (formula "7")) (ifInst "" (formula "8")) (ifInst "" (formula "25")) (ifInst "" (formula "4"))) + (rule "measuredByCheckEmpty" (formula "3") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "3")) + (rule "inEqSimp_commuteLeq" (formula "3") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) + (rule "inEqSimp_subsumption1" (formula "3") (term "0,0,0") (ifseqformula "13")) + (rule "leq_literals" (formula "3") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "3")) + (rule "inEqSimp_subsumption1" (formula "3") (term "0,0") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "3") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "0,0,0,0")) + (rule "add_literals" (formula "3") (term "1,1,0,0,0,0")) + (rule "times_zero_1" (formula "3") (term "1,0,0,0,0")) + (rule "add_literals" (formula "3") (term "0,0,0,0")) + (rule "qeq_literals" (formula "3") (term "0,0,0")) + (builtin "One Step Simplification" (formula "3")) + (rule "true_left" (formula "3")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "4") (term "0,1,1") (ifseqformula "8")) + (rule "castDel" (formula "4") (term "0,1,1")) + (rule "polySimp_elimSub" (formula "4") (term "3,1,2,0,1,1")) + (rule "mul_literals" (formula "4") (term "1,3,1,2,0,1,1")) + (rule "polySimp_elimSub" (formula "4") (term "0,2,0,0,0,2,0,1,1")) + (rule "mul_literals" (formula "4") (term "1,0,2,0,0,0,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "3,1,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "0,2,0,0,0,2,0,1,1")) + (rule "polySimp_addComm0" (formula "4") (term "2,0,1,1")) + (rule "inEqSimp_homoInEq1" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,0")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "0")) + (rule "inEqSimp_contradEq7" (formula "4") (term "0,0,0") (ifseqformula "12")) + (rule "times_zero_1" (formula "4") (term "1,0,0,0,0,0")) + (rule "add_literals" (formula "4") (term "0,0,0,0,0")) + (rule "leq_literals" (formula "4") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "polySimp_mulComm0" (formula "4") (term "0")) + (rule "polySimp_rightDist" (formula "4") (term "0")) + (rule "polySimp_mulComm0" (formula "4") (term "0,0")) + (rule "inEqSimp_homoInEq1" (formula "4")) + (rule "polySimp_mulComm0" (formula "4") (term "1,0")) + (rule "polySimp_rightDist" (formula "4") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,1,0")) + (rule "polySimp_mulAssoc" (formula "4") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "4") (term "0,0,1,0")) + (rule "polySimp_mulLiterals" (formula "4") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "4") (term "0")) + (rule "polySimp_addComm1" (formula "4") (term "0,0")) + (rule "inEqSimp_sepNegMonomial0" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "0")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "2") (term "1")) + (rule "eqSymm" (formula "2")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,0")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "2,0")) + (rule "inEqSimp_contradEq7" (formula "2") (term "0,0") (ifseqformula "12")) + (rule "times_zero_1" (formula "2") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "2") (term "0,0,0,0")) + (rule "leq_literals" (formula "2") (term "0,0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "polySimp_homoEq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0")) + (rule "polySimp_rightDist" (formula "2") (term "1,0")) + (rule "polySimp_mulComm0" (formula "2") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "2") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "applyEq" (formula "4") (term "0,0") (ifseqformula "2")) + (rule "polySimp_mulComm0" (formula "4") (term "0")) + (rule "polySimp_rightDist" (formula "4") (term "0")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,0")) + (rule "polySimp_mulComm0" (formula "4") (term "0,0")) + (rule "inEqSimp_homoInEq1" (formula "4")) + (rule "polySimp_mulComm0" (formula "4") (term "1,0")) + (rule "polySimp_rightDist" (formula "4") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,1,0")) + (rule "polySimp_mulAssoc" (formula "4") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "4") (term "0,0,1,0")) + (rule "polySimp_mulLiterals" (formula "4") (term "0,1,0")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "polySimp_addAssoc" (formula "4") (term "0,0")) + (rule "polySimp_addComm1" (formula "4") (term "0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "4") (term "0,0")) + (rule "add_literals" (formula "4") (term "1,1,0,0")) + (rule "times_zero_1" (formula "4") (term "1,0,0")) + (rule "add_zero_right" (formula "4") (term "0,0")) + (rule "inEqSimp_sepNegMonomial0" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "0")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "3") (term "1") (ifseqformula "8")) + (rule "castDel" (formula "3") (term "1")) + (rule "polySimp_elimSub" (formula "3") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "3") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "3") (term "3,1,2,1")) + (rule "mul_literals" (formula "3") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "3") (term "2,1")) + (rule "applyEq" (formula "3") (term "1,2,1") (ifseqformula "2")) + (rule "polySimp_addAssoc" (formula "3") (term "2,1")) + (rule "polySimp_addComm0" (formula "3") (term "0,2,1")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "2,1")) + (rule "add_literals" (formula "3") (term "1,1,2,1")) + (rule "times_zero_1" (formula "3") (term "1,2,1")) + (rule "add_zero_right" (formula "3") (term "2,1")) + (rule "inEqSimp_contradEq7" (formula "3") (term "0,1") (ifseqformula "12")) + (rule "times_zero_1" (formula "3") (term "1,0,0,0,1")) + (rule "add_zero_right" (formula "3") (term "0,0,0,1")) + (rule "leq_literals" (formula "3") (term "0,0,1")) + (builtin "One Step Simplification" (formula "3")) + (rule "allLeft" (formula "18") (inst "t=x_0")) + (rule "eqSymm" (formula "18") (term "0,0,0,1")) + (rule "replace_known_right" (formula "18") (term "0") (ifseqformula "23")) + (builtin "One Step Simplification" (formula "18")) + (rule "applyEq" (formula "18") (term "0,0") (ifseqformula "2")) + (rule "polySimp_mulComm0" (formula "18") (term "0")) + (rule "polySimp_rightDist" (formula "18") (term "0")) + (rule "polySimp_mulLiterals" (formula "18") (term "1,0")) + (rule "polySimp_mulComm0" (formula "18") (term "0,0")) + (rule "inEqSimp_homoInEq0" (formula "18")) + (rule "polySimp_mulComm0" (formula "18") (term "1,0")) + (rule "polySimp_rightDist" (formula "18") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "18") (term "1,1,0")) + (rule "polySimp_mulAssoc" (formula "18") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "18") (term "0,0,1,0")) + (rule "polySimp_mulLiterals" (formula "18") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "18") (term "0")) + (rule "polySimp_addComm1" (formula "18") (term "0,0")) + (rule "polySimp_pullOutFactor0b" (formula "18") (term "0")) + (rule "add_literals" (formula "18") (term "1,1,0")) + (rule "times_zero_1" (formula "18") (term "1,0")) + (rule "add_zero_right" (formula "18") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "18")) + (rule "polySimp_mulLiterals" (formula "18") (term "0")) + (rule "ifthenelse_split" (formula "2") (term "0")) + (branch "a[-1 + k_0] = x_0 TRUE" + (rule "polySimp_homoEq" (formula "3")) + (rule "mul_literals" (formula "3") (term "1,0")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "polySimp_addComm0" (formula "3") (term "0,0")) + (rule "applyEq" (formula "21") (term "0") (ifseqformula "2")) + (rule "applyEq" (formula "20") (term "1,0,0,0,1,0") (ifseqformula "2")) + (rule "polySimp_sepNegMonomial" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "ifthenelse_split" (formula "5") (term "0,0")) + (branch "a[k_0] = x_0 TRUE" + (rule "mul_literals" (formula "6") (term "0")) + (rule "inEqSimp_homoInEq1" (formula "6")) + (rule "mul_literals" (formula "6") (term "1,0")) + (rule "polySimp_addComm1" (formula "6") (term "0")) + (rule "polySimp_addComm1" (formula "6") (term "0,0")) + (rule "polySimp_addComm1" (formula "6") (term "0,0,0")) + (rule "add_literals" (formula "6") (term "0,0,0,0")) + (rule "applyEq" (formula "25") (term "0") (ifseqformula "5")) + (rule "inEqSimp_sepNegMonomial0" (formula "6")) + (rule "polySimp_mulLiterals" (formula "6") (term "0")) + (rule "inEqSimp_contradInEq4" (formula "20") (ifseqformula "6")) + (rule "greater_literals" (formula "20") (term "0,0")) + (builtin "One Step Simplification" (formula "20")) + (rule "greater_literals" (formula "20") (term "0,0")) + (builtin "One Step Simplification" (formula "20")) + (rule "andLeft" (formula "20")) + (rule "polySimp_rightDist" (formula "20") (term "1")) + (rule "polySimp_mulLiterals" (formula "20") (term "1,1")) + (rule "polySimp_rightDist" (formula "20") (term "0")) + (rule "polySimp_mulLiterals" (formula "20") (term "1,0")) + (rule "polySimp_mulComm0" (formula "20") (term "0,0")) + (rule "polySimp_rightDist" (formula "20") (term "0,1")) + (rule "mul_literals" (formula "20") (term "0,0,1")) + (rule "inEqSimp_homoInEq1" (formula "20")) + (rule "polySimp_mulComm0" (formula "20") (term "1,0")) + (rule "polySimp_rightDist" (formula "20") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "20") (term "1,1,0")) + (rule "polySimp_mulAssoc" (formula "20") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "20") (term "0,0,1,0")) + (rule "polySimp_mulLiterals" (formula "20") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "20") (term "0")) + (rule "polySimp_addComm1" (formula "20") (term "0,0")) + (rule "polySimp_pullOutFactor0b" (formula "20") (term "0")) + (rule "add_literals" (formula "20") (term "1,1,0")) + (rule "times_zero_1" (formula "20") (term "1,0")) + (rule "add_zero_right" (formula "20") (term "0")) + (rule "polySimp_pullOutFactor0b" (formula "20") (term "0")) + (rule "add_literals" (formula "20") (term "1,1,0")) + (rule "times_zero_1" (formula "20") (term "1,0")) + (rule "add_literals" (formula "20") (term "0")) + (rule "leq_literals" (formula "20")) + (rule "closeFalse" (formula "20")) + ) + (branch "a[k_0] = x_0 FALSE" + (rule "mul_literals" (formula "5") (term "0")) + (rule "inEqSimp_homoInEq1" (formula "5")) + (rule "times_zero_2" (formula "5") (term "1,0")) + (rule "add_zero_right" (formula "5") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "5")) + (rule "polySimp_mulLiterals" (formula "5") (term "0")) + (rule "inEqSimp_contradInEq1" (formula "19") (ifseqformula "5")) + (rule "andLeft" (formula "19")) + (rule "inEqSimp_homoInEq1" (formula "19")) + (rule "polySimp_mulComm0" (formula "19") (term "1,0")) + (rule "polySimp_rightDist" (formula "19") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "19") (term "1,1,0")) + (rule "polySimp_elimOne" (formula "19") (term "1,1,0")) + (rule "polySimp_mulComm0" (formula "19") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "19") (term "0")) + (rule "polySimp_addComm1" (formula "19") (term "0,0")) + (rule "polySimp_pullOutFactor2b" (formula "19") (term "0")) + (rule "add_literals" (formula "19") (term "1,1,0")) + (rule "times_zero_1" (formula "19") (term "1,0")) + (rule "add_zero_right" (formula "19") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "19") (term "0")) + (rule "add_literals" (formula "19") (term "1,1,0")) + (rule "times_zero_1" (formula "19") (term "1,0")) + (rule "add_zero_right" (formula "19") (term "0")) + (rule "leq_literals" (formula "19")) + (rule "closeFalse" (formula "19")) + ) + ) + (branch "a[-1 + k_0] = x_0 FALSE" + (rule "polySimp_homoEq" (formula "2")) + (rule "times_zero_2" (formula "2") (term "1,0")) + (rule "add_zero_right" (formula "2") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "ifthenelse_split" (formula "4") (term "0,0")) + (branch "a[k_0] = x_0 TRUE" + (rule "mul_literals" (formula "5") (term "0")) + (rule "inEqSimp_homoInEq1" (formula "5")) + (rule "mul_literals" (formula "5") (term "1,0")) + (rule "polySimp_addComm1" (formula "5") (term "0")) + (rule "polySimp_addComm1" (formula "5") (term "0,0")) + (rule "polySimp_addComm1" (formula "5") (term "0,0,0")) + (rule "add_literals" (formula "5") (term "0,0,0,0")) + (rule "applyEq" (formula "26") (term "0") (ifseqformula "4")) + (rule "inEqSimp_sepNegMonomial0" (formula "5")) + (rule "polySimp_mulLiterals" (formula "5") (term "0")) + (rule "inEqSimp_contradInEq4" (formula "19") (ifseqformula "5")) + (rule "greater_literals" (formula "19") (term "0,1,0")) + (builtin "One Step Simplification" (formula "19")) + (rule "greater_literals" (formula "19") (term "0,0")) + (builtin "One Step Simplification" (formula "19")) + (rule "andLeft" (formula "19")) + (rule "polySimp_rightDist" (formula "19") (term "0")) + (rule "polySimp_mulLiterals" (formula "19") (term "1,0")) + (rule "polySimp_mulComm0" (formula "19") (term "0,0")) + (rule "polySimp_rightDist" (formula "19") (term "1")) + (rule "polySimp_mulLiterals" (formula "19") (term "1,1")) + (rule "polySimp_rightDist" (formula "19") (term "0,1")) + (rule "mul_literals" (formula "19") (term "0,0,1")) + (rule "inEqSimp_homoInEq1" (formula "19")) + (rule "polySimp_mulComm0" (formula "19") (term "1,0")) + (rule "polySimp_rightDist" (formula "19") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "19") (term "1,1,0")) + (rule "polySimp_mulAssoc" (formula "19") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "19") (term "0,0,1,0")) + (rule "polySimp_mulLiterals" (formula "19") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "19") (term "0")) + (rule "polySimp_addComm1" (formula "19") (term "0,0")) + (rule "polySimp_pullOutFactor0b" (formula "19") (term "0")) + (rule "add_literals" (formula "19") (term "1,1,0")) + (rule "times_zero_1" (formula "19") (term "1,0")) + (rule "add_zero_right" (formula "19") (term "0")) + (rule "polySimp_pullOutFactor0b" (formula "19") (term "0")) + (rule "add_literals" (formula "19") (term "1,1,0")) + (rule "times_zero_1" (formula "19") (term "1,0")) + (rule "add_zero_right" (formula "19") (term "0")) + (rule "leq_literals" (formula "19")) + (rule "closeFalse" (formula "19")) + ) + (branch "a[k_0] = x_0 FALSE" + (rule "times_zero_2" (formula "4") (term "0")) + (rule "inEqSimp_homoInEq1" (formula "4")) + (rule "times_zero_2" (formula "4") (term "1,0")) + (rule "add_zero_right" (formula "4") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "0")) + (rule "inEqSimp_contradInEq1" (formula "18") (ifseqformula "4")) + (rule "andLeft" (formula "18")) + (rule "inEqSimp_homoInEq1" (formula "18")) + (rule "polySimp_mulComm0" (formula "18") (term "1,0")) + (rule "polySimp_rightDist" (formula "18") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "18") (term "1,1,0")) + (rule "polySimp_elimOne" (formula "18") (term "1,1,0")) + (rule "polySimp_mulComm0" (formula "18") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "18") (term "0")) + (rule "polySimp_addComm1" (formula "18") (term "0,0")) + (rule "polySimp_pullOutFactor2b" (formula "18") (term "0")) + (rule "add_literals" (formula "18") (term "1,1,0")) + (rule "times_zero_1" (formula "18") (term "1,0")) + (rule "add_zero_right" (formula "18") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "18") (term "0")) + (rule "add_literals" (formula "18") (term "1,1,0")) + (rule "times_zero_1" (formula "18") (term "1,0")) + (rule "add_zero_right" (formula "18") (term "0")) + (rule "leq_literals" (formula "18")) + (rule "closeFalse" (formula "18")) + ) + ) + ) + ) + ) + ) + (branch + (rule "polySimp_mulComm0" (formula "21") (term "0,0")) + (rule "polySimp_rightDist" (formula "21") (term "0,0")) + (rule "mul_literals" (formula "21") (term "0,0,0")) + (rule "precOfInt" (formula "21")) + (rule "inEqSimp_ltToLeq" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "1") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "21") (term "1")) + (rule "polySimp_rightDist" (formula "21") (term "1,0,0,1")) + (rule "polySimp_mulAssoc" (formula "21") (term "0,1,0,0,1")) + (rule "polySimp_mulComm0" (formula "21") (term "0,0,1,0,0,1")) + (rule "polySimp_mulLiterals" (formula "21") (term "0,1,0,0,1")) + (rule "polySimp_elimOne" (formula "21") (term "0,1,0,0,1")) + (rule "polySimp_addAssoc" (formula "21") (term "0,0,1")) + (rule "polySimp_addAssoc" (formula "21") (term "0,1")) + (rule "polySimp_addComm1" (formula "21") (term "0,0,1")) + (rule "polySimp_pullOutFactor2b" (formula "21") (term "0,1")) + (rule "add_literals" (formula "21") (term "1,1,0,1")) + (rule "times_zero_1" (formula "21") (term "1,0,1")) + (rule "add_zero_right" (formula "21") (term "0,1")) + (rule "polySimp_addAssoc" (formula "21") (term "0,1")) + (rule "polySimp_addComm1" (formula "21") (term "0,0,1")) + (rule "add_literals" (formula "21") (term "0,0,0,1")) + (rule "add_zero_left" (formula "21") (term "0,0,1")) + (rule "polySimp_pullOutFactor1" (formula "21") (term "0,1")) + (rule "add_literals" (formula "21") (term "1,0,1")) + (rule "times_zero_1" (formula "21") (term "0,1")) + (rule "leq_literals" (formula "21") (term "1")) + (builtin "One Step Simplification" (formula "21")) + (rule "inEqSimp_leqRight" (formula "21")) + (rule "add_zero_right" (formula "1") (term "0")) + (rule "polySimp_rightDist" (formula "1") (term "1,0")) + (rule "polySimp_rightDist" (formula "1") (term "0,1,0")) + (rule "mul_literals" (formula "1") (term "0,0,1,0")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0,1,0")) + (rule "polySimp_elimOne" (formula "1") (term "1,0,1,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0")) + (rule "inEqSimp_sepNegMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_strengthen1" (formula "14") (ifseqformula "19")) + (rule "add_zero_right" (formula "14") (term "1")) + (rule "inEqSimp_contradEq7" (formula "19") (ifseqformula "14")) + (rule "times_zero_1" (formula "19") (term "1,0,0")) + (rule "add_zero_right" (formula "19") (term "0,0")) + (rule "leq_literals" (formula "19") (term "0")) + (builtin "One Step Simplification" (formula "19")) + (rule "false_right" (formula "19")) + (rule "inEqSimp_subsumption1" (formula "13") (ifseqformula "2")) + (rule "inEqSimp_homoInEq0" (formula "13") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "13") (term "0,0")) + (rule "add_literals" (formula "13") (term "1,1,0,0")) + (rule "times_zero_1" (formula "13") (term "1,0,0")) + (rule "add_zero_right" (formula "13") (term "0,0")) + (rule "qeq_literals" (formula "13") (term "0")) + (builtin "One Step Simplification" (formula "13")) + (rule "true_left" (formula "13")) + (rule "inEqSimp_contradInEq0" (formula "2") (ifseqformula "1")) + (rule "andLeft" (formula "2")) + (rule "inEqSimp_homoInEq1" (formula "2")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "0")) + (rule "add_literals" (formula "2") (term "1,1,0")) + (rule "times_zero_1" (formula "2") (term "1,0")) + (rule "add_zero_right" (formula "2") (term "0")) + (rule "leq_literals" (formula "2")) + (rule "closeFalse" (formula "2")) + ) + ) + ) + (branch "Null Reference (mc == 0 = null)" + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "closeFalse" (formula "1")) + ) + (branch "Index Out of Bounds (mc == 0 != null, but k < _a.length Out of Bounds!)" + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "false_right" (formula "21")) + (rule "inEqSimp_ltToLeq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "1") (term "1")) + (rule "times_zero_1" (formula "1") (term "1,0,0,1")) + (rule "add_zero_right" (formula "1") (term "0,0,1")) + (rule "inEqSimp_sepNegMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) + (rule "mul_literals" (formula "1") (term "1,1")) + (rule "inEqSimp_strengthen1" (formula "14") (ifseqformula "18")) + (rule "add_zero_right" (formula "14") (term "1")) + (rule "inEqSimp_contradEq7" (formula "18") (ifseqformula "14")) + (rule "times_zero_1" (formula "18") (term "1,0,0")) + (rule "add_zero_right" (formula "18") (term "0,0")) + (rule "leq_literals" (formula "18") (term "0")) + (builtin "One Step Simplification" (formula "18")) + (rule "false_right" (formula "18")) + (rule "inEqSimp_contradInEq1" (formula "1") (term "0") (ifseqformula "2")) + (rule "inEqSimp_homoInEq1" (formula "1") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0")) + (rule "leq_literals" (formula "1") (term "0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_subsumption1" (formula "13") (ifseqformula "2")) + (rule "inEqSimp_homoInEq0" (formula "13") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "13") (term "0,0")) + (rule "add_literals" (formula "13") (term "1,1,0,0")) + (rule "times_zero_1" (formula "13") (term "1,0,0")) + (rule "add_zero_right" (formula "13") (term "0,0")) + (rule "qeq_literals" (formula "13") (term "0")) + (builtin "One Step Simplification" (formula "13")) + (rule "true_left" (formula "13")) + (rule "inEqSimp_contradInEq0" (formula "11") (ifseqformula "1")) + (rule "qeq_literals" (formula "11") (term "0")) + (builtin "One Step Simplification" (formula "11")) + (rule "closeFalse" (formula "11")) + ) + ) + ) + (branch "if k < _a.length false" + (builtin "One Step Simplification" (formula "19")) + (builtin "One Step Simplification" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + ) + (branch "Null Reference (mc == 0 = null)" + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) + (rule "closeFalse" (formula "1")) + ) + ) + (branch "Null Reference (mc == 0 = null)" + (rule "false_right" (formula "16")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) + (rule "closeFalse" (formula "1")) + ) +) +(branch "Use Case" + (builtin "One Step Simplification" (formula "12")) + (builtin "One Step Simplification" (formula "9")) + (rule "andLeft" (formula "9")) + (rule "andLeft" (formula "9")) + (rule "andLeft" (formula "9")) + (rule "andLeft" (formula "9")) + (rule "polySimp_elimSub" (formula "13") (term "1,1,0")) + (rule "polySimp_mulComm0" (formula "13") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "12") (term "0")) + (rule "inEqSimp_commuteLeq" (formula "10")) + (rule "inEqSimp_commuteLeq" (formula "9")) + (rule "variableDeclarationAssign" (formula "16") (term "1")) + (rule "variableDeclaration" (formula "16") (term "1") (newnames "b_1")) + (rule "limit_BoyerMoore_count[I\bigint\bigint" (formula "12") (term "0,0")) + (rule "compound_less_than_comparison_2" (formula "17") (term "1") (inst "#v1=i_1") (inst "#v0=i")) + (rule "variableDeclarationAssign" (formula "17") (term "1")) + (rule "variableDeclaration" (formula "17") (term "1") (newnames "i")) + (rule "assignment" (formula "17") (term "1")) + (builtin "One Step Simplification" (formula "17")) + (rule "variableDeclarationAssign" (formula "17") (term "1")) + (rule "variableDeclaration" (formula "17") (term "1") (newnames "i_1")) + (rule "assignment_read_length" (formula "17")) + (branch "Normal Execution (_a != null)" + (builtin "One Step Simplification" (formula "17")) + (rule "less_than_comparison_simple" (formula "17") (term "1")) + (builtin "One Step Simplification" (formula "17")) + (rule "methodCallEmpty" (formula "17") (term "1")) + (rule "emptyModality" (formula "17") (term "1")) + (builtin "One Step Simplification" (formula "17")) + (rule "impRight" (formula "17")) + (rule "notLeft" (formula "1")) + (rule "ifUnfold" (formula "18") (term "1") (inst "#boolv=b_2")) + (rule "variableDeclaration" (formula "18") (term "1") (newnames "b_2")) + (rule "equality_comparison_simple" (formula "18") (term "1")) + (builtin "One Step Simplification" (formula "18")) + (rule "ifSplit" (formula "18")) + (branch "if mc == 0 true" + (builtin "One Step Simplification" (formula "19")) + (builtin "One Step Simplification" (formula "1")) + (rule "applyEqRigid" (formula "14") (term "1,1") (ifseqformula "1")) + (rule "add_zero_right" (formula "14") (term "1")) + (rule "applyEqRigid" (formula "15") (term "0,1,1,1,0") (ifseqformula "1")) + (rule "times_zero_2" (formula "15") (term "1,1,1,0")) + (rule "add_zero_right" (formula "15") (term "1,1,0")) + (rule "applyEq" (formula "12") (term "0") (ifseqformula "1")) + (rule "qeq_literals" (formula "12")) + (rule "true_left" (formula "12")) + (rule "returnUnfold" (formula "18") (term "1") (inst "#v0=i_2")) + (rule "variableDeclarationAssign" (formula "18") (term "1")) + (rule "variableDeclaration" (formula "18") (term "1") (newnames "i_2")) + (rule "activeUseStaticFieldReadAccess" (formula "18") (term "1")) + (rule "assignment_read_static_attribute" (formula "18") (term "1")) + (builtin "One Step Simplification" (formula "18")) + (rule "methodCallReturn" (formula "18") (term "1")) + (builtin "One Step Simplification" (formula "18")) + (rule "assignment" (formula "18") (term "1")) + (builtin "One Step Simplification" (formula "18")) + (rule "methodCallEmpty" (formula "18") (term "1")) + (rule "tryEmpty" (formula "18") (term "1")) + (rule "emptyModality" (formula "18") (term "1")) + (rule "andRight" (formula "18")) + (branch + (rule "andRight" (formula "18")) + (branch "Case 1" + (rule "andRight" (formula "18")) + (branch "Case 1" + (rule "impRight" (formula "18")) + (builtin "One Step Simplification" (formula "1")) + (builtin "One Step Simplification" (formula "19")) + (rule "inEqSimp_ltRight" (formula "16")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_gtRight" (formula "19")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1")) + (rule "polySimp_elimOne" (formula "1") (term "1")) + (rule "inEqSimp_antiSymm" (formula "14") (ifseqformula "2")) + (rule "applyEq" (formula "1") (term "0,1") (ifseqformula "14")) + (rule "applyEq" (formula "1") (term "3,0") (ifseqformula "14")) + (rule "applyEq" (formula "2") (term "0") (ifseqformula "14")) + (rule "inEqSimp_homoInEq0" (formula "2")) + (rule "polySimp_pullOutFactor1" (formula "2") (term "0")) + (rule "add_literals" (formula "2") (term "1,0")) + (rule "times_zero_1" (formula "2") (term "0")) + (rule "qeq_literals" (formula "2")) + (rule "true_left" (formula "2")) + (rule "applyEq" (formula "14") (term "0") (ifseqformula "13")) + (rule "inEqSimp_homoInEq1" (formula "14")) + (rule "polySimp_pullOutFactor1" (formula "14") (term "0")) + (rule "add_literals" (formula "14") (term "1,0")) + (rule "times_zero_1" (formula "14") (term "0")) + (rule "leq_literals" (formula "14")) + (rule "true_left" (formula "14")) + (rule "nnf_imp2or" (formula "16") (term "0")) + (builtin "One Step Simplification" (formula "16")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "14") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "14") (term "0,1")) + (rule "replace_known_left" (formula "14") (term "1,0,0,0") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "14") (ifInst "" (formula "10")) (ifInst "" (formula "19")) (ifInst "" (formula "4")) (ifInst "" (formula "18")) (ifInst "" (formula "10"))) + (rule "measuredByCheckEmpty" (formula "14") (term "1,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "14")) + (rule "inEqSimp_commuteLeq" (formula "14") (term "0,0")) + (rule "replace_known_left" (formula "14") (term "0,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "14")) + (rule "inEqSimp_commuteLeq" (formula "14") (term "0")) + (rule "applyEq" (formula "14") (term "0,0") (ifseqformula "13")) + (rule "inEqSimp_homoInEq1" (formula "14") (term "0")) + (rule "polySimp_pullOutFactor1" (formula "14") (term "0,0")) + (rule "add_literals" (formula "14") (term "1,0,0")) + (rule "times_zero_1" (formula "14") (term "0,0")) + (rule "leq_literals" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "16") (term "0,0") (inst "l=l")) + (rule "eqSymm" (formula "16") (term "0,1")) + (rule "replace_known_left" (formula "16") (term "0,1,0,0,0,0,0") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "16") (ifInst "" (formula "20")) (ifInst "" (formula "4")) (ifInst "" (formula "5")) (ifInst "" (formula "19")) (ifInst "" (formula "14")) (ifInst "" (formula "10"))) + (rule "true_left" (formula "16")) + (rule "Static_class_invariant_axiom_for_IntOpt" (formula "9")) + (rule "andLeft" (formula "9")) + (rule "notLeft" (formula "9")) + (rule "notLeft" (formula "9")) + (rule "close" (formula "17") (ifseqformula "2")) + ) + (branch "Case 2" + (rule "andRight" (formula "18")) + (branch "Case 1" + (rule "impRight" (formula "18")) + (builtin "One Step Simplification" (formula "1")) + (builtin "One Step Simplification" (formula "19")) + (rule "notLeft" (formula "1")) + (rule "notRight" (formula "19")) + (rule "exLeft" (formula "1") (inst "sk=m_0")) + (rule "inEqSimp_ltRight" (formula "17")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_gtToGeq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1")) + (rule "polySimp_rightDist" (formula "2") (term "1")) + (rule "mul_literals" (formula "2") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "2") (term "1,1")) + (rule "polySimp_elimOne" (formula "2") (term "1,1")) + (rule "inEqSimp_antiSymm" (formula "13") (ifseqformula "1")) + (rule "applyEq" (formula "14") (term "0") (ifseqformula "13")) + (rule "inEqSimp_homoInEq1" (formula "14")) + (rule "polySimp_pullOutFactor1" (formula "14") (term "0")) + (rule "add_literals" (formula "14") (term "1,0")) + (rule "times_zero_1" (formula "14") (term "0")) + (rule "leq_literals" (formula "14")) + (rule "true_left" (formula "14")) + (rule "applyEq" (formula "1") (term "0") (ifseqformula "13")) + (rule "inEqSimp_homoInEq0" (formula "1")) + (rule "polySimp_pullOutFactor1" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "1,0")) + (rule "times_zero_1" (formula "1") (term "0")) + (rule "qeq_literals" (formula "1")) + (rule "true_left" (formula "1")) + (rule "applyEq" (formula "1") (term "3,0") (ifseqformula "12")) + (rule "applyEq" (formula "1") (term "0,1,1") (ifseqformula "12")) + (rule "nnf_imp2or" (formula "15") (term "0")) + (builtin "One Step Simplification" (formula "15")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "13") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "13") (term "0,1")) + (rule "replace_known_left" (formula "13") (term "1,0,0,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "13") (ifInst "" (formula "9")) (ifInst "" (formula "19")) (ifInst "" (formula "4")) (ifInst "" (formula "18")) (ifInst "" (formula "9"))) + (rule "measuredByCheckEmpty" (formula "13") (term "1,0") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "13")) + (rule "inEqSimp_commuteLeq" (formula "13") (term "1,0")) + (rule "inEqSimp_commuteLeq" (formula "13") (term "0,0")) + (rule "replace_known_left" (formula "13") (term "0,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "13")) + (rule "applyEq" (formula "13") (term "0,0") (ifseqformula "12")) + (rule "inEqSimp_homoInEq1" (formula "13") (term "0")) + (rule "polySimp_pullOutFactor1" (formula "13") (term "0,0")) + (rule "add_literals" (formula "13") (term "1,0,0")) + (rule "times_zero_1" (formula "13") (term "0,0")) + (rule "leq_literals" (formula "13") (term "0")) + (builtin "One Step Simplification" (formula "13")) + (rule "Static_class_invariant_axiom_for_IntOpt" (formula "8")) + (rule "andLeft" (formula "8")) + (rule "notLeft" (formula "8")) + (rule "notLeft" (formula "8")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "14") (term "0,0") (inst "l=l")) + (rule "eqSymm" (formula "14") (term "0,1")) + (rule "replace_known_left" (formula "14") (term "1,0,0,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "14") (ifInst "" (formula "8")) (ifInst "" (formula "20")) (ifInst "" (formula "4")) (ifInst "" (formula "19")) (ifInst "" (formula "12")) (ifInst "" (formula "8"))) + (rule "true_left" (formula "14")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "0") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "1,0,0,0,0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "9")) (ifInst "" (formula "20")) (ifInst "" (formula "5")) (ifInst "" (formula "19")) (ifInst "" (formula "9"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0")) + (rule "replace_known_left" (formula "1") (term "0,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0")) + (rule "applyEq" (formula "1") (term "0,0") (ifseqformula "12")) + (rule "inEqSimp_homoInEq1" (formula "1") (term "0")) + (rule "polySimp_pullOutFactor1" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "1,0,0")) + (rule "times_zero_1" (formula "1") (term "0,0")) + (rule "leq_literals" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "14") (term "1") (ifseqformula "6")) + (rule "castDel" (formula "14") (term "1")) + (rule "eqSymm" (formula "14")) + (rule "polySimp_elimSub" (formula "14") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "14") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_elimSub" (formula "14") (term "3,1,2,0")) + (rule "mul_literals" (formula "14") (term "1,3,1,2,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "14") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "14") (term "2,0")) + (rule "Class_invariant_axiom_for_BoyerMoore" (formula "9") (ifseqformula "6")) + (rule "true_left" (formula "9")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "14") (term "0,0") (ifseqformula "6")) + (rule "castDel" (formula "14") (term "0,0")) + (rule "polySimp_elimSub" (formula "14") (term "3,1,2,0,0")) + (rule "mul_literals" (formula "14") (term "1,3,1,2,0,0")) + (rule "polySimp_elimSub" (formula "14") (term "0,2,0,0,0,2,0,0")) + (rule "mul_literals" (formula "14") (term "1,0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "14") (term "3,1,2,0,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,2,0,0,0,2,0,0")) + (rule "polySimp_addComm0" (formula "14") (term "2,0,0")) + (rule "applyEq" (formula "14") (term "0,0") (ifseqformula "13")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "12") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "12") (term "0,1")) + (rule "replace_known_right" (formula "12") (term "0,1,1,0,0,0,0,0") (ifseqformula "20")) + (builtin "One Step Simplification" (formula "12") (ifInst "" (formula "4")) (ifInst "" (formula "5")) (ifInst "" (formula "19")) (ifInst "" (formula "13"))) + (rule "measuredByCheckEmpty" (formula "12") (term "1,0") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "12")) + (rule "inEqSimp_commuteLeq" (formula "12") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "12") (term "0,0,0")) + (rule "replace_known_left" (formula "12") (term "0,0,0") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "12")) + (rule "applyEq" (formula "12") (term "0,0,0") (ifseqformula "11")) + (rule "inEqSimp_homoInEq1" (formula "12") (term "0,0")) + (rule "polySimp_pullOutFactor1" (formula "12") (term "0,0,0")) + (rule "add_literals" (formula "12") (term "1,0,0,0")) + (rule "times_zero_1" (formula "12") (term "0,0,0")) + (rule "leq_literals" (formula "12") (term "0,0")) + (builtin "One Step Simplification" (formula "12")) + (rule "true_left" (formula "12")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "0") (ifseqformula "6")) + (rule "castDel" (formula "2") (term "0")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,0")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,0")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,0")) + (rule "polySimp_addComm0" (formula "2") (term "2,0")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "15") (term "0,0,1,0") (ifseqformula "6")) + (rule "castDel" (formula "15") (term "0,0,1,0")) + (rule "eqSymm" (formula "15") (term "0,0,2,0,0,1,0")) + (rule "polySimp_elimSub" (formula "15") (term "3,1,2,0,0,1,0")) + (rule "mul_literals" (formula "15") (term "1,3,1,2,0,0,1,0")) + (rule "polySimp_elimSub" (formula "15") (term "0,2,1,0,0,2,0,0,1,0")) + (rule "mul_literals" (formula "15") (term "1,0,2,1,0,0,2,0,0,1,0")) + (rule "polySimp_addComm0" (formula "15") (term "3,1,2,0,0,1,0")) + (rule "polySimp_addComm0" (formula "15") (term "0,2,1,0,0,2,0,0,1,0")) + (rule "polySimp_addComm0" (formula "15") (term "2,0,0,1,0")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "1") (term "1") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_right" (formula "1") (term "0,1,1,0,0,0,0,0") (ifseqformula "20")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "5")) (ifInst "" (formula "6")) (ifInst "" (formula "19")) (ifInst "" (formula "2"))) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "1,0,0")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) + (rule "replace_known_left" (formula "1") (term "0,0,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "1")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "13") (term "1") (ifseqformula "7")) + (rule "castDel" (formula "13") (term "1")) + (rule "polySimp_elimSub" (formula "13") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "13") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "13") (term "3,1,2,1")) + (rule "mul_literals" (formula "13") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "13") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "13") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "13") (term "2,1")) + (rule "applyEq" (formula "13") (term "1") (ifseqformula "14")) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "2") (term "1") (ifseqformula "7")) + (rule "castDel" (formula "2") (term "1")) + (rule "polySimp_elimSub" (formula "2") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "2") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_elimSub" (formula "2") (term "3,1,2,1")) + (rule "mul_literals" (formula "2") (term "1,3,1,2,1")) + (rule "polySimp_addComm0" (formula "2") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "2") (term "3,1,2,1")) + (rule "polySimp_addComm0" (formula "2") (term "2,1")) + (rule "Class_invariant_axiom_for_BoyerMoore" (formula "1") (term "1") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "jdiv_axiom" (formula "2") (term "1,1")) + (rule "eqSymm" (formula "2")) + (rule "replace_known_left" (formula "2") (term "0,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "2")) + (rule "eqSymm" (formula "2")) + (rule "applyEq" (formula "3") (term "1,1") (ifseqformula "2")) + (rule "ifthenelse_split" (formula "14") (term "0")) + (branch "k_0 = 0 TRUE" + (rule "eqSymm" (formula "15")) + (rule "replace_known_left" (formula "17") (term "0,0,0,1,0") (ifseqformula "14")) + (builtin "One Step Simplification" (formula "17")) + (rule "times_zero_2" (formula "17") (term "0,1,0")) + (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "14")) + (builtin "One Step Simplification" (formula "1")) + (rule "replace_known_left" (formula "3") (term "0,0") (ifseqformula "14")) + (builtin "One Step Simplification" (formula "3")) + (rule "inEqSimp_commuteLeq" (formula "17") (term "1,0")) + (rule "replace_known_left" (formula "17") (term "1,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "17")) + (rule "true_left" (formula "17")) + (rule "inEqSimp_homoInEq1" (formula "3")) + (rule "times_zero_2" (formula "3") (term "1,0")) + (rule "add_zero_right" (formula "3") (term "0")) + (rule "applyEqRigid" (formula "2") (term "0,0") (ifseqformula "14")) + (rule "eqSymm" (formula "2")) + (rule "jdiv_axiom_inline" (formula "2") (term "1")) + (rule "div_literals" (formula "2") (term "1,1")) + (rule "times_zero_2" (formula "2") (term "0,0,2,1")) + (rule "qeq_literals" (formula "2") (term "0,1")) + (builtin "One Step Simplification" (formula "2")) + (rule "applyEqRigid" (formula "16") (term "3,0,0") (ifseqformula "14")) + (rule "applyEq" (formula "13") (term "1,0") (ifseqformula "14")) + (rule "bsum_lower_equals_upper" (formula "13") (term "0")) + (rule "eqSymm" (formula "13")) + (rule "applyEq" (formula "14") (term "3,0") (ifseqformula "13")) + (rule "applyEq" (formula "11") (term "0") (ifseqformula "13")) + (rule "qeq_literals" (formula "11")) + (rule "true_left" (formula "11")) + (rule "applyEqRigid" (formula "14") (term "1") (ifseqformula "12")) + (rule "applyEqRigid" (formula "1") (term "1,0") (ifseqformula "12")) + (rule "bsum_lower_equals_upper" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "applyEqRigid" (formula "2") (term "0,1,0") (ifseqformula "11")) + (rule "div_literals" (formula "2") (term "1,0")) + (rule "add_zero_right" (formula "2") (term "0")) + (rule "leq_literals" (formula "2")) + (rule "closeFalse" (formula "2")) + ) + (branch "k_0 = 0 FALSE" + (rule "replace_known_right" (formula "1") (term "0,1") (ifseqformula "17")) + (builtin "One Step Simplification" (formula "1")) + (rule "replace_known_right" (formula "16") (term "0,0,0,1,0") (ifseqformula "17")) + (builtin "One Step Simplification" (formula "16")) + (rule "replace_known_right" (formula "3") (term "0,0") (ifseqformula "17")) + (builtin "One Step Simplification" (formula "3")) + (rule "polySimp_homoEq" (formula "14")) + (rule "polySimp_mulComm0" (formula "16") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "14") (term "1,0")) + (rule "polySimp_rightDist" (formula "16") (term "0,1,0")) + (rule "polySimp_mulComm0" (formula "16") (term "0,0,1,0")) + (rule "polySimp_rightDist" (formula "14") (term "1,0")) + (rule "polySimp_mulComm0" (formula "14") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "14") (term "0")) + (rule "inEqSimp_homoInEq1" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0")) + (rule "polySimp_rightDist" (formula "3") (term "1,0")) + (rule "polySimp_mulComm0" (formula "3") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "3") (term "0")) + (rule "inEqSimp_homoInEq0" (formula "16") (term "1,0")) + (rule "polySimp_mulComm0" (formula "16") (term "1,0,1,0")) + (rule "polySimp_rightDist" (formula "16") (term "1,0,1,0")) + (rule "polySimp_mulLiterals" (formula "16") (term "1,1,0,1,0")) + (rule "polySimp_mulAssoc" (formula "16") (term "0,1,0,1,0")) + (rule "polySimp_mulComm0" (formula "16") (term "0,0,1,0,1,0")) + (rule "polySimp_mulLiterals" (formula "16") (term "0,1,0,1,0")) + (rule "polySimp_addAssoc" (formula "16") (term "0,1,0")) + (rule "polySimp_sepNegMonomial" (formula "14")) + (rule "polySimp_mulLiterals" (formula "14") (term "0")) + (rule "polySimp_elimOne" (formula "14") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "16") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "16") (term "0,1,0")) + (rule "inEqSimp_strengthen1" (formula "11") (ifseqformula "17")) + (rule "add_zero_right" (formula "11") (term "1")) + (rule "inEqSimp_contradEq7" (formula "17") (ifseqformula "11")) + (rule "times_zero_1" (formula "17") (term "1,0,0")) + (rule "add_zero_right" (formula "17") (term "0,0")) + (rule "leq_literals" (formula "17") (term "0")) + (builtin "One Step Simplification" (formula "17")) + (rule "false_right" (formula "17")) + (rule "arrayLengthNotNegative" (formula "12") (term "0")) + (rule "applyEq" (formula "12") (term "0") (ifseqformula "13")) + (rule "inEqSimp_subsumption1" (formula "12") (ifseqformula "11")) + (rule "leq_literals" (formula "12") (term "0")) + (builtin "One Step Simplification" (formula "12")) + (rule "true_left" (formula "12")) + (rule "arrayLengthIsAShort" (formula "12") (term "0")) + (builtin "One Step Simplification" (formula "12")) + (rule "true_left" (formula "12")) + (rule "div_axiom" (formula "2") (term "1") (inst "quotient=quotient_0")) + (rule "mul_literals" (formula "2") (term "1,1,1,1,1")) + (rule "qeq_literals" (formula "2") (term "0,1,1")) + (builtin "One Step Simplification" (formula "2")) + (rule "equal_literals" (formula "2") (term "0")) + (builtin "One Step Simplification" (formula "2")) + (rule "andLeft" (formula "2")) + (rule "andLeft" (formula "2")) + (rule "polySimp_addComm1" (formula "4") (term "1")) + (rule "add_literals" (formula "4") (term "0,1")) + (rule "inEqSimp_commuteLeq" (formula "3")) + (rule "inEqSimp_homoInEq1" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,0")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "applyEq" (formula "5") (term "1") (ifseqformula "2")) + (rule "applyEqRigid" (formula "6") (term "1,0,1") (ifseqformula "2")) + (rule "inEqSimp_sepPosMonomial0" (formula "4")) + (rule "polySimp_mulComm0" (formula "4") (term "1")) + (rule "polySimp_rightDist" (formula "4") (term "1")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,1")) + (rule "mul_literals" (formula "4") (term "0,1")) + (rule "inEqSimp_exactShadow3" (formula "14") (ifseqformula "4")) + (rule "mul_literals" (formula "14") (term "0,0")) + (rule "polySimp_addAssoc" (formula "14") (term "0")) + (rule "add_literals" (formula "14") (term "0,0")) + (rule "add_zero_left" (formula "14") (term "0")) + (rule "elimGcdGeq_antec" (formula "14") (inst "elimGcd=Z(2(#))") (inst "elimGcdLeftDiv=quotient_0") (inst "elimGcdRightDiv=Z(0(#))")) + (rule "polySimp_mulLiterals" (formula "14") (term "1,0,1,0")) + (rule "leq_literals" (formula "14") (term "0,0")) + (builtin "One Step Simplification" (formula "14")) + (rule "add_zero_right" (formula "14") (term "0,0,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "14") (term "0,0")) + (rule "add_literals" (formula "14") (term "1,1,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0")) + (rule "leq_literals" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "ifthenelse_split" (formula "1") (term "1,1")) + (branch "a[-1 + k_0] = m_0 TRUE" + (rule "replace_known_left" (formula "7") (term "0,0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "7")) + (rule "polySimp_addComm0" (formula "2") (term "1")) + (rule "inEqSimp_homoInEq1" (formula "7")) + (rule "mul_literals" (formula "7") (term "1,0")) + (rule "polySimp_addComm1" (formula "7") (term "0")) + (rule "polySimp_addComm1" (formula "7") (term "0,0")) + (rule "add_literals" (formula "7") (term "0,0,0")) + (rule "add_zero_left" (formula "7") (term "0,0")) + (rule "applyEq" (formula "19") (term "0,0,0") (ifseqformula "1")) + (rule "eqSymm" (formula "19") (term "0,0")) + (rule "applyEq" (formula "21") (term "1,0,0,0,1,0") (ifseqformula "1")) + (rule "inEqSimp_sepNegMonomial0" (formula "7")) + (rule "polySimp_mulLiterals" (formula "7") (term "0")) + (rule "polySimp_elimOne" (formula "7") (term "0")) + (rule "onlyCreatedObjectsAreReferenced" (formula "23") (term "1,0") (ifseqformula "9")) + (rule "replace_known_right" (formula "1") (term "0") (ifseqformula "23")) + (builtin "One Step Simplification" (formula "1")) + (rule "ifthenelse_split" (formula "20") (term "0")) + (branch "mx_0 = m_0 TRUE" + (rule "polySimp_homoEq" (formula "21")) + (rule "mul_literals" (formula "21") (term "1,0")) + (rule "polySimp_addComm1" (formula "21") (term "0")) + (rule "polySimp_addComm0" (formula "21") (term "0,0")) + (rule "applyEq" (formula "21") (term "4,0,1,0") (ifseqformula "20")) + (rule "applyEq" (formula "22") (term "4,0,0") (ifseqformula "20")) + (rule "applyEqRigid" (formula "19") (term "4,1") (ifseqformula "20")) + (rule "applyEq" (formula "23") (term "1,0,0") (ifseqformula "20")) + (rule "applyEq" (formula "19") (term "1,0,2,0") (ifseqformula "20")) + (rule "applyEq" (formula "19") (term "0") (ifseqformula "3")) + (rule "polySimp_homoEq" (formula "19")) + (rule "polySimp_mulComm0" (formula "19") (term "1,0")) + (rule "polySimp_rightDist" (formula "19") (term "1,0")) + (rule "mul_literals" (formula "19") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "19") (term "0")) + (rule "polySimp_addComm0" (formula "19") (term "0,0")) + (rule "applyEqRigid" (formula "21") (term "4,1,0,0") (ifseqformula "20")) + (rule "polySimp_sepNegMonomial" (formula "19")) + (rule "polySimp_mulLiterals" (formula "19") (term "0")) + (rule "polySimp_elimOne" (formula "19") (term "0")) + (rule "applyEq" (formula "8") (term "0") (ifseqformula "19")) + (rule "inEqSimp_homoInEq1" (formula "8")) + (rule "polySimp_mulComm0" (formula "8") (term "1,0")) + (rule "polySimp_rightDist" (formula "8") (term "1,0")) + (rule "mul_literals" (formula "8") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "8") (term "0")) + (rule "polySimp_addComm0" (formula "8") (term "0,0")) + (rule "applyEq" (formula "3") (term "1,1") (ifseqformula "19")) + (rule "polySimp_addAssoc" (formula "3") (term "1")) + (rule "add_literals" (formula "3") (term "0,1")) + (rule "add_zero_left" (formula "3") (term "1")) + (rule "inEqSimp_sepNegMonomial0" (formula "8")) + (rule "polySimp_mulLiterals" (formula "8") (term "0")) + (rule "polySimp_elimOne" (formula "8") (term "0")) + (rule "inEqSimp_exactShadow2" (formula "8") (ifseqformula "21")) + (rule "greater_literals" (formula "8") (term "0")) + (builtin "One Step Simplification" (formula "8")) + (rule "polySimp_rightDist" (formula "8") (term "1,0,0")) + (rule "mul_literals" (formula "8") (term "0,1,0,0")) + (rule "polySimp_rightDist" (formula "8") (term "0,0")) + (rule "polySimp_mulLiterals" (formula "8") (term "1,0,0")) + (rule "mul_literals" (formula "8") (term "0,0,0")) + (rule "inEqSimp_sepPosMonomial1" (formula "8")) + (rule "polySimp_mulComm0" (formula "8") (term "1")) + (rule "polySimp_rightDist" (formula "8") (term "1")) + (rule "mul_literals" (formula "8") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "8") (term "1,1")) + (rule "inEqSimp_contradInEq1" (formula "6") (ifseqformula "8")) + (rule "andLeft" (formula "6")) + (rule "inEqSimp_homoInEq1" (formula "6")) + (rule "polySimp_mulComm0" (formula "6") (term "1,0")) + (rule "polySimp_rightDist" (formula "6") (term "1,0")) + (rule "mul_literals" (formula "6") (term "0,1,0")) + (rule "polySimp_mulLiterals" (formula "6") (term "1,1,0")) + (rule "polySimp_addAssoc" (formula "6") (term "0")) + (rule "polySimp_addComm1" (formula "6") (term "0,0")) + (rule "add_literals" (formula "6") (term "0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "6") (term "0")) + (rule "add_literals" (formula "6") (term "1,1,0")) + (rule "times_zero_1" (formula "6") (term "1,0")) + (rule "add_zero_right" (formula "6") (term "0")) + (rule "leq_literals" (formula "6")) + (rule "closeFalse" (formula "6")) + ) + (branch "mx_0 = m_0 FALSE" + (rule "polySimp_homoEq" (formula "20")) + (rule "times_zero_2" (formula "20") (term "1,0")) + (rule "add_zero_right" (formula "20") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "20")) + (rule "polySimp_mulLiterals" (formula "20") (term "0")) + (rule "polySimp_elimOne" (formula "20") (term "0")) + (rule "allLeft" (formula "22") (inst "t=m_0")) + (builtin "One Step Simplification" (formula "22")) + (rule "mul_literals" (formula "22") (term "0,1")) + (rule "eqSymm" (formula "22") (term "0")) + (rule "replace_known_right" (formula "22") (term "0") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "22")) + (rule "inEqSimp_homoInEq0" (formula "22")) + (rule "mul_literals" (formula "22") (term "1,0")) + (rule "polySimp_addComm1" (formula "22") (term "0")) + (rule "polySimp_addComm0" (formula "22") (term "0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "22")) + (rule "polySimp_mulLiterals" (formula "22") (term "0")) + (rule "inEqSimp_exactShadow2" (formula "8") (ifseqformula "22")) + (rule "greater_literals" (formula "8") (term "0")) + (builtin "One Step Simplification" (formula "8")) + (rule "polySimp_mulComm0" (formula "8") (term "1,0,0")) + (rule "polySimp_mulAssoc" (formula "8") (term "0,0")) + (rule "polySimp_mulComm0" (formula "8") (term "0,0,0")) + (rule "polySimp_mulLiterals" (formula "8") (term "0,0")) + (rule "polySimp_addAssoc" (formula "8") (term "0")) + (rule "polySimp_addComm0" (formula "8") (term "0,0")) + (rule "inEqSimp_sepPosMonomial1" (formula "8")) + (rule "polySimp_mulComm0" (formula "8") (term "1")) + (rule "polySimp_rightDist" (formula "8") (term "1")) + (rule "mul_literals" (formula "8") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "8") (term "1,1")) + (rule "inEqSimp_subsumption1" (formula "5") (ifseqformula "8")) + (rule "inEqSimp_homoInEq0" (formula "5") (term "0")) + (rule "polySimp_mulLiterals" (formula "5") (term "1,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "5") (term "0,0")) + (rule "add_literals" (formula "5") (term "1,1,0,0")) + (rule "times_zero_1" (formula "5") (term "1,0,0")) + (rule "add_zero_right" (formula "5") (term "0,0")) + (rule "qeq_literals" (formula "5") (term "0")) + (builtin "One Step Simplification" (formula "5")) + (rule "true_left" (formula "5")) + (rule "inEqSimp_contradInEq1" (formula "5") (ifseqformula "7")) + (rule "andLeft" (formula "5")) + (rule "inEqSimp_homoInEq1" (formula "5")) + (rule "polySimp_mulComm0" (formula "5") (term "1,0")) + (rule "polySimp_rightDist" (formula "5") (term "1,0")) + (rule "mul_literals" (formula "5") (term "0,1,0")) + (rule "polySimp_mulLiterals" (formula "5") (term "1,1,0")) + (rule "polySimp_addAssoc" (formula "5") (term "0")) + (rule "polySimp_addComm1" (formula "5") (term "0,0")) + (rule "add_literals" (formula "5") (term "0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "5") (term "0")) + (rule "add_literals" (formula "5") (term "1,1,0")) + (rule "times_zero_1" (formula "5") (term "1,0")) + (rule "add_literals" (formula "5") (term "0")) + (rule "leq_literals" (formula "5")) + (rule "closeFalse" (formula "5")) + ) + ) + (branch "a[-1 + k_0] = m_0 FALSE" + (rule "add_zero_right" (formula "1") (term "1")) + (rule "replace_known_right" (formula "6") (term "0,0") (ifseqformula "21")) + (builtin "One Step Simplification" (formula "6")) + (rule "inEqSimp_homoInEq1" (formula "6")) + (rule "times_zero_2" (formula "6") (term "1,0")) + (rule "add_zero_right" (formula "6") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "6")) + (rule "polySimp_mulLiterals" (formula "6") (term "0")) + (rule "polySimp_elimOne" (formula "6") (term "0")) + (rule "ifthenelse_split" (formula "18") (term "0")) + (branch "a[-1 + k_0] = mx_0 TRUE" + (rule "polySimp_homoEq" (formula "19")) + (rule "mul_literals" (formula "19") (term "1,0")) + (rule "polySimp_addComm1" (formula "19") (term "0")) + (rule "polySimp_addComm0" (formula "19") (term "0,0")) + (rule "applyEq" (formula "22") (term "0") (ifseqformula "18")) + (rule "applyEq" (formula "21") (term "1,0,0,0,1,0") (ifseqformula "18")) + (rule "polySimp_sepNegMonomial" (formula "19")) + (rule "polySimp_mulLiterals" (formula "19") (term "0")) + (rule "polySimp_elimOne" (formula "19") (term "0")) + (rule "onlyCreatedObjectsAreReferenced" (formula "24") (term "1,0") (ifseqformula "8")) + (rule "replace_known_right" (formula "1") (term "0") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "1")) + (rule "allLeft" (formula "22") (inst "t=m_0")) + (rule "eqSymm" (formula "22") (term "0,0,0,1")) + (rule "eqSymm" (formula "22") (term "0")) + (rule "replace_known_right" (formula "22") (term "0") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "22") (ifInst "" (formula "24"))) + (rule "times_zero_2" (formula "22") (term "0")) + (rule "inEqSimp_homoInEq0" (formula "22")) + (rule "mul_literals" (formula "22") (term "1,0")) + (rule "add_zero_right" (formula "22") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "22")) + (rule "polySimp_mulLiterals" (formula "22") (term "0")) + (rule "inEqSimp_exactShadow2" (formula "7") (ifseqformula "22")) + (rule "greater_literals" (formula "7") (term "0")) + (builtin "One Step Simplification" (formula "7")) + (rule "polySimp_rightDist" (formula "7") (term "1,0,0")) + (rule "mul_literals" (formula "7") (term "0,1,0,0")) + (rule "polySimp_rightDist" (formula "7") (term "0,0")) + (rule "polySimp_mulLiterals" (formula "7") (term "1,0,0")) + (rule "mul_literals" (formula "7") (term "0,0,0")) + (rule "inEqSimp_sepPosMonomial1" (formula "7")) + (rule "polySimp_mulComm0" (formula "7") (term "1")) + (rule "polySimp_rightDist" (formula "7") (term "1")) + (rule "mul_literals" (formula "7") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "7") (term "1,1")) + (rule "inEqSimp_subsumption1" (formula "4") (ifseqformula "7")) + (rule "inEqSimp_homoInEq0" (formula "4") (term "0")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "4") (term "0,0")) + (rule "add_literals" (formula "4") (term "1,1,0,0")) + (rule "times_zero_1" (formula "4") (term "1,0,0")) + (rule "add_zero_right" (formula "4") (term "0,0")) + (rule "qeq_literals" (formula "4") (term "0")) + (builtin "One Step Simplification" (formula "4")) + (rule "true_left" (formula "4")) + (rule "inEqSimp_contradInEq1" (formula "4") (ifseqformula "6")) + (rule "andLeft" (formula "4")) + (rule "inEqSimp_homoInEq1" (formula "4")) + (rule "polySimp_mulComm0" (formula "4") (term "1,0")) + (rule "polySimp_rightDist" (formula "4") (term "1,0")) + (rule "mul_literals" (formula "4") (term "0,1,0")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,1,0")) + (rule "polySimp_addAssoc" (formula "4") (term "0")) + (rule "polySimp_addComm1" (formula "4") (term "0,0")) + (rule "add_literals" (formula "4") (term "0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "4") (term "0")) + (rule "add_literals" (formula "4") (term "1,1,0")) + (rule "times_zero_1" (formula "4") (term "1,0")) + (rule "add_literals" (formula "4") (term "0")) + (rule "leq_literals" (formula "4")) + (rule "closeFalse" (formula "4")) + ) + (branch "a[-1 + k_0] = mx_0 FALSE" + (rule "polySimp_homoEq" (formula "18")) + (rule "times_zero_2" (formula "18") (term "1,0")) + (rule "add_zero_right" (formula "18") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "18")) + (rule "polySimp_mulLiterals" (formula "18") (term "0")) + (rule "polySimp_elimOne" (formula "18") (term "0")) + (rule "onlyCreatedObjectsAreReferenced" (formula "24") (term "1,0") (ifseqformula "8")) + (rule "replace_known_right" (formula "1") (term "0") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "1")) + (rule "allLeft" (formula "21") (inst "t=m_0")) + (rule "eqSymm" (formula "21") (term "0,0,0,1")) + (rule "eqSymm" (formula "21") (term "0")) + (rule "replace_known_right" (formula "21") (term "0,0,0,1") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "21")) + (rule "times_zero_2" (formula "21") (term "0,1")) + (rule "inEqSimp_homoInEq0" (formula "21") (term "1")) + (rule "times_zero_2" (formula "21") (term "1,0,1")) + (rule "add_zero_right" (formula "21") (term "0,1")) + (rule "inEqSimp_sepNegMonomial1" (formula "21") (term "1")) + (rule "polySimp_mulLiterals" (formula "21") (term "0,1")) + (rule "cut_direct" (formula "21") (term "1")) + (branch "CUT: self.(BoyerMoore::count$lmtd)(a, -1 + k_0, m_0) * 2 <= k_0 TRUE" + (builtin "One Step Simplification" (formula "22")) + (rule "true_left" (formula "22")) + (rule "inEqSimp_exactShadow2" (formula "7") (ifseqformula "21")) + (rule "greater_literals" (formula "7") (term "0")) + (builtin "One Step Simplification" (formula "7")) + (rule "polySimp_rightDist" (formula "7") (term "1,0,0")) + (rule "mul_literals" (formula "7") (term "0,1,0,0")) + (rule "polySimp_rightDist" (formula "7") (term "0,0")) + (rule "mul_literals" (formula "7") (term "0,0,0")) + (rule "polySimp_mulLiterals" (formula "7") (term "1,0,0")) + (rule "inEqSimp_sepPosMonomial1" (formula "7")) + (rule "polySimp_mulComm0" (formula "7") (term "1")) + (rule "polySimp_rightDist" (formula "7") (term "1")) + (rule "polySimp_mulLiterals" (formula "7") (term "1,1")) + (rule "mul_literals" (formula "7") (term "0,1")) + (rule "inEqSimp_contradInEq1" (formula "5") (ifseqformula "7")) + (rule "andLeft" (formula "5")) + (rule "inEqSimp_homoInEq1" (formula "5")) + (rule "polySimp_mulComm0" (formula "5") (term "1,0")) + (rule "polySimp_rightDist" (formula "5") (term "1,0")) + (rule "mul_literals" (formula "5") (term "0,1,0")) + (rule "polySimp_mulLiterals" (formula "5") (term "1,1,0")) + (rule "polySimp_addAssoc" (formula "5") (term "0")) + (rule "polySimp_addComm1" (formula "5") (term "0,0")) + (rule "add_literals" (formula "5") (term "0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "5") (term "0")) + (rule "add_literals" (formula "5") (term "1,1,0")) + (rule "times_zero_1" (formula "5") (term "1,0")) + (rule "add_zero_right" (formula "5") (term "0")) + (rule "leq_literals" (formula "5")) + (rule "closeFalse" (formula "5")) + ) + (branch "CUT: self.(BoyerMoore::count$lmtd)(a, -1 + k_0, m_0) * 2 <= k_0 FALSE" + (builtin "One Step Simplification" (formula "21")) + (rule "inEqSimp_leqRight" (formula "23")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) + (rule "applyEq" (formula "20") (term "4,0") (ifseqformula "22")) + (rule "applyEq" (formula "21") (term "4,0,0") (ifseqformula "22")) + (rule "applyEq" (formula "8") (term "0") (ifseqformula "20")) + (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "20")) + (rule "applyEqRigid" (formula "8") (term "4,0") (ifseqformula "22")) + (rule "applyEq" (formula "1") (term "4,0,1,0") (ifseqformula "22")) + (rule "applyEq" (formula "19") (term "1,0,2,0") (ifseqformula "22")) + (rule "applyEqRigid" (formula "24") (term "1") (ifseqformula "22")) + (rule "applyEq" (formula "19") (term "4,1") (ifseqformula "22")) + (rule "applyEq" (formula "23") (term "1,0,0") (ifseqformula "22")) + (rule "applyEqRigid" (formula "20") (term "4,1") (ifseqformula "22")) + (rule "applyEq" (formula "3") (term "0") (ifseqformula "19")) + (rule "eqSymm" (formula "3")) + (rule "inEqSimp_sepPosMonomial1" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "mul_literals" (formula "1") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,1")) + (rule "inEqSimp_contradInEq2" (formula "1") (ifseqformula "20")) + (rule "greater_literals" (formula "1") (term "0,1,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "greater_literals" (formula "1") (term "0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "andLeft" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "0")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "mul_literals" (formula "1") (term "0,1")) + (rule "inEqSimp_homoInEq1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0")) + (rule "polySimp_pullOutFactor0b" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "1,1,0")) + (rule "times_zero_1" (formula "1") (term "1,0")) + (rule "add_literals" (formula "1") (term "0")) + (rule "leq_literals" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + ) + ) + ) + ) + (branch "Case 2" + (rule "andRight" (formula "18")) + (branch "Case 1" + (builtin "One Step Simplification" (formula "18") (ifInst "" (formula "8"))) + (rule "closeTrue" (formula "18")) + ) + (branch "Case 2" + (builtin "One Step Simplification" (formula "18")) + (rule "notRight" (formula "18")) + (rule "inEqSimp_ltRight" (formula "16")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_antiSymm" (formula "13") (ifseqformula "1")) + (rule "applyEq" (formula "1") (term "0") (ifseqformula "13")) + (rule "inEqSimp_homoInEq0" (formula "1")) + (rule "polySimp_pullOutFactor1" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "1,0")) + (rule "times_zero_1" (formula "1") (term "0")) + (rule "qeq_literals" (formula "1")) + (rule "true_left" (formula "1")) + (rule "applyEq" (formula "13") (term "0") (ifseqformula "12")) + (rule "inEqSimp_homoInEq1" (formula "13")) + (rule "polySimp_pullOutFactor1" (formula "13") (term "0")) + (rule "add_literals" (formula "13") (term "1,0")) + (rule "times_zero_1" (formula "13") (term "0")) + (rule "leq_literals" (formula "13")) + (rule "true_left" (formula "13")) + (rule "nnf_imp2or" (formula "15") (term "0")) + (builtin "One Step Simplification" (formula "15")) + (rule "Static_class_invariant_axiom_for_IntOpt" (formula "8")) + (rule "andLeft" (formula "8")) + (rule "notLeft" (formula "8")) + (rule "close" (formula "16") (ifseqformula "1")) + ) + ) + ) + ) + (branch "Case 2" + (builtin "One Step Simplification" (formula "18")) + (rule "closeTrue" (formula "18")) + ) + ) + (branch + (builtin "One Step Simplification" (formula "18")) + (rule "closeTrue" (formula "18")) + ) + ) + (branch "if mc == 0 false" + (builtin "One Step Simplification" (formula "1")) + (builtin "One Step Simplification" (formula "19")) + (rule "notLeft" (formula "1")) + (rule "variableDeclarationAssign" (formula "19") (term "1")) + (rule "variableDeclaration" (formula "19") (term "1") (newnames "cnt")) + (rule "assignment" (formula "19") (term "1")) + (builtin "One Step Simplification" (formula "19")) + (rule "for_to_while" (formula "19") (term "1") (inst "#outerLabel=_label3") (inst "#innerLabel=_label2")) + (rule "variableDeclarationAssign" (formula "19") (term "1")) + (rule "variableDeclaration" (formula "19") (term "1") (newnames "r")) + (rule "assignment" (formula "19") (term "1")) + (builtin "One Step Simplification" (formula "19")) + (rule "elim_double_block_3" (formula "19") (term "1")) + (builtin "Loop Invariant" (formula "19") (newnames "variant_0,b_0,heapBefore_LOOP_0,rBefore_LOOP,cntBefore_LOOP,r_0,cnt_0,heap_After_LOOP_0,anon_heap_LOOP_0,o,f")) + (branch "Invariant Initially Valid" + (rule "andRight" (formula "19")) + (branch "Case 1" + (rule "andRight" (formula "19")) + (branch "Case 1" + (opengoal " wellFormed(heap)<>, ( boolean::select(heap, self, java.lang.Object::) = TRUE)<>, (BoyerMoore::exactInstance(self) = TRUE)<>, ( boolean::select(heap, a, java.lang.Object::) = TRUE)<>, measuredByEmpty<>, IntOpt::<$inv>(heap), java.lang.Object::(heap, self)<>, wellFormed(anon_heap_LOOP<>), geq(k_0, Z(0(#)))<>, geq(length(a), k_0)<>, geq(mc_0, Z(0(#)))<>, BoyerMoore::count$lmtd(heap, self, a, k_0, mx_0) = BoyerMoore::count(heap, self, a, k_0, mx_0), leq(mul(BoyerMoore::count(heap, self, a, k_0, mx_0), Z(2(#))), add(k_0, mc_0))<>, (\\forall int x; ( !x = mx_0 -> leq(mul(BoyerMoore::count(heap, self, a, k_0, x), Z(2(#))), add(k_0, mul(mc_0, Z(neglit(1(#))))))))<> ==> (mc_0 = Z(0(#)))< (implicit)\",\"[ensures @ file BoyerMoore.java @ line 34, ensures @ file BoyerMoore.java @ line 36, ensures (implicit), assignable (implicit)]\")>>, lt(k_0, length(a)), (self<> = null)<>, (a = null)<>, {(heapAtPre:=heap || _a:=a || exc:=null || mx:=mx_0 || cnt:=Z(0(#)) || r:=Z(0(#))< (implicit)\",\"[ensures @ file BoyerMoore.java @ line 34, ensures @ file BoyerMoore.java @ line 36, ensures (implicit), assignable (implicit)]\")>>)< (implicit)\",\"[ensures @ file BoyerMoore.java @ line 34, ensures @ file BoyerMoore.java @ line 36, ensures (implicit), assignable (implicit)]\")>>} (( (leq(Z(0(#)), r) & leq(r, length(_a)))<> & (cnt = BoyerMoore::count(heap, self, _a, r, mx))<>)<>)") + ) + (branch "Case 2" + (builtin "One Step Simplification" (formula "19")) + (rule "inEqSimp_ltRight" (formula "16")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_leqRight" (formula "19")) + (rule "add_zero_right" (formula "1") (term "0")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_strengthen1" (formula "13") (ifseqformula "17")) + (rule "add_zero_right" (formula "13") (term "1")) + (rule "inEqSimp_contradEq7" (formula "17") (ifseqformula "13")) + (rule "times_zero_1" (formula "17") (term "1,0,0")) + (rule "add_zero_right" (formula "17") (term "0,0")) + (rule "leq_literals" (formula "17") (term "0")) + (builtin "One Step Simplification" (formula "17")) + (rule "false_right" (formula "17")) + (rule "inEqSimp_antiSymm" (formula "12") (ifseqformula "2")) + (rule "applyEq" (formula "1") (term "0,0") (ifseqformula "12")) + (rule "applyEq" (formula "13") (term "0") (ifseqformula "12")) + (rule "inEqSimp_homoInEq1" (formula "13")) + (rule "polySimp_pullOutFactor1" (formula "13") (term "0")) + (rule "add_literals" (formula "13") (term "1,0")) + (rule "times_zero_1" (formula "13") (term "0")) + (rule "leq_literals" (formula "13")) + (rule "true_left" (formula "13")) + (rule "applyEq" (formula "2") (term "0") (ifseqformula "12")) + (rule "inEqSimp_homoInEq0" (formula "2")) + (rule "polySimp_pullOutFactor1" (formula "2") (term "0")) + (rule "add_literals" (formula "2") (term "1,0")) + (rule "times_zero_1" (formula "2") (term "0")) + (rule "qeq_literals" (formula "2")) + (rule "true_left" (formula "2")) + (rule "nnf_imp2or" (formula "15") (term "0")) + (builtin "One Step Simplification" (formula "15")) + (rule "jdiv_axiom" (formula "1") (term "0")) + (rule "eqSymm" (formula "1")) + (rule "replace_known_left" (formula "1") (term "0,0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "1")) + (rule "eqSymm" (formula "1")) + (rule "applyEqRigid" (formula "2") (term "0") (ifseqformula "1")) + (rule "div_axiom" (formula "1") (term "1") (inst "quotient=quotient_0")) + (rule "mul_literals" (formula "1") (term "1,1,1,1,1")) + (rule "qeq_literals" (formula "1") (term "0,1,1")) + (builtin "One Step Simplification" (formula "1")) + (rule "equal_literals" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) + (rule "andLeft" (formula "1")) + (rule "andLeft" (formula "1")) + (rule "polySimp_addComm1" (formula "3") (term "1")) + (rule "add_literals" (formula "3") (term "0,1")) + (rule "inEqSimp_commuteLeq" (formula "2")) + (rule "inEqSimp_homoInEq1" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "1,0")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "applyEqRigid" (formula "5") (term "0") (ifseqformula "1")) + (rule "applyEq" (formula "4") (term "1") (ifseqformula "1")) + (rule "inEqSimp_sepPosMonomial0" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1")) + (rule "polySimp_rightDist" (formula "3") (term "1")) + (rule "polySimp_mulLiterals" (formula "3") (term "1,1")) + (rule "mul_literals" (formula "3") (term "0,1")) + (rule "inEqSimp_exactShadow3" (formula "14") (ifseqformula "3")) + (rule "times_zero_1" (formula "14") (term "0,0")) + (rule "add_zero_left" (formula "14") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "14")) + (rule "mul_literals" (formula "14") (term "1")) + (rule "inEqSimp_contradInEq3" (formula "14") (ifseqformula "5")) + (rule "mul_literals" (formula "14") (term "0,1,0")) + (rule "greater_literals" (formula "14") (term "0,0")) + (builtin "One Step Simplification" (formula "14")) + (rule "qeq_literals" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "closeFalse" (formula "14")) + ) + ) + (branch "Case 2" + (opengoal " wellFormed(heap)<>, ( boolean::select(heap, self, java.lang.Object::) = TRUE)<>, (BoyerMoore::exactInstance(self) = TRUE)<>, ( boolean::select(heap, a, java.lang.Object::) = TRUE)<>, measuredByEmpty<>, IntOpt::<$inv>(heap), java.lang.Object::(heap, self)<>, wellFormed(anon_heap_LOOP<>), geq(k_0, Z(0(#)))<>, geq(length(a), k_0)<>, geq(mc_0, Z(0(#)))<>, BoyerMoore::count$lmtd(heap, self, a, k_0, mx_0) = BoyerMoore::count(heap, self, a, k_0, mx_0), leq(mul(BoyerMoore::count(heap, self, a, k_0, mx_0), Z(2(#))), add(k_0, mc_0))<>, (\\forall int x; ( !x = mx_0 -> leq(mul(BoyerMoore::count(heap, self, a, k_0, x), Z(2(#))), add(k_0, mul(mc_0, Z(neglit(1(#))))))))<> ==> (mc_0 = Z(0(#)))< (implicit)\",\"[ensures @ file BoyerMoore.java @ line 34, ensures @ file BoyerMoore.java @ line 36, ensures (implicit), assignable (implicit)]\")>>, lt(k_0, length(a)), (self<> = null)<>, (a = null)<>, {(heapAtPre:=heap || _a:=a || exc:=null || mx:=mx_0 || cnt:=Z(0(#)) || r:=Z(0(#))< (implicit)\",\"[ensures @ file BoyerMoore.java @ line 34, ensures @ file BoyerMoore.java @ line 36, ensures (implicit), assignable (implicit)]\")>>)< (implicit)\",\"[ensures @ file BoyerMoore.java @ line 34, ensures @ file BoyerMoore.java @ line 36, ensures (implicit), assignable (implicit)]\")>>} wellFormed(heap)") + ) + ) + (branch "Body Preserves Invariant" + (builtin "One Step Simplification" (formula "21")) + (builtin "One Step Simplification" (formula "16")) + (rule "impRight" (formula "21")) + (rule "andLeft" (formula "17")) + (rule "andLeft" (formula "17")) + (rule "andLeft" (formula "17")) + (rule "eqSymm" (formula "25") (term "1,0,0,0,1,1,1,0,1")) + (rule "eqSymm" (formula "25") (term "0,0,1,0,1,1,1,0,1")) + (rule "eqSymm" (formula "19")) + (rule "polySimp_elimSub" (formula "25") (term "0,1,1,1,1,0,1")) + (rule "polySimp_elimSub" (formula "25") (term "0,1,1,1,0")) + (rule "polySimp_addComm0" (formula "25") (term "0,1,1,1,1,0,1")) + (rule "polySimp_addComm0" (formula "25") (term "0,1,1,1,0")) + (rule "inEqSimp_commuteLeq" (formula "25") (term "1,0,0,1,1,1,0,1")) + (rule "inEqSimp_commuteLeq" (formula "25") (term "0,0,0,0,0,1,1,1,0,1")) + (rule "inEqSimp_commuteLeq" (formula "25") (term "1,0,0,0,0,1,1,1,0,1")) + (rule "inEqSimp_commuteLeq" (formula "20")) + (rule "inEqSimp_commuteLeq" (formula "17")) + (rule "inEqSimp_commuteLeq" (formula "18")) + (rule "variableDeclarationAssign" (formula "1") (term "1")) + (rule "variableDeclarationAssign" (formula "25") (term "1")) + (rule "variableDeclaration" (formula "1") (term "1") (newnames "b_0_1")) + (rule "variableDeclaration" (formula "25") (term "1") (newnames "rtrn")) + (rule "assignment" (formula "25") (term "1")) + (builtin "One Step Simplification" (formula "25")) + (rule "variableDeclaration" (formula "25") (term "1") (newnames "returnExpr")) + (rule "variableDeclarationAssign" (formula "25") (term "1")) + (rule "variableDeclaration" (formula "25") (term "1") (newnames "exc_1")) + (rule "assignment" (formula "25") (term "1")) + (builtin "One Step Simplification" (formula "25")) + (rule "variableDeclaration" (formula "25") (term "1") (newnames "thrownExc")) + (rule "blockReturn" (formula "25") (term "1,0,1,0,1")) + (rule "blockThrow" (formula "25") (term "1,0,0,1")) + (rule "boxToDiamond" (formula "1") (term "1")) + (builtin "One Step Simplification" (formula "1")) + (rule "notLeft" (formula "1")) + (rule "limit_BoyerMoore_count[I\bigint\bigint" (formula "18") (term "0")) + (rule "applyEq" (formula "18") (term "1") (ifseqformula "19")) + (rule "compound_less_than_comparison_2" (formula "21") (term "1") (inst "#v1=i_3") (inst "#v0=i_2")) + (rule "variableDeclarationAssign" (formula "21") (term "1")) + (rule "variableDeclaration" (formula "21") (term "1") (newnames "i_2")) + (rule "assignment" (formula "21") (term "1")) + (builtin "One Step Simplification" (formula "21")) + (rule "variableDeclarationAssign" (formula "21") (term "1")) + (rule "variableDeclaration" (formula "21") (term "1") (newnames "i_3")) + (rule "assignment_read_length" (formula "21")) + (branch "Normal Execution (mc == 0 != null)" + (builtin "One Step Simplification" (formula "21")) + (rule "less_than_comparison_simple" (formula "21") (term "1")) + (builtin "One Step Simplification" (formula "21")) + (rule "methodCallEmpty" (formula "21") (term "1")) + (rule "emptyModality" (formula "21") (term "1")) + (builtin "One Step Simplification" (formula "21")) + (rule "notRight" (formula "21")) + (rule "ifUnfold" (formula "26") (term "1") (inst "#boolv=b_3")) + (rule "variableDeclaration" (formula "26") (term "1") (newnames "b_3")) + (rule "compound_less_than_comparison_2" (formula "26") (term "1") (inst "#v1=i_5") (inst "#v0=i_4")) + (rule "variableDeclarationAssign" (formula "26") (term "1")) + (rule "variableDeclaration" (formula "26") (term "1") (newnames "i_4")) + (rule "assignment" (formula "26") (term "1")) + (builtin "One Step Simplification" (formula "26")) + (rule "variableDeclarationAssign" (formula "26") (term "1")) + (rule "variableDeclaration" (formula "26") (term "1") (newnames "i_5")) + (rule "assignment_read_length" (formula "26")) + (branch "Normal Execution (mc == 0 != null)" + (builtin "One Step Simplification" (formula "26")) + (rule "less_than_comparison_simple" (formula "26") (term "1")) + (builtin "One Step Simplification" (formula "26")) + (rule "replace_known_left" (formula "26") (term "0,0,1,0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "26")) + (rule "arrayLengthNotNegative" (formula "11") (term "0")) + (rule "arrayLengthIsAShort" (formula "12") (term "0")) + (builtin "One Step Simplification" (formula "12")) + (rule "true_left" (formula "12")) + (rule "ifSplit" (formula "27")) + (branch "if r < _a.length true" + (builtin "One Step Simplification" (formula "28")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "ifUnfold" (formula "27") (term "1") (inst "#boolv=b_4")) + (rule "variableDeclaration" (formula "27") (term "1") (newnames "b_4")) + (rule "compound_equality_comparison_2" (formula "27") (term "1") (inst "#v1=i_7") (inst "#v0=i_6")) + (rule "variableDeclarationAssign" (formula "27") (term "1")) + (rule "variableDeclaration" (formula "27") (term "1") (newnames "i_6")) + (rule "assignment" (formula "27") (term "1")) + (builtin "One Step Simplification" (formula "27")) + (rule "variableDeclarationAssign" (formula "27") (term "1")) + (rule "variableDeclaration" (formula "27") (term "1") (newnames "i_7")) + (rule "assignment_array2" (formula "27")) + (branch "Normal Execution (mc == 0 != null)" + (builtin "One Step Simplification" (formula "27")) + (rule "equality_comparison_simple" (formula "27") (term "1")) + (builtin "One Step Simplification" (formula "27")) + (rule "eqSymm" (formula "27") (term "0,0,1,0")) + (rule "ifSplit" (formula "27")) + (branch "if mx == _a[r] true" + (builtin "One Step Simplification" (formula "28")) + (builtin "One Step Simplification" (formula "1")) + (rule "elim_double_block_2" (formula "28") (term "1")) + (rule "ifUnfold" (formula "28") (term "1") (inst "#boolv=b_5")) + (rule "variableDeclaration" (formula "28") (term "1") (newnames "b_5")) + (rule "compound_greater_than_comparison_2" (formula "28") (term "1") (inst "#v1=i_9") (inst "#v0=i_8")) + (rule "variableDeclarationAssign" (formula "28") (term "1")) + (rule "variableDeclaration" (formula "28") (term "1") (newnames "i_8")) + (rule "preincrement_assignment" (formula "28") (term "1")) + (rule "compound_reference_cast_expression_primitive" (formula "28") (term "1") (inst "#v=i_10")) + (rule "variableDeclarationAssign" (formula "28") (term "1")) + (rule "variableDeclaration" (formula "28") (term "1") (newnames "i_10")) + (rule "remove_parentheses_right" (formula "28") (term "1")) + (rule "assignmentAdditionInt" (formula "28") (term "1")) + (builtin "One Step Simplification" (formula "28")) + (rule "translateJavaAddInt" (formula "28") (term "0,1,0")) + (rule "polySimp_addComm0" (formula "28") (term "0,1,0")) + (rule "widening_identity_cast_5" (formula "28") (term "1")) + (rule "assignment" (formula "28") (term "1")) + (builtin "One Step Simplification" (formula "28")) + (rule "assignment" (formula "28") (term "1")) + (builtin "One Step Simplification" (formula "28")) + (rule "variableDeclarationAssign" (formula "28") (term "1")) + (rule "variableDeclaration" (formula "28") (term "1") (newnames "i_9")) + (rule "compound_division_1" (formula "28") (term "1") (inst "#v=i_11")) + (rule "variableDeclarationAssign" (formula "28") (term "1")) + (rule "variableDeclaration" (formula "28") (term "1") (newnames "i_11")) + (rule "assignment_read_length" (formula "28")) + (branch "Normal Execution (mc == 0 != null)" + (builtin "One Step Simplification" (formula "28")) + (rule "assignmentDivisionInt" (formula "28")) + (branch "Case 1" + (builtin "One Step Simplification" (formula "28")) + (rule "translateJavaDivInt" (formula "28") (term "0,1,0")) + (rule "greater_than_comparison_simple" (formula "28") (term "1")) + (builtin "One Step Simplification" (formula "28")) + (rule "ifSplit" (formula "28")) + (branch "if ++cnt > _a.length / 2 true" + (builtin "One Step Simplification" (formula "1")) + (builtin "One Step Simplification" (formula "29")) + (rule "elim_double_block_2" (formula "29") (term "1")) + (rule "methodCallUnfoldArguments" (formula "29") (term "1")) + (rule "variableDeclarationAssign" (formula "29") (term "1")) + (rule "variableDeclaration" (formula "29") (term "1") (newnames "var")) + (rule "assignment" (formula "29") (term "1")) + (builtin "One Step Simplification" (formula "29")) + (rule "variableDeclarationAssign" (formula "29") (term "1")) + (rule "variableDeclaration" (formula "29") (term "1") (newnames "var_1")) + (rule "elim_double_block_9" (formula "29") (term "1")) + (rule "assignmentAdditionInt" (formula "29") (term "1")) + (builtin "One Step Simplification" (formula "29")) + (rule "translateJavaAddInt" (formula "29") (term "0,1,0")) + (rule "polySimp_addComm0" (formula "29") (term "0,1,0")) + (rule "variableDeclarationAssign" (formula "29") (term "1")) + (rule "variableDeclaration" (formula "29") (term "1") (newnames "var_2")) + (rule "assignment" (formula "29") (term "1")) + (builtin "One Step Simplification" (formula "29")) + (builtin "Use Operation Contract" (formula "29") (newnames "heapBefore_monoLemma,exc_0") (contract "BoyerMoore[BoyerMoore::monoLemma([I,int,int)].JML normal_behavior operation contract.0") (modality "diamond")) + (branch "Post (monoLemma)" + (builtin "One Step Simplification" (formula "25") (ifInst "" (formula "10"))) + (builtin "One Step Simplification" (formula "30")) + (rule "andLeft" (formula "25")) + (rule "andLeft" (formula "26")) + (rule "inEqSimp_commuteLeq" (formula "26")) + (rule "blockEmpty" (formula "31") (term "1")) + (rule "limit_BoyerMoore_count[I\bigint\bigint" (formula "26") (term "1")) + (rule "limit_BoyerMoore_count[I\bigint\bigint" (formula "27") (term "0")) + (rule "methodCallParamThrow" (formula "33") (term "1,0,0,1")) + (rule "methodCallReturn" (formula "33") (term "1,0,1,0,1")) + (rule "assignment" (formula "33") (term "1,0,1,0,1")) + (rule "tryCatchThrow" (formula "33") (term "1,0,0,1")) + (rule "ifElseUnfold" (formula "33") (term "1,0,0,1") (inst "#boolv=b_6")) + (rule "variableDeclaration" (formula "33") (term "1,0,0,1") (newnames "b_6")) + (rule "methodCallEmpty" (formula "33") (term "1,1,0,1,0,1")) + (rule "equality_comparison_simple" (formula "33") (term "1,0,0,1")) + (rule "tryEmpty" (formula "33") (term "1,1,0,1,0,1")) + (rule "emptyModality" (formula "33") (term "1,1,0,1,0,1")) + (builtin "One Step Simplification" (formula "33")) + (rule "instanceCreationAssignment" (formula "33") (term "1") (inst "#v0=i_12")) + (rule "variableDeclarationAssign" (formula "33") (term "1")) + (rule "variableDeclaration" (formula "33") (term "1") (newnames "i_12")) + (rule "staticMethodCallStaticWithAssignmentViaTypereference" (formula "33") (term "1") (inst "#v0=i_13")) + (rule "variableDeclaration" (formula "33") (term "1") (newnames "i_13")) + (rule "methodBodyExpand" (formula "33") (term "1") (newnames "heapBefore_,savedHeapBefore_")) + (builtin "One Step Simplification" (formula "33")) + (rule "variableDeclaration" (formula "33") (term "1") (newnames "__NEW__")) + (rule "staticMethodCallStaticWithAssignmentViaTypereference" (formula "33") (term "1") (inst "#v0=i_14")) + (rule "variableDeclaration" (formula "33") (term "1") (newnames "i_14")) + (rule "allocateInstance" (formula "33")) + (builtin "One Step Simplification" (formula "34")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "5"))) + (rule "andLeft" (formula "1")) + (rule "andLeft" (formula "1")) + (rule "notLeft" (formula "2")) + (rule "notLeft" (formula "1")) + (rule "blockEmpty" (formula "36") (term "1")) + (rule "assignment" (formula "36") (term "1")) + (builtin "One Step Simplification" (formula "36")) + (rule "methodBodyExpand" (formula "36") (term "1") (newnames "heapBefore_,savedHeapBefore_")) + (builtin "One Step Simplification" (formula "36")) + (rule "assignment_write_attribute_this" (formula "36")) + (builtin "One Step Simplification" (formula "36")) + (rule "methodCallWithinClass" (formula "36") (term "1")) + (rule "methodBodyExpand" (formula "36") (term "1") (newnames "heapBefore_,savedHeapBefore_")) + (builtin "One Step Simplification" (formula "36")) + (rule "methodCallSuper" (formula "36") (term "1")) + (rule "methodBodyExpand" (formula "36") (term "1") (newnames "heapBefore_,savedHeapBefore_")) + (builtin "One Step Simplification" (formula "36")) + (rule "methodCallEmpty" (formula "36") (term "1")) + (rule "blockEmpty" (formula "36") (term "1")) + (rule "assignment_write_attribute_this" (formula "36")) + (builtin "One Step Simplification" (formula "36")) + (rule "assignment_write_attribute_this" (formula "36")) + (builtin "One Step Simplification" (formula "36")) + (rule "methodCallEmpty" (formula "36") (term "1")) + (rule "blockEmpty" (formula "36") (term "1")) + (rule "methodCallReturnIgnoreResult" (formula "36") (term "1")) + (rule "methodCallReturn" (formula "36") (term "1")) + (rule "assignment" (formula "36") (term "1")) + (builtin "One Step Simplification" (formula "36")) + (rule "methodCallEmpty" (formula "36") (term "1")) + (rule "blockEmpty" (formula "36") (term "1")) + (rule "assignment" (formula "36") (term "1")) + (builtin "One Step Simplification" (formula "36")) + (rule "variableDeclarationAssign" (formula "36") (term "1")) + (rule "variableDeclaration" (formula "36") (term "1") (newnames "var_3")) + (rule "assignment" (formula "36") (term "1")) + (builtin "One Step Simplification" (formula "36")) + (rule "methodBodyExpand" (formula "36") (term "1") (newnames "heapBefore_,savedHeapBefore_")) + (builtin "One Step Simplification" (formula "36")) + (rule "methodCallSuper" (formula "36") (term "1")) + (rule "methodBodyExpand" (formula "36") (term "1") (newnames "heapBefore__0,savedHeapBefore__0")) + (builtin "One Step Simplification" (formula "36")) + (rule "methodCallEmpty" (formula "36") (term "1")) + (rule "blockEmpty" (formula "36") (term "1")) + (rule "assignment_write_attribute_this" (formula "36")) + (builtin "One Step Simplification" (formula "36")) + (rule "assignment_write_attribute_this" (formula "36")) + (builtin "One Step Simplification" (formula "36")) + (rule "methodCallEmpty" (formula "36") (term "1")) + (rule "blockEmpty" (formula "36") (term "1")) + (rule "assignment_write_attribute" (formula "36")) + (branch "Normal Execution (i_12 != null)" + (builtin "One Step Simplification" (formula "36")) + (rule "assignment" (formula "36") (term "1")) + (builtin "One Step Simplification" (formula "36")) + (rule "assignment" (formula "36") (term "1")) + (builtin "One Step Simplification" (formula "36")) + (rule "blockBreakNoLabel" (formula "36") (term "1")) + (rule "blockBreakLabel" (formula "36") (term "1")) + (rule "blockEmpty" (formula "36") (term "1")) + (rule "tryEmpty" (formula "36") (term "1")) + (rule "methodCallEmpty" (formula "36") (term "1")) + (rule "emptyModality" (formula "36") (term "1")) + (builtin "One Step Simplification" (formula "36") (ifInst "" (formula "30"))) + (rule "andRight" (formula "36")) + (branch "Case 1" + (rule "andRight" (formula "36")) + (branch "Case 1" + (rule "impRight" (formula "36")) + (rule "dismissNonSelectedField" (formula "37") (term "4,0") (userinteraction)) + (rule "selectOfStore" (formula "37") (term "4,0") (userinteraction)) + (rule "ifthenelse_split" (formula "37") (term "4,0") (userinteraction)) + (branch " i_14 = i_14 & IntOpt::$value = IntOpt::$value & !IntOpt::$value = java.lang.Object:: TRUE" + (rule "castDel2" (formula "38") (term "4,0") (ifseqformula "5") (userinteraction)) + (rule "applyEq" (formula "38") (term "4,0") (ifseqformula "5") (userinteraction)) + (builtin "Use Dependency Contract" (formula "38") (term "0") (ifInst "" (formula "31") (term "0")) (contract "BoyerMoore[BoyerMoore::count([I,\bigint,\bigint)].JML accessible clause.0") (userinteraction)) + (rule "impLeft" (formula "32") (userinteraction)) + (branch "Case 1" + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "wellFormedStorePrimitive" (formula "31") (term "1,1,0,0,0,0")) + (rule "wellFormedStorePrimitive" (formula "31") (term "1,1,0,0,0,0")) + (rule "wellFormedStorePrimitive" (formula "31") (term "1,1,0,0,0,0")) + (rule "wellFormedCreate" (formula "31") (term "1,1,0,0,0,0")) + (builtin "One Step Simplification" (formula "31") (ifInst "" (formula "36")) (ifInst "" (formula "7")) (ifInst "" (formula "6")) (ifInst "" (formula "6")) (ifInst "" (formula "37")) (ifInst "" (formula "9")) (ifInst "" (formula "12")) (ifInst "" (formula "37"))) + (rule "dismissNonSelectedField" (formula "1") (term "0")) + (rule "disjointDefinition" (formula "31") (term "1,0")) + (rule "dismissNonSelectedField" (formula "1") (term "0")) + (rule "measuredByCheckEmpty" (formula "31") (term "1") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "31")) + (rule "inEqSimp_ltRight" (formula "35")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_gtRight" (formula "38")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "inEqSimp_gtToGeq" (formula "5")) + (rule "polySimp_mulComm0" (formula "5") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "5") (term "0")) + (rule "polySimp_addAssoc" (formula "5") (term "0,0")) + (rule "add_literals" (formula "5") (term "0,0,0")) + (rule "add_zero_left" (formula "5") (term "0,0")) + (rule "inEqSimp_ltToLeq" (formula "7")) + (rule "polySimp_mulComm0" (formula "7") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "7") (term "0")) + (rule "inEqSimp_commuteLeq" (formula "33") (term "0,0")) + (rule "replace_known_left" (formula "33") (term "0,0") (ifseqformula "17")) + (builtin "One Step Simplification" (formula "33")) + (rule "inEqSimp_homoInEq0" (formula "33") (term "0")) + (rule "polySimp_pullOutFactor1" (formula "33") (term "0,0")) + (rule "add_literals" (formula "33") (term "1,0,0")) + (rule "times_zero_1" (formula "33") (term "0,0")) + (rule "qeq_literals" (formula "33") (term "0")) + (builtin "One Step Simplification" (formula "33")) + (rule "inEqSimp_sepNegMonomial1" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1")) + (rule "polySimp_elimOne" (formula "1") (term "1")) + (rule "inEqSimp_sepNegMonomial1" (formula "5")) + (rule "polySimp_mulLiterals" (formula "5") (term "0")) + (rule "polySimp_elimOne" (formula "5") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "7")) + (rule "polySimp_mulLiterals" (formula "7") (term "0")) + (rule "polySimp_elimOne" (formula "7") (term "0")) + (rule "inEqSimp_strengthen1" (formula "19") (ifseqformula "36")) + (rule "add_zero_right" (formula "19") (term "1")) + (rule "inEqSimp_contradEq7" (formula "36") (ifseqformula "19")) + (rule "times_zero_1" (formula "36") (term "1,0,0")) + (rule "add_zero_right" (formula "36") (term "0,0")) + (rule "leq_literals" (formula "36") (term "0")) + (builtin "One Step Simplification" (formula "36")) + (rule "false_right" (formula "36")) + (rule "inEqSimp_subsumption1" (formula "25") (ifseqformula "7")) + (rule "inEqSimp_homoInEq0" (formula "25") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "25") (term "0,0")) + (rule "add_literals" (formula "25") (term "1,1,0,0")) + (rule "times_zero_1" (formula "25") (term "1,0,0")) + (rule "add_zero_right" (formula "25") (term "0,0")) + (rule "qeq_literals" (formula "25") (term "0")) + (builtin "One Step Simplification" (formula "25")) + (rule "true_left" (formula "25")) + (rule "distributeIntersection_2" (formula "32") (term "0")) + (rule "distributeIntersection_2" (formula "32") (term "1,0")) + (rule "intersectWithSingleton" (formula "32") (term "0,0")) + (builtin "One Step Simplification" (formula "32")) + (rule "sortsDisjointModuloNull" (formula "32") (term "0,0,0")) + (rule "replace_known_right" (formula "32") (term "0,0,0,0") (ifseqformula "33")) + (builtin "One Step Simplification" (formula "32") (ifInst "" (formula "36"))) + (rule "intersectWithSingleton" (formula "32") (term "0,0")) + (builtin "One Step Simplification" (formula "32")) + (rule "sortsDisjointModuloNull" (formula "32") (term "0,0,0")) + (rule "replace_known_right" (formula "32") (term "0,0,0,0") (ifseqformula "33")) + (builtin "One Step Simplification" (formula "32") (ifInst "" (formula "36"))) + (rule "disjointWithSingleton2" (formula "32")) + (builtin "One Step Simplification" (formula "32")) + (rule "notRight" (formula "32")) + (rule "sortsDisjointModuloNull" (formula "1")) + (rule "andLeft" (formula "1")) + (rule "close" (formula "37") (ifseqformula "2")) + ) + (branch "Case 2" + (rule "applyEq" (formula "39") (term "0") (ifseqformula "32") (userinteraction)) + (rule "applyEqReverse" (formula "4") (term "1,0") (ifseqformula "25") (userinteraction)) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "31") (term "1") (ifseqformula "9") (userinteraction)) + (rule "castDel" (formula "31") (term "1") (userinteraction)) + (rule "ifthenelse_split" (formula "31") (term "1") (userinteraction)) + (branch "1 + r_0 = 0 TRUE" + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "dismissNonSelectedField" (formula "1") (term "0")) + (rule "dismissNonSelectedField" (formula "1") (term "0")) + (rule "inEqSimp_ltRight" (formula "36")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_gtRight" (formula "39")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "inEqSimp_ltToLeq" (formula "7")) + (rule "polySimp_mulComm0" (formula "7") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "7") (term "0")) + (rule "inEqSimp_gtToGeq" (formula "5")) + (rule "polySimp_mulComm0" (formula "5") (term "1,0,0")) + (rule "polySimp_addAssoc" (formula "5") (term "0")) + (rule "polySimp_addComm1" (formula "5") (term "0,0")) + (rule "add_literals" (formula "5") (term "0,0,0")) + (rule "add_zero_left" (formula "5") (term "0,0")) + (rule "applyEq" (formula "5") (term "1,0") (ifseqformula "26")) + (rule "polySimp_addComm0" (formula "5") (term "0")) + (rule "polySimp_sepPosMonomial" (formula "32")) + (rule "mul_literals" (formula "32") (term "1")) + (rule "applyEq" (formula "24") (term "0") (ifseqformula "32")) + (rule "qeq_literals" (formula "24")) + (rule "closeFalse" (formula "24")) + ) + (branch "1 + r_0 = 0 FALSE" + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "polySimp_elimSub" (formula "30") (term "0,2,0,0,0,1")) + (rule "mul_literals" (formula "30") (term "1,0,2,0,0,0,1")) + (rule "polySimp_elimSub" (formula "30") (term "3,1,1")) + (rule "mul_literals" (formula "30") (term "1,3,1,1")) + (rule "polySimp_addComm1" (formula "30") (term "0,2,0,0,0,1")) + (rule "add_literals" (formula "30") (term "0,0,2,0,0,0,1")) + (rule "add_zero_left" (formula "30") (term "0,2,0,0,0,1")) + (rule "replace_known_left" (formula "30") (term "0,0,1") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "30")) + (rule "polySimp_addComm1" (formula "30") (term "3,1,1")) + (rule "add_literals" (formula "30") (term "0,3,1,1")) + (rule "add_zero_left" (formula "30") (term "3,1,1")) + (rule "dismissNonSelectedField" (formula "1") (term "0")) + (rule "inEqSimp_gtRight" (formula "39")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "inEqSimp_ltRight" (formula "37")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "dismissNonSelectedField" (formula "3") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "7")) + (rule "polySimp_mulComm0" (formula "7") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "7") (term "0")) + (rule "inEqSimp_gtToGeq" (formula "5")) + (rule "polySimp_mulComm0" (formula "5") (term "1,0,0")) + (rule "polySimp_addAssoc" (formula "5") (term "0")) + (rule "polySimp_addComm1" (formula "5") (term "0,0")) + (rule "add_literals" (formula "5") (term "0,0,0")) + (rule "add_zero_left" (formula "5") (term "0,0")) + (rule "inEqSimp_homoInEq1" (formula "32")) + (rule "polySimp_addComm1" (formula "32") (term "0")) + (rule "applyEq" (formula "5") (term "1,0") (ifseqformula "26")) + (rule "polySimp_addComm0" (formula "5") (term "0")) + (rule "applyEq" (formula "32") (term "1,0") (ifseqformula "26")) + (rule "polySimp_addComm1" (formula "32") (term "0")) + (rule "polySimp_sepPosMonomial" (formula "34")) + (rule "mul_literals" (formula "34") (term "1")) + (rule "inEqSimp_sepPosMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "1")) + (rule "polySimp_elimOne" (formula "2") (term "1")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "7")) + (rule "polySimp_mulLiterals" (formula "7") (term "0")) + (rule "polySimp_elimOne" (formula "7") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "5")) + (rule "polySimp_mulLiterals" (formula "5") (term "0")) + (rule "polySimp_elimOne" (formula "5") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "32")) + (rule "polySimp_mulLiterals" (formula "32") (term "0")) + (rule "polySimp_elimOne" (formula "32") (term "0")) + (rule "inEqSimp_contradEq7" (formula "34") (ifseqformula "24")) + (rule "add_zero_left" (formula "34") (term "0,0")) + (rule "mul_literals" (formula "34") (term "0,0")) + (rule "leq_literals" (formula "34") (term "0")) + (builtin "One Step Simplification" (formula "34")) + (rule "false_right" (formula "34")) + (rule "inEqSimp_strengthen1" (formula "19") (ifseqformula "36")) + (rule "add_literals" (formula "19") (term "1")) + (rule "inEqSimp_contradEq7" (formula "36") (ifseqformula "19")) + (rule "times_zero_1" (formula "36") (term "1,0,0")) + (rule "add_zero_right" (formula "36") (term "0,0")) + (rule "leq_literals" (formula "36") (term "0")) + (builtin "One Step Simplification" (formula "36")) + (rule "false_right" (formula "36")) + (rule "inEqSimp_subsumption1" (formula "25") (ifseqformula "7")) + (rule "inEqSimp_homoInEq0" (formula "25") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "25") (term "0,0")) + (rule "add_literals" (formula "25") (term "1,1,0,0")) + (rule "times_zero_1" (formula "25") (term "1,0,0")) + (rule "add_zero_right" (formula "25") (term "0,0")) + (rule "qeq_literals" (formula "25") (term "0")) + (builtin "One Step Simplification" (formula "25")) + (rule "true_left" (formula "25")) + (rule "pullOutSelect" (formula "3") (term "0") (inst "selectSK=IntOpt_present_0")) + (rule "simplifySelectOfStore" (formula "3")) + (builtin "One Step Simplification" (formula "3")) + (rule "castDel" (formula "3") (term "0")) + (rule "applyEqReverse" (formula "4") (term "0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "4")) + (rule "true_left" (formula "4")) + (rule "hideAuxiliaryEq" (formula "3")) + (rule "inEqSimp_antiSymm" (formula "17") (ifseqformula "1")) + (rule "applyEq" (formula "2") (term "0,1") (ifseqformula "17")) + (rule "applyEq" (formula "27") (term "0,0") (ifseqformula "17")) + (rule "applyEq" (formula "1") (term "0") (ifseqformula "17")) + (rule "inEqSimp_homoInEq0" (formula "1")) + (rule "polySimp_pullOutFactor1" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "1,0")) + (rule "times_zero_1" (formula "1") (term "0")) + (rule "qeq_literals" (formula "1")) + (rule "true_left" (formula "1")) + (rule "applyEq" (formula "29") (term "3,0") (ifseqformula "16")) + (rule "applyEq" (formula "30") (term "3,0") (ifseqformula "16")) + (rule "applyEq" (formula "3") (term "0,0") (ifseqformula "16")) + (rule "applyEq" (formula "31") (term "3,0") (ifseqformula "16")) + (rule "applyEq" (formula "17") (term "0") (ifseqformula "16")) + (rule "inEqSimp_homoInEq1" (formula "17")) + (rule "polySimp_pullOutFactor1" (formula "17") (term "0")) + (rule "add_literals" (formula "17") (term "1,0")) + (rule "times_zero_1" (formula "17") (term "0")) + (rule "leq_literals" (formula "17")) + (rule "true_left" (formula "17")) + (rule "applyEq" (formula "15") (term "0") (ifseqformula "16")) + (rule "applyEq" (formula "1") (term "3,0") (ifseqformula "15")) + (rule "applyEq" (formula "5") (term "0") (ifseqformula "15")) + (rule "inEqSimp_homoInEq1" (formula "5")) + (rule "polySimp_addComm1" (formula "5") (term "0")) + (rule "applyEq" (formula "27") (term "0") (ifseqformula "17")) + (rule "eqSymm" (formula "27")) + (rule "applyEq" (formula "27") (term "3,0") (ifseqformula "15")) + (builtin "One Step Simplification" (formula "27")) + (rule "true_left" (formula "27")) + (rule "applyEq" (formula "28") (term "3,1") (ifseqformula "15")) + (rule "inEqSimp_sepPosMonomial0" (formula "5")) + (rule "polySimp_mulComm0" (formula "5") (term "1")) + (rule "polySimp_rightDist" (formula "5") (term "1")) + (rule "polySimp_mulLiterals" (formula "5") (term "1,1")) + (rule "mul_literals" (formula "5") (term "0,1")) + (rule "polySimp_elimOne" (formula "5") (term "1,1")) + (rule "inEqSimp_antiSymm" (formula "24") (ifseqformula "3")) + (rule "applyEq" (formula "1") (term "1") (ifseqformula "24")) + (rule "applyEq" (formula "3") (term "0") (ifseqformula "24")) + (rule "inEqSimp_homoInEq0" (formula "3")) + (rule "polySimp_pullOutFactor1" (formula "3") (term "0")) + (rule "add_literals" (formula "3") (term "1,0")) + (rule "times_zero_1" (formula "3") (term "0")) + (rule "qeq_literals" (formula "3")) + (rule "true_left" (formula "3")) + (rule "applyEqRigid" (formula "24") (term "0") (ifseqformula "23")) + (rule "inEqSimp_homoInEq1" (formula "24")) + (rule "polySimp_pullOutFactor1" (formula "24") (term "0")) + (rule "add_literals" (formula "24") (term "1,0")) + (rule "times_zero_1" (formula "24") (term "0")) + (rule "leq_literals" (formula "24")) + (rule "true_left" (formula "24")) + (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "26")) + (rule "andLeft" (formula "1")) + (rule "inEqSimp_homoInEq1" (formula "1")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "1,1,0")) + (rule "times_zero_1" (formula "1") (term "1,0")) + (rule "add_literals" (formula "1") (term "0")) + (rule "leq_literals" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + ) + ) + (branch " i_14 = i_14 & IntOpt::$value = IntOpt::$value & !IntOpt::$value = java.lang.Object:: FALSE" + (builtin "One Step Simplification" (formula "37")) + (rule "closeTrue" (formula "37")) + ) + ) + (branch + (rule "andRight" (formula "36")) + (branch "Case 1" + (rule "impRight" (formula "36")) + (rule "notRight" (formula "37")) + (rule "notLeft" (formula "2")) + (rule "exLeft" (formula "1") (inst "sk=m_0")) + (rule "dismissNonSelectedField" (formula "31") (term "0")) + (rule "dismissNonSelectedField" (formula "31") (term "0")) + (rule "inEqSimp_ltRight" (formula "35")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_gtToGeq" (formula "4")) + (rule "polySimp_mulComm0" (formula "4") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "polySimp_addAssoc" (formula "4") (term "0,0")) + (rule "add_literals" (formula "4") (term "0,0,0")) + (rule "add_zero_left" (formula "4") (term "0,0")) + (rule "inEqSimp_ltToLeq" (formula "6")) + (rule "polySimp_mulComm0" (formula "6") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "6") (term "0")) + (rule "inEqSimp_gtToGeq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "0")) + (rule "polySimp_elimOne" (formula "4") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "6")) + (rule "polySimp_mulLiterals" (formula "6") (term "0")) + (rule "polySimp_elimOne" (formula "6") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1")) + (rule "polySimp_rightDist" (formula "2") (term "1")) + (rule "polySimp_mulLiterals" (formula "2") (term "1,1")) + (rule "mul_literals" (formula "2") (term "0,1")) + (rule "polySimp_elimOne" (formula "2") (term "1,1")) + (rule "inEqSimp_strengthen1" (formula "18") (ifseqformula "35")) + (rule "add_zero_right" (formula "18") (term "1")) + (rule "inEqSimp_contradEq7" (formula "35") (ifseqformula "18")) + (rule "times_zero_1" (formula "35") (term "1,0,0")) + (rule "add_zero_right" (formula "35") (term "0,0")) + (rule "leq_literals" (formula "35") (term "0")) + (builtin "One Step Simplification" (formula "35")) + (rule "false_right" (formula "35")) + (rule "inEqSimp_subsumption1" (formula "24") (ifseqformula "6")) + (rule "inEqSimp_homoInEq0" (formula "24") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "24") (term "0,0")) + (rule "add_literals" (formula "24") (term "1,1,0,0")) + (rule "times_zero_1" (formula "24") (term "1,0,0")) + (rule "add_zero_right" (formula "24") (term "0,0")) + (rule "qeq_literals" (formula "24") (term "0")) + (builtin "One Step Simplification" (formula "24")) + (rule "true_left" (formula "24")) + (rule "pullOutSelect" (formula "31") (term "0") (inst "selectSK=IntOpt_present_0")) + (rule "simplifySelectOfStore" (formula "1")) + (builtin "One Step Simplification" (formula "1")) + (rule "castDel" (formula "1") (term "0")) + (rule "applyEqReverse" (formula "32") (term "0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "32")) + (rule "closeTrue" (formula "32")) + ) + (branch "Case 2" + (rule "Class_invariant_axiom_for_BoyerMoore" (formula "36") (ifseqformula "7")) + (rule "closeTrue" (formula "36")) + ) + ) + ) + (branch + (rule "allRight" (formula "36") (inst "sk=f_0")) + (rule "allRight" (formula "36") (inst "sk=o_0")) + (rule "orRight" (formula "36")) + (rule "eqSymm" (formula "37")) + (rule "inEqSimp_ltRight" (formula "33")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "5")) + (rule "polySimp_mulComm0" (formula "5") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "5") (term "0")) + (rule "inEqSimp_gtToGeq" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "polySimp_addAssoc" (formula "3") (term "0,0")) + (rule "add_literals" (formula "3") (term "0,0,0")) + (rule "add_zero_left" (formula "3") (term "0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "5")) + (rule "polySimp_mulLiterals" (formula "5") (term "0")) + (rule "polySimp_elimOne" (formula "5") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_strengthen1" (formula "17") (ifseqformula "33")) + (rule "add_zero_right" (formula "17") (term "1")) + (rule "inEqSimp_contradEq7" (formula "33") (ifseqformula "17")) + (rule "times_zero_1" (formula "33") (term "1,0,0")) + (rule "add_zero_right" (formula "33") (term "0,0")) + (rule "leq_literals" (formula "33") (term "0")) + (builtin "One Step Simplification" (formula "33")) + (rule "false_right" (formula "33")) + (rule "inEqSimp_subsumption1" (formula "23") (ifseqformula "5")) + (rule "inEqSimp_homoInEq0" (formula "23") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "23") (term "0,0")) + (rule "add_literals" (formula "23") (term "1,1,0,0")) + (rule "times_zero_1" (formula "23") (term "1,0,0")) + (rule "add_literals" (formula "23") (term "0,0")) + (rule "qeq_literals" (formula "23") (term "0")) + (builtin "One Step Simplification" (formula "23")) + (rule "true_left" (formula "23")) + (rule "pullOutSelect" (formula "35") (term "0") (inst "selectSK=f_0_0")) + (rule "simplifySelectOfStore" (formula "1")) + (builtin "One Step Simplification" (formula "1")) + (rule "castDel" (formula "1") (term "1,0")) + (rule "eqSymm" (formula "36")) + (rule "eqSymm" (formula "1") (term "1,0,0")) + (rule "eqSymm" (formula "1") (term "0,0,0")) + (rule "inEqSimp_antiSymm" (formula "17") (ifseqformula "2")) + (rule "applyEq" (formula "2") (term "0") (ifseqformula "17")) + (rule "inEqSimp_homoInEq0" (formula "2")) + (rule "polySimp_pullOutFactor1" (formula "2") (term "0")) + (rule "add_literals" (formula "2") (term "1,0")) + (rule "times_zero_1" (formula "2") (term "0")) + (rule "qeq_literals" (formula "2")) + (rule "true_left" (formula "2")) + (rule "applyEq" (formula "3") (term "0,0") (ifseqformula "16")) + (rule "applyEq" (formula "15") (term "0") (ifseqformula "16")) + (rule "applyEq" (formula "25") (term "0,0") (ifseqformula "15")) + (rule "applyEq" (formula "28") (term "3,0") (ifseqformula "15")) + (rule "applyEq" (formula "16") (term "0") (ifseqformula "15")) + (rule "inEqSimp_homoInEq1" (formula "16")) + (rule "polySimp_pullOutFactor1" (formula "16") (term "0")) + (rule "add_literals" (formula "16") (term "1,0")) + (rule "times_zero_1" (formula "16") (term "0")) + (rule "leq_literals" (formula "16")) + (rule "true_left" (formula "16")) + (rule "applyEq" (formula "5") (term "0") (ifseqformula "15")) + (rule "inEqSimp_homoInEq1" (formula "5")) + (rule "polySimp_addComm1" (formula "5") (term "0")) + (rule "applyEq" (formula "28") (term "3,0") (ifseqformula "15")) + (rule "inEqSimp_commuteGeq" (formula "28")) + (rule "applyEq" (formula "27") (term "0") (ifseqformula "17")) + (rule "eqSymm" (formula "27")) + (rule "applyEq" (formula "27") (term "3,0") (ifseqformula "15")) + (builtin "One Step Simplification" (formula "27")) + (rule "true_left" (formula "27")) + (rule "inEqSimp_sepPosMonomial0" (formula "5")) + (rule "polySimp_mulComm0" (formula "5") (term "1")) + (rule "polySimp_rightDist" (formula "5") (term "1")) + (rule "mul_literals" (formula "5") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "5") (term "1,1")) + (rule "polySimp_elimOne" (formula "5") (term "1,1")) + (rule "pullOutSelect" (formula "1") (term "2,0") (inst "selectSK=f_0_1")) + (rule "simplifySelectOfStore" (formula "1")) + (builtin "One Step Simplification" (formula "1")) + (rule "castDel" (formula "1") (term "1,0")) + (rule "eqSymm" (formula "1") (term "0,0,0")) + (rule "eqSymm" (formula "1") (term "1,0,0")) + (rule "inEqSimp_antiSymm" (formula "25") (ifseqformula "4")) + (rule "applyEq" (formula "4") (term "0") (ifseqformula "25")) + (rule "inEqSimp_homoInEq0" (formula "4")) + (rule "polySimp_pullOutFactor1" (formula "4") (term "0")) + (rule "add_literals" (formula "4") (term "1,0")) + (rule "times_zero_1" (formula "4") (term "0")) + (rule "qeq_literals" (formula "4")) + (rule "true_left" (formula "4")) + (rule "applyEq" (formula "25") (term "0") (ifseqformula "24")) + (rule "inEqSimp_homoInEq1" (formula "25")) + (rule "polySimp_pullOutFactor1" (formula "25") (term "0")) + (rule "add_literals" (formula "25") (term "1,0")) + (rule "times_zero_1" (formula "25") (term "0")) + (rule "leq_literals" (formula "25")) + (rule "true_left" (formula "25")) + (rule "inEqSimp_exactShadow3" (formula "21") (ifseqformula "5")) + (rule "times_zero_1" (formula "21") (term "0,0")) + (rule "add_zero_left" (formula "21") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "21")) + (rule "mul_literals" (formula "21") (term "1")) + (rule "inEqSimp_subsumption1" (formula "14") (ifseqformula "21")) + (rule "leq_literals" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "true_left" (formula "14")) + (rule "pullOutSelect" (formula "1") (term "2,0") (inst "selectSK=f_0_2")) + (rule "simplifySelectOfStore" (formula "1")) + (builtin "One Step Simplification" (formula "1")) + (rule "castDel" (formula "1") (term "1,0")) + (rule "eqSymm" (formula "1") (term "0,0,0")) + (rule "eqSymm" (formula "1") (term "1,0,0")) + (rule "pullOutSelect" (formula "1") (term "2,0") (inst "selectSK=f_0_3")) + (rule "simplifySelectOfCreate" (formula "1")) + (rule "castDel" (formula "1") (term "1,0")) + (rule "eqSymm" (formula "1") (term "0,0,0,0")) + (rule "replace_known_right" (formula "1") (term "0,1,0,0,0") (ifseqformula "30")) + (builtin "One Step Simplification" (formula "1")) + (rule "nnf_imp2or" (formula "20") (term "0")) + (builtin "One Step Simplification" (formula "20")) + (rule "commute_and" (formula "4") (term "0,0")) + (rule "commute_and" (formula "3") (term "0,0")) + (rule "commute_and" (formula "2") (term "0,0")) + (rule "commute_and" (formula "1") (term "0,0")) + (rule "jdiv_axiom" (formula "26") (term "0")) + (rule "eqSymm" (formula "26")) + (rule "applyEq" (formula "26") (term "1") (ifseqformula "27")) + (rule "inEqSimp_subsumption1" (formula "26") (term "0,0") (ifseqformula "22")) + (rule "leq_literals" (formula "26") (term "0,0,0")) + (builtin "One Step Simplification" (formula "26")) + (rule "cut_direct" (formula "35") (term "0,0")) + (branch "CUT: o_0 = null TRUE" + (builtin "One Step Simplification" (formula "36")) + (rule "false_right" (formula "36")) + (rule "applyEq" (formula "3") (term "0,1,0,0") (ifseqformula "1")) + (rule "eqSymm" (formula "3") (term "1,0,0")) + (rule "replace_known_right" (formula "3") (term "1,0,0") (ifseqformula "32")) + (builtin "One Step Simplification" (formula "3")) + (rule "applyEqReverse" (formula "4") (term "2,0") (ifseqformula "3")) + (rule "hideAuxiliaryEq" (formula "3")) + (rule "applyEqRigid" (formula "3") (term "0,1,0,0") (ifseqformula "1")) + (rule "eqSymm" (formula "3") (term "1,0,0")) + (rule "replace_known_right" (formula "3") (term "1,0,0") (ifseqformula "31")) + (builtin "One Step Simplification" (formula "3")) + (rule "applyEqReverse" (formula "4") (term "2,0") (ifseqformula "3")) + (rule "hideAuxiliaryEq" (formula "3")) + (rule "applyEqRigid" (formula "2") (term "1,2,0") (ifseqformula "1")) + (rule "applyEq" (formula "34") (term "1,0") (ifseqformula "1")) + (rule "applyEq" (formula "2") (term "0,1,0,0") (ifseqformula "1")) + (rule "eqSymm" (formula "2") (term "1,0,0")) + (rule "replace_known_right" (formula "2") (term "1,0,0") (ifseqformula "30")) + (builtin "One Step Simplification" (formula "2")) + (rule "applyEqReverse" (formula "3") (term "2,0") (ifseqformula "2")) + (rule "hideAuxiliaryEq" (formula "2")) + (rule "applyEqRigid" (formula "2") (term "0,1,0,0") (ifseqformula "1")) + (rule "eqSymm" (formula "2") (term "1,0,0")) + (rule "replace_known_right" (formula "2") (term "1,0,0") (ifseqformula "29")) + (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "33"))) + (rule "closeFalse" (formula "2")) + ) + (branch "CUT: o_0 = null FALSE" + (builtin "One Step Simplification" (formula "36")) + (rule "notRight" (formula "36")) + (rule "div_axiom" (formula "27") (term "0") (inst "quotient=quotient_0")) + (rule "equal_literals" (formula "27") (term "0")) + (builtin "One Step Simplification" (formula "27")) + (rule "mul_literals" (formula "27") (term "1,1,1,1")) + (rule "qeq_literals" (formula "27") (term "0,1")) + (builtin "One Step Simplification" (formula "27")) + (rule "andLeft" (formula "27")) + (rule "andLeft" (formula "27")) + (rule "polySimp_addComm1" (formula "29") (term "1")) + (rule "add_literals" (formula "29") (term "0,1")) + (rule "inEqSimp_commuteLeq" (formula "28")) + (rule "inEqSimp_homoInEq1" (formula "29")) + (rule "polySimp_mulLiterals" (formula "29") (term "1,0")) + (rule "polySimp_addComm1" (formula "29") (term "0")) + (rule "applyEq" (formula "27") (term "0") (ifseqformula "30")) + (rule "applyEq" (formula "31") (term "1") (ifseqformula "27")) + (rule "applyEqRigid" (formula "30") (term "1") (ifseqformula "27")) + (rule "applyEqRigid" (formula "25") (term "1") (ifseqformula "27")) + (rule "applyEq" (formula "26") (term "1") (ifseqformula "27")) + (rule "inEqSimp_sepPosMonomial0" (formula "29")) + (rule "polySimp_mulComm0" (formula "29") (term "1")) + (rule "polySimp_rightDist" (formula "29") (term "1")) + (rule "polySimp_mulLiterals" (formula "29") (term "1,1")) + (rule "mul_literals" (formula "29") (term "0,1")) + (rule "inEqSimp_exactShadow3" (formula "23") (ifseqformula "29")) + (rule "mul_literals" (formula "23") (term "0,0")) + (rule "polySimp_addAssoc" (formula "23") (term "0")) + (rule "add_literals" (formula "23") (term "0,0")) + (rule "add_zero_left" (formula "23") (term "0")) + (rule "elimGcdGeq_antec" (formula "23") (inst "elimGcd=Z(2(#))") (inst "elimGcdLeftDiv=quotient_0") (inst "elimGcdRightDiv=Z(0(#))")) + (rule "polySimp_mulLiterals" (formula "23") (term "1,0,1,0")) + (rule "add_zero_right" (formula "23") (term "0,0,0,1,0")) + (rule "leq_literals" (formula "23") (term "0,0")) + (builtin "One Step Simplification" (formula "23")) + (rule "times_zero_1" (formula "23") (term "1,0,0,0,0")) + (rule "add_zero_right" (formula "23") (term "0,0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "23") (term "0,0")) + (rule "add_literals" (formula "23") (term "1,1,0,0")) + (rule "times_zero_1" (formula "23") (term "1,0,0")) + (rule "add_literals" (formula "23") (term "0,0")) + (rule "leq_literals" (formula "23") (term "0")) + (builtin "One Step Simplification" (formula "23")) + (rule "ifthenelse_split" (formula "2") (term "0")) + (branch "f_0 = java.lang.Object:: & o_0 = i_14 TRUE" + (rule "andLeft" (formula "2")) + (rule "applyEqReverse" (formula "5") (term "2,0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "5") (ifInst "" (formula "3"))) + (rule "applyEqReverse" (formula "6") (term "2,0") (ifseqformula "5")) + (rule "hideAuxiliaryEq" (formula "4")) + (rule "hideAuxiliaryEq" (formula "4")) + (rule "replace_known_left" (formula "5") (term "1,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "5")) + (rule "replace_known_left" (formula "4") (term "1,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "4")) + (rule "applyEq" (formula "41") (term "2,0") (ifseqformula "2")) + (rule "narrowSelectType" (formula "41") (term "0") (ifseqformula "9")) + (rule "eqSymm" (formula "41")) + (rule "applyEq" (formula "40") (term "0") (ifseqformula "3")) + (rule "applyEqRigid" (formula "5") (term "0,0,0") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "5")) + (rule "applyEqReverse" (formula "40") (term "0") (ifseqformula "5")) + (rule "hideAuxiliaryEq" (formula "5")) + (rule "applyEq" (formula "1") (term "1,0") (ifseqformula "3")) + (rule "close" (formula "36") (ifseqformula "1")) + ) + (branch "f_0 = java.lang.Object:: & o_0 = i_14 FALSE" + (rule "applyEqReverse" (formula "3") (term "2,0") (ifseqformula "2")) + (rule "hideAuxiliaryEq" (formula "2")) + (rule "ifthenelse_split" (formula "2") (term "0")) + (branch "f_0 = IntOpt::$present & o_0 = i_14 TRUE" + (rule "andLeft" (formula "2")) + (rule "applyEqReverse" (formula "5") (term "2,0") (ifseqformula "4")) + (rule "hideAuxiliaryEq" (formula "4")) + (rule "replace_known_left" (formula "4") (term "1,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "4")) + (rule "replace_known_left" (formula "5") (term "1,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "5")) + (rule "replace_known_left" (formula "36") (term "1") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "36")) + (rule "applyEq" (formula "4") (term "0,0,0") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "4")) + (rule "applyEqReverse" (formula "5") (term "2,0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "5")) + (rule "applyEqReverse" (formula "42") (term "1") (ifseqformula "5")) + (rule "hideAuxiliaryEq" (formula "4")) + (rule "hideAuxiliaryEq" (formula "4")) + (rule "applyEq" (formula "39") (term "0") (ifseqformula "3")) + (rule "applyEq" (formula "34") (term "0") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "34")) + (rule "false_right" (formula "34")) + (rule "applyEq" (formula "38") (term "2,0") (ifseqformula "2")) + (rule "narrowSelectType" (formula "38") (term "0") (ifseqformula "7")) + (rule "applyEq" (formula "1") (term "1,0") (ifseqformula "3")) + (rule "close" (formula "35") (ifseqformula "1")) + ) + (branch "f_0 = IntOpt::$present & o_0 = i_14 FALSE" + (rule "applyEqReverse" (formula "3") (term "2,0") (ifseqformula "2")) + (rule "hideAuxiliaryEq" (formula "2")) + (rule "ifthenelse_split" (formula "2") (term "0")) + (branch "f_0 = IntOpt::$value & o_0 = i_14 TRUE" + (rule "andLeft" (formula "2")) + (rule "applyEqReverse" (formula "5") (term "2,0") (ifseqformula "4")) + (rule "hideAuxiliaryEq" (formula "4")) + (rule "replace_known_left" (formula "4") (term "1,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "4")) + (rule "replace_known_left" (formula "36") (term "1") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "36")) + (rule "replace_known_left" (formula "35") (term "1") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "35")) + (rule "applyEq" (formula "36") (term "0") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "36")) + (rule "false_right" (formula "36")) + (rule "applyEqRigid" (formula "35") (term "0") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "35")) + (rule "false_right" (formula "35")) + (rule "applyEq" (formula "39") (term "0") (ifseqformula "3")) + (rule "applyEq" (formula "39") (term "2,0") (ifseqformula "2")) + (rule "narrowSelectType" (formula "39") (term "0") (ifseqformula "8")) + (rule "eqSymm" (formula "39")) + (rule "applyEq" (formula "1") (term "1,0") (ifseqformula "3")) + (rule "close" (formula "36") (ifseqformula "1")) + ) + (branch "f_0 = IntOpt::$value & o_0 = i_14 FALSE" + (rule "applyEqReverse" (formula "3") (term "2,0") (ifseqformula "2")) + (rule "hideAuxiliaryEq" (formula "2")) + (rule "ifthenelse_split" (formula "2") (term "0")) + (branch "f_0 = java.lang.Object:: & o_0 = i_14 TRUE" + (rule "andLeft" (formula "2")) + (rule "applyEqReverse" (formula "43") (term "1") (ifseqformula "4")) + (rule "hideAuxiliaryEq" (formula "4")) + (rule "replace_known_left" (formula "35") (term "1") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "35")) + (rule "replace_known_left" (formula "34") (term "1") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "34")) + (rule "replace_known_left" (formula "36") (term "1") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "36")) + (rule "applyEq" (formula "42") (term "1,0") (ifseqformula "3")) + (rule "applyEq" (formula "35") (term "0") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "35")) + (rule "false_right" (formula "35")) + (rule "applyEqRigid" (formula "34") (term "0") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "34")) + (rule "false_right" (formula "34")) + (rule "applyEq" (formula "34") (term "0") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "34")) + (rule "false_right" (formula "34")) + (rule "applyEq" (formula "1") (term "1,0") (ifseqformula "3")) + (rule "close" (formula "35") (ifseqformula "1")) + ) + (branch "f_0 = java.lang.Object:: & o_0 = i_14 FALSE" + (rule "close" (formula "42") (ifseqformula "2")) + ) + ) + ) + ) + ) + ) + ) + (branch "Null Reference (i_12 = null)" + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "31"))) + (rule "closeFalse" (formula "1")) + ) + ) + (branch "Exceptional Post (monoLemma)" + (builtin "One Step Simplification" (formula "30")) + (builtin "One Step Simplification" (formula "25") (ifInst "" (formula "10"))) + (rule "andLeft" (formula "25")) + (rule "andLeft" (formula "26")) + (rule "andLeft" (formula "25")) + (rule "notLeft" (formula "25")) + (rule "close" (formula "28") (ifseqformula "27")) + ) + (branch "Pre (monoLemma)" + (builtin "One Step Simplification" (formula "29") (ifInst "" (formula "10")) (ifInst "" (formula "28")) (ifInst "" (formula "4")) (ifInst "" (formula "28")) (ifInst "" (formula "7"))) + (rule "polySimp_elimSub" (formula "29") (term "0,1")) + (rule "polySimp_mulComm0" (formula "29") (term "1,0,1")) + (rule "polySimp_rightDist" (formula "29") (term "1,0,1")) + (rule "mul_literals" (formula "29") (term "0,1,0,1")) + (rule "polySimp_addComm0" (formula "29") (term "0,1")) + (rule "measuredByCheckEmpty" (formula "29") (term "1") (ifseqformula "8")) + (builtin "One Step Simplification" (formula "29")) + (rule "inEqSimp_ltRight" (formula "26")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "4")) + (rule "polySimp_mulComm0" (formula "4") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "inEqSimp_gtToGeq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "polySimp_addAssoc" (formula "2") (term "0,0")) + (rule "add_literals" (formula "2") (term "0,0,0")) + (rule "add_zero_left" (formula "2") (term "0,0")) + (rule "inEqSimp_commuteLeq" (formula "29") (term "1")) + (rule "inEqSimp_homoInEq0" (formula "29") (term "0")) + (rule "times_zero_2" (formula "29") (term "1,0,0")) + (rule "add_zero_right" (formula "29") (term "0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "0")) + (rule "polySimp_elimOne" (formula "4") (term "0")) + (rule "replace_known_left" (formula "29") (term "1") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "29")) + (rule "inEqSimp_geqRight" (formula "29")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "mul_literals" (formula "1") (term "1")) + (rule "inEqSimp_strengthen1" (formula "17") (ifseqformula "27")) + (rule "add_zero_right" (formula "17") (term "1")) + (rule "inEqSimp_contradEq7" (formula "27") (ifseqformula "17")) + (rule "times_zero_1" (formula "27") (term "1,0,0")) + (rule "add_zero_right" (formula "27") (term "0,0")) + (rule "leq_literals" (formula "27") (term "0")) + (builtin "One Step Simplification" (formula "27")) + (rule "false_right" (formula "27")) + (rule "inEqSimp_contradInEq0" (formula "22") (ifseqformula "1")) + (rule "qeq_literals" (formula "22") (term "0")) + (builtin "One Step Simplification" (formula "22")) + (rule "closeFalse" (formula "22")) + ) + ) + (branch "if ++cnt > _a.length / 2 false" + (builtin "One Step Simplification" (formula "29")) + (builtin "One Step Simplification" (formula "1")) + (rule "notLeft" (formula "1")) + (rule "blockEmpty" (formula "29") (term "1")) + (rule "unusedLabel" (formula "29") (term "1")) + (rule "postincrement" (formula "29") (term "1")) + (rule "compound_int_cast_expression" (formula "29") (term "1") (inst "#v=i_12")) + (rule "variableDeclarationAssign" (formula "29") (term "1")) + (rule "variableDeclaration" (formula "29") (term "1") (newnames "i_12")) + (rule "remove_parentheses_right" (formula "29") (term "1")) + (rule "assignmentAdditionInt" (formula "29") (term "1")) + (builtin "One Step Simplification" (formula "29")) + (rule "translateJavaAddInt" (formula "29") (term "0,1,0")) + (rule "polySimp_addComm0" (formula "29") (term "0,1,0")) + (rule "widening_identity_cast_5" (formula "29") (term "1")) + (rule "assignment" (formula "29") (term "1")) + (builtin "One Step Simplification" (formula "29")) + (rule "tryEmpty" (formula "29") (term "1")) + (rule "methodCallEmpty" (formula "29") (term "1")) + (rule "emptyModality" (formula "29") (term "1")) + (builtin "One Step Simplification" (formula "29")) + (rule "andRight" (formula "29")) + (branch + (rule "andRight" (formula "29")) + (branch "Case 1" + (opengoal " (int::select(heap, a, arr(r_0)) = mx_0)< (implicit)\",\"[ensures @ file BoyerMoore.java @ line 34, ensures @ file BoyerMoore.java @ line 36, ensures (implicit), assignable (implicit), decreases @ file BoyerMoore.java @ line 70, loop_invariant @ file BoyerMoore.java @ line 66, loop_invariant @ file BoyerMoore.java @ line 67, loop_invariant @ file BoyerMoore.java @ line 68]\")>>, lt(r_0, length(a<>))<>, wellFormed(heap)<>, ( boolean::select(heap, self, java.lang.Object::) = TRUE)<>, (BoyerMoore::exactInstance(self) = TRUE)<>, ( boolean::select(heap, a, java.lang.Object::) = TRUE)<>, measuredByEmpty<>, IntOpt::<$inv>(heap), java.lang.Object::(heap, self)<>, wellFormed(anon_heap_LOOP<>), geq(k_0, Z(0(#)))<>, geq(length(a), Z(0(#))), geq(length(a), k_0)<>, geq(mc_0, Z(0(#)))<>, BoyerMoore::count$lmtd(heap, self, a, k_0, mx_0) = BoyerMoore::count(heap, self, a, k_0, mx_0), leq(mul(BoyerMoore::count(heap, self, a, k_0, mx_0), Z(2(#))), add(k_0, mc_0))<>, (\\forall int x; ( !x = mx_0 -> leq(mul(BoyerMoore::count(heap, self, a, k_0, x), Z(2(#))), add(k_0, mul(mc_0, Z(neglit(1(#))))))))<>, wellFormed(anon_heap_LOOP_0<>), geq(r_0, Z(0(#)))<>, geq(length(a), r_0)<>, BoyerMoore::count$lmtd(heap, self, a, r_0, mx_0) = cnt_0, (BoyerMoore::count(heap, self, a, r_0, mx_0) = cnt_0)<>, geq(jdiv(length(a), Z(2(#))), cnt_0)<> ==> gt(add(Z(1(#)), cnt_0), jdiv(length(a), Z(2(#))))< (implicit)\",\"[ensures @ file BoyerMoore.java @ line 34, ensures @ file BoyerMoore.java @ line 36, ensures (implicit), assignable (implicit), decreases @ file BoyerMoore.java @ line 70, loop_invariant @ file BoyerMoore.java @ line 66, loop_invariant @ file BoyerMoore.java @ line 67, loop_invariant @ file BoyerMoore.java @ line 68]\")>>, (mc_0 = Z(0(#)))< (implicit)\",\"[ensures @ file BoyerMoore.java @ line 34, ensures @ file BoyerMoore.java @ line 36, ensures (implicit), assignable (implicit)]\")>>, lt(k_0, length(a)), (self<> = null)<>, (a = null)<>, ( (geq(add(Z(1(#)), r_0), Z(0(#))) & geq(length(a), add(Z(1(#)), r_0)))<> & ( BoyerMoore::count(heap, self, a, add(Z(1(#)), r_0), mx_0) = add(Z(1(#)), cnt_0))<>)< (implicit)\",\"[loop_invariant @ file BoyerMoore.java @ line 66, loop_invariant @ file BoyerMoore.java @ line 67]\")>>") + ) + (branch "Case 2" + (rule "inEqSimp_geqRight" (formula "29")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "mul_literals" (formula "1") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0")) + (rule "inEqSimp_ltRight" (formula "27")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_gtRight" (formula "26")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "5")) + (rule "polySimp_mulComm0" (formula "5") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "5") (term "0")) + (rule "inEqSimp_sepPosMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "1")) + (rule "polySimp_elimOne" (formula "3") (term "1")) + (rule "inEqSimp_sepNegMonomial1" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "5")) + (rule "polySimp_mulLiterals" (formula "5") (term "0")) + (rule "polySimp_elimOne" (formula "5") (term "0")) + (rule "inEqSimp_strengthen1" (formula "17") (ifseqformula "27")) + (rule "add_zero_right" (formula "17") (term "1")) + (rule "inEqSimp_contradEq7" (formula "27") (ifseqformula "17")) + (rule "times_zero_1" (formula "27") (term "1,0,0")) + (rule "add_zero_right" (formula "27") (term "0,0")) + (rule "leq_literals" (formula "27") (term "0")) + (builtin "One Step Simplification" (formula "27")) + (rule "false_right" (formula "27")) + (rule "inEqSimp_subsumption1" (formula "26") (ifseqformula "1")) + (rule "inEqSimp_homoInEq0" (formula "26") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "26") (term "0,0")) + (rule "add_literals" (formula "26") (term "1,1,0,0")) + (rule "times_zero_1" (formula "26") (term "1,0,0")) + (rule "add_zero_right" (formula "26") (term "0,0")) + (rule "qeq_literals" (formula "26") (term "0")) + (builtin "One Step Simplification" (formula "26")) + (rule "true_left" (formula "26")) + (rule "inEqSimp_subsumption1" (formula "23") (ifseqformula "5")) + (rule "inEqSimp_homoInEq0" (formula "23") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "23") (term "0,0")) + (rule "add_literals" (formula "23") (term "1,1,0,0")) + (rule "times_zero_1" (formula "23") (term "1,0,0")) + (rule "add_zero_right" (formula "23") (term "0,0")) + (rule "qeq_literals" (formula "23") (term "0")) + (builtin "One Step Simplification" (formula "23")) + (rule "true_left" (formula "23")) + (rule "inEqSimp_contradInEq1" (formula "3") (ifseqformula "1")) + (rule "andLeft" (formula "3")) + (rule "inEqSimp_homoInEq1" (formula "3")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "0")) + (rule "add_literals" (formula "3") (term "1,1,0")) + (rule "times_zero_1" (formula "3") (term "1,0")) + (rule "add_zero_right" (formula "3") (term "0")) + (rule "leq_literals" (formula "3")) + (rule "closeFalse" (formula "3")) + ) + ) + (branch + (rule "polySimp_mulComm0" (formula "29") (term "0,0")) + (rule "polySimp_rightDist" (formula "29") (term "0,0")) + (rule "mul_literals" (formula "29") (term "0,0,0")) + (rule "precOfInt" (formula "29")) + (rule "inEqSimp_ltRight" (formula "26")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "29") (term "1")) + (rule "polySimp_rightDist" (formula "29") (term "1,0,0,1")) + (rule "polySimp_mulAssoc" (formula "29") (term "0,1,0,0,1")) + (rule "polySimp_mulComm0" (formula "29") (term "0,0,1,0,0,1")) + (rule "polySimp_mulLiterals" (formula "29") (term "0,1,0,0,1")) + (rule "polySimp_elimOne" (formula "29") (term "0,1,0,0,1")) + (rule "polySimp_addAssoc" (formula "29") (term "0,0,1")) + (rule "polySimp_addAssoc" (formula "29") (term "0,1")) + (rule "polySimp_addComm1" (formula "29") (term "0,0,1")) + (rule "polySimp_pullOutFactor2b" (formula "29") (term "0,1")) + (rule "add_literals" (formula "29") (term "1,1,0,1")) + (rule "times_zero_1" (formula "29") (term "1,0,1")) + (rule "add_zero_right" (formula "29") (term "0,1")) + (rule "polySimp_addAssoc" (formula "29") (term "0,1")) + (rule "polySimp_addComm1" (formula "29") (term "0,0,1")) + (rule "add_literals" (formula "29") (term "0,0,0,1")) + (rule "add_zero_left" (formula "29") (term "0,0,1")) + (rule "polySimp_pullOutFactor1" (formula "29") (term "0,1")) + (rule "add_literals" (formula "29") (term "1,0,1")) + (rule "times_zero_1" (formula "29") (term "0,1")) + (rule "leq_literals" (formula "29") (term "1")) + (builtin "One Step Simplification" (formula "29")) + (rule "inEqSimp_leqRight" (formula "29")) + (rule "add_zero_right" (formula "1") (term "0")) + (rule "polySimp_rightDist" (formula "1") (term "1,0")) + (rule "polySimp_rightDist" (formula "1") (term "0,1,0")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0,1,0")) + (rule "mul_literals" (formula "1") (term "0,0,1,0")) + (rule "polySimp_elimOne" (formula "1") (term "1,0,1,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "0")) + (rule "polySimp_elimOne" (formula "4") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_strengthen1" (formula "16") (ifseqformula "27")) + (rule "add_zero_right" (formula "16") (term "1")) + (rule "inEqSimp_contradEq7" (formula "27") (ifseqformula "16")) + (rule "times_zero_1" (formula "27") (term "1,0,0")) + (rule "add_zero_right" (formula "27") (term "0,0")) + (rule "leq_literals" (formula "27") (term "0")) + (builtin "One Step Simplification" (formula "27")) + (rule "false_right" (formula "27")) + (rule "inEqSimp_subsumption1" (formula "22") (ifseqformula "4")) + (rule "inEqSimp_homoInEq0" (formula "22") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "22") (term "0,0")) + (rule "add_literals" (formula "22") (term "1,1,0,0")) + (rule "times_zero_1" (formula "22") (term "1,0,0")) + (rule "add_zero_right" (formula "22") (term "0,0")) + (rule "qeq_literals" (formula "22") (term "0")) + (builtin "One Step Simplification" (formula "22")) + (rule "true_left" (formula "22")) + (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "4")) + (rule "andLeft" (formula "1")) + (rule "inEqSimp_homoInEq1" (formula "1")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "1,1,0")) + (rule "times_zero_1" (formula "1") (term "1,0")) + (rule "add_zero_right" (formula "1") (term "0")) + (rule "leq_literals" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + ) + ) + (branch "Case 2" + (builtin "One Step Simplification" (formula "28")) + (rule "equal_literals" (formula "28") (term "0")) + (builtin "One Step Simplification" (formula "28")) + (rule "closeTrue" (formula "28")) + ) + ) + (branch "Null Reference (mc == 0 = null)" + (rule "false_right" (formula "29")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "28"))) + (rule "closeFalse" (formula "1")) + ) + ) + (branch "if mx == _a[r] false" + (builtin "One Step Simplification" (formula "28")) + (builtin "One Step Simplification" (formula "1")) + (rule "notLeft" (formula "1")) + (rule "blockEmpty" (formula "28") (term "1")) + (rule "postincrement" (formula "28") (term "1")) + (rule "unusedLabel" (formula "28") (term "1")) + (rule "compound_reference_cast_expression_primitive" (formula "28") (term "1") (inst "#v=i_8")) + (rule "variableDeclarationAssign" (formula "28") (term "1")) + (rule "variableDeclaration" (formula "28") (term "1") (newnames "i_8")) + (rule "remove_parentheses_right" (formula "28") (term "1")) + (rule "assignmentAdditionInt" (formula "28") (term "1")) + (builtin "One Step Simplification" (formula "28")) + (rule "translateJavaAddInt" (formula "28") (term "0,1,0")) + (rule "polySimp_addComm0" (formula "28") (term "0,1,0")) + (rule "widening_identity_cast_5" (formula "28") (term "1")) + (rule "assignment" (formula "28") (term "1")) + (builtin "One Step Simplification" (formula "28")) + (rule "tryEmpty" (formula "28") (term "1")) + (rule "methodCallEmpty" (formula "28") (term "1")) + (rule "emptyModality" (formula "28") (term "1")) + (builtin "One Step Simplification" (formula "28") (ifInst "" (formula "22"))) + (rule "andRight" (formula "28")) + (branch + (rule "andRight" (formula "28")) + (branch "Case 1" + (rule "andRight" (formula "28")) + (branch "Case 1" + (rule "inEqSimp_ltRight" (formula "25")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_geqRight" (formula "28")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "inEqSimp_ltToLeq" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "mul_literals" (formula "1") (term "1")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_strengthen1" (formula "15") (ifseqformula "26")) + (rule "add_zero_right" (formula "15") (term "1")) + (rule "inEqSimp_contradEq7" (formula "26") (ifseqformula "15")) + (rule "times_zero_1" (formula "26") (term "1,0,0")) + (rule "add_zero_right" (formula "26") (term "0,0")) + (rule "leq_literals" (formula "26") (term "0")) + (builtin "One Step Simplification" (formula "26")) + (rule "false_right" (formula "26")) + (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "20")) + (rule "qeq_literals" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + (branch "Case 2" + (rule "inEqSimp_ltRight" (formula "25")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_geqRight" (formula "28")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "mul_literals" (formula "1") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0")) + (rule "inEqSimp_ltToLeq" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1")) + (rule "polySimp_elimOne" (formula "1") (term "1")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_strengthen1" (formula "15") (ifseqformula "26")) + (rule "add_zero_right" (formula "15") (term "1")) + (rule "inEqSimp_contradEq7" (formula "26") (ifseqformula "15")) + (rule "times_zero_1" (formula "26") (term "1,0,0")) + (rule "add_zero_right" (formula "26") (term "0,0")) + (rule "leq_literals" (formula "26") (term "0")) + (builtin "One Step Simplification" (formula "26")) + (rule "false_right" (formula "26")) + (rule "inEqSimp_subsumption1" (formula "21") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "21") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "21") (term "0,0")) + (rule "add_literals" (formula "21") (term "1,1,0,0")) + (rule "times_zero_1" (formula "21") (term "1,0,0")) + (rule "add_zero_right" (formula "21") (term "0,0")) + (rule "qeq_literals" (formula "21") (term "0")) + (builtin "One Step Simplification" (formula "21")) + (rule "true_left" (formula "21")) + (rule "inEqSimp_contradInEq0" (formula "3") (ifseqformula "1")) + (rule "andLeft" (formula "3")) + (rule "inEqSimp_homoInEq1" (formula "3")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "0")) + (rule "add_literals" (formula "3") (term "1,1,0")) + (rule "times_zero_1" (formula "3") (term "1,0")) + (rule "add_zero_right" (formula "3") (term "0")) + (rule "leq_literals" (formula "3")) + (rule "closeFalse" (formula "3")) + ) + ) + (branch "Case 2" + (rule "inEqSimp_ltRight" (formula "25")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_strengthen1" (formula "14") (ifseqformula "25")) + (rule "add_zero_right" (formula "14") (term "1")) + (rule "inEqSimp_contradEq7" (formula "25") (ifseqformula "14")) + (rule "times_zero_1" (formula "25") (term "1,0,0")) + (rule "add_zero_right" (formula "25") (term "0,0")) + (rule "leq_literals" (formula "25") (term "0")) + (builtin "One Step Simplification" (formula "25")) + (rule "false_right" (formula "25")) + (rule "inEqSimp_subsumption1" (formula "20") (ifseqformula "2")) + (rule "inEqSimp_homoInEq0" (formula "20") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "20") (term "0,0")) + (rule "add_literals" (formula "20") (term "1,1,0,0")) + (rule "times_zero_1" (formula "20") (term "1,0,0")) + (rule "add_zero_right" (formula "20") (term "0,0")) + (rule "qeq_literals" (formula "20") (term "0")) + (builtin "One Step Simplification" (formula "20")) + (rule "true_left" (formula "20")) + (rule "inEqSimp_antiSymm" (formula "13") (ifseqformula "1")) + (rule "applyEq" (formula "2") (term "0") (ifseqformula "13")) + (rule "inEqSimp_homoInEq1" (formula "2")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "applyEq" (formula "12") (term "0") (ifseqformula "13")) + (rule "applyEq" (formula "1") (term "0") (ifseqformula "12")) + (rule "inEqSimp_homoInEq0" (formula "1")) + (rule "polySimp_pullOutFactor1" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "1,0")) + (rule "times_zero_1" (formula "1") (term "0")) + (rule "qeq_literals" (formula "1")) + (rule "true_left" (formula "1")) + (rule "applyEq" (formula "12") (term "0") (ifseqformula "11")) + (rule "inEqSimp_homoInEq1" (formula "12")) + (rule "polySimp_pullOutFactor1" (formula "12") (term "0")) + (rule "add_literals" (formula "12") (term "1,0")) + (rule "times_zero_1" (formula "12") (term "0")) + (rule "leq_literals" (formula "12")) + (rule "true_left" (formula "12")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1")) + (rule "mul_literals" (formula "1") (term "0,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,1")) + (rule "inEqSimp_exactShadow3" (formula "17") (ifseqformula "1")) + (rule "times_zero_1" (formula "17") (term "0,0")) + (rule "add_zero_left" (formula "17") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "17")) + (rule "mul_literals" (formula "17") (term "1")) + (rule "inEqSimp_subsumption1" (formula "10") (ifseqformula "17")) + (rule "leq_literals" (formula "10") (term "0")) + (builtin "One Step Simplification" (formula "10")) + (rule "true_left" (formula "10")) + (rule "nnf_imp2or" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "19") (term "0") (inst "l=l")) + (rule "eqSymm" (formula "19") (term "0,1")) + (rule "replace_known_left" (formula "19") (term "1,0,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "19") (ifInst "" (formula "8")) (ifInst "" (formula "24")) (ifInst "" (formula "2")) (ifInst "" (formula "23")) (ifInst "" (formula "8"))) + (rule "measuredByCheckEmpty" (formula "19") (term "1,0") (ifseqformula "6")) + (builtin "One Step Simplification" (formula "19")) + (rule "inEqSimp_commuteLeq" (formula "19") (term "1,0")) + (rule "inEqSimp_commuteLeq" (formula "19") (term "0,0")) + (rule "replace_known_left" (formula "19") (term "0,0") (ifseqformula "17")) + (builtin "One Step Simplification" (formula "19")) + (rule "applyEq" (formula "19") (term "0,0") (ifseqformula "10")) + (rule "inEqSimp_commuteGeq" (formula "19") (term "0")) + (rule "applyEq" (formula "19") (term "1,1") (ifseqformula "20")) + (rule "inEqSimp_subsumption0" (formula "19") (term "0") (ifseqformula "1")) + (rule "inEqSimp_homoInEq0" (formula "19") (term "0,0")) + (rule "polySimp_mulComm0" (formula "19") (term "1,0,0,0")) + (rule "polySimp_rightDist" (formula "19") (term "1,0,0,0")) + (rule "mul_literals" (formula "19") (term "0,1,0,0,0")) + (rule "polySimp_addAssoc" (formula "19") (term "0,0,0")) + (rule "polySimp_addComm0" (formula "19") (term "0,0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "19") (term "0,0,0")) + (rule "add_literals" (formula "19") (term "1,1,0,0,0")) + (rule "times_zero_1" (formula "19") (term "1,0,0,0")) + (rule "add_zero_right" (formula "19") (term "0,0,0")) + (rule "qeq_literals" (formula "19") (term "0,0")) + (builtin "One Step Simplification" (formula "19")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "13") (term "0,0") (inst "l=l")) + (rule "eqSymm" (formula "13") (term "0,1")) + (rule "replace_known_left" (formula "13") (term "1,0,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "13") (ifInst "" (formula "8")) (ifInst "" (formula "25")) (ifInst "" (formula "2")) (ifInst "" (formula "24")) (ifInst "" (formula "8"))) + (rule "measuredByCheckEmpty" (formula "13") (term "1,0") (ifseqformula "6")) + (builtin "One Step Simplification" (formula "13")) + (rule "inEqSimp_commuteLeq" (formula "13") (term "1,0")) + (rule "inEqSimp_commuteLeq" (formula "13") (term "0,0")) + (rule "applyEq" (formula "13") (term "0,1,0") (ifseqformula "10")) + (rule "inEqSimp_homoInEq1" (formula "13") (term "1,0")) + (rule "polySimp_pullOutFactor1" (formula "13") (term "0,1,0")) + (rule "add_literals" (formula "13") (term "1,0,1,0")) + (rule "times_zero_1" (formula "13") (term "0,1,0")) + (rule "leq_literals" (formula "13") (term "1,0")) + (builtin "One Step Simplification" (formula "13")) + (rule "inEqSimp_subsumption1" (formula "13") (term "0") (ifseqformula "17")) + (rule "leq_literals" (formula "13") (term "0,0")) + (builtin "One Step Simplification" (formula "13")) + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "26") (term "0") (inst "l=l")) + (rule "eqSymm" (formula "1") (term "0,1")) + (rule "replace_known_left" (formula "1") (term "0,1,0,0,0,0,0") (ifseqformula "9")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "26")) (ifInst "" (formula "3")) (ifInst "" (formula "4")) (ifInst "" (formula "25")) (ifInst "" (formula "9"))) + (rule "bsum_induction_upper_concrete" (formula "1") (term "0,1")) + (rule "replace_known_right" (formula "1") (term "0,1,1,0,1") (ifseqformula "24")) + (builtin "One Step Simplification" (formula "1")) + (rule "add_zero_right" (formula "1") (term "0,1")) + (rule "measuredByCheckEmpty" (formula "1") (term "1,0") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "1")) + (rule "inEqSimp_commuteLeq" (formula "1") (term "1,0")) + (rule "inEqSimp_homoInEq0" (formula "1") (term "0,0")) + (rule "times_zero_2" (formula "1") (term "1,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0")) + (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "11")) + (rule "inEqSimp_homoInEq1" (formula "1") (term "1,0")) + (rule "polySimp_addComm1" (formula "1") (term "0,1,0")) + (rule "applyEq" (formula "1") (term "0,1") (ifseqformula "21")) + (rule "eqSymm" (formula "1") (term "1")) + (rule "replace_known_right" (formula "1") (term "1") (ifseqformula "27")) + (builtin "One Step Simplification" (formula "1")) + (rule "notLeft" (formula "1")) + (rule "inEqSimp_sepPosMonomial1" (formula "23") (term "0")) + (rule "mul_literals" (formula "23") (term "1,0")) + (rule "inEqSimp_sepPosMonomial0" (formula "23") (term "1")) + (rule "polySimp_mulComm0" (formula "23") (term "1,1")) + (rule "polySimp_rightDist" (formula "23") (term "1,1")) + (rule "mul_literals" (formula "23") (term "0,1,1")) + (rule "polySimp_mulLiterals" (formula "23") (term "1,1,1")) + (rule "polySimp_elimOne" (formula "23") (term "1,1,1")) + (rule "replace_known_left" (formula "23") (term "1") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "23")) + (rule "inEqSimp_geqRight" (formula "23")) + (rule "mul_literals" (formula "1") (term "1,0,0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "mul_literals" (formula "1") (term "1")) + (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "19")) + (rule "qeq_literals" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + ) + (branch + (rule "polySimp_mulComm0" (formula "28") (term "0,0")) + (rule "polySimp_rightDist" (formula "28") (term "0,0")) + (rule "mul_literals" (formula "28") (term "0,0,0")) + (rule "precOfInt" (formula "28")) + (rule "inEqSimp_ltRight" (formula "25")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "2") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "28") (term "1")) + (rule "polySimp_rightDist" (formula "28") (term "1,0,0,1")) + (rule "polySimp_mulAssoc" (formula "28") (term "0,1,0,0,1")) + (rule "polySimp_mulComm0" (formula "28") (term "0,0,1,0,0,1")) + (rule "polySimp_mulLiterals" (formula "28") (term "0,1,0,0,1")) + (rule "polySimp_elimOne" (formula "28") (term "0,1,0,0,1")) + (rule "polySimp_addAssoc" (formula "28") (term "0,0,1")) + (rule "polySimp_addAssoc" (formula "28") (term "0,1")) + (rule "polySimp_addComm1" (formula "28") (term "0,0,1")) + (rule "polySimp_pullOutFactor2b" (formula "28") (term "0,1")) + (rule "add_literals" (formula "28") (term "1,1,0,1")) + (rule "times_zero_1" (formula "28") (term "1,0,1")) + (rule "add_zero_right" (formula "28") (term "0,1")) + (rule "polySimp_addAssoc" (formula "28") (term "0,1")) + (rule "polySimp_addComm1" (formula "28") (term "0,0,1")) + (rule "add_literals" (formula "28") (term "0,0,0,1")) + (rule "add_zero_left" (formula "28") (term "0,0,1")) + (rule "polySimp_pullOutFactor1" (formula "28") (term "0,1")) + (rule "add_literals" (formula "28") (term "1,0,1")) + (rule "times_zero_1" (formula "28") (term "0,1")) + (rule "leq_literals" (formula "28") (term "1")) + (builtin "One Step Simplification" (formula "28")) + (rule "inEqSimp_leqRight" (formula "28")) + (rule "add_zero_right" (formula "1") (term "0")) + (rule "polySimp_rightDist" (formula "1") (term "1,0")) + (rule "polySimp_rightDist" (formula "1") (term "0,1,0")) + (rule "mul_literals" (formula "1") (term "0,0,1,0")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0,1,0")) + (rule "polySimp_elimOne" (formula "1") (term "1,0,1,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_strengthen1" (formula "15") (ifseqformula "26")) + (rule "add_zero_right" (formula "15") (term "1")) + (rule "inEqSimp_contradEq7" (formula "26") (ifseqformula "15")) + (rule "times_zero_1" (formula "26") (term "1,0,0")) + (rule "add_zero_right" (formula "26") (term "0,0")) + (rule "leq_literals" (formula "26") (term "0")) + (builtin "One Step Simplification" (formula "26")) + (rule "false_right" (formula "26")) + (rule "inEqSimp_subsumption1" (formula "21") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "21") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "21") (term "0,0")) + (rule "add_literals" (formula "21") (term "1,1,0,0")) + (rule "times_zero_1" (formula "21") (term "1,0,0")) + (rule "add_zero_right" (formula "21") (term "0,0")) + (rule "qeq_literals" (formula "21") (term "0")) + (builtin "One Step Simplification" (formula "21")) + (rule "true_left" (formula "21")) + (rule "inEqSimp_contradInEq0" (formula "3") (ifseqformula "1")) + (rule "andLeft" (formula "3")) + (rule "inEqSimp_homoInEq1" (formula "3")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "0")) + (rule "add_literals" (formula "3") (term "1,1,0")) + (rule "times_zero_1" (formula "3") (term "1,0")) + (rule "add_zero_right" (formula "3") (term "0")) + (rule "leq_literals" (formula "3")) + (rule "closeFalse" (formula "3")) + ) + ) + ) + (branch "Null Reference (mc == 0 = null)" + (rule "false_right" (formula "28")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "27"))) + (rule "closeFalse" (formula "1")) + ) + (branch "Index Out of Bounds (mc == 0 != null, but mc == 0 Out of Bounds!)" + (rule "false_right" (formula "28")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "27"))) + (rule "inEqSimp_ltRight" (formula "25")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "2") (term "1")) + (rule "times_zero_1" (formula "2") (term "1,0,0,1")) + (rule "add_zero_right" (formula "2") (term "0,0,1")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_sepPosMonomial0" (formula "2") (term "1")) + (rule "mul_literals" (formula "2") (term "1,1")) + (rule "inEqSimp_strengthen1" (formula "15") (ifseqformula "25")) + (rule "add_zero_right" (formula "15") (term "1")) + (rule "inEqSimp_contradEq7" (formula "25") (ifseqformula "15")) + (rule "times_zero_1" (formula "25") (term "1,0,0")) + (rule "add_zero_right" (formula "25") (term "0,0")) + (rule "leq_literals" (formula "25") (term "0")) + (builtin "One Step Simplification" (formula "25")) + (rule "false_right" (formula "25")) + (rule "inEqSimp_subsumption1" (formula "21") (ifseqformula "3")) + (rule "inEqSimp_homoInEq0" (formula "21") (term "0")) + (rule "polySimp_pullOutFactor1b" (formula "21") (term "0,0")) + (rule "add_literals" (formula "21") (term "1,1,0,0")) + (rule "times_zero_1" (formula "21") (term "1,0,0")) + (rule "add_zero_right" (formula "21") (term "0,0")) + (rule "qeq_literals" (formula "21") (term "0")) + (builtin "One Step Simplification" (formula "21")) + (rule "true_left" (formula "21")) + (rule "inEqSimp_contradInEq1" (formula "2") (term "0") (ifseqformula "3")) + (rule "inEqSimp_homoInEq1" (formula "2") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "0,0,0")) + (rule "add_literals" (formula "2") (term "1,1,0,0,0")) + (rule "times_zero_1" (formula "2") (term "1,0,0,0")) + (rule "add_zero_right" (formula "2") (term "0,0,0")) + (rule "leq_literals" (formula "2") (term "0,0")) + (builtin "One Step Simplification" (formula "2")) + (rule "inEqSimp_contradInEq0" (formula "20") (ifseqformula "2")) + (rule "qeq_literals" (formula "20") (term "0")) + (builtin "One Step Simplification" (formula "20")) + (rule "closeFalse" (formula "20")) + ) + ) + (branch "if r < _a.length false" + (builtin "One Step Simplification" (formula "28")) + (builtin "One Step Simplification" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + ) + (branch "Null Reference (mc == 0 = null)" + (rule "false_right" (formula "27")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "26"))) + (rule "closeFalse" (formula "1")) + ) + ) + (branch "Null Reference (mc == 0 = null)" + (rule "false_right" (formula "22")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "25"))) + (rule "closeFalse" (formula "1")) + ) + ) + (branch "Use Case" + (builtin "One Step Simplification" (formula "21")) + (builtin "One Step Simplification" (formula "16")) + (rule "andLeft" (formula "16")) + (rule "andLeft" (formula "16")) + (rule "andLeft" (formula "16")) + (rule "eqSymm" (formula "18")) + (rule "inEqSimp_commuteLeq" (formula "19")) + (rule "inEqSimp_commuteLeq" (formula "17")) + (rule "inEqSimp_commuteLeq" (formula "16")) + (rule "variableDeclarationAssign" (formula "24") (term "1")) + (rule "variableDeclaration" (formula "24") (term "1") (newnames "b_0_1")) + (rule "limit_BoyerMoore_count[I\bigint\bigint" (formula "18") (term "0")) + (rule "applyEq" (formula "18") (term "1") (ifseqformula "19")) + (rule "compound_less_than_comparison_2" (formula "25") (term "1") (inst "#v1=i_3") (inst "#v0=i_2")) + (rule "variableDeclarationAssign" (formula "25") (term "1")) + (rule "variableDeclaration" (formula "25") (term "1") (newnames "i_2")) + (rule "assignment" (formula "25") (term "1")) + (builtin "One Step Simplification" (formula "25")) + (rule "variableDeclarationAssign" (formula "25") (term "1")) + (rule "variableDeclaration" (formula "25") (term "1") (newnames "i_3")) + (rule "assignment_read_length" (formula "25")) + (branch "Normal Execution (mc == 0 != null)" + (builtin "One Step Simplification" (formula "25")) + (rule "less_than_comparison_simple" (formula "25") (term "1")) + (builtin "One Step Simplification" (formula "25")) + (rule "methodCallEmpty" (formula "25") (term "1")) + (rule "emptyModality" (formula "25") (term "1")) + (builtin "One Step Simplification" (formula "25")) + (rule "impRight" (formula "25")) + (rule "notLeft" (formula "1")) + (rule "returnUnfold" (formula "26") (term "1") (inst "#v0=i_4")) + (rule "variableDeclarationAssign" (formula "26") (term "1")) + (rule "variableDeclaration" (formula "26") (term "1") (newnames "i_4")) + (rule "activeUseStaticFieldReadAccess" (formula "26") (term "1")) + (rule "assignment_read_static_attribute" (formula "26") (term "1")) + (builtin "One Step Simplification" (formula "26")) + (rule "methodCallReturn" (formula "26") (term "1")) + (rule "assignment" (formula "26") (term "1")) + (builtin "One Step Simplification" (formula "26")) + (rule "methodCallEmpty" (formula "26") (term "1")) + (rule "tryEmpty" (formula "26") (term "1")) + (rule "emptyModality" (formula "26") (term "1")) + (rule "andRight" (formula "26")) + (branch + (rule "andRight" (formula "26")) + (branch "Case 1" + (rule "andRight" (formula "26")) + (branch "Case 1" + (rule "impRight" (formula "26")) + (builtin "One Step Simplification" (formula "1")) + (builtin "One Step Simplification" (formula "27")) + (rule "inEqSimp_ltRight" (formula "22")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_ltRight" (formula "24")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_gtRight" (formula "27")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1")) + (rule "polySimp_elimOne" (formula "1") (term "1")) + (rule "inEqSimp_strengthen1" (formula "15") (ifseqformula "25")) + (rule "add_zero_right" (formula "15") (term "1")) + (rule "inEqSimp_contradEq7" (formula "25") (ifseqformula "15")) + (rule "times_zero_1" (formula "25") (term "1,0,0")) + (rule "add_zero_right" (formula "25") (term "0,0")) + (rule "leq_literals" (formula "25") (term "0")) + (builtin "One Step Simplification" (formula "25")) + (rule "false_right" (formula "25")) + (rule "inEqSimp_antiSymm" (formula "21") (ifseqformula "3")) + (rule "applyEq" (formula "25") (term "0,0") (ifseqformula "21")) + (rule "applyEq" (formula "14") (term "0") (ifseqformula "21")) + (rule "applyEq" (formula "2") (term "0") (ifseqformula "21")) + (rule "applyEq" (formula "3") (term "0") (ifseqformula "21")) + (rule "inEqSimp_homoInEq0" (formula "3")) + (rule "polySimp_pullOutFactor1" (formula "3") (term "0")) + (rule "add_literals" (formula "3") (term "1,0")) + (rule "times_zero_1" (formula "3") (term "0")) + (rule "qeq_literals" (formula "3")) + (rule "true_left" (formula "3")) + (rule "applyEq" (formula "1") (term "0,1") (ifseqformula "20")) + (rule "applyEq" (formula "21") (term "0") (ifseqformula "20")) + (rule "inEqSimp_homoInEq1" (formula "21")) + (rule "polySimp_pullOutFactor1" (formula "21") (term "0")) + (rule "add_literals" (formula "21") (term "1,0")) + (rule "times_zero_1" (formula "21") (term "0")) + (rule "leq_literals" (formula "21")) + (rule "true_left" (formula "21")) + (rule "applyEq" (formula "1") (term "3,0") (ifseqformula "20")) + (rule "inEqSimp_antiSymm" (formula "13") (ifseqformula "2")) + (rule "applyEqRigid" (formula "24") (term "0,0") (ifseqformula "13")) + (rule "applyEqRigid" (formula "1") (term "3,0") (ifseqformula "13")) + (rule "applyEqRigid" (formula "2") (term "0") (ifseqformula "13")) + (rule "inEqSimp_homoInEq0" (formula "2")) + (rule "polySimp_pullOutFactor1" (formula "2") (term "0")) + (rule "add_literals" (formula "2") (term "1,0")) + (rule "times_zero_1" (formula "2") (term "0")) + (rule "qeq_literals" (formula "2")) + (rule "true_left" (formula "2")) + (rule "applyEq" (formula "13") (term "0") (ifseqformula "12")) + (rule "inEqSimp_homoInEq1" (formula "13")) + (rule "polySimp_pullOutFactor1" (formula "13") (term "0")) + (rule "add_literals" (formula "13") (term "1,0")) + (rule "times_zero_1" (formula "13") (term "0")) + (rule "leq_literals" (formula "13")) + (rule "true_left" (formula "13")) + (rule "applyEqRigid" (formula "1") (term "0,1") (ifseqformula "12")) + (rule "applyEqRigid" (formula "18") (term "0") (ifseqformula "12")) + (rule "applyEq" (formula "19") (term "3,0") (ifseqformula "12")) + (rule "applyEqRigid" (formula "20") (term "3,0") (ifseqformula "12")) + (rule "applyEq" (formula "15") (term "0,0") (ifseqformula "20")) + (rule "inEqSimp_homoInEq0" (formula "15")) + (rule "polySimp_mulLiterals" (formula "15") (term "1,0")) + (rule "polySimp_addComm1" (formula "15") (term "0")) + (rule "polySimp_addComm0" (formula "15") (term "0,0")) + (rule "applyEq" (formula "14") (term "0") (ifseqformula "19")) + (rule "eqSymm" (formula "14")) + (rule "applyEq" (formula "17") (term "1") (ifseqformula "12")) + (rule "inEqSimp_sepPosMonomial1" (formula "14")) + (rule "polySimp_mulComm0" (formula "14") (term "1")) + (rule "polySimp_rightDist" (formula "14") (term "1")) + (rule "polySimp_mulComm0" (formula "14") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "14") (term "0,1")) + (rule "nnf_imp2or" (formula "15") (term "0")) + (builtin "One Step Simplification" (formula "15")) + (rule "limit_BoyerMoore_count[I\bigint\bigint" (formula "1") (term "0")) + (rule "jdiv_axiom" (formula "21") (term "0")) + (rule "eqSymm" (formula "21")) + (rule "replace_known_left" (formula "21") (term "0,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "21")) + (rule "eqSymm" (formula "21")) + (rule "applyEq" (formula "2") (term "1") (ifseqformula "21")) + (rule "applyEq" (formula "22") (term "0") (ifseqformula "21")) + (rule "div_axiom" (formula "21") (term "1") (inst "quotient=quotient_0")) + (rule "qeq_literals" (formula "21") (term "0,1,1")) + (builtin "One Step Simplification" (formula "21")) + (rule "mul_literals" (formula "21") (term "1,1,1,1")) + (rule "equal_literals" (formula "21") (term "0")) + (builtin "One Step Simplification" (formula "21")) + (rule "andLeft" (formula "21")) + (rule "andLeft" (formula "21")) + (rule "polySimp_addComm1" (formula "23") (term "1")) + (rule "add_literals" (formula "23") (term "0,1")) + (rule "inEqSimp_commuteLeq" (formula "22")) + (rule "inEqSimp_homoInEq1" (formula "23")) + (rule "polySimp_mulLiterals" (formula "23") (term "1,0")) + (rule "polySimp_addComm1" (formula "23") (term "0")) + (rule "applyEqRigid" (formula "25") (term "0") (ifseqformula "21")) + (rule "inEqSimp_commuteGeq" (formula "25")) + (rule "applyEqRigid" (formula "2") (term "1") (ifseqformula "21")) + (rule "applyEq" (formula "24") (term "1") (ifseqformula "21")) + (rule "inEqSimp_sepPosMonomial0" (formula "23")) + (rule "polySimp_mulComm0" (formula "23") (term "1")) + (rule "polySimp_rightDist" (formula "23") (term "1")) + (rule "polySimp_mulLiterals" (formula "23") (term "1,1")) + (rule "mul_literals" (formula "23") (term "0,1")) + (rule "inEqSimp_exactShadow3" (formula "12") (ifseqformula "23")) + (rule "times_zero_1" (formula "12") (term "0,0")) + (rule "add_zero_left" (formula "12") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "12")) + (rule "mul_literals" (formula "12") (term "1")) + (rule "elimGcdGeq_antec" (formula "12") (inst "elimGcd=Z(2(#))") (inst "elimGcdLeftDiv=quotient_0") (inst "elimGcdRightDiv=Z(0(#))")) + (rule "polySimp_mulLiterals" (formula "12") (term "1,0,1,0")) + (rule "times_zero_1" (formula "12") (term "1,0,0,0,0,1,0")) + (rule "leq_literals" (formula "12") (term "0,0")) + (builtin "One Step Simplification" (formula "12")) + (rule "polySimp_addLiterals" (formula "12") (term "0,0,0,0")) + (rule "add_literals" (formula "12") (term "0,0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "12") (term "0,0")) + (rule "add_literals" (formula "12") (term "1,1,0,0")) + (rule "times_zero_1" (formula "12") (term "1,0,0")) + (rule "add_zero_right" (formula "12") (term "0,0")) + (rule "leq_literals" (formula "12") (term "0")) + (builtin "One Step Simplification" (formula "12")) + (rule "arrayLengthIsAShort" (formula "19") (term "0")) + (builtin "One Step Simplification" (formula "19")) + (rule "true_left" (formula "19")) + (rule "arrayLengthNotNegative" (formula "19") (term "0")) + (rule "applyEq" (formula "19") (term "0") (ifseqformula "20")) + (rule "onlyCreatedObjectsAreReferenced" (formula "3") (term "1,0") (ifseqformula "4")) + (rule "cut_direct" (formula "3") (term "0")) + (branch "CUT: IntOpt.NONE = null TRUE" + (builtin "One Step Simplification" (formula "4")) + (rule "true_left" (formula "4")) + (rule "applyEq" (formula "2") (term "1,4,0") (ifseqformula "3")) + (rule "applyEq" (formula "1") (term "1,4,1") (ifseqformula "3")) + (rule "applyEq" (formula "4") (term "1,0") (ifseqformula "3")) + (rule "applyEq" (formula "1") (term "1,4,0") (ifseqformula "3")) + (rule "limit_BoyerMoore_count[I\bigint\bigint" (formula "2") (term "0")) + (rule "allLeft" (formula "18") (inst "t=int::select(heap, null, IntOpt::$value)")) + (rule "cut_direct" (formula "18") (term "1")) + (branch "CUT: self.count(a, k_0, IntOpt.value) * 2 <= k_0 + mc_0 * -1 TRUE" + (builtin "One Step Simplification" (formula "19")) + (rule "true_left" (formula "19")) + (rule "Partial_inv_axiom_for_static_JML_class_invariant_in_IntOpt_no_1" (formula "10")) + (rule "notLeft" (formula "10")) + (rule "close" (formula "29") (ifseqformula "3")) + ) + (branch "CUT: self.count(a, k_0, IntOpt.value) * 2 <= k_0 + mc_0 * -1 FALSE" + (builtin "One Step Simplification" (formula "18")) + (rule "inEqSimp_leqRight" (formula "29")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1,0,0")) + (rule "polySimp_elimOne" (formula "1") (term "1,1,0,0")) + (rule "polySimp_mulComm0" (formula "1") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "applyEq" (formula "1") (term "4,0,1,0") (ifseqformula "19")) + (rule "applyEq" (formula "2") (term "4,0") (ifseqformula "19")) + (rule "eqSymm" (formula "2")) + (rule "applyEq" (formula "3") (term "4,0") (ifseqformula "19")) + (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "24")) + (rule "polySimp_addComm1" (formula "1") (term "0")) + (rule "polySimp_addComm1" (formula "1") (term "0,0")) + (rule "applyEq" (formula "3") (term "0") (ifseqformula "24")) + (rule "applyEq" (formula "2") (term "4,0") (ifseqformula "18")) + (rule "eqSymm" (formula "2")) + (rule "applyEq" (formula "22") (term "0") (ifseqformula "2")) + (rule "applyEq" (formula "2") (term "1") (ifseqformula "22")) + (rule "inEqSimp_sepPosMonomial1" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,1")) + (rule "polySimp_rightDist" (formula "1") (term "0,1")) + (rule "mul_literals" (formula "1") (term "0,0,1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0,1")) + (rule "Partial_inv_axiom_for_static_JML_class_invariant_in_IntOpt_no_1" (formula "10")) + (rule "notLeft" (formula "10")) + (rule "close" (formula "28") (ifseqformula "3")) + ) + ) + (branch "CUT: IntOpt.NONE = null FALSE" + (builtin "One Step Simplification" (formula "3")) + (rule "allLeft" (formula "18") (inst "t=int::select(heap, + IntOpt::select(heap, null, IntOpt::$NONE), + IntOpt::$value)")) + (rule "cut_direct" (formula "18") (term "1")) + (branch "CUT: self.count(a, k_0, IntOpt.NONE.value) * 2 <= k_0 + mc_0 * -1 TRUE" + (builtin "One Step Simplification" (formula "19")) + (rule "true_left" (formula "19")) + (rule "Partial_inv_axiom_for_static_JML_class_invariant_in_IntOpt_no_2" (formula "10")) + (rule "notLeft" (formula "10")) + (rule "close" (formula "29") (ifseqformula "4")) + ) + (branch "CUT: self.count(a, k_0, IntOpt.NONE.value) * 2 <= k_0 + mc_0 * -1 FALSE" + (builtin "One Step Simplification" (formula "18")) + (rule "inEqSimp_leqRight" (formula "29")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1,0,0")) + (rule "polySimp_elimOne" (formula "1") (term "1,1,0,0")) + (rule "polySimp_mulComm0" (formula "1") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "applyEq" (formula "3") (term "4,0") (ifseqformula "19")) + (rule "applyEq" (formula "1") (term "4,0,1,0") (ifseqformula "19")) + (rule "applyEq" (formula "2") (term "4,0") (ifseqformula "19")) + (rule "eqSymm" (formula "2")) + (rule "applyEq" (formula "3") (term "0") (ifseqformula "24")) + (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "23")) + (rule "polySimp_addComm1" (formula "1") (term "0")) + (rule "polySimp_addComm1" (formula "1") (term "0,0")) + (rule "applyEq" (formula "2") (term "4,0") (ifseqformula "18")) + (rule "eqSymm" (formula "2")) + (rule "applyEq" (formula "22") (term "0") (ifseqformula "2")) + (rule "applyEq" (formula "2") (term "1") (ifseqformula "22")) + (rule "inEqSimp_sepPosMonomial1" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,1")) + (rule "polySimp_rightDist" (formula "1") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0,1")) + (rule "mul_literals" (formula "1") (term "0,0,1")) + (rule "Partial_inv_axiom_for_static_JML_class_invariant_in_IntOpt_no_2" (formula "10")) + (rule "notLeft" (formula "10")) + (rule "close" (formula "28") (ifseqformula "4")) + ) + ) + ) + (branch "Case 2" + (rule "andRight" (formula "26")) + (branch "Case 1" + (rule "impRight" (formula "26")) + (builtin "One Step Simplification" (formula "1")) + (builtin "One Step Simplification" (formula "27")) + (rule "notLeft" (formula "1")) + (rule "notRight" (formula "27")) + (rule "exLeft" (formula "1") (inst "sk=m_0")) + (rule "inEqSimp_ltRight" (formula "23")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_ltRight" (formula "25")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_gtToGeq" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1")) + (rule "polySimp_rightDist" (formula "3") (term "1")) + (rule "polySimp_mulLiterals" (formula "3") (term "1,1")) + (rule "mul_literals" (formula "3") (term "0,1")) + (rule "polySimp_elimOne" (formula "3") (term "1,1")) + (rule "inEqSimp_strengthen1" (formula "14") (ifseqformula "25")) + (rule "add_zero_right" (formula "14") (term "1")) + (rule "inEqSimp_contradEq7" (formula "25") (ifseqformula "14")) + (rule "times_zero_1" (formula "25") (term "1,0,0")) + (rule "add_zero_right" (formula "25") (term "0,0")) + (rule "leq_literals" (formula "25") (term "0")) + (builtin "One Step Simplification" (formula "25")) + (rule "false_right" (formula "25")) + (rule "inEqSimp_antiSymm" (formula "20") (ifseqformula "2")) + (rule "applyEq" (formula "2") (term "0") (ifseqformula "20")) + (rule "inEqSimp_homoInEq0" (formula "2")) + (rule "polySimp_pullOutFactor1" (formula "2") (term "0")) + (rule "add_literals" (formula "2") (term "1,0")) + (rule "times_zero_1" (formula "2") (term "0")) + (rule "qeq_literals" (formula "2")) + (rule "true_left" (formula "2")) + (rule "applyEq" (formula "12") (term "0") (ifseqformula "19")) + (rule "applyEq" (formula "2") (term "0,1,1") (ifseqformula "19")) + (rule "applyEq" (formula "20") (term "0") (ifseqformula "19")) + (rule "inEqSimp_homoInEq1" (formula "20")) + (rule "polySimp_pullOutFactor1" (formula "20") (term "0")) + (rule "add_literals" (formula "20") (term "1,0")) + (rule "times_zero_1" (formula "20") (term "0")) + (rule "leq_literals" (formula "20")) + (rule "true_left" (formula "20")) + (rule "applyEq" (formula "22") (term "0,0") (ifseqformula "19")) + (rule "applyEq" (formula "2") (term "3,0") (ifseqformula "19")) + (rule "applyEq" (formula "1") (term "0") (ifseqformula "19")) + (rule "inEqSimp_antiSymm" (formula "12") (ifseqformula "1")) + (rule "applyEq" (formula "2") (term "0,1,1") (ifseqformula "12")) + (rule "applyEqRigid" (formula "1") (term "0") (ifseqformula "12")) + (rule "inEqSimp_homoInEq0" (formula "1")) + (rule "polySimp_pullOutFactor1" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "1,0")) + (rule "times_zero_1" (formula "1") (term "0")) + (rule "qeq_literals" (formula "1")) + (rule "true_left" (formula "1")) + (rule "applyEqRigid" (formula "20") (term "3,0") (ifseqformula "11")) + (rule "applyEq" (formula "22") (term "0,0") (ifseqformula "11")) + (rule "applyEqRigid" (formula "1") (term "3,0") (ifseqformula "11")) + (rule "applyEqRigid" (formula "12") (term "0") (ifseqformula "11")) + (rule "inEqSimp_homoInEq1" (formula "12")) + (rule "polySimp_pullOutFactor1" (formula "12") (term "0")) + (rule "add_literals" (formula "12") (term "1,0")) + (rule "times_zero_1" (formula "12") (term "0")) + (rule "leq_literals" (formula "12")) + (rule "true_left" (formula "12")) + (rule "applyEqRigid" (formula "17") (term "0") (ifseqformula "11")) + (rule "applyEq" (formula "19") (term "3,0") (ifseqformula "11")) + (rule "applyEq" (formula "13") (term "0") (ifseqformula "18")) + (rule "eqSymm" (formula "13")) + (rule "applyEq" (formula "13") (term "0,0") (ifseqformula "18")) + (rule "inEqSimp_homoInEq0" (formula "13")) + (rule "polySimp_mulLiterals" (formula "13") (term "1,0")) + (rule "polySimp_addComm1" (formula "13") (term "0")) + (rule "polySimp_addComm0" (formula "13") (term "0,0")) + (rule "applyEqRigid" (formula "16") (term "1") (ifseqformula "11")) + (rule "inEqSimp_sepPosMonomial1" (formula "13")) + (rule "polySimp_mulComm0" (formula "13") (term "1")) + (rule "polySimp_rightDist" (formula "13") (term "1")) + (rule "polySimp_mulComm0" (formula "13") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "13") (term "0,1")) + (rule "nnf_imp2or" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "limit_BoyerMoore_count[I\bigint\bigint" (formula "1") (term "0")) + (rule "jdiv_axiom" (formula "2") (term "1,1")) + (rule "eqSymm" (formula "2")) + (rule "replace_known_left" (formula "2") (term "0,0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "2")) + (rule "eqSymm" (formula "2")) + (rule "applyEqRigid" (formula "3") (term "1,1") (ifseqformula "2")) + (rule "applyEq" (formula "21") (term "0") (ifseqformula "2")) + (rule "div_axiom" (formula "2") (term "1") (inst "quotient=quotient_0")) + (rule "equal_literals" (formula "2") (term "0")) + (builtin "One Step Simplification" (formula "2")) + (rule "qeq_literals" (formula "2") (term "0,1")) + (builtin "One Step Simplification" (formula "2")) + (rule "mul_literals" (formula "2") (term "1,1,1")) + (rule "andLeft" (formula "2")) + (rule "andLeft" (formula "2")) + (rule "polySimp_addComm1" (formula "4") (term "1")) + (rule "add_literals" (formula "4") (term "0,1")) + (rule "inEqSimp_commuteLeq" (formula "3")) + (rule "inEqSimp_homoInEq1" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,0")) + (rule "polySimp_addComm1" (formula "4") (term "0")) + (rule "applyEq" (formula "6") (term "1,1") (ifseqformula "2")) + (rule "applyEqRigid" (formula "24") (term "0") (ifseqformula "2")) + (rule "inEqSimp_commuteGeq" (formula "24")) + (rule "applyEq" (formula "5") (term "1") (ifseqformula "2")) + (rule "inEqSimp_sepPosMonomial0" (formula "4")) + (rule "polySimp_mulComm0" (formula "4") (term "1")) + (rule "polySimp_rightDist" (formula "4") (term "1")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,1")) + (rule "mul_literals" (formula "4") (term "0,1")) + (rule "inEqSimp_exactShadow3" (formula "15") (ifseqformula "4")) + (rule "times_zero_1" (formula "15") (term "0,0")) + (rule "add_zero_left" (formula "15") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "15")) + (rule "mul_literals" (formula "15") (term "1")) + (rule "elimGcdGeq_antec" (formula "15") (inst "elimGcd=Z(2(#))") (inst "elimGcdLeftDiv=quotient_0") (inst "elimGcdRightDiv=Z(0(#))")) + (rule "polySimp_mulLiterals" (formula "15") (term "1,0,1,0")) + (rule "times_zero_1" (formula "15") (term "1,0,0,0,0,1,0")) + (rule "leq_literals" (formula "15") (term "0,0")) + (builtin "One Step Simplification" (formula "15")) + (rule "polySimp_addLiterals" (formula "15") (term "0,0,0,0")) + (rule "add_literals" (formula "15") (term "0,0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "15") (term "0,0")) + (rule "add_literals" (formula "15") (term "1,1,0,0")) + (rule "times_zero_1" (formula "15") (term "1,0,0")) + (rule "add_zero_right" (formula "15") (term "0,0")) + (rule "leq_literals" (formula "15") (term "0")) + (builtin "One Step Simplification" (formula "15")) + (rule "arrayLengthNotNegative" (formula "22") (term "0")) + (rule "applyEq" (formula "22") (term "0") (ifseqformula "23")) + (rule "arrayLengthIsAShort" (formula "22") (term "0")) + (builtin "One Step Simplification" (formula "22")) + (rule "true_left" (formula "22")) + (rule "onlyCreatedObjectsAreReferenced" (formula "26") (term "1,0") (ifseqformula "7")) + (rule "cut_direct" (formula "1") (term "0")) + (branch "CUT: IntOpt.NONE = null TRUE" + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "applyEq" (formula "27") (term "1,0") (ifseqformula "1")) + (rule "allLeft" (formula "21") (inst "t=m_0")) + (rule "eqSymm" (formula "21") (term "0")) + (rule "cut_direct" (formula "21") (term "1")) + (branch "CUT: self.count(a, k_0, m_0) * 2 <= k_0 + mc_0 * -1 TRUE" + (builtin "One Step Simplification" (formula "22")) + (rule "true_left" (formula "22")) + (rule "inEqSimp_exactShadow2" (formula "7") (ifseqformula "21")) + (rule "greater_literals" (formula "7") (term "0")) + (builtin "One Step Simplification" (formula "7")) + (rule "polySimp_rightDist" (formula "7") (term "1,0,0")) + (rule "mul_literals" (formula "7") (term "0,1,0,0")) + (rule "polySimp_rightDist" (formula "7") (term "0,0")) + (rule "mul_literals" (formula "7") (term "0,0,0")) + (rule "polySimp_mulLiterals" (formula "7") (term "1,0,0")) + (rule "polySimp_addAssoc" (formula "7") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "7")) + (rule "polySimp_mulLiterals" (formula "7") (term "0")) + (rule "polySimp_elimOne" (formula "7") (term "0")) + (rule "inEqSimp_exactShadow3" (formula "21") (ifseqformula "7")) + (rule "polySimp_rightDist" (formula "21") (term "0,0")) + (rule "polySimp_mulLiterals" (formula "21") (term "1,0,0")) + (rule "polySimp_elimOne" (formula "21") (term "1,0,0")) + (rule "polySimp_mulAssoc" (formula "21") (term "0,0,0")) + (rule "polySimp_mulComm0" (formula "21") (term "0,0,0,0")) + (rule "polySimp_mulLiterals" (formula "21") (term "0,0,0")) + (rule "polySimp_addAssoc" (formula "21") (term "0")) + (rule "polySimp_addComm1" (formula "21") (term "0,0")) + (rule "polySimp_pullOutFactor3b" (formula "21") (term "0")) + (rule "polySimp_addComm0" (formula "21") (term "0,0")) + (rule "inEqSimp_sepPosMonomial1" (formula "21")) + (rule "polySimp_mulComm0" (formula "21") (term "1")) + (rule "polySimp_rightDist" (formula "21") (term "1")) + (rule "polySimp_mulLiterals" (formula "21") (term "1,1")) + (rule "polySimp_rightDist" (formula "21") (term "0,1")) + (rule "mul_literals" (formula "21") (term "0,0,1")) + (rule "polySimp_mulLiterals" (formula "21") (term "1,0,1")) + (rule "elimGcdGeq_antec" (formula "21") (inst "elimGcd=Z(2(#))") (inst "elimGcdLeftDiv=k_0") (inst "elimGcdRightDiv=add(add(Z(1(#)), quotient_0), cnt_0)")) + (rule "polySimp_mulLiterals" (formula "21") (term "1,0,1,0")) + (rule "mul_literals" (formula "21") (term "0,1,0,0,0,0,1,0")) + (rule "leq_literals" (formula "21") (term "0,0")) + (builtin "One Step Simplification" (formula "21")) + (rule "polySimp_pullOutFactor0b" (formula "21") (term "0,0")) + (rule "add_literals" (formula "21") (term "1,1,0,0")) + (rule "times_zero_1" (formula "21") (term "1,0,0")) + (rule "add_zero_right" (formula "21") (term "0,0")) + (rule "polySimp_rightDist" (formula "21") (term "1,0,0,0")) + (rule "polySimp_rightDist" (formula "21") (term "0,1,0,0,0")) + (rule "mul_literals" (formula "21") (term "0,0,1,0,0,0")) + (rule "polySimp_addAssoc" (formula "21") (term "0,0,0")) + (rule "polySimp_addAssoc" (formula "21") (term "0,0,0,0")) + (rule "add_literals" (formula "21") (term "0,0,0,0,0")) + (rule "add_zero_left" (formula "21") (term "0,0,0,0")) + (rule "polySimp_addAssoc" (formula "21") (term "0,0")) + (rule "polySimp_addComm1" (formula "21") (term "0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "21") (term "0,0")) + (rule "add_literals" (formula "21") (term "1,1,0,0")) + (rule "times_zero_1" (formula "21") (term "1,0,0")) + (rule "add_zero_right" (formula "21") (term "0,0")) + (rule "polySimp_addAssoc" (formula "21") (term "0,0")) + (rule "polySimp_addComm0" (formula "21") (term "0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "21") (term "0,0")) + (rule "add_literals" (formula "21") (term "1,1,0,0")) + (rule "times_zero_1" (formula "21") (term "1,0,0")) + (rule "add_zero_right" (formula "21") (term "0,0")) + (rule "leq_literals" (formula "21") (term "0")) + (builtin "One Step Simplification" (formula "21")) + (rule "inEqSimp_exactShadow3" (formula "20") (ifseqformula "7")) + (rule "mul_literals" (formula "20") (term "0,0")) + (rule "polySimp_addAssoc" (formula "20") (term "0")) + (rule "polySimp_addAssoc" (formula "20") (term "0,0")) + (rule "add_literals" (formula "20") (term "0,0,0")) + (rule "inEqSimp_sepPosMonomial1" (formula "20")) + (rule "polySimp_mulComm0" (formula "20") (term "1")) + (rule "polySimp_rightDist" (formula "20") (term "1")) + (rule "polySimp_mulLiterals" (formula "20") (term "1,1")) + (rule "mul_literals" (formula "20") (term "0,1")) + (rule "inEqSimp_subsumption1" (formula "4") (ifseqformula "20")) + (rule "inEqSimp_homoInEq0" (formula "4") (term "0")) + (rule "polySimp_mulLiterals" (formula "4") (term "1,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "4") (term "0,0")) + (rule "add_literals" (formula "4") (term "1,1,0,0")) + (rule "times_zero_1" (formula "4") (term "1,0,0")) + (rule "add_zero_right" (formula "4") (term "0,0")) + (rule "qeq_literals" (formula "4") (term "0")) + (builtin "One Step Simplification" (formula "4")) + (rule "true_left" (formula "4")) + (rule "inEqSimp_contradInEq0" (formula "19") (ifseqformula "4")) + (rule "andLeft" (formula "19")) + (rule "inEqSimp_homoInEq1" (formula "19")) + (rule "polySimp_mulComm0" (formula "19") (term "1,0")) + (rule "polySimp_rightDist" (formula "19") (term "1,0")) + (rule "mul_literals" (formula "19") (term "0,1,0")) + (rule "polySimp_mulLiterals" (formula "19") (term "1,1,0")) + (rule "polySimp_addAssoc" (formula "19") (term "0")) + (rule "polySimp_addComm1" (formula "19") (term "0,0")) + (rule "add_literals" (formula "19") (term "0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "19") (term "0")) + (rule "add_literals" (formula "19") (term "1,1,0")) + (rule "times_zero_1" (formula "19") (term "1,0")) + (rule "add_zero_right" (formula "19") (term "0")) + (rule "leq_literals" (formula "19")) + (rule "closeFalse" (formula "19")) + ) + (branch "CUT: self.count(a, k_0, m_0) * 2 <= k_0 + mc_0 * -1 FALSE" + (builtin "One Step Simplification" (formula "21")) + (rule "inEqSimp_leqRight" (formula "28")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1,0,0")) + (rule "polySimp_elimOne" (formula "1") (term "1,1,0,0")) + (rule "polySimp_mulComm0" (formula "1") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "applyEqRigid" (formula "27") (term "4,0") (ifseqformula "22")) + (rule "applyEqRigid" (formula "26") (term "4,0") (ifseqformula "22")) + (rule "applyEq" (formula "8") (term "0") (ifseqformula "27")) + (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "27")) + (rule "polySimp_addComm1" (formula "1") (term "0")) + (rule "polySimp_addComm1" (formula "1") (term "0,0")) + (rule "applyEq" (formula "3") (term "0") (ifseqformula "26")) + (rule "eqSymm" (formula "3")) + (rule "applyEqRigid" (formula "22") (term "1,0,0") (ifseqformula "21")) + (rule "inEqSimp_sepPosMonomial1" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,1")) + (rule "polySimp_rightDist" (formula "1") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0,1")) + (rule "mul_literals" (formula "1") (term "0,0,1")) + (rule "inEqSimp_contradInEq1" (formula "27") (ifseqformula "7")) + (rule "andLeft" (formula "27")) + (rule "inEqSimp_homoInEq1" (formula "27")) + (rule "polySimp_pullOutFactor1b" (formula "27") (term "0")) + (rule "add_literals" (formula "27") (term "1,1,0")) + (rule "times_zero_1" (formula "27") (term "1,0")) + (rule "add_zero_right" (formula "27") (term "0")) + (rule "leq_literals" (formula "27")) + (rule "closeFalse" (formula "27")) + ) + ) + (branch "CUT: IntOpt.NONE = null FALSE" + (builtin "One Step Simplification" (formula "1")) + (rule "allLeft" (formula "21") (inst "t=m_0")) + (rule "eqSymm" (formula "21") (term "0")) + (rule "cut_direct" (formula "21") (term "1")) + (branch "CUT: self.count(a, k_0, m_0) * 2 <= k_0 + mc_0 * -1 TRUE" + (builtin "One Step Simplification" (formula "22")) + (rule "true_left" (formula "22")) + (rule "inEqSimp_exactShadow2" (formula "7") (ifseqformula "21")) + (rule "greater_literals" (formula "7") (term "0")) + (builtin "One Step Simplification" (formula "7")) + (rule "polySimp_rightDist" (formula "7") (term "1,0,0")) + (rule "mul_literals" (formula "7") (term "0,1,0,0")) + (rule "polySimp_rightDist" (formula "7") (term "0,0")) + (rule "polySimp_mulLiterals" (formula "7") (term "1,0,0")) + (rule "mul_literals" (formula "7") (term "0,0,0")) + (rule "polySimp_addAssoc" (formula "7") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "7")) + (rule "polySimp_mulLiterals" (formula "7") (term "0")) + (rule "polySimp_elimOne" (formula "7") (term "0")) + (rule "inEqSimp_exactShadow3" (formula "20") (ifseqformula "7")) + (rule "mul_literals" (formula "20") (term "0,0")) + (rule "polySimp_addAssoc" (formula "20") (term "0")) + (rule "polySimp_addAssoc" (formula "20") (term "0,0")) + (rule "add_literals" (formula "20") (term "0,0,0")) + (rule "inEqSimp_sepPosMonomial1" (formula "20")) + (rule "polySimp_mulComm0" (formula "20") (term "1")) + (rule "polySimp_rightDist" (formula "20") (term "1")) + (rule "polySimp_mulLiterals" (formula "20") (term "1,1")) + (rule "mul_literals" (formula "20") (term "0,1")) + (rule "inEqSimp_contradInEq1" (formula "5") (ifseqformula "20")) + (rule "andLeft" (formula "5")) + (rule "inEqSimp_homoInEq1" (formula "5")) + (rule "polySimp_mulComm0" (formula "5") (term "1,0")) + (rule "polySimp_rightDist" (formula "5") (term "1,0")) + (rule "mul_literals" (formula "5") (term "0,1,0")) + (rule "polySimp_mulLiterals" (formula "5") (term "1,1,0")) + (rule "polySimp_addAssoc" (formula "5") (term "0")) + (rule "polySimp_addComm1" (formula "5") (term "0,0")) + (rule "add_literals" (formula "5") (term "0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "5") (term "0")) + (rule "add_literals" (formula "5") (term "1,1,0")) + (rule "times_zero_1" (formula "5") (term "1,0")) + (rule "add_zero_right" (formula "5") (term "0")) + (rule "leq_literals" (formula "5")) + (rule "closeFalse" (formula "5")) + ) + (branch "CUT: self.count(a, k_0, m_0) * 2 <= k_0 + mc_0 * -1 FALSE" + (builtin "One Step Simplification" (formula "21")) + (rule "inEqSimp_leqRight" (formula "28")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1,0,0")) + (rule "polySimp_elimOne" (formula "1") (term "1,1,0,0")) + (rule "polySimp_mulComm0" (formula "1") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "applyEqRigid" (formula "27") (term "4,0") (ifseqformula "22")) + (rule "applyEq" (formula "26") (term "4,0") (ifseqformula "22")) + (rule "applyEq" (formula "8") (term "0") (ifseqformula "27")) + (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "27")) + (rule "polySimp_addComm1" (formula "1") (term "0")) + (rule "polySimp_addComm1" (formula "1") (term "0,0")) + (rule "applyEq" (formula "26") (term "0") (ifseqformula "3")) + (rule "applyEq" (formula "23") (term "1,0,0") (ifseqformula "22")) + (rule "applyEq" (formula "3") (term "1") (ifseqformula "26")) + (rule "inEqSimp_sepPosMonomial1" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,1")) + (rule "polySimp_rightDist" (formula "1") (term "0,1")) + (rule "mul_literals" (formula "1") (term "0,0,1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,0,1")) + (rule "inEqSimp_contradInEq1" (formula "27") (ifseqformula "8")) + (rule "andLeft" (formula "27")) + (rule "inEqSimp_homoInEq1" (formula "27")) + (rule "polySimp_pullOutFactor1b" (formula "27") (term "0")) + (rule "add_literals" (formula "27") (term "1,1,0")) + (rule "times_zero_1" (formula "27") (term "1,0")) + (rule "add_zero_right" (formula "27") (term "0")) + (rule "leq_literals" (formula "27")) + (rule "closeFalse" (formula "27")) + ) + ) + ) + (branch "Case 2" + (rule "andRight" (formula "26")) + (branch "Case 1" + (builtin "One Step Simplification" (formula "26") (ifInst "" (formula "7"))) + (rule "closeTrue" (formula "26")) + ) + (branch "Case 2" + (builtin "One Step Simplification" (formula "26")) + (rule "notRight" (formula "26")) + (rule "inEqSimp_ltRight" (formula "22")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_ltRight" (formula "24")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_strengthen1" (formula "14") (ifseqformula "24")) + (rule "add_zero_right" (formula "14") (term "1")) + (rule "inEqSimp_contradEq7" (formula "24") (ifseqformula "14")) + (rule "times_zero_1" (formula "24") (term "1,0,0")) + (rule "add_zero_right" (formula "24") (term "0,0")) + (rule "leq_literals" (formula "24") (term "0")) + (builtin "One Step Simplification" (formula "24")) + (rule "false_right" (formula "24")) + (rule "inEqSimp_antiSymm" (formula "20") (ifseqformula "2")) + (rule "applyEq" (formula "1") (term "0") (ifseqformula "20")) + (rule "applyEq" (formula "13") (term "0") (ifseqformula "20")) + (rule "applyEq" (formula "2") (term "0") (ifseqformula "20")) + (rule "inEqSimp_homoInEq0" (formula "2")) + (rule "polySimp_pullOutFactor1" (formula "2") (term "0")) + (rule "add_literals" (formula "2") (term "1,0")) + (rule "times_zero_1" (formula "2") (term "0")) + (rule "qeq_literals" (formula "2")) + (rule "true_left" (formula "2")) + (rule "applyEq" (formula "20") (term "0") (ifseqformula "19")) + (rule "inEqSimp_homoInEq1" (formula "20")) + (rule "polySimp_pullOutFactor1" (formula "20") (term "0")) + (rule "add_literals" (formula "20") (term "1,0")) + (rule "times_zero_1" (formula "20") (term "0")) + (rule "leq_literals" (formula "20")) + (rule "true_left" (formula "20")) + (rule "applyEq" (formula "22") (term "0,0") (ifseqformula "19")) + (rule "inEqSimp_antiSymm" (formula "12") (ifseqformula "1")) + (rule "applyEqRigid" (formula "13") (term "0") (ifseqformula "12")) + (rule "inEqSimp_homoInEq1" (formula "13")) + (rule "polySimp_pullOutFactor1" (formula "13") (term "0")) + (rule "add_literals" (formula "13") (term "1,0")) + (rule "times_zero_1" (formula "13") (term "0")) + (rule "leq_literals" (formula "13")) + (rule "true_left" (formula "13")) + (rule "applyEq" (formula "21") (term "3,0") (ifseqformula "12")) + (rule "applyEqRigid" (formula "18") (term "0") (ifseqformula "12")) + (rule "applyEq" (formula "1") (term "0") (ifseqformula "12")) + (rule "inEqSimp_homoInEq0" (formula "1")) + (rule "polySimp_pullOutFactor1" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "1,0")) + (rule "times_zero_1" (formula "1") (term "0")) + (rule "qeq_literals" (formula "1")) + (rule "true_left" (formula "1")) + (rule "applyEq" (formula "20") (term "0,0") (ifseqformula "11")) + (rule "applyEq" (formula "18") (term "3,0") (ifseqformula "11")) + (rule "applyEq" (formula "18") (term "0") (ifseqformula "13")) + (rule "applyEq" (formula "14") (term "0,0") (ifseqformula "18")) + (rule "inEqSimp_homoInEq0" (formula "14")) + (rule "polySimp_mulLiterals" (formula "14") (term "1,0")) + (rule "polySimp_addComm1" (formula "14") (term "0")) + (rule "polySimp_addComm0" (formula "14") (term "0,0")) + (rule "applyEq" (formula "17") (term "1") (ifseqformula "11")) + (rule "applyEq" (formula "13") (term "1") (ifseqformula "18")) + (rule "inEqSimp_sepPosMonomial1" (formula "14")) + (rule "polySimp_mulComm0" (formula "14") (term "1")) + (rule "polySimp_rightDist" (formula "14") (term "1")) + (rule "polySimp_mulComm0" (formula "14") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "14") (term "0,1")) + (rule "nnf_imp2or" (formula "15") (term "0")) + (builtin "One Step Simplification" (formula "15")) + (rule "jdiv_axiom" (formula "19") (term "0")) + (rule "eqSymm" (formula "19")) + (rule "replace_known_left" (formula "19") (term "0,0") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "19")) + (rule "eqSymm" (formula "19")) + (rule "applyEq" (formula "20") (term "0") (ifseqformula "19")) + (rule "div_axiom" (formula "19") (term "1") (inst "quotient=quotient_0")) + (rule "mul_literals" (formula "19") (term "1,1,1,1,1")) + (rule "qeq_literals" (formula "19") (term "0,1,1")) + (builtin "One Step Simplification" (formula "19")) + (rule "equal_literals" (formula "19") (term "0")) + (builtin "One Step Simplification" (formula "19")) + (rule "andLeft" (formula "19")) + (rule "andLeft" (formula "19")) + (rule "polySimp_addComm1" (formula "21") (term "1")) + (rule "add_literals" (formula "21") (term "0,1")) + (rule "inEqSimp_commuteLeq" (formula "20")) + (rule "inEqSimp_homoInEq1" (formula "21")) + (rule "polySimp_mulLiterals" (formula "21") (term "1,0")) + (rule "polySimp_addComm1" (formula "21") (term "0")) + (rule "applyEqRigid" (formula "23") (term "0") (ifseqformula "19")) + (rule "inEqSimp_commuteGeq" (formula "23")) + (rule "applyEq" (formula "22") (term "1") (ifseqformula "19")) + (rule "inEqSimp_sepPosMonomial0" (formula "21")) + (rule "polySimp_mulComm0" (formula "21") (term "1")) + (rule "polySimp_rightDist" (formula "21") (term "1")) + (rule "polySimp_mulLiterals" (formula "21") (term "1,1")) + (rule "mul_literals" (formula "21") (term "0,1")) + (rule "inEqSimp_exactShadow3" (formula "10") (ifseqformula "21")) + (rule "times_zero_1" (formula "10") (term "0,0")) + (rule "add_zero_left" (formula "10") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "10")) + (rule "mul_literals" (formula "10") (term "1")) + (rule "elimGcdGeq_antec" (formula "10") (inst "elimGcd=Z(2(#))") (inst "elimGcdLeftDiv=quotient_0") (inst "elimGcdRightDiv=Z(0(#))")) + (rule "polySimp_mulLiterals" (formula "10") (term "1,0,1,0")) + (rule "times_zero_1" (formula "10") (term "1,0,0,0,0,1,0")) + (rule "leq_literals" (formula "10") (term "0,0")) + (builtin "One Step Simplification" (formula "10")) + (rule "polySimp_addLiterals" (formula "10") (term "0,0,0,0")) + (rule "add_literals" (formula "10") (term "0,0,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "10") (term "0,0")) + (rule "add_literals" (formula "10") (term "1,1,0,0")) + (rule "times_zero_1" (formula "10") (term "1,0,0")) + (rule "add_zero_right" (formula "10") (term "0,0")) + (rule "leq_literals" (formula "10") (term "0")) + (builtin "One Step Simplification" (formula "10")) + (rule "arrayLengthNotNegative" (formula "18") (term "0")) + (rule "applyEq" (formula "18") (term "0") (ifseqformula "19")) + (rule "arrayLengthIsAShort" (formula "18") (term "0")) + (builtin "One Step Simplification" (formula "18")) + (rule "true_left" (formula "18")) + (rule "onlyCreatedObjectsAreReferenced" (formula "1") (term "0") (ifseqformula "2")) + (rule "replace_known_left" (formula "1") (term "0") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "Partial_inv_axiom_for_static_JML_class_invariant_in_IntOpt_no_2" (formula "7")) + (rule "notLeft" (formula "7")) + (rule "applyEq" (formula "25") (term "1,0") (ifseqformula "1")) + (rule "Partial_inv_axiom_for_static_JML_class_invariant_in_IntOpt_no_1" (formula "7")) + (rule "notLeft" (formula "7")) + (rule "close" (formula "25") (ifseqformula "1")) + ) + ) + ) + ) + (branch "Case 2" + (builtin "One Step Simplification" (formula "26")) + (rule "closeTrue" (formula "26")) + ) + ) + (branch + (builtin "One Step Simplification" (formula "26")) + (rule "closeTrue" (formula "26")) + ) + ) + (branch "Null Reference (mc == 0 = null)" + (rule "false_right" (formula "26")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "25"))) + (rule "closeFalse" (formula "1")) + ) + ) + ) + ) + (branch "Null Reference (_a = null)" + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) + (rule "closeFalse" (formula "1")) + ) +) +) +} diff --git a/key.ui/examples/heap/BoyerMoore/BM(BM__count((I,_bigint,_bigint)).JML accessible clause.0.proof b/key.ui/examples/heap/BoyerMoore/BM(BM__count((I,_bigint,_bigint)).JML accessible clause.0.proof new file mode 100644 index 00000000000..113aa3a4f97 --- /dev/null +++ b/key.ui/examples/heap/BoyerMoore/BM(BM__count((I,_bigint,_bigint)).JML accessible clause.0.proof @@ -0,0 +1,319 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:on", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_OFF", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_OFF", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\javaSource "src"; + +\proofObligation "#Proof Obligation Settings +#Fri Apr 12 16:58:52 CEST 2024 +contract=BoyerMoore[BoyerMoore\\:\\:count([I,\\\\bigint,\\\\bigint)].JML accessible clause.0 +name=BoyerMoore[BoyerMoore\\:\\:count([I,\\\\bigint,\\\\bigint)].JML accessible clause.0 +class=de.uka.ilkd.key.proof.init.DependencyContractPO +"; + +\proof { +(keyLog "0" (keyUser "mattias" ) (keyVersion "9cc569ccced37e242b3a85779f2afdc42b0031ca")) + +(autoModeTime "1607") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "self,a,k,v,anon_heap")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "3")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "4")) +(rule "andLeft" (formula "6")) +(rule "andLeft" (formula "1")) +(rule "notLeft" (formula "8")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "notLeft" (formula "3")) +(rule "orLeft" (formula "5")) +(branch "a = null" + (rule "close" (formula "11") (ifseqformula "5")) +) +(branch "a. = TRUE" + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "12") (term "0") (ifseqformula "4") (userinteraction)) + (builtin "One Step Simplification" (formula "12") (userinteraction)) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "12") (term "1") (ifseqformula "4") (userinteraction)) + (rule "castDel" (formula "12") (term "1") (userinteraction)) + (rule "ifthenelse_split" (formula "12") (term "1") (userinteraction)) + (branch "k = 0 TRUE" + (rule "castDel" (formula "13") (term "0")) + (builtin "One Step Simplification" (formula "13") (ifInst "" (formula "1"))) + (rule "closeTrue" (formula "13")) + ) + (branch "k = 0 FALSE" + (rule "replace_known_right" (formula "13") (term "0,0,0") (ifseqformula "12") (userinteraction)) + (builtin "One Step Simplification" (formula "13") (userinteraction)) + (rule "castDel" (formula "13") (term "0") (userinteraction)) + (rule "eqTermCut" (formula "13") (term "0,0,0,1") (inst "s=int::select(heap, a, arr(sub(k, Z(1(#)))))") (userinteraction)) + (branch "Assume a[k - 1]@heap[anon(allLocs setMinus a.*, anon_heap<>)] = a[k - 1]" + (rule "applyEq" (formula "14") (term "0,0,0,1") (ifseqformula "1") (userinteraction)) + (rule "polySimp_elimSub" (formula "1") (term "0,2,0")) + (rule "mul_literals" (formula "1") (term "1,0,2,0")) + (rule "polySimp_elimSub" (formula "1") (term "0,2,1")) + (rule "mul_literals" (formula "1") (term "1,0,2,1")) + (rule "polySimp_elimSub" (formula "14") (term "0,2,0,0,0,0")) + (rule "mul_literals" (formula "14") (term "1,0,2,0,0,0,0")) + (rule "polySimp_elimSub" (formula "14") (term "0,2,0,0,0,1")) + (rule "mul_literals" (formula "14") (term "1,0,2,0,0,0,1")) + (rule "polySimp_elimSub" (formula "14") (term "3,1,0")) + (rule "mul_literals" (formula "14") (term "1,3,1,0")) + (rule "polySimp_elimSub" (formula "14") (term "3,1,1")) + (rule "mul_literals" (formula "14") (term "1,3,1,1")) + (rule "polySimp_homoEq" (formula "14")) + (rule "polySimp_mulComm0" (formula "14") (term "1,0")) + (rule "polySimp_addComm0" (formula "1") (term "0,2,0")) + (rule "polySimp_addComm0" (formula "1") (term "0,2,1")) + (rule "polySimp_addComm0" (formula "14") (term "3,1,0,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,2,0,0,0,0,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,2,0,0,0,1,1,0")) + (rule "polySimp_addComm0" (formula "14") (term "3,1,1,1,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,0")) + (rule "polySimp_addComm0" (formula "14") (term "1,1,0")) + (rule "polySimp_rightDist" (formula "14") (term "1,0")) + (rule "polySimp_mulComm0" (formula "14") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "14") (term "0")) + (rule "polySimp_addComm1" (formula "14") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0")) + (rule "add_literals" (formula "14") (term "1,1,0")) + (rule "times_zero_1" (formula "14") (term "1,0")) + (rule "add_zero_right" (formula "14") (term "0")) + (rule "polySimp_addComm0" (formula "14") (term "0")) + (rule "inEqSimp_commuteLeq" (formula "8")) + (rule "inEqSimp_commuteLeq" (formula "9")) + (rule "polySimp_sepPosMonomial" (formula "14")) + (rule "polySimp_mulLiterals" (formula "14") (term "1")) + (rule "polySimp_elimOne" (formula "14") (term "1")) + (rule "inEqSimp_strengthen1" (formula "8") (ifseqformula "13")) + (rule "add_zero_right" (formula "8") (term "1")) + (rule "inEqSimp_contradEq7" (formula "13") (ifseqformula "8")) + (rule "times_zero_1" (formula "13") (term "1,0,0")) + (rule "add_zero_right" (formula "13") (term "0,0")) + (rule "leq_literals" (formula "13") (term "0")) + (builtin "One Step Simplification" (formula "13")) + (rule "false_right" (formula "13")) + (rule "pullOutSelect" (formula "1") (term "0") (inst "selectSK=arr_0")) + (rule "simplifySelectOfAnon" (formula "1")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "13")) (ifInst "" (formula "7"))) + (rule "eqSymm" (formula "2")) + (rule "applyEqReverse" (formula "1") (term "1") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "1")) + (rule "hideAuxiliaryEq" (formula "2")) + (rule "elementOfSetMinus" (formula "1") (term "0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "true_left" (formula "1")) + (rule "arrayLengthIsAShort" (formula "8") (term "0")) + (builtin "One Step Simplification" (formula "8")) + (rule "true_left" (formula "8")) + (rule "arrayLengthNotNegative" (formula "8") (term "0")) + (builtin "Use Dependency Contract" (formula "13") (term "0") (ifInst "" (formula "13") (term "1")) (contract "BoyerMoore[BoyerMoore::count([I,\bigint,\bigint)].JML accessible clause.0")) + (rule "wellFormedAnon" (formula "11") (term "1,1,0,0,0,0,0")) + (rule "replace_known_left" (formula "11") (term "0,1,1,0,0,0") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "11") (ifInst "" (formula "12")) (ifInst "" (formula "3")) (ifInst "" (formula "1")) (ifInst "" (formula "1")) (ifInst "" (formula "2")) (ifInst "" (formula "13")) (ifInst "" (formula "5")) (ifInst "" (formula "13")) (ifInst "" (formula "14"))) + (rule "notLeft" (formula "11")) + (rule "disjointDefinition" (formula "11") (term "1,0")) + (builtin "One Step Simplification" (formula "11")) + (rule "measuredByCheck" (formula "11") (term "1") (ifseqformula "6")) + (rule "precOfInt" (formula "11") (term "1")) + (rule "inEqSimp_ltToLeq" (formula "11") (term "1,1")) + (rule "polySimp_mulComm0" (formula "11") (term "1,0,0,1,1")) + (rule "polySimp_addAssoc" (formula "11") (term "0,1,1")) + (rule "polySimp_addComm1" (formula "11") (term "0,0,1,1")) + (rule "add_literals" (formula "11") (term "0,0,0,1,1")) + (rule "add_zero_left" (formula "11") (term "0,0,1,1")) + (rule "polySimp_pullOutFactor2" (formula "11") (term "0,1,1")) + (rule "add_literals" (formula "11") (term "1,0,1,1")) + (rule "times_zero_1" (formula "11") (term "0,1,1")) + (rule "leq_literals" (formula "11") (term "1,1")) + (builtin "One Step Simplification" (formula "11")) + (rule "inEqSimp_commuteLeq" (formula "11") (term "1,0")) + (rule "inEqSimp_homoInEq0" (formula "11") (term "0,0")) + (rule "times_zero_2" (formula "11") (term "1,0,0,0")) + (rule "add_zero_right" (formula "11") (term "0,0,0")) + (rule "inEqSimp_homoInEq0" (formula "11") (term "1")) + (rule "times_zero_2" (formula "11") (term "1,0,1")) + (rule "add_zero_right" (formula "11") (term "0,1")) + (rule "inEqSimp_sepPosMonomial1" (formula "11") (term "0,0")) + (rule "mul_literals" (formula "11") (term "1,0,0")) + (rule "replace_known_left" (formula "11") (term "0,0") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "11")) + (rule "inEqSimp_sepPosMonomial1" (formula "11") (term "1")) + (rule "mul_literals" (formula "11") (term "1,1")) + (rule "replace_known_left" (formula "11") (term "1") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "11")) + (rule "inEqSimp_geqRight" (formula "11")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "mul_literals" (formula "1") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1")) + (rule "mul_literals" (formula "1") (term "0,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,1")) + (rule "inEqSimp_contradInEq0" (formula "10") (ifseqformula "1")) + (rule "andLeft" (formula "10")) + (rule "inEqSimp_homoInEq1" (formula "10")) + (rule "polySimp_mulComm0" (formula "10") (term "1,0")) + (rule "polySimp_rightDist" (formula "10") (term "1,0")) + (rule "mul_literals" (formula "10") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "10") (term "0")) + (rule "polySimp_addComm0" (formula "10") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "10") (term "0")) + (rule "add_literals" (formula "10") (term "1,1,0")) + (rule "times_zero_1" (formula "10") (term "1,0")) + (rule "add_zero_right" (formula "10") (term "0")) + (rule "leq_literals" (formula "10")) + (rule "closeFalse" (formula "10")) + ) + (branch "Assume a[k - 1]@heap[anon(allLocs setMinus a.*, anon_heap<>)] != a[k - 1]" + (rule "notLeft" (formula "1")) + (rule "polySimp_elimSub" (formula "14") (term "3,1,0")) + (rule "mul_literals" (formula "14") (term "1,3,1,0")) + (rule "polySimp_elimSub" (formula "14") (term "0,2,0,0,0,1")) + (rule "mul_literals" (formula "14") (term "1,0,2,0,0,0,1")) + (rule "polySimp_elimSub" (formula "14") (term "0,2,0,0,0,0")) + (rule "mul_literals" (formula "14") (term "1,0,2,0,0,0,0")) + (rule "polySimp_elimSub" (formula "14") (term "3,1,1")) + (rule "mul_literals" (formula "14") (term "1,3,1,1")) + (rule "polySimp_elimSub" (formula "10") (term "0,2,0")) + (rule "mul_literals" (formula "10") (term "1,0,2,0")) + (rule "polySimp_elimSub" (formula "10") (term "0,2,1")) + (rule "mul_literals" (formula "10") (term "1,0,2,1")) + (rule "polySimp_homoEq" (formula "14")) + (rule "polySimp_mulComm0" (formula "14") (term "1,0")) + (rule "polySimp_addComm0" (formula "10") (term "0,2,0")) + (rule "polySimp_addComm0" (formula "10") (term "0,2,1")) + (rule "polySimp_addComm0" (formula "14") (term "3,1,0,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,2,0,0,0,0,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,2,0,0,0,1,1,0")) + (rule "polySimp_addComm0" (formula "14") (term "3,1,1,1,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,0")) + (rule "polySimp_addComm0" (formula "14") (term "1,1,0")) + (rule "polySimp_rightDist" (formula "14") (term "1,0")) + (rule "polySimp_mulComm0" (formula "14") (term "0,1,0")) + (rule "polySimp_addComm1" (formula "14") (term "0")) + (rule "polySimp_addAssoc" (formula "14") (term "0,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,0,0")) + (rule "inEqSimp_commuteLeq" (formula "7")) + (rule "inEqSimp_commuteLeq" (formula "8")) + (rule "polySimp_sepPosMonomial" (formula "14")) + (rule "polySimp_mulComm0" (formula "14") (term "1")) + (rule "polySimp_rightDist" (formula "14") (term "1")) + (rule "polySimp_mulLiterals" (formula "14") (term "1,1")) + (rule "polySimp_elimOne" (formula "14") (term "1,1")) + (rule "polySimp_rightDist" (formula "14") (term "0,1")) + (rule "polySimp_mulAssoc" (formula "14") (term "0,0,1")) + (rule "polySimp_mulComm0" (formula "14") (term "0,0,0,1")) + (rule "polySimp_mulLiterals" (formula "14") (term "0,0,1")) + (rule "polySimp_elimOne" (formula "14") (term "0,0,1")) + (rule "inEqSimp_strengthen1" (formula "7") (ifseqformula "13")) + (rule "add_zero_right" (formula "7") (term "1")) + (rule "inEqSimp_contradEq7" (formula "13") (ifseqformula "7")) + (rule "times_zero_1" (formula "13") (term "1,0,0")) + (rule "add_zero_right" (formula "13") (term "0,0")) + (rule "leq_literals" (formula "13") (term "0")) + (builtin "One Step Simplification" (formula "13")) + (rule "false_right" (formula "13")) + (rule "pullOutSelect" (formula "10") (term "0") (inst "selectSK=arr_0")) + (rule "applyEq" (formula "14") (term "0,0,0") (ifseqformula "1")) + (rule "simplifySelectOfAnon" (formula "1")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "13")) (ifInst "" (formula "6"))) + (rule "eqSymm" (formula "11")) + (rule "eqSymm" (formula "14") (term "0,0")) + (rule "polySimp_homoEq" (formula "14")) + (rule "polySimp_addComm1" (formula "14") (term "0")) + (rule "polySimp_sepPosMonomial" (formula "14")) + (rule "polySimp_mulComm0" (formula "14") (term "1")) + (rule "polySimp_rightDist" (formula "14") (term "1")) + (rule "polySimp_mulLiterals" (formula "14") (term "1,1")) + (rule "polySimp_elimOne" (formula "14") (term "1,1")) + (rule "polySimp_rightDist" (formula "14") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "14") (term "1,0,1")) + (rule "polySimp_elimOne" (formula "14") (term "1,0,1")) + (rule "polySimp_mulComm0" (formula "14") (term "0,0,1")) + (rule "elementOfSetMinus" (formula "1") (term "0,0")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "11"))) + (rule "closeFalse" (formula "1")) + ) + ) +) +) +} diff --git a/key.ui/examples/heap/BoyerMoore/BM(BM__count((I,_bigint,_bigint)).JML model_behavior operation contract.0.proof b/key.ui/examples/heap/BoyerMoore/BM(BM__count((I,_bigint,_bigint)).JML model_behavior operation contract.0.proof new file mode 100644 index 00000000000..70385527c98 --- /dev/null +++ b/key.ui/examples/heap/BoyerMoore/BM(BM__count((I,_bigint,_bigint)).JML model_behavior operation contract.0.proof @@ -0,0 +1,381 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:on", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_OFF", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_OFF", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\javaSource "src"; + +\proofObligation "#Proof Obligation Settings +#Fri Apr 12 16:56:49 CEST 2024 +contract=BoyerMoore[BoyerMoore\\:\\:count([I,\\\\bigint,\\\\bigint)].JML model_behavior operation contract.0 +name=BoyerMoore[BoyerMoore\\:\\:count([I,\\\\bigint,\\\\bigint)].JML model_behavior operation contract.0 +class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO +"; + +\proof { +(keyLog "0" (keyUser "mattias" ) (keyVersion "9cc569ccced37e242b3a85779f2afdc42b0031ca")) + +(autoModeTime "2648") + +(branch "dummy ID" +(rule "impRight" (formula "1")) + (builtin "One Step Simplification" (formula "2") (userinteraction)) +(rule "andRight" (formula "2") (userinteraction)) +(branch "Case 1" + (rule "castDel" (formula "2") (term "0") (userinteraction)) + (rule "ifthenelse_split" (formula "2") (term "0") (userinteraction)) + (branch "k = 0 TRUE" + (rule "andLeft" (formula "2")) + (rule "andLeft" (formula "2")) + (rule "andLeft" (formula "4")) + (rule "andLeft" (formula "2")) + (rule "andLeft" (formula "5")) + (rule "andLeft" (formula "7")) + (rule "andLeft" (formula "2")) + (rule "notLeft" (formula "9")) + (rule "andLeft" (formula "2")) + (rule "andLeft" (formula "2")) + (rule "notLeft" (formula "3")) + (rule "eqSymm" (formula "12")) + (rule "replace_known_right" (formula "5") (term "0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "5")) + (rule "inEqSimp_commuteLeq" (formula "8")) + (rule "inEqSimp_commuteLeq" (formula "7")) + (rule "applyEq" (formula "8") (term "1") (ifseqformula "1")) + (rule "applyEq" (formula "7") (term "0") (ifseqformula "1")) + (rule "qeq_literals" (formula "7")) + (rule "true_left" (formula "7")) + (rule "applyEq" (formula "11") (term "1,0") (ifseqformula "1")) + (rule "bsum_lower_equals_upper" (formula "11") (term "0")) + (builtin "One Step Simplification" (formula "11")) + (rule "closeTrue" (formula "11")) + ) + (branch "k = 0 FALSE" + (rule "bsum_def" (formula "3") (term "1") (userinteraction)) + (rule "ifthenelse_split" (formula "3") (term "1") (userinteraction)) + (branch "0 < k TRUE" + (rule "Contract_axiom_for_count_in_BoyerMoore" (formula "4") (term "1,0") (inst "l=l") (userinteraction)) + (rule "impLeft" (formula "1") (userinteraction)) + (branch "Case 1" + (rule "andLeft" (formula "2")) + (rule "andLeft" (formula "3")) + (rule "andLeft" (formula "2")) + (rule "andLeft" (formula "5")) + (rule "andLeft" (formula "4")) + (rule "andLeft" (formula "2")) + (rule "notLeft" (formula "8")) + (rule "andLeft" (formula "2")) + (rule "andLeft" (formula "2")) + (rule "andLeft" (formula "2")) + (rule "notLeft" (formula "3")) + (rule "replace_known_right" (formula "5") (term "0") (ifseqformula "11")) + (builtin "One Step Simplification" (formula "5")) + (rule "replace_known_left" (formula "12") (term "1,0,0,0") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "12") (ifInst "" (formula "9")) (ifInst "" (formula "11")) (ifInst "" (formula "3")) (ifInst "" (formula "10"))) + (rule "polySimp_elimSub" (formula "14") (term "3,1,0")) + (rule "mul_literals" (formula "14") (term "1,3,1,0")) + (rule "polySimp_elimSub" (formula "14") (term "1,0,1")) + (rule "mul_literals" (formula "14") (term "1,1,0,1")) + (rule "polySimp_elimSub" (formula "14") (term "0,2,0,0,0,0")) + (rule "mul_literals" (formula "14") (term "1,0,2,0,0,0,0")) + (rule "polySimp_elimSub" (formula "14") (term "0,2,0,0,1,1")) + (rule "mul_literals" (formula "14") (term "1,0,2,0,0,1,1")) + (rule "polySimp_elimSub" (formula "12") (term "0,1,0")) + (rule "mul_literals" (formula "12") (term "1,0,1,0")) + (rule "polySimp_elimSub" (formula "12") (term "0,1")) + (rule "mul_literals" (formula "12") (term "1,0,1")) + (rule "polySimp_elimSub" (formula "12") (term "1,0,0")) + (rule "mul_literals" (formula "12") (term "1,1,0,0")) + (rule "polySimp_homoEq" (formula "14")) + (rule "polySimp_mulComm0" (formula "14") (term "1,0")) + (rule "polySimp_addComm0" (formula "12") (term "0,1,0")) + (rule "polySimp_addComm0" (formula "12") (term "0,1")) + (rule "polySimp_addComm0" (formula "12") (term "1,0,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,2,0,0,0,1,1,0")) + (rule "polySimp_addComm0" (formula "14") (term "3,1,1,1,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,2,0,0,0,0,0")) + (rule "polySimp_addComm0" (formula "14") (term "1,1,0,0")) + (rule "polySimp_addComm0" (formula "14") (term "1,1,0")) + (rule "polySimp_rightDist" (formula "14") (term "1,0")) + (rule "polySimp_mulComm0" (formula "14") (term "0,1,0")) + (rule "polySimp_addComm1" (formula "14") (term "0")) + (rule "inEqSimp_ltToLeq" (formula "1")) + (rule "add_zero_right" (formula "1") (term "0")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0")) + (rule "polySimp_addAssoc" (formula "14") (term "0,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0,0")) + (rule "add_literals" (formula "14") (term "1,1,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0")) + (rule "bsum_induction_upper2_concrete" (formula "14") (term "1,0")) + (rule "polySimp_elimSub" (formula "14") (term "0,2,0,0,1,1,1,0")) + (rule "mul_literals" (formula "14") (term "1,0,2,0,0,1,1,1,0")) + (rule "polySimp_elimSub" (formula "14") (term "1,0")) + (rule "polySimp_addComm0" (formula "14") (term "1,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,2,0,0,1,0,0,1,0")) + (rule "measuredByCheck" (formula "12") (term "1") (ifseqformula "6")) + (rule "polySimp_addAssoc" (formula "14") (term "0")) + (rule "precOfInt" (formula "12") (term "1")) + (rule "inEqSimp_commuteLeq" (formula "7")) + (rule "inEqSimp_commuteLeq" (formula "8")) + (rule "inEqSimp_ltToLeq" (formula "14") (term "0,0,1,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0,0,1,0,0")) + (rule "polySimp_mulComm0" (formula "14") (term "1,0,0,0,1,0,0")) + (rule "replace_known_left" (formula "14") (term "0,0,1,0,0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "14")) + (rule "inEqSimp_ltToLeq" (formula "12") (term "1,1")) + (rule "polySimp_mulComm0" (formula "12") (term "1,0,0,1,1")) + (rule "polySimp_addAssoc" (formula "12") (term "0,1,1")) + (rule "polySimp_addComm1" (formula "12") (term "0,0,1,1")) + (rule "add_literals" (formula "12") (term "0,0,0,1,1")) + (rule "add_zero_left" (formula "12") (term "0,0,1,1")) + (rule "polySimp_pullOutFactor2" (formula "12") (term "0,1,1")) + (rule "add_literals" (formula "12") (term "1,0,1,1")) + (rule "times_zero_1" (formula "12") (term "0,1,1")) + (rule "leq_literals" (formula "12") (term "1,1")) + (builtin "One Step Simplification" (formula "12")) + (rule "inEqSimp_commuteLeq" (formula "12") (term "1,0")) + (rule "inEqSimp_homoInEq0" (formula "12") (term "0,0")) + (rule "times_zero_2" (formula "12") (term "1,0,0,0")) + (rule "add_zero_right" (formula "12") (term "0,0,0")) + (rule "inEqSimp_homoInEq0" (formula "12") (term "1")) + (rule "times_zero_2" (formula "12") (term "1,0,1")) + (rule "add_zero_right" (formula "12") (term "0,1")) + (rule "polySimp_sepPosMonomial" (formula "14")) + (rule "polySimp_mulComm0" (formula "14") (term "1")) + (rule "polySimp_rightDist" (formula "14") (term "1")) + (rule "polySimp_mulLiterals" (formula "14") (term "1,1")) + (rule "polySimp_elimOne" (formula "14") (term "1,1")) + (rule "polySimp_mulAssoc" (formula "14") (term "0,1")) + (rule "polySimp_mulComm0" (formula "14") (term "0,0,1")) + (rule "polySimp_mulLiterals" (formula "14") (term "0,1")) + (rule "polySimp_elimOne" (formula "14") (term "0,1")) + (rule "inEqSimp_sepNegMonomial0" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "12") (term "0,0")) + (rule "mul_literals" (formula "12") (term "1,0,0")) + (rule "replace_known_left" (formula "12") (term "0,0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "12")) + (rule "inEqSimp_sepPosMonomial1" (formula "12") (term "1")) + (rule "mul_literals" (formula "12") (term "1,1")) + (rule "replace_known_left" (formula "12") (term "1") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "12")) + (rule "inEqSimp_geqRight" (formula "12")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "mul_literals" (formula "1") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1")) + (rule "mul_literals" (formula "1") (term "0,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,1")) + (rule "inEqSimp_contradEq7" (formula "13") (ifseqformula "2")) + (rule "times_zero_1" (formula "13") (term "1,0,0")) + (rule "add_zero_right" (formula "13") (term "0,0")) + (rule "leq_literals" (formula "13") (term "0")) + (builtin "One Step Simplification" (formula "13")) + (rule "false_right" (formula "13")) + (rule "inEqSimp_contradInEq0" (formula "9") (ifseqformula "1")) + (rule "andLeft" (formula "9")) + (rule "inEqSimp_homoInEq1" (formula "9")) + (rule "polySimp_mulComm0" (formula "9") (term "1,0")) + (rule "polySimp_rightDist" (formula "9") (term "1,0")) + (rule "mul_literals" (formula "9") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "9") (term "0")) + (rule "polySimp_addComm0" (formula "9") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "9") (term "0")) + (rule "add_literals" (formula "9") (term "1,1,0")) + (rule "times_zero_1" (formula "9") (term "1,0")) + (rule "add_zero_right" (formula "9") (term "0")) + (rule "leq_literals" (formula "9")) + (rule "closeFalse" (formula "9")) + ) + (branch "Case 2" + (rule "andLeft" (formula "1") (userinteraction)) + (rule "applyEq" (formula "6") (term "1,0") (ifseqformula "1") (userinteraction)) + (rule "andLeft" (formula "4")) + (rule "andLeft" (formula "5")) + (rule "andLeft" (formula "4")) + (rule "andLeft" (formula "6")) + (rule "andLeft" (formula "8")) + (rule "andLeft" (formula "4")) + (rule "notLeft" (formula "9")) + (rule "andLeft" (formula "4")) + (rule "andLeft" (formula "4")) + (rule "andLeft" (formula "4")) + (rule "notLeft" (formula "5")) + (rule "eqSymm" (formula "1")) + (rule "replace_known_right" (formula "7") (term "0") (ifseqformula "12")) + (builtin "One Step Simplification" (formula "7")) + (rule "polySimp_elimSub" (formula "14") (term "0,2,0,0,1,1")) + (rule "mul_literals" (formula "14") (term "1,0,2,0,0,1,1")) + (rule "polySimp_elimSub" (formula "14") (term "0,2,0,0,0,0")) + (rule "mul_literals" (formula "14") (term "1,0,2,0,0,0,0")) + (rule "polySimp_elimSub" (formula "14") (term "1,1,0")) + (rule "mul_literals" (formula "14") (term "1,1,1,0")) + (rule "polySimp_elimSub" (formula "14") (term "1,0,1")) + (rule "mul_literals" (formula "14") (term "1,1,0,1")) + (rule "polySimp_elimSub" (formula "1") (term "1,0")) + (rule "mul_literals" (formula "1") (term "1,1,0")) + (rule "polySimp_elimSub" (formula "1") (term "3,1")) + (rule "mul_literals" (formula "1") (term "1,3,1")) + (rule "polySimp_homoEq" (formula "14")) + (rule "polySimp_mulComm0" (formula "14") (term "1,0")) + (rule "polySimp_addComm0" (formula "1") (term "1,0")) + (rule "polySimp_addComm0" (formula "1") (term "3,1")) + (rule "polySimp_addComm0" (formula "14") (term "1,0,0,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,2,0,0,1,0,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,2,0,0,0,1,1,0")) + (rule "polySimp_addComm0" (formula "14") (term "1,1,1,1,0")) + (rule "polySimp_addComm0" (formula "14") (term "0,0")) + (rule "polySimp_rightDist" (formula "14") (term "1,0")) + (rule "polySimp_mulComm0" (formula "14") (term "0,1,0")) + (rule "inEqSimp_ltToLeq" (formula "3")) + (rule "add_zero_right" (formula "3") (term "0")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0")) + (rule "polySimp_addAssoc" (formula "14") (term "0")) + (rule "polySimp_addComm1" (formula "14") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0")) + (rule "add_literals" (formula "14") (term "1,1,0")) + (rule "times_zero_1" (formula "14") (term "1,0")) + (rule "add_zero_right" (formula "14") (term "0")) + (rule "polySimp_pullOutFactor1" (formula "14") (term "0")) + (rule "add_literals" (formula "14") (term "1,0")) + (rule "times_zero_1" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "closeTrue" (formula "14")) + ) + ) + (branch "0 < k FALSE" + (rule "andLeft" (formula "1")) + (rule "andLeft" (formula "1")) + (rule "andLeft" (formula "3")) + (rule "andLeft" (formula "1")) + (rule "andLeft" (formula "5")) + (rule "andLeft" (formula "4")) + (rule "andLeft" (formula "1")) + (rule "notLeft" (formula "8")) + (rule "andLeft" (formula "1")) + (rule "andLeft" (formula "1")) + (rule "notLeft" (formula "2")) + (rule "replace_known_right" (formula "4") (term "0") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "4")) + (rule "polySimp_elimSub" (formula "13") (term "0,2,0,0,0,0")) + (rule "mul_literals" (formula "13") (term "1,0,2,0,0,0,0")) + (rule "polySimp_elimSub" (formula "13") (term "3,1,0")) + (rule "mul_literals" (formula "13") (term "1,3,1,0")) + (rule "polySimp_addComm0" (formula "13") (term "0,2,0,0,0,0")) + (rule "polySimp_addComm0" (formula "13") (term "3,1,0")) + (rule "polySimp_addComm0" (formula "13") (term "0")) + (rule "inEqSimp_ltRight" (formula "12")) + (rule "add_zero_right" (formula "1") (term "0")) + (rule "polySimp_mulComm0" (formula "1") (term "0")) + (rule "inEqSimp_commuteLeq" (formula "7")) + (rule "inEqSimp_commuteLeq" (formula "8")) + (rule "polySimp_sepPosMonomial" (formula "13")) + (rule "inEqSimp_invertInEq1" (formula "1")) + (rule "times_zero_2" (formula "1") (term "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_strengthen0" (formula "1") (ifseqformula "12")) + (rule "add_zero_right" (formula "1") (term "1")) + (rule "inEqSimp_contradEq3" (formula "12") (ifseqformula "1")) + (rule "times_zero_1" (formula "12") (term "1,0,0")) + (rule "add_zero_right" (formula "12") (term "0,0")) + (rule "qeq_literals" (formula "12") (term "0")) + (builtin "One Step Simplification" (formula "12")) + (rule "false_right" (formula "12")) + (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "7")) + (rule "qeq_literals" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + ) +) +(branch "Case 2" + (rule "andLeft" (formula "1")) + (rule "andLeft" (formula "1")) + (rule "andLeft" (formula "3")) + (rule "andLeft" (formula "1")) + (rule "andLeft" (formula "4")) + (rule "andLeft" (formula "6")) + (rule "close" (formula "8") (ifseqformula "6")) +) +) +} diff --git a/key.ui/examples/heap/BoyerMoore/BM(BM__monoLemma((I,int,int)).JML normal_behavior operation contract.0.proof b/key.ui/examples/heap/BoyerMoore/BM(BM__monoLemma((I,int,int)).JML normal_behavior operation contract.0.proof new file mode 100644 index 00000000000..eca87d44276 --- /dev/null +++ b/key.ui/examples/heap/BoyerMoore/BM(BM__monoLemma((I,int,int)).JML normal_behavior operation contract.0.proof @@ -0,0 +1,422 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:on", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_OFF", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_OFF", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\javaSource "src"; + +\proofObligation "#Proof Obligation Settings +#Thu Apr 11 18:42:30 CEST 2024 +contract=BoyerMoore[BoyerMoore\\:\\:monoLemma([I,int,int)].JML normal_behavior operation contract.0 +name=BoyerMoore[BoyerMoore\\:\\:monoLemma([I,int,int)].JML normal_behavior operation contract.0 +class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO +"; + +\proof { +(keyLog "0" (keyUser "mattias" ) (keyVersion "9cc569ccced37e242b3a85779f2afdc42b0031ca")) + +(autoModeTime "5099") + +(branch "dummy ID" + (builtin "One Step Simplification" (formula "1") (newnames "heapAtPre,o,f")) +(rule "impRight" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "3")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "4")) +(rule "andLeft" (formula "6")) +(rule "andLeft" (formula "1")) +(rule "notLeft" (formula "8")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "notLeft" (formula "2")) +(rule "eqSymm" (formula "11") (term "0,0,1,0,1")) +(rule "replace_known_right" (formula "4") (term "0") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "4")) +(rule "polySimp_elimSub" (formula "5") (term "0")) +(rule "polySimp_addComm0" (formula "5") (term "0")) +(rule "inEqSimp_commuteLeq" (formula "11") (term "0,0,0,0,1")) +(rule "inEqSimp_commuteLeq" (formula "7")) +(rule "inEqSimp_commuteLeq" (formula "6")) +(rule "assignment" (formula "11") (term "1")) + (builtin "One Step Simplification" (formula "11")) +(rule "methodBodyExpand" (formula "11") (term "1") (newnames "heapBefore_monoLemma,savedHeapBefore_monoLemma")) + (builtin "One Step Simplification" (formula "11")) +(rule "ifUnfold" (formula "11") (term "1") (inst "#boolv=b")) +(rule "variableDeclaration" (formula "11") (term "1") (newnames "b")) +(rule "compound_equality_comparison_2" (formula "11") (term "1") (inst "#v1=i_1") (inst "#v0=i")) +(rule "variableDeclarationAssign" (formula "11") (term "1")) +(rule "variableDeclaration" (formula "11") (term "1") (newnames "i")) +(rule "assignment" (formula "11") (term "1")) + (builtin "One Step Simplification" (formula "11")) +(rule "variableDeclarationAssign" (formula "11") (term "1")) +(rule "variableDeclaration" (formula "11") (term "1") (newnames "i_1")) +(rule "assignment_read_length" (formula "11")) +(branch "Normal Execution (_k == _a.length != null)" + (builtin "One Step Simplification" (formula "11")) + (rule "equality_comparison_simple" (formula "11") (term "1")) + (builtin "One Step Simplification" (formula "11")) + (rule "eqSymm" (formula "11") (term "0,0,1,0")) + (rule "ifSplit" (formula "11")) + (branch "if _k == _a.length true" + (builtin "One Step Simplification" (formula "12")) + (builtin "One Step Simplification" (formula "1")) + (rule "applyEq" (formula "6") (term "1,0") (ifseqformula "1")) + (rule "polySimp_pullOutFactor2" (formula "6") (term "0")) + (rule "add_literals" (formula "6") (term "1,0")) + (rule "times_zero_1" (formula "6") (term "0")) + (rule "applyEq" (formula "8") (term "0") (ifseqformula "1")) + (rule "methodCallEmptyReturn" (formula "12") (term "1")) + (builtin "One Step Simplification" (formula "12")) + (rule "tryEmpty" (formula "12") (term "1")) + (rule "emptyModality" (formula "12") (term "1")) + (rule "andRight" (formula "12")) + (branch + (rule "andRight" (formula "12")) + (branch + (rule "andRight" (formula "12")) + (branch + (builtin "One Step Simplification" (formula "12")) + (rule "inEqSimp_geqRight" (formula "12")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) + (rule "inEqSimp_homoInEq1" (formula "9")) + (rule "polySimp_pullOutFactor1" (formula "9") (term "0")) + (rule "add_literals" (formula "9") (term "1,0")) + (rule "times_zero_1" (formula "9") (term "0")) + (rule "leq_literals" (formula "9")) + (rule "true_left" (formula "9")) + (rule "applyEq" (formula "1") (term "3,1,0") (ifseqformula "2")) + (rule "polySimp_pullOutFactor2b" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "1,1,0")) + (rule "times_zero_1" (formula "1") (term "1,0")) + (rule "add_zero_right" (formula "1") (term "0")) + (rule "leq_literals" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + (branch + (builtin "One Step Simplification" (formula "12") (ifInst "" (formula "9"))) + (rule "closeTrue" (formula "12")) + ) + ) + (branch + (builtin "One Step Simplification" (formula "12")) + (rule "closeTrue" (formula "12")) + ) + ) + (branch + (builtin "One Step Simplification" (formula "12")) + (rule "closeTrue" (formula "12")) + ) + ) + (branch "if _k == _a.length false" + (builtin "One Step Simplification" (formula "12")) + (builtin "One Step Simplification" (formula "1")) + (rule "notLeft" (formula "1")) + (rule "methodCallUnfoldArguments" (formula "12") (term "1")) + (rule "variableDeclarationAssign" (formula "12") (term "1")) + (rule "variableDeclaration" (formula "12") (term "1") (newnames "var")) + (rule "assignment" (formula "12") (term "1")) + (builtin "One Step Simplification" (formula "12")) + (rule "variableDeclarationAssign" (formula "12") (term "1")) + (rule "variableDeclaration" (formula "12") (term "1") (newnames "var_1")) + (rule "assignmentAdditionInt" (formula "12") (term "1")) + (builtin "One Step Simplification" (formula "12")) + (rule "translateJavaAddInt" (formula "12") (term "0,1,0")) + (rule "polySimp_addComm0" (formula "12") (term "0,1,0")) + (rule "variableDeclarationAssign" (formula "12") (term "1")) + (rule "variableDeclaration" (formula "12") (term "1") (newnames "var_2")) + (rule "assignment" (formula "12") (term "1")) + (builtin "One Step Simplification" (formula "12")) + (builtin "Use Operation Contract" (formula "12") (newnames "heapBefore_monoLemma_0,exc_0") (contract "BoyerMoore[BoyerMoore::monoLemma([I,int,int)].JML normal_behavior operation contract.0") (modality "diamond")) + (branch "Post (monoLemma)" + (builtin "One Step Simplification" (formula "13")) + (builtin "One Step Simplification" (formula "9") (ifInst "" (formula "8"))) + (rule "andLeft" (formula "9")) + (rule "andLeft" (formula "10")) + (rule "inEqSimp_commuteLeq" (formula "10")) + (rule "limit_BoyerMoore_count[I\bigint\bigint" (formula "10") (term "1")) + (rule "limit_BoyerMoore_count[I\bigint\bigint" (formula "11") (term "0")) + (rule "methodCallEmpty" (formula "16") (term "1")) + (rule "tryEmpty" (formula "16") (term "1")) + (rule "emptyModality" (formula "16") (term "1")) + (rule "andRight" (formula "16")) + (branch "Case 1" + (rule "andRight" (formula "16")) + (branch "Case 1" + (rule "andRight" (formula "16")) + (branch "Case 1" + (builtin "One Step Simplification" (formula "16") (userinteraction)) + (rule "Definition_axiom_for_count_in_BoyerMoore" (formula "12") (term "1") (ifseqformula "3") (userinteraction)) + (rule "unlimit_BoyerMoore_count[I\bigint\bigint" (formula "12") (term "1,2,0,1") (userinteraction)) + (rule "castDel" (formula "12") (term "1")) + (rule "polySimp_elimSub" (formula "12") (term "3,1,2,1")) + (rule "mul_literals" (formula "12") (term "1,3,1,2,1")) + (rule "polySimp_elimSub" (formula "12") (term "0,2,0,0,0,2,1")) + (rule "mul_literals" (formula "12") (term "1,0,2,0,0,0,2,1")) + (rule "polySimp_addComm1" (formula "12") (term "3,1,2,1")) + (rule "add_literals" (formula "12") (term "0,3,1,2,1")) + (rule "add_zero_left" (formula "12") (term "3,1,2,1")) + (rule "polySimp_addComm1" (formula "12") (term "0,2,0,0,0,2,1")) + (rule "add_literals" (formula "12") (term "0,0,2,0,0,0,2,1")) + (rule "add_zero_left" (formula "12") (term "0,2,0,0,0,2,1")) + (rule "polySimp_addComm0" (formula "12") (term "2,1")) + (rule "inEqSimp_geqRight" (formula "16")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) + (rule "inEqSimp_commuteGeq" (formula "13")) + (rule "polySimp_sepPosMonomial" (formula "13") (term "0,0")) + (rule "mul_literals" (formula "13") (term "1,0,0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "mul_literals" (formula "1") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,1")) + (rule "inEqSimp_contradEq7" (formula "13") (term "0,0") (ifseqformula "7")) + (rule "add_zero_left" (formula "13") (term "0,0,0,0")) + (rule "mul_literals" (formula "13") (term "0,0,0,0")) + (rule "leq_literals" (formula "13") (term "0,0,0")) + (builtin "One Step Simplification" (formula "13")) + (rule "inEqSimp_homoInEq0" (formula "13")) + (rule "polySimp_mulComm0" (formula "13") (term "1,0")) + (rule "polySimp_rightDist" (formula "13") (term "1,0")) + (rule "polySimp_mulComm0" (formula "13") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "13") (term "0")) + (rule "polySimp_addComm0" (formula "13") (term "0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "13")) + (rule "polySimp_mulLiterals" (formula "13") (term "0")) + (rule "polySimp_elimOne" (formula "13") (term "0")) + (rule "inEqSimp_strengthen1" (formula "8") (ifseqformula "14")) + (rule "inEqSimp_contradEq7" (formula "14") (ifseqformula "8")) + (rule "polySimp_mulComm0" (formula "14") (term "1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "14") (term "0,0")) + (rule "add_literals" (formula "14") (term "1,1,0,0")) + (rule "times_zero_1" (formula "14") (term "1,0,0")) + (rule "add_zero_right" (formula "14") (term "0,0")) + (rule "leq_literals" (formula "14") (term "0")) + (builtin "One Step Simplification" (formula "14")) + (rule "false_right" (formula "14")) + (rule "limit_BoyerMoore_count[I\bigint\bigint" (formula "1") (term "1,1")) + (rule "ifthenelse_split" (formula "14") (term "0")) + (branch "a[k] = v TRUE" + (rule "inEqSimp_homoInEq0" (formula "15")) + (rule "mul_literals" (formula "15") (term "1,0")) + (rule "polySimp_addComm1" (formula "15") (term "0")) + (rule "polySimp_addComm0" (formula "15") (term "0,0")) + (rule "inEqSimp_sepPosMonomial1" (formula "15")) + (rule "polySimp_mulComm0" (formula "15") (term "1")) + (rule "polySimp_rightDist" (formula "15") (term "1")) + (rule "mul_literals" (formula "15") (term "0,1")) + (rule "polySimp_mulLiterals" (formula "15") (term "1,1")) + (rule "polySimp_elimOne" (formula "15") (term "1,1")) + (rule "inEqSimp_contradInEq1" (formula "2") (ifseqformula "15")) + (rule "andLeft" (formula "2")) + (rule "inEqSimp_homoInEq1" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0")) + (rule "polySimp_rightDist" (formula "2") (term "1,0")) + (rule "mul_literals" (formula "2") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "2") (term "0")) + (rule "polySimp_addComm1" (formula "2") (term "0,0")) + (rule "add_literals" (formula "2") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "0")) + (rule "add_literals" (formula "2") (term "1,1,0")) + (rule "times_zero_1" (formula "2") (term "1,0")) + (rule "add_zero_right" (formula "2") (term "0")) + (rule "leq_literals" (formula "2")) + (rule "closeFalse" (formula "2")) + ) + (branch "a[k] = v FALSE" + (rule "inEqSimp_homoInEq0" (formula "14")) + (rule "times_zero_2" (formula "14") (term "1,0")) + (rule "add_zero_right" (formula "14") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "14")) + (rule "polySimp_mulLiterals" (formula "14") (term "1")) + (rule "polySimp_elimOne" (formula "14") (term "1")) + (rule "inEqSimp_contradInEq1" (formula "2") (ifseqformula "14")) + (rule "andLeft" (formula "2")) + (rule "inEqSimp_homoInEq1" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0")) + (rule "polySimp_rightDist" (formula "2") (term "1,0")) + (rule "mul_literals" (formula "2") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "2") (term "0")) + (rule "polySimp_addComm0" (formula "2") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "0")) + (rule "add_literals" (formula "2") (term "1,1,0")) + (rule "times_zero_1" (formula "2") (term "1,0")) + (rule "add_zero_right" (formula "2") (term "0")) + (rule "leq_literals" (formula "2")) + (rule "closeFalse" (formula "2")) + ) + ) + (branch + (builtin "One Step Simplification" (formula "16") (ifInst "" (formula "8"))) + (rule "closeTrue" (formula "16")) + ) + ) + (branch + (builtin "One Step Simplification" (formula "16")) + (rule "closeTrue" (formula "16")) + ) + ) + (branch + (builtin "One Step Simplification" (formula "16")) + (rule "closeTrue" (formula "16")) + ) + ) + (branch "Exceptional Post (monoLemma)" + (builtin "One Step Simplification" (formula "9") (ifInst "" (formula "8"))) + (builtin "One Step Simplification" (formula "13")) + (rule "andLeft" (formula "9")) + (rule "andLeft" (formula "10")) + (rule "andLeft" (formula "9")) + (rule "notLeft" (formula "9")) + (rule "close" (formula "12") (ifseqformula "11")) + ) + (branch "Pre (monoLemma)" + (builtin "One Step Simplification" (formula "12") (ifInst "" (formula "8")) (ifInst "" (formula "11")) (ifInst "" (formula "1")) (ifInst "" (formula "11")) (ifInst "" (formula "4"))) + (rule "polySimp_elimSub" (formula "12") (term "0,1")) + (rule "polySimp_mulComm0" (formula "12") (term "1,0,1")) + (rule "polySimp_rightDist" (formula "12") (term "1,0,1")) + (rule "mul_literals" (formula "12") (term "0,1,0,1")) + (rule "polySimp_addComm0" (formula "12") (term "0,1")) + (rule "measuredByCheck" (formula "12") (term "1") (ifseqformula "5")) + (rule "precOfInt" (formula "12") (term "1")) + (rule "inEqSimp_ltToLeq" (formula "12") (term "1,1")) + (rule "polySimp_rightDist" (formula "12") (term "1,0,0,1,1")) + (rule "polySimp_mulAssoc" (formula "12") (term "0,1,0,0,1,1")) + (rule "polySimp_mulComm0" (formula "12") (term "0,0,1,0,0,1,1")) + (rule "polySimp_mulLiterals" (formula "12") (term "0,1,0,0,1,1")) + (rule "polySimp_elimOne" (formula "12") (term "0,1,0,0,1,1")) + (rule "polySimp_addAssoc" (formula "12") (term "0,0,1,1")) + (rule "polySimp_addAssoc" (formula "12") (term "0,1,1")) + (rule "polySimp_addComm1" (formula "12") (term "0,0,1,1")) + (rule "polySimp_pullOutFactor2b" (formula "12") (term "0,1,1")) + (rule "add_literals" (formula "12") (term "1,1,0,1,1")) + (rule "times_zero_1" (formula "12") (term "1,0,1,1")) + (rule "add_zero_right" (formula "12") (term "0,1,1")) + (rule "polySimp_addAssoc" (formula "12") (term "0,1,1")) + (rule "polySimp_addComm1" (formula "12") (term "0,0,1,1")) + (rule "add_literals" (formula "12") (term "0,0,0,1,1")) + (rule "add_zero_left" (formula "12") (term "0,0,1,1")) + (rule "polySimp_pullOutFactor1" (formula "12") (term "0,1,1")) + (rule "add_literals" (formula "12") (term "1,0,1,1")) + (rule "times_zero_1" (formula "12") (term "0,1,1")) + (rule "leq_literals" (formula "12") (term "1,1")) + (builtin "One Step Simplification" (formula "12")) + (rule "inEqSimp_commuteLeq" (formula "12") (term "1,0")) + (rule "inEqSimp_homoInEq0" (formula "12") (term "0,0")) + (rule "times_zero_2" (formula "12") (term "1,0,0,0")) + (rule "add_zero_right" (formula "12") (term "0,0,0")) + (rule "inEqSimp_homoInEq0" (formula "12") (term "1")) + (rule "times_zero_2" (formula "12") (term "1,0,1")) + (rule "add_zero_right" (formula "12") (term "0,1")) + (rule "inEqSimp_sepPosMonomial1" (formula "12") (term "0,0")) + (rule "mul_literals" (formula "12") (term "1,0,0")) + (rule "inEqSimp_sepPosMonomial1" (formula "12") (term "1")) + (rule "polySimp_mulComm0" (formula "12") (term "1,1")) + (rule "polySimp_rightDist" (formula "12") (term "1,1")) + (rule "mul_literals" (formula "12") (term "0,1,1")) + (rule "polySimp_mulLiterals" (formula "12") (term "1,1,1")) + (rule "polySimp_elimOne" (formula "12") (term "1,1,1")) + (builtin "One Step Simplification" (formula "12")) + (rule "inEqSimp_strengthen1" (formula "7") (ifseqformula "9")) + (rule "replace_known_left" (formula "12") (term "1") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "12")) + (rule "inEqSimp_geqRight" (formula "12")) + (rule "mul_literals" (formula "1") (term "1,0,0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "mul_literals" (formula "1") (term "1")) + (rule "inEqSimp_contradEq7" (formula "10") (ifseqformula "8")) + (rule "polySimp_mulComm0" (formula "10") (term "1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "10") (term "0,0")) + (rule "add_literals" (formula "10") (term "1,1,0,0")) + (rule "times_zero_1" (formula "10") (term "1,0,0")) + (rule "add_zero_right" (formula "10") (term "0,0")) + (rule "leq_literals" (formula "10") (term "0")) + (builtin "One Step Simplification" (formula "10")) + (rule "false_right" (formula "10")) + (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "7")) + (rule "qeq_literals" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + ) +) +(branch "Null Reference (_k == _a.length = null)" + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "11"))) + (rule "closeFalse" (formula "1")) +) +) +} diff --git a/key.ui/examples/heap/BoyerMoore/README.txt b/key.ui/examples/heap/BoyerMoore/README.txt new file mode 100644 index 00000000000..f56ae2a608a --- /dev/null +++ b/key.ui/examples/heap/BoyerMoore/README.txt @@ -0,0 +1,22 @@ +example.name = Boyer Moore Majority +example.file = BoyerMoore.key +example.additionalFile.1 = src/BoyerMoore.java +example.path = Algorithms + +This is a KeY verification example for the Boyer Moore +majority vote algorithm. + +The challenge is as followed: + Compute in linear time the majority + of an array of integers if it + exists, report its absence otherwise, . +An element m is the majority element if more than half of the +entries in the array hold m. + +Suggested by J.C. Filliâtre as an example during VerifyThis 24. + +Currently the proofs do not go through automatically, the proof +files are checked in with the example. + +@see https://en.wikipedia.org/wiki/Boyer-Moore_majority_vote_algorithm +@author Mattias Ulbrich diff --git a/key.ui/examples/heap/BoyerMoore/src/BoyerMoore.java b/key.ui/examples/heap/BoyerMoore/src/BoyerMoore.java new file mode 100644 index 00000000000..9f3c244199b --- /dev/null +++ b/key.ui/examples/heap/BoyerMoore/src/BoyerMoore.java @@ -0,0 +1,121 @@ + +/** + * This is a KeY verification example for the Boyer Moore + * majority vote algorithm. + * + * The challenge is as followed: + * Compute in linear time the majority + * of an array of integers if it + * exists, report its absence otherwise, . + * An element m is the majority element if more than half of the + * entries in the array hold m. + * + * Suggested by J.C. Filliâtre as an example during VerifyThis 24. + * + * @see https://en.wikipedia.org/wiki/Boyer-Moore_majority_vote_algorithm + * @author Mattias Ulbrich + */ +class BoyerMoore { + + /*@ private normal_behaviour + @ requires 0 <= k <= a.length; + @ ensures \result == (\num_of int l; 0<=l count(a, a.length, \result.value) > a.length/2; + @ + @ ensures !\result.present ==> !(\exists int m; count(a, a.length, m) > a.length/2); + @ + @ assignable \nothing; + @*/ + public IntOpt bm(int[] a) { + + int mc = 0; + int mx = 0; + + /*@ loop_invariant 0 <= k <= a.length; + @ loop_invariant mc >= 0; + @ loop_invariant 2 * count(a, k, mx) <= k + mc; + @ loop_invariant (\forall int x; x != mx; 2 * count(a, k, x) <= k - mc); + @ assignable \strictly_nothing; + @ decreases a.length - k; + @*/ + for(int k=0; k < a.length; k++) { + if(mc == 0) { + mc = 1; + mx = a[k]; + } else if(mx == a[k]) { + mc++; + } else { + mc--; + } + } + + if(mc == 0) return IntOpt.NONE; + + int cnt = 0; + /*@ loop_invariant 0 <= r <= a.length; + @ loop_invariant cnt == count(a, r, mx); + @ loop_invariant cnt <= a.length / 2; + @ assignable \strictly_nothing; + @ decreases a.length - r; + @*/ + for(int r=0; r < a.length; r++) { + if(mx == a[r]) { + if(++cnt > a.length / 2) { + // This should be a ghost call which + // is currently unsupported. + monoLemma(a, r + 1, mx); + return new IntOpt(mx); + } + } + } + + return IntOpt.NONE; + } + + // This should be ghost which is currently unsupported. + /*@ private normal_behaviour + @ requires 0 <= k <= a.length; + @ ensures count(a, k, v) <= count(a, a.length, v); + @ assignable \strictly_nothing; + @ measured_by a.length - k; + @*/ + private void monoLemma(int[] a, int k, int v) { + if(k == a.length) return; + monoLemma(a, k+1, v); + } + +} + +/** + * This class is used to represent an optional integer value. + * The field present indicates the presence of a result, + * value contains that value. + */ +final class IntOpt { + public static final IntOpt NONE; + static { + NONE = new IntOpt(0); + NONE.present = false; + } + + //@ public static invariant !NONE.present; + + /*@ spec_public */ private boolean present; + /*@ spec_public */ private int value; + + // No contract for this construtor, the code will be inlined. + IntOpt(int value) { + this.present = true; + this.value = value; + } +} diff --git a/key.ui/examples/heap/SemanticSlicing/project.key b/key.ui/examples/heap/SemanticSlicing/project.key index 8ea500bfa5d..192e9f88575 100644 --- a/key.ui/examples/heap/SemanticSlicing/project.key +++ b/key.ui/examples/heap/SemanticSlicing/project.key @@ -37,9 +37,8 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Oct 18 15:40:11 CEST 2013 -name=unsatcore_after.competition.postcond5.scope333.LRS[unsatcore_after.competition.postcond5.scope333.LRS\\:\\:doLRS()].JML operation contract.0 -contract=unsatcore_after.competition.postcond5.scope333.LRS[unsatcore_after.competition.postcond5.scope333.LRS\\:\\:doLRS()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "unsatcore_after.competition.postcond5.scope333.LRS[unsatcore_after.competition.postcond5.scope333.LRS::doLRS()].JML operation contract.0", + "contract": "unsatcore_after.competition.postcond5.scope333.LRS[unsatcore_after.competition.postcond5.scope333.LRS::doLRS()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/Wellfounded/ackermann.key b/key.ui/examples/heap/Wellfounded/ackermann.key index 77383792113..d179cf406f5 100644 --- a/key.ui/examples/heap/Wellfounded/ackermann.key +++ b/key.ui/examples/heap/Wellfounded/ackermann.key @@ -10,11 +10,10 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Tue Oct 22 10:24:05 CEST 2013 -name=Ackermann[Ackermann\\:\\:a(int,int)].JML normal_behavior operation contract.0 -contract=Ackermann[Ackermann\\:\\:a(int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Ackermann[Ackermann::a(int,int)].JML normal_behavior operation contract.0", + "contract": "Ackermann[Ackermann::a(int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/block_contracts/GreatestCommonDivisor.key b/key.ui/examples/heap/block_contracts/GreatestCommonDivisor.key index 5f8625be501..fa6d0fb209d 100644 --- a/key.ui/examples/heap/block_contracts/GreatestCommonDivisor.key +++ b/key.ui/examples/heap/block_contracts/GreatestCommonDivisor.key @@ -46,12 +46,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Sep 19 17:55:51 CEST 2012 -name=GreatestCommonDivisor[GreatestCommonDivisor\\:\\:ofWith(int,int)].JML normal_behavior operation contract.0 -contract=GreatestCommonDivisor[GreatestCommonDivisor\\:\\:ofWith(int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "GreatestCommonDivisor[GreatestCommonDivisor::ofWith(int,int)].JML normal_behavior operation contract.0", + "contract": "GreatestCommonDivisor[GreatestCommonDivisor::ofWith(int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_contracts/Simple__add.key b/key.ui/examples/heap/block_contracts/Simple__add.key index 26a46570fdb..eb6f73d56f0 100644 --- a/key.ui/examples/heap/block_contracts/Simple__add.key +++ b/key.ui/examples/heap/block_contracts/Simple__add.key @@ -46,12 +46,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Sep 19 17:56:12 CEST 2012 -name=Simple[Simple\\:\\:add(int,int)].JML operation contract.0 -contract=Simple[Simple\\:\\:add(int,int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Simple[Simple::add(int,int)].JML operation contract.0", + "contract": "Simple[Simple::add(int,int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_contracts/Simple__addAbsoluteValues.key b/key.ui/examples/heap/block_contracts/Simple__addAbsoluteValues.key index f73a3479975..319cadcc527 100644 --- a/key.ui/examples/heap/block_contracts/Simple__addAbsoluteValues.key +++ b/key.ui/examples/heap/block_contracts/Simple__addAbsoluteValues.key @@ -46,12 +46,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Sep 19 17:56:25 CEST 2012 -name=Simple[Simple\\:\\:addAbsoluteValues(int,int)].JML normal_behavior operation contract.0 -contract=Simple[Simple\\:\\:addAbsoluteValues(int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Simple[Simple::addAbsoluteValues(int,int)].JML normal_behavior operation contract.0", + "contract": "Simple[Simple::addAbsoluteValues(int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_contracts/Simple__addWithJump.key b/key.ui/examples/heap/block_contracts/Simple__addWithJump.key index b7ca2c1b6f4..4f4d2293e84 100644 --- a/key.ui/examples/heap/block_contracts/Simple__addWithJump.key +++ b/key.ui/examples/heap/block_contracts/Simple__addWithJump.key @@ -46,12 +46,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Sep 19 17:56:41 CEST 2012 -name=Simple[Simple\\:\\:addWithJump(int,int,int)].JML operation contract.0 -contract=Simple[Simple\\:\\:addWithJump(int,int,int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Simple[Simple::addWithJump(int,int,int)].JML operation contract.0", + "contract": "Simple[Simple::addWithJump(int,int,int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_contracts/Simple__addWithTwoBlockContracts.key b/key.ui/examples/heap/block_contracts/Simple__addWithTwoBlockContracts.key index 445c006492f..7a92a517a3c 100644 --- a/key.ui/examples/heap/block_contracts/Simple__addWithTwoBlockContracts.key +++ b/key.ui/examples/heap/block_contracts/Simple__addWithTwoBlockContracts.key @@ -46,12 +46,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Sep 19 17:56:55 CEST 2012 -name=Simple[Simple\\:\\:addWithTwoBlockContracts(int,int,int)].JML operation contract.0 -contract=Simple[Simple\\:\\:addWithTwoBlockContracts(int,int,int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Simple[Simple::addWithTwoBlockContracts(int,int,int)].JML operation contract.0", + "contract": "Simple[Simple::addWithTwoBlockContracts(int,int,int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_contracts/Simple__generateByteArray.key b/key.ui/examples/heap/block_contracts/Simple__generateByteArray.key index 8550be94f07..75145fcd37f 100644 --- a/key.ui/examples/heap/block_contracts/Simple__generateByteArray.key +++ b/key.ui/examples/heap/block_contracts/Simple__generateByteArray.key @@ -46,12 +46,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Sep 19 17:57:16 CEST 2012 -name=Simple[Simple\\:\\:generateByteArray()].JML normal_behavior operation contract.0 -contract=Simple[Simple\\:\\:generateByteArray()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Simple[Simple::generateByteArray()].JML normal_behavior operation contract.0", + "contract": "Simple[Simple::generateByteArray()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_contracts/Simple__getLength.key b/key.ui/examples/heap/block_contracts/Simple__getLength.key index c7141da0d4f..8a87a5a609f 100644 --- a/key.ui/examples/heap/block_contracts/Simple__getLength.key +++ b/key.ui/examples/heap/block_contracts/Simple__getLength.key @@ -46,12 +46,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Sep 19 17:57:33 CEST 2012 -name=Simple[Simple\\:\\:getLength()].JML normal_behavior operation contract.0 -contract=Simple[Simple\\:\\:getLength()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Simple[Simple::getLength()].JML normal_behavior operation contract.0", + "contract": "Simple[Simple::getLength()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_contracts/Simple__square.key b/key.ui/examples/heap/block_contracts/Simple__square.key index f01d819e074..b299f44cea1 100644 --- a/key.ui/examples/heap/block_contracts/Simple__square.key +++ b/key.ui/examples/heap/block_contracts/Simple__square.key @@ -46,12 +46,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Sep 19 17:57:48 CEST 2012 -name=Simple[Simple\\:\\:square(int)].JML operation contract.0 -contract=Simple[Simple\\:\\:square(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Simple[Simple::square(int)].JML operation contract.0", + "contract": "Simple[Simple::square(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_contracts/Simple__unnecessaryBlockContract.key b/key.ui/examples/heap/block_contracts/Simple__unnecessaryBlockContract.key index a038da7af72..d00de3784b1 100644 --- a/key.ui/examples/heap/block_contracts/Simple__unnecessaryBlockContract.key +++ b/key.ui/examples/heap/block_contracts/Simple__unnecessaryBlockContract.key @@ -46,12 +46,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Sep 19 17:58:03 CEST 2012 -name=Simple[Simple\\:\\:unnecessaryBlockContract()].JML operation contract.0 -contract=Simple[Simple\\:\\:unnecessaryBlockContract()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Simple[Simple::unnecessaryBlockContract()].JML operation contract.0", + "contract": "Simple[Simple::unnecessaryBlockContract()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_contracts/Simple__unnecessaryLoopInvariant.key b/key.ui/examples/heap/block_contracts/Simple__unnecessaryLoopInvariant.key index 60fe6eaa88b..d41a6467b55 100644 --- a/key.ui/examples/heap/block_contracts/Simple__unnecessaryLoopInvariant.key +++ b/key.ui/examples/heap/block_contracts/Simple__unnecessaryLoopInvariant.key @@ -46,12 +46,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Sep 19 17:58:19 CEST 2012 -name=Simple[Simple\\:\\:unnecessaryLoopInvariant()].JML operation contract.0 -contract=Simple[Simple\\:\\:unnecessaryLoopInvariant()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Simple[Simple::unnecessaryLoopInvariant()].JML operation contract.0", + "contract": "Simple[Simple::unnecessaryLoopInvariant()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_loop_contracts/Divide/DualPivotQuicksort_sort_methods(DualPivotQuicksort_sort_methods__calcE(int,int)).JML normal_behavior operation contract.0.proof b/key.ui/examples/heap/block_loop_contracts/Divide/DualPivotQuicksort_sort_methods(DualPivotQuicksort_sort_methods__calcE(int,int)).JML normal_behavior operation contract.0.proof index 21d3536cc7c..85419a5c687 100644 --- a/key.ui/examples/heap/block_loop_contracts/Divide/DualPivotQuicksort_sort_methods(DualPivotQuicksort_sort_methods__calcE(int,int)).JML normal_behavior operation contract.0.proof +++ b/key.ui/examples/heap/block_loop_contracts/Divide/DualPivotQuicksort_sort_methods(DualPivotQuicksort_sort_methods__calcE(int,int)).JML normal_behavior operation contract.0.proof @@ -43,12 +43,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Thu Apr 05 11:26:30 CEST 2018 -name=DualPivotQuicksort_sort_methods[DualPivotQuicksort_sort_methods\\:\\:calcE(int,int)].JML normal_behavior operation contract.0 -contract=DualPivotQuicksort_sort_methods[DualPivotQuicksort_sort_methods\\:\\:calcE(int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "DualPivotQuicksort_sort_methods[DualPivotQuicksort_sort_methods::calcE(int,int)].JML normal_behavior operation contract.0", + "contract": "DualPivotQuicksort_sort_methods[DualPivotQuicksort_sort_methods::calcE(int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Flo" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_loop_contracts/Finally/block_finally.key b/key.ui/examples/heap/block_loop_contracts/Finally/block_finally.key index 4b91f5203f6..af07a38796e 100755 --- a/key.ui/examples/heap/block_loop_contracts/Finally/block_finally.key +++ b/key.ui/examples/heap/block_loop_contracts/Finally/block_finally.key @@ -44,12 +44,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Fri May 17 15:58:48 CEST 2019 -contract=AuxiliaryContractsFinally[AuxiliaryContractsFinally\\:\\:breakThrowContinueBlockContract(java.lang.Exception)].JML block contract.0 -name=AuxiliaryContractsFinally[AuxiliaryContractsFinally\\:\\:breakThrowContinueBlockContract(java.lang.Exception)].JML block contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalBlockContractPO -"; +\proofObligation { + "contract": "AuxiliaryContractsFinally[AuxiliaryContractsFinally::breakThrowContinueBlockContract(java.lang.Exception)].JML block contract.0", + "name": "AuxiliaryContractsFinally[AuxiliaryContractsFinally::breakThrowContinueBlockContract(java.lang.Exception)].JML block contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalBlockContractPO", + } \proof { (keyLog "0" (keyUser "flo" ) (keyVersion "ce7fed1732b13b2ad0ede51d302132dbbd39f43b")) diff --git a/key.ui/examples/heap/block_loop_contracts/Finally/loop_finally.key b/key.ui/examples/heap/block_loop_contracts/Finally/loop_finally.key index 8465f903cb7..4f1732851bb 100755 --- a/key.ui/examples/heap/block_loop_contracts/Finally/loop_finally.key +++ b/key.ui/examples/heap/block_loop_contracts/Finally/loop_finally.key @@ -44,12 +44,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Fri May 17 15:59:03 CEST 2019 -contract=AuxiliaryContractsFinally[AuxiliaryContractsFinally\\:\\:breakThrowContinueLoopContract(java.lang.Exception)].JML normal_behavior loop contract.0 -name=AuxiliaryContractsFinally[AuxiliaryContractsFinally\\:\\:breakThrowContinueLoopContract(java.lang.Exception)].JML normal_behavior loop contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalLoopContractPO -"; +\proofObligation { + "contract": "AuxiliaryContractsFinally[AuxiliaryContractsFinally::breakThrowContinueLoopContract(java.lang.Exception)].JML normal_behavior loop contract.0", + "name": "AuxiliaryContractsFinally[AuxiliaryContractsFinally::breakThrowContinueLoopContract(java.lang.Exception)].JML normal_behavior loop contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalLoopContractPO", + } \proof { (keyLog "0" (keyUser "flo" ) (keyVersion "ce7fed1732b13b2ad0ede51d302132dbbd39f43b")) diff --git a/key.ui/examples/heap/block_loop_contracts/Free/assertions0.key b/key.ui/examples/heap/block_loop_contracts/Free/assertions0.key index dbd3ad7a049..f2e001c7a24 100755 --- a/key.ui/examples/heap/block_loop_contracts/Free/assertions0.key +++ b/key.ui/examples/heap/block_loop_contracts/Free/assertions0.key @@ -44,12 +44,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Jan 07 18:06:27 CET 2021 -contract=FreeConditions[FreeConditions\\:\\:assertions0()].JML normal_behavior operation contract.0 -name=FreeConditions[FreeConditions\\:\\:assertions0()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "FreeConditions[FreeConditions::assertions0()].JML normal_behavior operation contract.0", + "name": "FreeConditions[FreeConditions::assertions0()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "flo" ) (keyVersion "")) diff --git a/key.ui/examples/heap/block_loop_contracts/Free/assertions1.key b/key.ui/examples/heap/block_loop_contracts/Free/assertions1.key index ccbd110e2aa..c626f8b2cfd 100755 --- a/key.ui/examples/heap/block_loop_contracts/Free/assertions1.key +++ b/key.ui/examples/heap/block_loop_contracts/Free/assertions1.key @@ -44,12 +44,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Jan 07 18:06:27 CET 2021 -contract=FreeConditions[FreeConditions\\:\\:assertions1()].JML normal_behavior operation contract.0 -name=FreeConditions[FreeConditions\\:\\:assertions1()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "FreeConditions[FreeConditions::assertions1()].JML normal_behavior operation contract.0", + "name": "FreeConditions[FreeConditions::assertions1()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "flo" ) (keyVersion "")) diff --git a/key.ui/examples/heap/block_loop_contracts/Free/blockContracts0.key b/key.ui/examples/heap/block_loop_contracts/Free/blockContracts0.key index e8d438c613c..de81effad5e 100755 --- a/key.ui/examples/heap/block_loop_contracts/Free/blockContracts0.key +++ b/key.ui/examples/heap/block_loop_contracts/Free/blockContracts0.key @@ -44,12 +44,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Jan 07 18:06:27 CET 2021 -contract=FreeConditions[FreeConditions\\:\\:blockContract0()].JML normal_behavior operation contract.0 -name=FreeConditions[FreeConditions\\:\\:blockContract0()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "FreeConditions[FreeConditions::blockContract0()].JML normal_behavior operation contract.0", + "name": "FreeConditions[FreeConditions::blockContract0()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "flo" ) (keyVersion "")) diff --git a/key.ui/examples/heap/block_loop_contracts/Free/blockContracts1.key b/key.ui/examples/heap/block_loop_contracts/Free/blockContracts1.key index a3a2fa0c5f3..ee4dd4ab463 100755 --- a/key.ui/examples/heap/block_loop_contracts/Free/blockContracts1.key +++ b/key.ui/examples/heap/block_loop_contracts/Free/blockContracts1.key @@ -44,12 +44,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Jan 07 18:06:27 CET 2021 -contract=FreeConditions[FreeConditions\\:\\:blockContract1()].JML normal_behavior operation contract.0 -name=FreeConditions[FreeConditions\\:\\:blockContract1()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "FreeConditions[FreeConditions::blockContract1()].JML normal_behavior operation contract.0", + "name": "FreeConditions[FreeConditions::blockContract1()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "flo" ) (keyVersion "")) diff --git a/key.ui/examples/heap/block_loop_contracts/Free/blockContracts2.key b/key.ui/examples/heap/block_loop_contracts/Free/blockContracts2.key index 8e8c8cd29f1..1cafa758450 100755 --- a/key.ui/examples/heap/block_loop_contracts/Free/blockContracts2.key +++ b/key.ui/examples/heap/block_loop_contracts/Free/blockContracts2.key @@ -44,12 +44,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Jan 07 18:06:27 CET 2021 -contract=FreeConditions[FreeConditions\\:\\:blockContract2()].JML normal_behavior operation contract.0 -name=FreeConditions[FreeConditions\\:\\:blockContract2()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "FreeConditions[FreeConditions::blockContract2()].JML normal_behavior operation contract.0", + "name": "FreeConditions[FreeConditions::blockContract2()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "flo" ) (keyVersion "")) diff --git a/key.ui/examples/heap/block_loop_contracts/Free/blockContracts3.key b/key.ui/examples/heap/block_loop_contracts/Free/blockContracts3.key index b5e15bf64a2..6a0bdb93d94 100755 --- a/key.ui/examples/heap/block_loop_contracts/Free/blockContracts3.key +++ b/key.ui/examples/heap/block_loop_contracts/Free/blockContracts3.key @@ -44,12 +44,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Jan 07 18:06:27 CET 2021 -contract=FreeConditions[FreeConditions\\:\\:blockContract3()].JML normal_behavior operation contract.0 -name=FreeConditions[FreeConditions\\:\\:blockContract3()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "FreeConditions[FreeConditions::blockContract3()].JML normal_behavior operation contract.0", + "name": "FreeConditions[FreeConditions::blockContract3()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "flo" ) (keyVersion "")) diff --git a/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort Internal Rule With Preconditions.proof b/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort Internal Rule With Preconditions.proof index 9a5c3b67e0c..005330191d7 100644 --- a/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort Internal Rule With Preconditions.proof +++ b/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort Internal Rule With Preconditions.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Mar 30 18:51:04 CEST 2018 -name=DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external\\:\\:eInsertionSort([I,int,int,int,int,int,int,int)].JML normal_behavior operation contract.0 -contract=DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external\\:\\:eInsertionSort([I,int,int,int,int,int,int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external::eInsertionSort([I,int,int,int,int,int,int,int)].JML normal_behavior operation contract.0", + "contract": "DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external::eInsertionSort([I,int,int,int,int,int,int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Flo" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_block_contract.0.proof b/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_block_contract.0.proof index 2a7d38d0724..976a4a1b1cd 100644 --- a/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_block_contract.0.proof +++ b/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_block_contract.0.proof @@ -43,12 +43,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Tue Apr 03 16:37:13 CEST 2018 -name=DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external\\:\\:eInsertionSort([I,int,int,int,int,int,int,int)].JML block contract.0 -contract=DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external\\:\\:eInsertionSort([I,int,int,int,int,int,int,int)].JML block contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalBlockContractPO -"; +\proofObligation { + "name": "DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external::eInsertionSort([I,int,int,int,int,int,int,int)].JML block contract.0", + "contract": "DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external::eInsertionSort([I,int,int,int,int,int,int,int)].JML block contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalBlockContractPO", + } \proof { (keyLog "0" (keyUser "Flo" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_block_contract.1.proof b/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_block_contract.1.proof index 3badd7f1c11..4d1bb80adce 100644 --- a/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_block_contract.1.proof +++ b/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_block_contract.1.proof @@ -43,12 +43,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Tue Apr 03 16:41:28 CEST 2018 -name=DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external\\:\\:eInsertionSort([I,int,int,int,int,int,int,int)].JML block contract.1 -contract=DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external\\:\\:eInsertionSort([I,int,int,int,int,int,int,int)].JML block contract.1 -class=de.uka.ilkd.key.proof.init.FunctionalBlockContractPO -"; +\proofObligation { + "name": "DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external::eInsertionSort([I,int,int,int,int,int,int,int)].JML block contract.1", + "contract": "DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external::eInsertionSort([I,int,int,int,int,int,int,int)].JML block contract.1", + "class": "de.uka.ilkd.key.proof.init.FunctionalBlockContractPO", + } \proof { (keyLog "0" (keyUser "Flo" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_block_contract.2.proof b/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_block_contract.2.proof index 6b6710795f6..f6993b899c9 100644 --- a/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_block_contract.2.proof +++ b/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_block_contract.2.proof @@ -43,12 +43,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Tue Apr 03 16:41:55 CEST 2018 -name=DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external\\:\\:eInsertionSort([I,int,int,int,int,int,int,int)].JML block contract.2 -contract=DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external\\:\\:eInsertionSort([I,int,int,int,int,int,int,int)].JML block contract.2 -class=de.uka.ilkd.key.proof.init.FunctionalBlockContractPO -"; +\proofObligation { + "name": "DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external::eInsertionSort([I,int,int,int,int,int,int,int)].JML block contract.2", + "contract": "DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external::eInsertionSort([I,int,int,int,int,int,int,int)].JML block contract.2", + "class": "de.uka.ilkd.key.proof.init.FunctionalBlockContractPO", + } \proof { (keyLog "0" (keyUser "Flo" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_block_contract.3.proof b/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_block_contract.3.proof index c6ef642ab5c..68e43bf9022 100644 --- a/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_block_contract.3.proof +++ b/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_block_contract.3.proof @@ -43,12 +43,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Tue Apr 03 16:42:25 CEST 2018 -name=DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external\\:\\:eInsertionSort([I,int,int,int,int,int,int,int)].JML block contract.3 -contract=DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external\\:\\:eInsertionSort([I,int,int,int,int,int,int,int)].JML block contract.3 -class=de.uka.ilkd.key.proof.init.FunctionalBlockContractPO -"; +\proofObligation { + "name": "DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external::eInsertionSort([I,int,int,int,int,int,int,int)].JML block contract.3", + "contract": "DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external::eInsertionSort([I,int,int,int,int,int,int,int)].JML block contract.3", + "class": "de.uka.ilkd.key.proof.init.FunctionalBlockContractPO", + } \proof { (keyLog "0" (keyUser "Flo" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_operation_contract.0.proof b/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_operation_contract.0.proof index 3ae99814cf6..eeea79360c1 100644 --- a/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_operation_contract.0.proof +++ b/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_external(DualPivotQuicksort_sort_external__eInsertionSort.JML_operation_contract.0.proof @@ -43,12 +43,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Mar 30 18:27:51 CEST 2018 -name=DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external\\:\\:eInsertionSort([I,int,int,int,int,int,int,int)].JML normal_behavior operation contract.0 -contract=DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external\\:\\:eInsertionSort([I,int,int,int,int,int,int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external::eInsertionSort([I,int,int,int,int,int,int,int)].JML normal_behavior operation contract.0", + "contract": "DualPivotQuicksort_sort_external[DualPivotQuicksort_sort_external::eInsertionSort([I,int,int,int,int,int,int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Flo" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_internal(DualPivotQuicksort_sort_internal__eInsertionSort.JML_operation_contract.0.proof b/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_internal(DualPivotQuicksort_sort_internal__eInsertionSort.JML_operation_contract.0.proof index 0d26eea9dde..b33f2f9e2e0 100644 --- a/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_internal(DualPivotQuicksort_sort_internal__eInsertionSort.JML_operation_contract.0.proof +++ b/key.ui/examples/heap/block_loop_contracts/InternalExternal/DualPivotQuicksort_sort_internal(DualPivotQuicksort_sort_internal__eInsertionSort.JML_operation_contract.0.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Tue Feb 28 09:58:57 CET 2017 -name=DualPivotQuicksort_sort_internal[DualPivotQuicksort_sort_internal\\:\\:eInsertionSort([I,int,int,int,int,int,int,int)].JML normal_behavior operation contract.0 -contract=DualPivotQuicksort_sort_internal[DualPivotQuicksort_sort_internal\\:\\:eInsertionSort([I,int,int,int,int,int,int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "DualPivotQuicksort_sort_internal[DualPivotQuicksort_sort_internal::eInsertionSort([I,int,int,int,int,int,int,int)].JML normal_behavior operation contract.0", + "contract": "DualPivotQuicksort_sort_internal[DualPivotQuicksort_sort_internal::eInsertionSort([I,int,int,int,int,int,int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "jschiffl" ) (keyVersion "9c003bb729fff7c922d356f50f89bff669d8a8da")) diff --git a/key.ui/examples/heap/block_loop_contracts/List/IntLinkedList(IntLinkedList__mapIncrement_loopContract()).JML normal_behavior loop contract.0.proof b/key.ui/examples/heap/block_loop_contracts/List/IntLinkedList(IntLinkedList__mapIncrement_loopContract()).JML normal_behavior loop contract.0.proof index 44fa539a060..02440b40aef 100644 --- a/key.ui/examples/heap/block_loop_contracts/List/IntLinkedList(IntLinkedList__mapIncrement_loopContract()).JML normal_behavior loop contract.0.proof +++ b/key.ui/examples/heap/block_loop_contracts/List/IntLinkedList(IntLinkedList__mapIncrement_loopContract()).JML normal_behavior loop contract.0.proof @@ -43,12 +43,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Mar 30 17:32:28 CEST 2018 -name=IntLinkedList[IntLinkedList\\:\\:mapIncrement_loopContract()].JML normal_behavior loop contract.0 -contract=IntLinkedList[IntLinkedList\\:\\:mapIncrement_loopContract()].JML normal_behavior loop contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalLoopContractPO -"; +\proofObligation { + "name": "IntLinkedList[IntLinkedList::mapIncrement_loopContract()].JML normal_behavior loop contract.0", + "contract": "IntLinkedList[IntLinkedList::mapIncrement_loopContract()].JML normal_behavior loop contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalLoopContractPO", + } \proof { (keyLog "0" (keyUser "Flo" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_loop_contracts/List/IntLinkedList(IntLinkedList__mapIncrement_loopContract()).JML normal_behavior operation contract.0.proof b/key.ui/examples/heap/block_loop_contracts/List/IntLinkedList(IntLinkedList__mapIncrement_loopContract()).JML normal_behavior operation contract.0.proof index d2de0883749..0fe8308e905 100644 --- a/key.ui/examples/heap/block_loop_contracts/List/IntLinkedList(IntLinkedList__mapIncrement_loopContract()).JML normal_behavior operation contract.0.proof +++ b/key.ui/examples/heap/block_loop_contracts/List/IntLinkedList(IntLinkedList__mapIncrement_loopContract()).JML normal_behavior operation contract.0.proof @@ -43,12 +43,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Mar 30 18:40:36 CEST 2018 -name=IntLinkedList[IntLinkedList\\:\\:mapIncrement_loopContract()].JML normal_behavior operation contract.0 -contract=IntLinkedList[IntLinkedList\\:\\:mapIncrement_loopContract()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "IntLinkedList[IntLinkedList::mapIncrement_loopContract()].JML normal_behavior operation contract.0", + "contract": "IntLinkedList[IntLinkedList::mapIncrement_loopContract()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Flo" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_loop_contracts/List/IntLinkedList(IntLinkedList__mapIncrement_loopInvariant()).JML normal_behavior operation contract.0.proof b/key.ui/examples/heap/block_loop_contracts/List/IntLinkedList(IntLinkedList__mapIncrement_loopInvariant()).JML normal_behavior operation contract.0.proof index 219719db87b..ed535fceae8 100644 --- a/key.ui/examples/heap/block_loop_contracts/List/IntLinkedList(IntLinkedList__mapIncrement_loopInvariant()).JML normal_behavior operation contract.0.proof +++ b/key.ui/examples/heap/block_loop_contracts/List/IntLinkedList(IntLinkedList__mapIncrement_loopInvariant()).JML normal_behavior operation contract.0.proof @@ -43,12 +43,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Mar 30 18:14:04 CEST 2018 -name=IntLinkedList[IntLinkedList\\:\\:mapIncrement_loopInvariant()].JML normal_behavior operation contract.0 -contract=IntLinkedList[IntLinkedList\\:\\:mapIncrement_loopInvariant()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "IntLinkedList[IntLinkedList::mapIncrement_loopInvariant()].JML normal_behavior operation contract.0", + "contract": "IntLinkedList[IntLinkedList::mapIncrement_loopInvariant()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Flo" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onBlock_external.key b/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onBlock_external.key index c73450c86cd..e31346bed4f 100644 --- a/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onBlock_external.key +++ b/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onBlock_external.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Fri Apr 05 14:01:19 CEST 2019 -contract=LoopContractExamplesAll[LoopContractExamplesAll\\:\\:sum_loopContract_onBlock([I)].JML normal_behavior operation contract.0 -name=LoopContractExamplesAll[LoopContractExamplesAll\\:\\:sum_loopContract_onBlock([I)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "LoopContractExamplesAll[LoopContractExamplesAll::sum_loopContract_onBlock([I)].JML normal_behavior operation contract.0", + "name": "LoopContractExamplesAll[LoopContractExamplesAll::sum_loopContract_onBlock([I)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "flo" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onBlock_internal.key b/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onBlock_internal.key index 7e929fa6fad..0d7a8e7f3a8 100644 --- a/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onBlock_internal.key +++ b/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onBlock_internal.key @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Fri Apr 05 13:58:44 CEST 2019 -contract=LoopContractExamplesAll[LoopContractExamplesAll\\:\\:sum_loopContract_onBlock([I)].JML normal_behavior operation contract.0 -name=LoopContractExamplesAll[LoopContractExamplesAll\\:\\:sum_loopContract_onBlock([I)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "LoopContractExamplesAll[LoopContractExamplesAll::sum_loopContract_onBlock([I)].JML normal_behavior operation contract.0", + "name": "LoopContractExamplesAll[LoopContractExamplesAll::sum_loopContract_onBlock([I)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "flo" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onBlock_loop.key b/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onBlock_loop.key index 05875f9d597..811041a3c0d 100644 --- a/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onBlock_loop.key +++ b/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onBlock_loop.key @@ -43,12 +43,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Fri Apr 05 13:59:52 CEST 2019 -contract=LoopContractExamplesAll[LoopContractExamplesAll\\:\\:sum_loopContract_onBlock([I)].JML normal_behavior loop contract.0 -name=LoopContractExamplesAll[LoopContractExamplesAll\\:\\:sum_loopContract_onBlock([I)].JML normal_behavior loop contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalBlockContractPO -"; +\proofObligation { + "contract": "LoopContractExamplesAll[LoopContractExamplesAll::sum_loopContract_onBlock([I)].JML normal_behavior loop contract.0", + "name": "LoopContractExamplesAll[LoopContractExamplesAll::sum_loopContract_onBlock([I)].JML normal_behavior loop contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalBlockContractPO", + } \proof { (keyLog "0" (keyUser "flo" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onLoop_external.key b/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onLoop_external.key index 44dbfd9652c..87e54dd8f00 100644 --- a/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onLoop_external.key +++ b/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onLoop_external.key @@ -43,12 +43,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Fri Apr 05 14:01:38 CEST 2019 -contract=LoopContractExamplesAll[LoopContractExamplesAll\\:\\:sum_loopContract_onLoop([I)].JML normal_behavior operation contract.0 -name=LoopContractExamplesAll[LoopContractExamplesAll\\:\\:sum_loopContract_onLoop([I)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "LoopContractExamplesAll[LoopContractExamplesAll::sum_loopContract_onLoop([I)].JML normal_behavior operation contract.0", + "name": "LoopContractExamplesAll[LoopContractExamplesAll::sum_loopContract_onLoop([I)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "flo" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onLoop_internal.key b/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onLoop_internal.key index 287e3f7756a..d4002dad984 100644 --- a/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onLoop_internal.key +++ b/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onLoop_internal.key @@ -43,12 +43,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Fri Apr 05 14:00:26 CEST 2019 -contract=LoopContractExamplesAll[LoopContractExamplesAll\\:\\:sum_loopContract_onLoop([I)].JML normal_behavior operation contract.0 -name=LoopContractExamplesAll[LoopContractExamplesAll\\:\\:sum_loopContract_onLoop([I)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "LoopContractExamplesAll[LoopContractExamplesAll::sum_loopContract_onLoop([I)].JML normal_behavior operation contract.0", + "name": "LoopContractExamplesAll[LoopContractExamplesAll::sum_loopContract_onLoop([I)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "flo" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onLoop_loop.key b/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onLoop_loop.key index aa5b2ee0402..ee8a71770df 100644 --- a/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onLoop_loop.key +++ b/key.ui/examples/heap/block_loop_contracts/SimpleVariants/sum_onLoop_loop.key @@ -43,12 +43,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Fri Apr 05 14:00:51 CEST 2019 -contract=LoopContractExamplesAll[LoopContractExamplesAll\\:\\:sum_loopContract_onLoop([I)].JML normal_behavior loop contract.0 -name=LoopContractExamplesAll[LoopContractExamplesAll\\:\\:sum_loopContract_onLoop([I)].JML normal_behavior loop contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalBlockContractPO -"; +\proofObligation { + "contract": "LoopContractExamplesAll[LoopContractExamplesAll::sum_loopContract_onLoop([I)].JML normal_behavior loop contract.0", + "name": "LoopContractExamplesAll[LoopContractExamplesAll::sum_loopContract_onLoop([I)].JML normal_behavior loop contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalBlockContractPO", + } \proof { (keyLog "0" (keyUser "flo" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/coincidence_count/CC.proof b/key.ui/examples/heap/coincidence_count/CC.proof index 946612fe421..87182a34312 100644 --- a/key.ui/examples/heap/coincidence_count/CC.proof +++ b/key.ui/examples/heap/coincidence_count/CC.proof @@ -39,12 +39,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Thu Apr 24 14:16:54 CEST 2014 -name=CC[CC\\:\\:calcCoinIndex([I,[I)].JML normal_behavior operation contract.0 -contract=CC[CC\\:\\:calcCoinIndex([I,[I)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "CC[CC::calcCoinIndex([I,[I)].JML normal_behavior operation contract.0", + "contract": "CC[CC::calcCoinIndex([I,[I)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "mattias" ) (keyVersion "e5095ad740f809525e4c4689dcc12514a0ca06cc")) diff --git a/key.ui/examples/heap/comprehensions/general_sum.key b/key.ui/examples/heap/comprehensions/general_sum.key index f1ff84b30da..d1997e6bb32 100644 --- a/key.ui/examples/heap/comprehensions/general_sum.key +++ b/key.ui/examples/heap/comprehensions/general_sum.key @@ -1,9 +1,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 11 09:14:10 CET 2013 -name=GSum[GSum\\:\\:doNothing()].JML operation contract.0 -contract=GSum[GSum\\:\\:doNothing()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "GSum[GSum::doNothing()].JML operation contract.0", + "contract": "GSum[GSum::doNothing()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/comprehensions/segsum.key b/key.ui/examples/heap/comprehensions/segsum.key index bf7c68efe62..f2ed251cb36 100644 --- a/key.ui/examples/heap/comprehensions/segsum.key +++ b/key.ui/examples/heap/comprehensions/segsum.key @@ -1,8 +1,7 @@ \javaSource "./src"; -\proofObligation "#Proof Obligation Settings -#Fri Jul 12 16:30:27 CEST 2013 -name=SegSum[SegSum\\:\\:segSum([I,int,int)].JML normal_behavior operation contract.0 -contract=SegSum[SegSum\\:\\:segSum([I,int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "SegSum[SegSum::segSum([I,int,int)].JML normal_behavior operation contract.0", + "contract": "SegSum[SegSum::segSum([I,int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/comprehensions/sum0.key b/key.ui/examples/heap/comprehensions/sum0.key index c93314c96cb..eab4895a042 100644 --- a/key.ui/examples/heap/comprehensions/sum0.key +++ b/key.ui/examples/heap/comprehensions/sum0.key @@ -38,10 +38,9 @@ \javaSource "./src"; -\proofObligation "#Proof Obligation Settings -#Fri Jul 12 16:30:40 CEST 2013 -name=Sum[Sum\\:\\:sum0([I)].JML normal_behavior operation contract.0 -contract=Sum[Sum\\:\\:sum0([I)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Sum[Sum::sum0([I)].JML normal_behavior operation contract.0", + "contract": "Sum[Sum::sum0([I)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/comprehensions/sum1.key b/key.ui/examples/heap/comprehensions/sum1.key index ad7ef1b38a7..79596ff1106 100644 --- a/key.ui/examples/heap/comprehensions/sum1.key +++ b/key.ui/examples/heap/comprehensions/sum1.key @@ -1,8 +1,7 @@ \javaSource "./src"; -\proofObligation "#Proof Obligation Settings -#Fri Jul 12 16:30:51 CEST 2013 -name=Sum[Sum\\:\\:sum1([I)].JML normal_behavior operation contract.0 -contract=Sum[Sum\\:\\:sum1([I)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Sum[Sum::sum1([I)].JML normal_behavior operation contract.0", + "contract": "Sum[Sum::sum1([I)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/comprehensions/sum2.key b/key.ui/examples/heap/comprehensions/sum2.key index 2727fadf65c..b3a7749f3d2 100644 --- a/key.ui/examples/heap/comprehensions/sum2.key +++ b/key.ui/examples/heap/comprehensions/sum2.key @@ -1,8 +1,7 @@ \javaSource "./src"; -\proofObligation "#Proof Obligation Settings -#Fri Jul 12 16:31:01 CEST 2013 -name=Sum[Sum\\:\\:sum2([I)].JML normal_behavior operation contract.0 -contract=Sum[Sum\\:\\:sum2([I)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Sum[Sum::sum2([I)].JML normal_behavior operation contract.0", + "contract": "Sum[Sum::sum2([I)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/comprehensions/sum3.key b/key.ui/examples/heap/comprehensions/sum3.key index 61ca498e12d..e0703206afa 100644 --- a/key.ui/examples/heap/comprehensions/sum3.key +++ b/key.ui/examples/heap/comprehensions/sum3.key @@ -1,8 +1,7 @@ \javaSource "./src"; -\proofObligation "#Proof Obligation Settings -#Fri Jul 12 16:31:11 CEST 2013 -name=Sum[Sum\\:\\:sum3([I)].JML normal_behavior operation contract.0 -contract=Sum[Sum\\:\\:sum3([I)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Sum[Sum::sum3([I)].JML normal_behavior operation contract.0", + "contract": "Sum[Sum::sum3([I)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/fm12_01_LRS/lcp.key b/key.ui/examples/heap/fm12_01_LRS/lcp.key index ca1ff97bb68..8008259c23a 100644 --- a/key.ui/examples/heap/fm12_01_LRS/lcp.key +++ b/key.ui/examples/heap/fm12_01_LRS/lcp.key @@ -28,10 +28,9 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Jul 03 14:02:52 CEST 2013 -name=LCP[LCP\\:\\:lcp([I,int,int)].JML normal_behavior operation contract.0 -contract=LCP[LCP\\:\\:lcp([I,int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "LCP[LCP::lcp([I,int,int)].JML normal_behavior operation contract.0", + "contract": "LCP[LCP::lcp([I,int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/javacard/arrayFillNonAtomic.key b/key.ui/examples/heap/javacard/arrayFillNonAtomic.key index e280ac9b61b..351f0519ef8 100644 --- a/key.ui/examples/heap/javacard/arrayFillNonAtomic.key +++ b/key.ui/examples/heap/javacard/arrayFillNonAtomic.key @@ -42,10 +42,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jul 16 10:48:07 CEST 2014 -name=javacard.framework.Util[javacard.framework.Util\\:\\:arrayFillNonAtomic([B,short,short,byte)].JML behavior operation contract.0 -contract=javacard.framework.Util[javacard.framework.Util\\:\\:arrayFillNonAtomic([B,short,short,byte)].JML behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "javacard.framework.Util[javacard.framework.Util::arrayFillNonAtomic([B,short,short,byte)].JML behavior operation contract.0", + "contract": "javacard.framework.Util[javacard.framework.Util::arrayFillNonAtomic([B,short,short,byte)].JML behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/javacard/setArray1.key b/key.ui/examples/heap/javacard/setArray1.key index 8bf8d98a8c8..f8ac268ba95 100644 --- a/key.ui/examples/heap/javacard/setArray1.key +++ b/key.ui/examples/heap/javacard/setArray1.key @@ -42,10 +42,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Jul 10 15:24:45 CEST 2014 -name=Examples[Examples\\:\\:setArray1([B)].JML normal_behavior operation contract.0 -contract=Examples[Examples\\:\\:setArray1([B)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Examples[Examples::setArray1([B)].JML normal_behavior operation contract.0", + "contract": "Examples[Examples::setArray1([B)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/javacard/setArray2.key b/key.ui/examples/heap/javacard/setArray2.key index 36ab2e05ec4..2923fd0dbe1 100644 --- a/key.ui/examples/heap/javacard/setArray2.key +++ b/key.ui/examples/heap/javacard/setArray2.key @@ -42,11 +42,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Jul 10 15:24:45 CEST 2014 -name=Examples[Examples\\:\\:setArray2([B)].JML normal_behavior operation contract.0 -contract=Examples[Examples\\:\\:setArray2([B)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Examples[Examples::setArray2([B)].JML normal_behavior operation contract.0", + "contract": "Examples[Examples::setArray2([B)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/javacard/updateBalance0.key b/key.ui/examples/heap/javacard/updateBalance0.key index 1312a90f134..b62e45ad855 100644 --- a/key.ui/examples/heap/javacard/updateBalance0.key +++ b/key.ui/examples/heap/javacard/updateBalance0.key @@ -42,11 +42,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Jul 10 15:23:48 CEST 2014 -name=Examples[Examples\\:\\:updateBalance(short)].JML normal_behavior operation contract.0 -contract=Examples[Examples\\:\\:updateBalance(short)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Examples[Examples::updateBalance(short)].JML normal_behavior operation contract.0", + "contract": "Examples[Examples::updateBalance(short)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/javacard/updateBalance1.key b/key.ui/examples/heap/javacard/updateBalance1.key index c23c4ff5ea4..aaa2b8ff94a 100644 --- a/key.ui/examples/heap/javacard/updateBalance1.key +++ b/key.ui/examples/heap/javacard/updateBalance1.key @@ -42,11 +42,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Jul 10 15:25:17 CEST 2014 -name=Examples[Examples\\:\\:updateBalance(short)].JML normal_behavior operation contract.1 -contract=Examples[Examples\\:\\:updateBalance(short)].JML normal_behavior operation contract.1 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Examples[Examples::updateBalance(short)].JML normal_behavior operation contract.1", + "contract": "Examples[Examples::updateBalance(short)].JML normal_behavior operation contract.1", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/list_seq/ArrayList.set.key b/key.ui/examples/heap/list_seq/ArrayList.set.key new file mode 100644 index 00000000000..be5bba83056 --- /dev/null +++ b/key.ui/examples/heap/list_seq/ArrayList.set.key @@ -0,0 +1,3 @@ +\javaSource "src"; + +\chooseContract "ArrayList[List::set(int,java.lang.Object)].JML normal_behavior operation contract.0"; diff --git a/key.ui/examples/heap/list_seq/LinkedList.set.key b/key.ui/examples/heap/list_seq/LinkedList.set.key new file mode 100644 index 00000000000..b545b972920 --- /dev/null +++ b/key.ui/examples/heap/list_seq/LinkedList.set.key @@ -0,0 +1,3 @@ +\javaSource "src"; + +\chooseContract "LinkedList[List::set(int,java.lang.Object)].JML normal_behavior operation contract.0"; diff --git a/key.ui/examples/heap/list_seq/src/ArrayList.java b/key.ui/examples/heap/list_seq/src/ArrayList.java index 298efbaa31c..4764c90692b 100644 --- a/key.ui/examples/heap/list_seq/src/ArrayList.java +++ b/key.ui/examples/heap/list_seq/src/ArrayList.java @@ -20,7 +20,6 @@ public class ArrayList implements List { this.array = newArray(10); //@set seq = \seq_empty; //@set footprint = \set_union(\all_fields(array), \all_fields(this)); - {} } /*@ private normal_behavior @@ -62,14 +61,20 @@ public int size() { return size; } - public Object get(int index) { if(index < 0 || size <= index) { throw new IndexOutOfBoundsException(); } return array[index]; } - + + public void set(int index, Object o) { + if(index < 0 || size <= index) { + throw new IndexOutOfBoundsException(); + } + array[index] = o; + //@ set seq = \seq_upd(seq, index, o); + } public boolean contains(Object o) { /*@ loop_invariant 0 <= i && i <= size @@ -85,14 +90,12 @@ public boolean contains(Object o) { return false; } - public void add(Object o) { if(size == array.length) { enlarge(); } array[size++] = o; //@set seq = \seq_concat(seq, \seq_singleton(o)); - {} } public void remove(Object o) { @@ -114,7 +117,7 @@ public void remove(Object o) { array[j] = array[j+1]; } size--; - //@ set seq = \seq_concat(\seq_sub(seq, 0, i), \seq_sub(seq,i+1, \seq_length(seq))); + //@ set seq = \seq_concat(\seq_sub(seq, 0, i), \seq_sub(seq,i+1, seq.length)); return; } } diff --git a/key.ui/examples/heap/list_seq/src/LinkedList.java b/key.ui/examples/heap/list_seq/src/LinkedList.java index 43244d520c6..ce87e933b40 100644 --- a/key.ui/examples/heap/list_seq/src/LinkedList.java +++ b/key.ui/examples/heap/list_seq/src/LinkedList.java @@ -53,7 +53,24 @@ public Object get(int index) { return node.data; } + + public void set(int index, Object o) { + if(index < 0 || size <= index) { + throw new IndexOutOfBoundsException(); + } + + Node node = first; + /*@ loop_invariant 0 <= i && i <= index && node == (Node)nodeseq[i]; + @ assignable \strictly_nothing; + @ decreases index - i; + @*/ + for(int i = 0; i < index; i++) { + node = node.next; + } + node.data = o; + //@ set seq = \seq_upd(seq, index, o); + } public boolean contains(Object o) { if(size == 0) { @@ -115,8 +132,8 @@ public void remove(Object o) { if(first == null) { last = null; } - //@ set seq = \seq_sub(seq, 1, \seq_length(seq)-1); - //@ set nodeseq = \seq_sub(nodeseq, 1, \seq_length(nodeseq)-1); + //@ set seq = \seq_sub(seq, 1, seq.length-1); + //@ set nodeseq = \seq_sub(nodeseq, 1, nodeseq.length-1); size--; return; } @@ -135,8 +152,8 @@ public void remove(Object o) { if(n == last) { last = m; } - //@ set seq = \seq_concat(\seq_sub(seq,0,i-1), \seq_sub(seq,i+1,\seq_length(seq)-1)); - //@ set nodeseq = \seq_concat(\seq_sub(nodeseq,0,i-1), \seq_sub(nodeseq,i+1,\seq_length(nodeseq)-1)); + //@ set seq = \seq_concat(\seq_sub(seq,0,i-1), \seq_sub(seq,i+1,seq.length-1)); + //@ set nodeseq = \seq_concat(\seq_sub(nodeseq,0,i-1), \seq_sub(nodeseq,i+1,nodeseq.length-1)); //@ set footprint = \set_minus(footprint, \all_fields(n)); size --; return; diff --git a/key.ui/examples/heap/list_seq/src/List.java b/key.ui/examples/heap/list_seq/src/List.java index 7a982350190..69ff41be808 100644 --- a/key.ui/examples/heap/list_seq/src/List.java +++ b/key.ui/examples/heap/list_seq/src/List.java @@ -25,7 +25,17 @@ public interface List { @ signals_only IndexOutOfBoundsException; @*/ public /*@pure@*/ Object get(int index); - + + /*@ public normal_behaviour + @ requires 0 <= index && index < seq.length; + @ ensures seq == \seq_upd(\old(seq), index, o); + @ assignable footprint; + @ + @ also public exceptional_behaviour + @ requires index < 0 || seq.length <= index; + @ signals_only IndexOutOfBoundsException; + @*/ + public void set(int index, Object o); /*@ public normal_behaviour @ accessible footprint; diff --git a/key.ui/examples/heap/list_seq/src/SimplifiedLL.java b/key.ui/examples/heap/list_seq/src/SimplifiedLL.java index 4d7fc60973a..73a266f036a 100644 --- a/key.ui/examples/heap/list_seq/src/SimplifiedLL.java +++ b/key.ui/examples/heap/list_seq/src/SimplifiedLL.java @@ -43,7 +43,7 @@ public void remove(int i) { Node node = getNext(i-1); Node node2 = getNext(i); node.next = node2.next; - //@ set nodeseq = (\seq_concat(\seq_sub(nodeseq,0,i), \seq_sub(nodeseq,i+1,\seq_length(nodeseq)))); + //@ set nodeseq = (\seq_concat(\seq_sub(nodeseq,0,i), \seq_sub(nodeseq,i+1,nodeseq.length))); size --; } } diff --git a/key.ui/examples/heap/model_methods/CellTest_callSet.key b/key.ui/examples/heap/model_methods/CellTest_callSet.key index 5e343eef57d..db22362d850 100644 --- a/key.ui/examples/heap/model_methods/CellTest_callSet.key +++ b/key.ui/examples/heap/model_methods/CellTest_callSet.key @@ -39,9 +39,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:11:16 CET 2013 -name=CellTest[CellTest\\:\\:callSet(Cell,int)].JML operation contract.0 -contract=CellTest[CellTest\\:\\:callSet(Cell,int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "CellTest[CellTest::callSet(Cell,int)].JML operation contract.0", + "contract": "CellTest[CellTest::callSet(Cell,int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/CellTest_test.key b/key.ui/examples/heap/model_methods/CellTest_test.key index 08b56ec1e8d..d2e4cece798 100644 --- a/key.ui/examples/heap/model_methods/CellTest_test.key +++ b/key.ui/examples/heap/model_methods/CellTest_test.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:11:29 CET 2013 -name=CellTest[CellTest\\:\\:test(Recell)].JML operation contract.0 -contract=CellTest[CellTest\\:\\:test(Recell)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "CellTest[CellTest::test(Recell)].JML operation contract.0", + "contract": "CellTest[CellTest::test(Recell)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/CellTest_test2.key b/key.ui/examples/heap/model_methods/CellTest_test2.key index fe2c1a2de7a..6e03f2731ea 100644 --- a/key.ui/examples/heap/model_methods/CellTest_test2.key +++ b/key.ui/examples/heap/model_methods/CellTest_test2.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:11:42 CET 2013 -name=CellTest[CellTest\\:\\:test2(Cell)].JML operation contract.0 -contract=CellTest[CellTest\\:\\:test2(Cell)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "CellTest[CellTest::test2(Cell)].JML operation contract.0", + "contract": "CellTest[CellTest::test2(Cell)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Cell_footprint.key b/key.ui/examples/heap/model_methods/Cell_footprint.key index b00c988b8c5..233efffed0f 100644 --- a/key.ui/examples/heap/model_methods/Cell_footprint.key +++ b/key.ui/examples/heap/model_methods/Cell_footprint.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 09:47:02 CET 2013 -name=Cell[Cell\\:\\:footprint()].JML model_behavior operation contract.0 -contract=Cell[Cell\\:\\:footprint()].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Cell[Cell::footprint()].JML model_behavior operation contract.0", + "contract": "Cell[Cell::footprint()].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Cell_footprint_acc.key b/key.ui/examples/heap/model_methods/Cell_footprint_acc.key index e8992ff98e3..dc863f28784 100644 --- a/key.ui/examples/heap/model_methods/Cell_footprint_acc.key +++ b/key.ui/examples/heap/model_methods/Cell_footprint_acc.key @@ -39,10 +39,9 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:00:48 CET 2013 -name=Cell[Cell\\:\\:footprint()].JML accessible clause.0 -contract=Cell[Cell\\:\\:footprint()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Cell[Cell::footprint()].JML accessible clause.0", + "contract": "Cell[Cell::footprint()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Cell_get.key b/key.ui/examples/heap/model_methods/Cell_get.key index c787267289b..8fd56f1dbe6 100644 --- a/key.ui/examples/heap/model_methods/Cell_get.key +++ b/key.ui/examples/heap/model_methods/Cell_get.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:04:04 CET 2013 -name=Cell[Cell\\:\\:get()].JML operation contract.0 -contract=Cell[Cell\\:\\:get()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Cell[Cell::get()].JML operation contract.0", + "contract": "Cell[Cell::get()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Cell_get_acc.key b/key.ui/examples/heap/model_methods/Cell_get_acc.key index d90cb3310dc..594df442fab 100644 --- a/key.ui/examples/heap/model_methods/Cell_get_acc.key +++ b/key.ui/examples/heap/model_methods/Cell_get_acc.key @@ -39,9 +39,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:03:48 CET 2013 -name=Cell[Cell\\:\\:get()].JML accessible clause.0 -contract=Cell[Cell\\:\\:get()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Cell[Cell::get()].JML accessible clause.0", + "contract": "Cell[Cell::get()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Cell_post_set.key b/key.ui/examples/heap/model_methods/Cell_post_set.key index da6b2a06a3f..61d16de53f8 100644 --- a/key.ui/examples/heap/model_methods/Cell_post_set.key +++ b/key.ui/examples/heap/model_methods/Cell_post_set.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:05:28 CET 2013 -name=Cell[Cell\\:\\:post_set(int)].JML model_behavior operation contract.0 -contract=Cell[Cell\\:\\:post_set(int)].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Cell[Cell::post_set(int)].JML model_behavior operation contract.0", + "contract": "Cell[Cell::post_set(int)].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Cell_set.key b/key.ui/examples/heap/model_methods/Cell_set.key index 7b5421d0c46..a78bee04112 100644 --- a/key.ui/examples/heap/model_methods/Cell_set.key +++ b/key.ui/examples/heap/model_methods/Cell_set.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:06:11 CET 2013 -name=Cell[Cell\\:\\:set(int)].JML operation contract.0 -contract=Cell[Cell\\:\\:set(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Cell[Cell::set(int)].JML operation contract.0", + "contract": "Cell[Cell::set(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Coll1_Coll1_add_pre.key b/key.ui/examples/heap/model_methods/Coll1_Coll1_add_pre.key index 33b916cd445..e6285bab5e8 100644 --- a/key.ui/examples/heap/model_methods/Coll1_Coll1_add_pre.key +++ b/key.ui/examples/heap/model_methods/Coll1_Coll1_add_pre.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:20:10 CET 2013 -name=Coll1[Coll1\\:\\:add_pre(int)].JML model_behavior operation contract.0 -contract=Coll1[Coll1\\:\\:add_pre(int)].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Coll1[Coll1::add_pre(int)].JML model_behavior operation contract.0", + "contract": "Coll1[Coll1::add_pre(int)].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Coll1_Coll_add_pre.key b/key.ui/examples/heap/model_methods/Coll1_Coll_add_pre.key index de6d00ba115..ffde52d59d8 100644 --- a/key.ui/examples/heap/model_methods/Coll1_Coll_add_pre.key +++ b/key.ui/examples/heap/model_methods/Coll1_Coll_add_pre.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:20:26 CET 2013 -name=Coll1[Coll\\:\\:add_pre(int)].JML model_behavior operation contract.0 -contract=Coll1[Coll\\:\\:add_pre(int)].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Coll1[Coll::add_pre(int)].JML model_behavior operation contract.0", + "contract": "Coll1[Coll::add_pre(int)].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Coll1_add.key b/key.ui/examples/heap/model_methods/Coll1_add.key index 8c7ebef3293..b7924ec61c6 100644 --- a/key.ui/examples/heap/model_methods/Coll1_add.key +++ b/key.ui/examples/heap/model_methods/Coll1_add.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:17:45 CET 2013 -name=Coll1[Coll\\:\\:add(int)].JML operation contract.0 -contract=Coll1[Coll\\:\\:add(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Coll1[Coll::add(int)].JML operation contract.0", + "contract": "Coll1[Coll::add(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Coll2_Coll2_add_pre.key b/key.ui/examples/heap/model_methods/Coll2_Coll2_add_pre.key index 088d0ab1797..ce266a58125 100644 --- a/key.ui/examples/heap/model_methods/Coll2_Coll2_add_pre.key +++ b/key.ui/examples/heap/model_methods/Coll2_Coll2_add_pre.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:19:33 CET 2013 -name=Coll2[Coll2\\:\\:add_pre(int)].JML model_behavior operation contract.0 -contract=Coll2[Coll2\\:\\:add_pre(int)].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Coll2[Coll2::add_pre(int)].JML model_behavior operation contract.0", + "contract": "Coll2[Coll2::add_pre(int)].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Coll2_Coll_add_pre.key b/key.ui/examples/heap/model_methods/Coll2_Coll_add_pre.key index 0339f7292ac..a96c9b8e410 100644 --- a/key.ui/examples/heap/model_methods/Coll2_Coll_add_pre.key +++ b/key.ui/examples/heap/model_methods/Coll2_Coll_add_pre.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:19:49 CET 2013 -name=Coll2[Coll\\:\\:add_pre(int)].JML model_behavior operation contract.0 -contract=Coll2[Coll\\:\\:add_pre(int)].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Coll2[Coll::add_pre(int)].JML model_behavior operation contract.0", + "contract": "Coll2[Coll::add_pre(int)].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Coll2_add.key b/key.ui/examples/heap/model_methods/Coll2_add.key index c17fbf54475..6bab606c375 100644 --- a/key.ui/examples/heap/model_methods/Coll2_add.key +++ b/key.ui/examples/heap/model_methods/Coll2_add.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:17:58 CET 2013 -name=Coll2[Coll\\:\\:add(int)].JML operation contract.0 -contract=Coll2[Coll\\:\\:add(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Coll2[Coll::add(int)].JML operation contract.0", + "contract": "Coll2[Coll::add(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Coll_add.key b/key.ui/examples/heap/model_methods/Coll_add.key index 10f9488fe88..238f55e6956 100644 --- a/key.ui/examples/heap/model_methods/Coll_add.key +++ b/key.ui/examples/heap/model_methods/Coll_add.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:17:26 CET 2013 -name=Coll[Coll\\:\\:add(int)].JML operation contract.0 -contract=Coll[Coll\\:\\:add(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Coll[Coll::add(int)].JML operation contract.0", + "contract": "Coll[Coll::add(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Coll_add_pre.key b/key.ui/examples/heap/model_methods/Coll_add_pre.key index c9dfe8cb6f0..a07e48eb117 100644 --- a/key.ui/examples/heap/model_methods/Coll_add_pre.key +++ b/key.ui/examples/heap/model_methods/Coll_add_pre.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:20:43 CET 2013 -name=Coll[Coll\\:\\:add_pre(int)].JML model_behavior operation contract.0 -contract=Coll[Coll\\:\\:add_pre(int)].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Coll[Coll::add_pre(int)].JML model_behavior operation contract.0", + "contract": "Coll[Coll::add_pre(int)].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Indirect_callAdd.key b/key.ui/examples/heap/model_methods/Indirect_callAdd.key index e083f207748..a1c494b7cc0 100644 --- a/key.ui/examples/heap/model_methods/Indirect_callAdd.key +++ b/key.ui/examples/heap/model_methods/Indirect_callAdd.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:21:05 CET 2013 -name=Indirect[Indirect\\:\\:callAdd(Coll,int)].JML operation contract.0 -contract=Indirect[Indirect\\:\\:callAdd(Coll,int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Indirect[Indirect::callAdd(Coll,int)].JML operation contract.0", + "contract": "Indirect[Indirect::callAdd(Coll,int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Indirect_test.key b/key.ui/examples/heap/model_methods/Indirect_test.key index acc5f409f96..78767291a7e 100644 --- a/key.ui/examples/heap/model_methods/Indirect_test.key +++ b/key.ui/examples/heap/model_methods/Indirect_test.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:21:23 CET 2013 -name=Indirect[Indirect\\:\\:test(Coll1,Coll2)].JML operation contract.0 -contract=Indirect[Indirect\\:\\:test(Coll1,Coll2)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Indirect[Indirect::test(Coll1,Coll2)].JML operation contract.0", + "contract": "Indirect[Indirect::test(Coll1,Coll2)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Recell_Cell_footprint.key b/key.ui/examples/heap/model_methods/Recell_Cell_footprint.key index 5416adfb70e..fe6123e8ab6 100644 --- a/key.ui/examples/heap/model_methods/Recell_Cell_footprint.key +++ b/key.ui/examples/heap/model_methods/Recell_Cell_footprint.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 09:47:02 CET 2013 -name=Recell[Cell\\:\\:footprint()].JML model_behavior operation contract.0 -contract=Recell[Cell\\:\\:footprint()].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Recell[Cell::footprint()].JML model_behavior operation contract.0", + "contract": "Recell[Cell::footprint()].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Recell_Cell_post_set.key b/key.ui/examples/heap/model_methods/Recell_Cell_post_set.key index 6819230baec..2d25103321d 100644 --- a/key.ui/examples/heap/model_methods/Recell_Cell_post_set.key +++ b/key.ui/examples/heap/model_methods/Recell_Cell_post_set.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:05:28 CET 2013 -name=Recell[Cell\\:\\:post_set(int)].JML model_behavior operation contract.0 -contract=Recell[Cell\\:\\:post_set(int)].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Recell[Cell::post_set(int)].JML model_behavior operation contract.0", + "contract": "Recell[Cell::post_set(int)].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Recell_Recell_footprint.key b/key.ui/examples/heap/model_methods/Recell_Recell_footprint.key index a2ce2efc8ce..72f44235fa3 100644 --- a/key.ui/examples/heap/model_methods/Recell_Recell_footprint.key +++ b/key.ui/examples/heap/model_methods/Recell_Recell_footprint.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 09:47:02 CET 2013 -name=Recell[Recell\\:\\:footprint()].JML model_behavior operation contract.0 -contract=Recell[Recell\\:\\:footprint()].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Recell[Recell::footprint()].JML model_behavior operation contract.0", + "contract": "Recell[Recell::footprint()].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Recell_Recell_post_set.key b/key.ui/examples/heap/model_methods/Recell_Recell_post_set.key index 44227b48044..92df15af1ac 100644 --- a/key.ui/examples/heap/model_methods/Recell_Recell_post_set.key +++ b/key.ui/examples/heap/model_methods/Recell_Recell_post_set.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:05:09 CET 2013 -name=Recell[Recell\\:\\:post_set(int)].JML model_behavior operation contract.0 -contract=Recell[Recell\\:\\:post_set(int)].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Recell[Recell::post_set(int)].JML model_behavior operation contract.0", + "contract": "Recell[Recell::post_set(int)].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Recell_footprint_acc.key b/key.ui/examples/heap/model_methods/Recell_footprint_acc.key index dc46df307ab..c8113d6fed8 100644 --- a/key.ui/examples/heap/model_methods/Recell_footprint_acc.key +++ b/key.ui/examples/heap/model_methods/Recell_footprint_acc.key @@ -39,10 +39,9 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:00:48 CET 2013 -name=Recell[Cell\\:\\:footprint()].JML accessible clause.0 -contract=Recell[Cell\\:\\:footprint()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Recell[Cell::footprint()].JML accessible clause.0", + "contract": "Recell[Cell::footprint()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Recell_get.key b/key.ui/examples/heap/model_methods/Recell_get.key index 800c9e54f30..fa4a5ff0bce 100644 --- a/key.ui/examples/heap/model_methods/Recell_get.key +++ b/key.ui/examples/heap/model_methods/Recell_get.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:04:04 CET 2013 -name=Recell[Cell\\:\\:get()].JML operation contract.0 -contract=Recell[Cell\\:\\:get()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Recell[Cell::get()].JML operation contract.0", + "contract": "Recell[Cell::get()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Recell_get_acc.key b/key.ui/examples/heap/model_methods/Recell_get_acc.key index a48cf05722d..d267e121b27 100644 --- a/key.ui/examples/heap/model_methods/Recell_get_acc.key +++ b/key.ui/examples/heap/model_methods/Recell_get_acc.key @@ -39,9 +39,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:03:48 CET 2013 -name=Recell[Cell\\:\\:get()].JML accessible clause.0 -contract=Recell[Cell\\:\\:get()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Recell[Cell::get()].JML accessible clause.0", + "contract": "Recell[Cell::get()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Recell_set.key b/key.ui/examples/heap/model_methods/Recell_set.key index 4aa07bd73c9..1a2027cd3ad 100644 --- a/key.ui/examples/heap/model_methods/Recell_set.key +++ b/key.ui/examples/heap/model_methods/Recell_set.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:06:11 CET 2013 -name=Recell[Cell\\:\\:set(int)].JML operation contract.0 -contract=Recell[Cell\\:\\:set(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Recell[Cell::set(int)].JML operation contract.0", + "contract": "Recell[Cell::set(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/model_methods/Recell_undo.key b/key.ui/examples/heap/model_methods/Recell_undo.key index 709a3a9b120..fd5b0207e9a 100644 --- a/key.ui/examples/heap/model_methods/Recell_undo.key +++ b/key.ui/examples/heap/model_methods/Recell_undo.key @@ -39,10 +39,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:06:27 CET 2013 -name=Recell[Recell\\:\\:undo()].JML operation contract.0 -contract=Recell[Recell\\:\\:undo()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Recell[Recell::undo()].JML operation contract.0", + "contract": "Recell[Recell::undo()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/lockspec/Counter_fpLock_accessible.key b/key.ui/examples/heap/permissions/lockspec/Counter_fpLock_accessible.key index 9dd2fb09735..d34b0404dd2 100644 --- a/key.ui/examples/heap/permissions/lockspec/Counter_fpLock_accessible.key +++ b/key.ui/examples/heap/permissions/lockspec/Counter_fpLock_accessible.key @@ -41,10 +41,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jul 29 11:34:02 CEST 2015 -name=Counter[LockSpec\\:\\:fpLock()].JML accessible clause.0 -contract=Counter[LockSpec\\:\\:fpLock()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Counter[LockSpec::fpLock()].JML accessible clause.0", + "contract": "Counter[LockSpec::fpLock()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/lockspec/Counter_fpPerm_accessible.key b/key.ui/examples/heap/permissions/lockspec/Counter_fpPerm_accessible.key index d4231a8d48c..357fd3b0473 100644 --- a/key.ui/examples/heap/permissions/lockspec/Counter_fpPerm_accessible.key +++ b/key.ui/examples/heap/permissions/lockspec/Counter_fpPerm_accessible.key @@ -41,10 +41,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jul 29 11:35:37 CEST 2015 -name=Counter[LockSpec\\:\\:fpPerm()].JML accessible clause.0 -contract=Counter[LockSpec\\:\\:fpPerm()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Counter[LockSpec::fpPerm()].JML accessible clause.0", + "contract": "Counter[LockSpec::fpPerm()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/lockspec/Counter_fp_accessible.key b/key.ui/examples/heap/permissions/lockspec/Counter_fp_accessible.key index 5b707fb42fb..f5b17c66f9c 100644 --- a/key.ui/examples/heap/permissions/lockspec/Counter_fp_accessible.key +++ b/key.ui/examples/heap/permissions/lockspec/Counter_fp_accessible.key @@ -41,10 +41,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jul 29 11:32:29 CEST 2015 -name=Counter[LockSpec\\:\\:fp()].JML accessible clause.0 -contract=Counter[LockSpec\\:\\:fp()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Counter[LockSpec::fp()].JML accessible clause.0", + "contract": "Counter[LockSpec::fp()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/lockspec/Counter_increase_contract.key b/key.ui/examples/heap/permissions/lockspec/Counter_increase_contract.key index aac06b4247a..5df1ead53c7 100644 --- a/key.ui/examples/heap/permissions/lockspec/Counter_increase_contract.key +++ b/key.ui/examples/heap/permissions/lockspec/Counter_increase_contract.key @@ -42,10 +42,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Sun Jul 26 10:16:52 CEST 2015 -name=Counter[Counter\\:\\:increase()].JML normal_behavior operation contract.0 -contract=Counter[Counter\\:\\:increase()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Counter[Counter::increase()].JML normal_behavior operation contract.0", + "contract": "Counter[Counter::increase()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/lockspec/Counter_inv_accessible1.key b/key.ui/examples/heap/permissions/lockspec/Counter_inv_accessible1.key index 35c54eab3a6..4d3ea935735 100644 --- a/key.ui/examples/heap/permissions/lockspec/Counter_inv_accessible1.key +++ b/key.ui/examples/heap/permissions/lockspec/Counter_inv_accessible1.key @@ -41,9 +41,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jul 29 11:48:07 CEST 2015 -name=Counter[java.lang.Object\\:\\:()].JML accessible clause.0 -contract=Counter[java.lang.Object\\:\\:()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Counter[java.lang.Object::()].JML accessible clause.0", + "contract": "Counter[java.lang.Object::()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/lockspec/Counter_inv_accessible2.key b/key.ui/examples/heap/permissions/lockspec/Counter_inv_accessible2.key index b436ca4754b..3ba6d5151b9 100644 --- a/key.ui/examples/heap/permissions/lockspec/Counter_inv_accessible2.key +++ b/key.ui/examples/heap/permissions/lockspec/Counter_inv_accessible2.key @@ -41,9 +41,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jul 29 11:48:24 CEST 2015 -name=Counter[java.lang.Object\\:\\:()].JML accessible clause.1 -contract=Counter[java.lang.Object\\:\\:()].JML accessible clause.1 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Counter[java.lang.Object::()].JML accessible clause.1", + "contract": "Counter[java.lang.Object::()].JML accessible clause.1", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/lockspec/Counter_lockConsistent_contract.key b/key.ui/examples/heap/permissions/lockspec/Counter_lockConsistent_contract.key index d0897389692..5a69913412f 100644 --- a/key.ui/examples/heap/permissions/lockspec/Counter_lockConsistent_contract.key +++ b/key.ui/examples/heap/permissions/lockspec/Counter_lockConsistent_contract.key @@ -39,9 +39,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:11:16 CET 2013 -name=Counter[LockSpec\\:\\:lockConsistent()].JML model_behavior operation contract.0 -contract=Counter[LockSpec\\:\\:lockConsistent()].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Counter[LockSpec::lockConsistent()].JML model_behavior operation contract.0", + "contract": "Counter[LockSpec::lockConsistent()].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/lockspec/Counter_lockRef_accessible.key b/key.ui/examples/heap/permissions/lockspec/Counter_lockRef_accessible.key index c54a419b8d4..85b50196819 100644 --- a/key.ui/examples/heap/permissions/lockspec/Counter_lockRef_accessible.key +++ b/key.ui/examples/heap/permissions/lockspec/Counter_lockRef_accessible.key @@ -41,9 +41,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jul 29 11:41:21 CEST 2015 -name=Counter[LockSpec\\:\\:lockRef()].JML accessible clause.0 -contract=Counter[LockSpec\\:\\:lockRef()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Counter[LockSpec::lockRef()].JML accessible clause.0", + "contract": "Counter[LockSpec::lockRef()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/lockspec/Counter_lockRef_contract1.key b/key.ui/examples/heap/permissions/lockspec/Counter_lockRef_contract1.key index 2fa1e46fb6e..2f64ba58669 100644 --- a/key.ui/examples/heap/permissions/lockspec/Counter_lockRef_contract1.key +++ b/key.ui/examples/heap/permissions/lockspec/Counter_lockRef_contract1.key @@ -41,9 +41,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jul 29 11:42:35 CEST 2015 -name=Counter[LockSpec\\:\\:lockRef()].JML model_behavior operation contract.0 -contract=Counter[LockSpec\\:\\:lockRef()].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Counter[LockSpec::lockRef()].JML model_behavior operation contract.0", + "contract": "Counter[LockSpec::lockRef()].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/lockspec/Counter_lockRef_contract2.key b/key.ui/examples/heap/permissions/lockspec/Counter_lockRef_contract2.key index 85d1ce034c7..87dc4b9e1cd 100644 --- a/key.ui/examples/heap/permissions/lockspec/Counter_lockRef_contract2.key +++ b/key.ui/examples/heap/permissions/lockspec/Counter_lockRef_contract2.key @@ -41,9 +41,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jul 29 11:42:48 CEST 2015 -name=Counter[Counter\\:\\:lockRef()].JML model_behavior operation contract.0 -contract=Counter[Counter\\:\\:lockRef()].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Counter[Counter::lockRef()].JML model_behavior operation contract.0", + "contract": "Counter[Counter::lockRef()].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/lockspec/Counter_lockState_accessible.key b/key.ui/examples/heap/permissions/lockspec/Counter_lockState_accessible.key index 679b2ce1817..7affb4c44fd 100644 --- a/key.ui/examples/heap/permissions/lockspec/Counter_lockState_accessible.key +++ b/key.ui/examples/heap/permissions/lockspec/Counter_lockState_accessible.key @@ -41,9 +41,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jul 29 11:42:15 CEST 2015 -name=Counter[LockSpec\\:\\:lockState(boolean)].JML accessible clause.0 -contract=Counter[LockSpec\\:\\:lockState(boolean)].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Counter[LockSpec::lockState(boolean)].JML accessible clause.0", + "contract": "Counter[LockSpec::lockState(boolean)].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/lockspec/Counter_lockStatus_accessible.key b/key.ui/examples/heap/permissions/lockspec/Counter_lockStatus_accessible.key index b42d817ad30..0eb987d95d0 100644 --- a/key.ui/examples/heap/permissions/lockspec/Counter_lockStatus_accessible.key +++ b/key.ui/examples/heap/permissions/lockspec/Counter_lockStatus_accessible.key @@ -41,9 +41,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jul 29 11:45:16 CEST 2015 -name=Counter[LockSpec\\:\\:lockStatus(boolean)].JML accessible clause.0 -contract=Counter[LockSpec\\:\\:lockStatus(boolean)].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Counter[LockSpec::lockStatus(boolean)].JML accessible clause.0", + "contract": "Counter[LockSpec::lockStatus(boolean)].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/lockspec/Counter_lockTransfer_accessible.key b/key.ui/examples/heap/permissions/lockspec/Counter_lockTransfer_accessible.key index 229db786588..b0d1c392fad 100644 --- a/key.ui/examples/heap/permissions/lockspec/Counter_lockTransfer_accessible.key +++ b/key.ui/examples/heap/permissions/lockspec/Counter_lockTransfer_accessible.key @@ -41,9 +41,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jul 29 11:46:43 CEST 2015 -name=Counter[LockSpec\\:\\:lockTransfer()].JML accessible clause.0 -contract=Counter[LockSpec\\:\\:lockTransfer()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Counter[LockSpec::lockTransfer()].JML accessible clause.0", + "contract": "Counter[LockSpec::lockTransfer()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/lockspec/Counter_unlockTransfer_accessible.key b/key.ui/examples/heap/permissions/lockspec/Counter_unlockTransfer_accessible.key index 989079ad293..9c1f46c4cc1 100644 --- a/key.ui/examples/heap/permissions/lockspec/Counter_unlockTransfer_accessible.key +++ b/key.ui/examples/heap/permissions/lockspec/Counter_unlockTransfer_accessible.key @@ -41,9 +41,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jul 29 11:47:02 CEST 2015 -name=Counter[LockSpec\\:\\:unlockTransfer()].JML accessible clause.0 -contract=Counter[LockSpec\\:\\:unlockTransfer()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Counter[LockSpec::unlockTransfer()].JML accessible clause.0", + "contract": "Counter[LockSpec::unlockTransfer()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/mulleretal/ReadWrite_doRead_contract.key b/key.ui/examples/heap/permissions/mulleretal/ReadWrite_doRead_contract.key index 4e1a4bb6bc8..0ffbc23e30d 100644 --- a/key.ui/examples/heap/permissions/mulleretal/ReadWrite_doRead_contract.key +++ b/key.ui/examples/heap/permissions/mulleretal/ReadWrite_doRead_contract.key @@ -39,9 +39,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:11:16 CET 2013 -name=ReadWrite[ReadWrite\\:\\:doRead()].JML normal_behavior operation contract.0 -contract=ReadWrite[ReadWrite\\:\\:doRead()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ReadWrite[ReadWrite::doRead()].JML normal_behavior operation contract.0", + "contract": "ReadWrite[ReadWrite::doRead()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/mulleretal/ReadWrite_doWrite_contract.key b/key.ui/examples/heap/permissions/mulleretal/ReadWrite_doWrite_contract.key index 6e7f11e10e7..5a11707952b 100644 --- a/key.ui/examples/heap/permissions/mulleretal/ReadWrite_doWrite_contract.key +++ b/key.ui/examples/heap/permissions/mulleretal/ReadWrite_doWrite_contract.key @@ -39,9 +39,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:11:16 CET 2013 -name=ReadWrite[ReadWrite\\:\\:doWrite()].JML normal_behavior operation contract.0 -contract=ReadWrite[ReadWrite\\:\\:doWrite()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ReadWrite[ReadWrite::doWrite()].JML normal_behavior operation contract.0", + "contract": "ReadWrite[ReadWrite::doWrite()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/mulleretal/ReadWrite_inv1_accessible.key b/key.ui/examples/heap/permissions/mulleretal/ReadWrite_inv1_accessible.key index 30d21e0a9ca..586a0acff2c 100644 --- a/key.ui/examples/heap/permissions/mulleretal/ReadWrite_inv1_accessible.key +++ b/key.ui/examples/heap/permissions/mulleretal/ReadWrite_inv1_accessible.key @@ -39,11 +39,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:47:27 CET 2014 -name=ReadWrite[java.lang.Object\\:\\:()].JML accessible clause.0 -contract=ReadWrite[java.lang.Object\\:\\:()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "ReadWrite[java.lang.Object::()].JML accessible clause.0", + "contract": "ReadWrite[java.lang.Object::()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/mulleretal/ReadWrite_inv2_accessible.key b/key.ui/examples/heap/permissions/mulleretal/ReadWrite_inv2_accessible.key index 8cc42d9081c..37f528f82f0 100644 --- a/key.ui/examples/heap/permissions/mulleretal/ReadWrite_inv2_accessible.key +++ b/key.ui/examples/heap/permissions/mulleretal/ReadWrite_inv2_accessible.key @@ -39,11 +39,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:47:27 CET 2014 -name=ReadWrite[java.lang.Object\\:\\:()].JML accessible clause.1 -contract=ReadWrite[java.lang.Object\\:\\:()].JML accessible clause.1 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "ReadWrite[java.lang.Object::()].JML accessible clause.1", + "contract": "ReadWrite[java.lang.Object::()].JML accessible clause.1", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/mulleretal/ReadWrite_read_contract.key b/key.ui/examples/heap/permissions/mulleretal/ReadWrite_read_contract.key index 77da110f75d..581389379fd 100644 --- a/key.ui/examples/heap/permissions/mulleretal/ReadWrite_read_contract.key +++ b/key.ui/examples/heap/permissions/mulleretal/ReadWrite_read_contract.key @@ -39,9 +39,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:11:16 CET 2013 -name=ReadWrite[ReadWrite\\:\\:read()].JML normal_behavior operation contract.0 -contract=ReadWrite[ReadWrite\\:\\:read()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ReadWrite[ReadWrite::read()].JML normal_behavior operation contract.0", + "contract": "ReadWrite[ReadWrite::read()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/mulleretal/ReadWrite_write_contract.key b/key.ui/examples/heap/permissions/mulleretal/ReadWrite_write_contract.key index e0bf362a1e6..018d142371d 100644 --- a/key.ui/examples/heap/permissions/mulleretal/ReadWrite_write_contract.key +++ b/key.ui/examples/heap/permissions/mulleretal/ReadWrite_write_contract.key @@ -39,9 +39,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Dec 04 10:11:16 CET 2013 -name=ReadWrite[ReadWrite\\:\\:write()].JML normal_behavior operation contract.0 -contract=ReadWrite[ReadWrite\\:\\:write()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ReadWrite[ReadWrite::write()].JML normal_behavior operation contract.0", + "contract": "ReadWrite[ReadWrite::write()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/paper/Transfer_entry.proof b/key.ui/examples/heap/permissions/paper/Transfer_entry.proof index 5e740bd6288..bf43f2e5c94 100644 --- a/key.ui/examples/heap/permissions/paper/Transfer_entry.proof +++ b/key.ui/examples/heap/permissions/paper/Transfer_entry.proof @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jan 28 13:57:15 CET 2015 -name=Transfer[Transfer\\:\\:entry()].JML normal_behavior operation contract.0 -contract=Transfer[Transfer\\:\\:entry()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Transfer[Transfer::entry()].JML normal_behavior operation contract.0", + "contract": "Transfer[Transfer::entry()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "woj" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/heap/permissions/permissions_method0.key b/key.ui/examples/heap/permissions/permissions_method0.key index 66cf8047bc3..e991b2a3830 100644 --- a/key.ui/examples/heap/permissions/permissions_method0.key +++ b/key.ui/examples/heap/permissions/permissions_method0.key @@ -38,10 +38,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Mon Jun 24 13:51:35 CEST 2013 -name=MyClass[MyClass\\:\\:method0()].JML normal_behavior operation contract.0 -contract=MyClass[MyClass\\:\\:method0()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "MyClass[MyClass::method0()].JML normal_behavior operation contract.0", + "contract": "MyClass[MyClass::method0()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/permissions_method1.key b/key.ui/examples/heap/permissions/permissions_method1.key index fa7f4b8cafd..d9b202dcb8c 100644 --- a/key.ui/examples/heap/permissions/permissions_method1.key +++ b/key.ui/examples/heap/permissions/permissions_method1.key @@ -38,10 +38,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Mon Jun 24 13:51:35 CEST 2013 -name=MyClass[MyClass\\:\\:method1()].JML normal_behavior operation contract.0 -contract=MyClass[MyClass\\:\\:method1()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "MyClass[MyClass::method1()].JML normal_behavior operation contract.0", + "contract": "MyClass[MyClass::method1()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/permissions_method3.key b/key.ui/examples/heap/permissions/permissions_method3.key index 183ea089149..6504def8d92 100644 --- a/key.ui/examples/heap/permissions/permissions_method3.key +++ b/key.ui/examples/heap/permissions/permissions_method3.key @@ -38,10 +38,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Mon Jun 24 13:51:35 CEST 2013 -name=MyClass[MyClass\\:\\:method3()].JML normal_behavior operation contract.0 -contract=MyClass[MyClass\\:\\:method3()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "MyClass[MyClass::method3()].JML normal_behavior operation contract.0", + "contract": "MyClass[MyClass::method3()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/permissions_setAB.key b/key.ui/examples/heap/permissions/permissions_setAB.key index fdcb2fe037e..9d35528f7c5 100644 --- a/key.ui/examples/heap/permissions/permissions_setAB.key +++ b/key.ui/examples/heap/permissions/permissions_setAB.key @@ -38,10 +38,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Mon Jun 24 13:51:35 CEST 2013 -name=MyClass[MyClass\\:\\:setAB()].JML normal_behavior operation contract.0 -contract=MyClass[MyClass\\:\\:setAB()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "MyClass[MyClass::setAB()].JML normal_behavior operation contract.0", + "contract": "MyClass[MyClass::setAB()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/AFilter_AFilter.key b/key.ui/examples/heap/permissions/threads/AFilter_AFilter.key index 43e1ae64511..841ad1556b4 100644 --- a/key.ui/examples/heap/permissions/threads/AFilter_AFilter.key +++ b/key.ui/examples/heap/permissions/threads/AFilter_AFilter.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:10:13 CET 2014 -name=AFilter[AFilter\\:\\:AFilter(Sampler,Buffer)].JML normal_behavior operation contract.0 -contract=AFilter[AFilter\\:\\:AFilter(Sampler,Buffer)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AFilter[AFilter::AFilter(Sampler,Buffer)].JML normal_behavior operation contract.0", + "contract": "AFilter[AFilter::AFilter(Sampler,Buffer)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/AFilter_initPost_accessible.key b/key.ui/examples/heap/permissions/threads/AFilter_initPost_accessible.key index a44425c3cc9..cd5daa64b55 100644 --- a/key.ui/examples/heap/permissions/threads/AFilter_initPost_accessible.key +++ b/key.ui/examples/heap/permissions/threads/AFilter_initPost_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:10:48 CET 2014 -name=AFilter[ThreadSpec2\\:\\:initPost()].JML accessible clause.0 -contract=AFilter[ThreadSpec2\\:\\:initPost()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "AFilter[ThreadSpec2::initPost()].JML accessible clause.0", + "contract": "AFilter[ThreadSpec2::initPost()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/AFilter_inv_accessible1.key b/key.ui/examples/heap/permissions/threads/AFilter_inv_accessible1.key index bbe324ba8cd..2dc6f93edff 100644 --- a/key.ui/examples/heap/permissions/threads/AFilter_inv_accessible1.key +++ b/key.ui/examples/heap/permissions/threads/AFilter_inv_accessible1.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:17:56 CET 2014 -name=AFilter[java.lang.Object\\:\\:()].JML accessible clause.0 -contract=AFilter[java.lang.Object\\:\\:()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "AFilter[java.lang.Object::()].JML accessible clause.0", + "contract": "AFilter[java.lang.Object::()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/AFilter_inv_accessible2.key b/key.ui/examples/heap/permissions/threads/AFilter_inv_accessible2.key index 7f31f244c17..5348cbefb57 100644 --- a/key.ui/examples/heap/permissions/threads/AFilter_inv_accessible2.key +++ b/key.ui/examples/heap/permissions/threads/AFilter_inv_accessible2.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:18:14 CET 2014 -name=AFilter[java.lang.Object\\:\\:()].JML accessible clause.1 -contract=AFilter[java.lang.Object\\:\\:()].JML accessible clause.1 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "AFilter[java.lang.Object::()].JML accessible clause.1", + "contract": "AFilter[java.lang.Object::()].JML accessible clause.1", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/AFilter_joinTransfer_accessible.key b/key.ui/examples/heap/permissions/threads/AFilter_joinTransfer_accessible.key index f25b8d8ae69..8bd8d11ad10 100644 --- a/key.ui/examples/heap/permissions/threads/AFilter_joinTransfer_accessible.key +++ b/key.ui/examples/heap/permissions/threads/AFilter_joinTransfer_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:12:21 CET 2014 -name=AFilter[ThreadSpec2\\:\\:joinTransfer()].JML accessible clause.0 -contract=AFilter[ThreadSpec2\\:\\:joinTransfer()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "AFilter[ThreadSpec2::joinTransfer()].JML accessible clause.0", + "contract": "AFilter[ThreadSpec2::joinTransfer()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/AFilter_joinTransfer_contract.key b/key.ui/examples/heap/permissions/threads/AFilter_joinTransfer_contract.key index 2c4795b3088..ee6c2d78a85 100644 --- a/key.ui/examples/heap/permissions/threads/AFilter_joinTransfer_contract.key +++ b/key.ui/examples/heap/permissions/threads/AFilter_joinTransfer_contract.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:13:06 CET 2014 -name=AFilter[ThreadSpec2\\:\\:joinTransfer()].JML model_behavior operation contract.0 -contract=AFilter[ThreadSpec2\\:\\:joinTransfer()].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AFilter[ThreadSpec2::joinTransfer()].JML model_behavior operation contract.0", + "contract": "AFilter[ThreadSpec2::joinTransfer()].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/AFilter_postJoin_accessible.key b/key.ui/examples/heap/permissions/threads/AFilter_postJoin_accessible.key index 3a8452b1c1d..8a8ef20757e 100644 --- a/key.ui/examples/heap/permissions/threads/AFilter_postJoin_accessible.key +++ b/key.ui/examples/heap/permissions/threads/AFilter_postJoin_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:13:41 CET 2014 -name=AFilter[ThreadSpec2\\:\\:postJoin(java.lang.Object)].JML accessible clause.0 -contract=AFilter[ThreadSpec2\\:\\:postJoin(java.lang.Object)].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "AFilter[ThreadSpec2::postJoin(java.lang.Object)].JML accessible clause.0", + "contract": "AFilter[ThreadSpec2::postJoin(java.lang.Object)].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/AFilter_preStart_accessible.key b/key.ui/examples/heap/permissions/threads/AFilter_preStart_accessible.key index eb4907f852b..b2d105fafe3 100644 --- a/key.ui/examples/heap/permissions/threads/AFilter_preStart_accessible.key +++ b/key.ui/examples/heap/permissions/threads/AFilter_preStart_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:14:18 CET 2014 -name=AFilter[ThreadSpec2\\:\\:preStart(java.lang.Object)].JML accessible clause.0 -contract=AFilter[ThreadSpec2\\:\\:preStart(java.lang.Object)].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "AFilter[ThreadSpec2::preStart(java.lang.Object)].JML accessible clause.0", + "contract": "AFilter[ThreadSpec2::preStart(java.lang.Object)].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/AFilter_run.key b/key.ui/examples/heap/permissions/threads/AFilter_run.key index a31f5d9334f..ad2386536c5 100644 --- a/key.ui/examples/heap/permissions/threads/AFilter_run.key +++ b/key.ui/examples/heap/permissions/threads/AFilter_run.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:05:16 CET 2014 -name=AFilter[ThreadSpec2\\:\\:run()].JML normal_behavior operation contract.0 -contract=AFilter[ThreadSpec2\\:\\:run()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AFilter[ThreadSpec2::run()].JML normal_behavior operation contract.0", + "contract": "AFilter[ThreadSpec2::run()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/AFilter_startTransfer_accessible.key b/key.ui/examples/heap/permissions/threads/AFilter_startTransfer_accessible.key index 5391035daa0..8ceac51bbd2 100644 --- a/key.ui/examples/heap/permissions/threads/AFilter_startTransfer_accessible.key +++ b/key.ui/examples/heap/permissions/threads/AFilter_startTransfer_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:15:49 CET 2014 -name=AFilter[ThreadSpec2\\:\\:startTransfer()].JML accessible clause.0 -contract=AFilter[ThreadSpec2\\:\\:startTransfer()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "AFilter[ThreadSpec2::startTransfer()].JML accessible clause.0", + "contract": "AFilter[ThreadSpec2::startTransfer()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/AFilter_startTransfer_contract.key b/key.ui/examples/heap/permissions/threads/AFilter_startTransfer_contract.key index 59ebf7a8220..2eb8b31cafb 100644 --- a/key.ui/examples/heap/permissions/threads/AFilter_startTransfer_contract.key +++ b/key.ui/examples/heap/permissions/threads/AFilter_startTransfer_contract.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:15:15 CET 2014 -name=AFilter[ThreadSpec2\\:\\:startTransfer()].JML model_behavior operation contract.0 -contract=AFilter[ThreadSpec2\\:\\:startTransfer()].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AFilter[ThreadSpec2::startTransfer()].JML model_behavior operation contract.0", + "contract": "AFilter[ThreadSpec2::startTransfer()].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/AFilter_stateInv_accessible.key b/key.ui/examples/heap/permissions/threads/AFilter_stateInv_accessible.key index 65f7ce83884..319db14dd76 100644 --- a/key.ui/examples/heap/permissions/threads/AFilter_stateInv_accessible.key +++ b/key.ui/examples/heap/permissions/threads/AFilter_stateInv_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:16:28 CET 2014 -name=AFilter[ThreadSpec2\\:\\:stateInv()].JML accessible clause.0 -contract=AFilter[ThreadSpec2\\:\\:stateInv()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "AFilter[ThreadSpec2::stateInv()].JML accessible clause.0", + "contract": "AFilter[ThreadSpec2::stateInv()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/AFilter_staticPermissions_accessible.key b/key.ui/examples/heap/permissions/threads/AFilter_staticPermissions_accessible.key index cac0a700168..42323b54346 100644 --- a/key.ui/examples/heap/permissions/threads/AFilter_staticPermissions_accessible.key +++ b/key.ui/examples/heap/permissions/threads/AFilter_staticPermissions_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:16:59 CET 2014 -name=AFilter[ThreadSpec2\\:\\:staticPermissions()].JML accessible clause.0 -contract=AFilter[ThreadSpec2\\:\\:staticPermissions()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "AFilter[ThreadSpec2::staticPermissions()].JML accessible clause.0", + "contract": "AFilter[ThreadSpec2::staticPermissions()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/AFilter_workingPermissions_accessible.key b/key.ui/examples/heap/permissions/threads/AFilter_workingPermissions_accessible.key index 768829c399a..04aaecdec98 100644 --- a/key.ui/examples/heap/permissions/threads/AFilter_workingPermissions_accessible.key +++ b/key.ui/examples/heap/permissions/threads/AFilter_workingPermissions_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:17:24 CET 2014 -name=AFilter[ThreadSpec2\\:\\:workingPermissions()].JML accessible clause.0 -contract=AFilter[ThreadSpec2\\:\\:workingPermissions()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "AFilter[ThreadSpec2::workingPermissions()].JML accessible clause.0", + "contract": "AFilter[ThreadSpec2::workingPermissions()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/BFilter_BFilter.key b/key.ui/examples/heap/permissions/threads/BFilter_BFilter.key index 21ced0d7bff..4dc9024cddc 100644 --- a/key.ui/examples/heap/permissions/threads/BFilter_BFilter.key +++ b/key.ui/examples/heap/permissions/threads/BFilter_BFilter.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:10:13 CET 2014 -name=BFilter[BFilter\\:\\:BFilter(Sampler,Buffer)].JML normal_behavior operation contract.0 -contract=BFilter[BFilter\\:\\:BFilter(Sampler,Buffer)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BFilter[BFilter::BFilter(Sampler,Buffer)].JML normal_behavior operation contract.0", + "contract": "BFilter[BFilter::BFilter(Sampler,Buffer)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/BFilter_initPost_accessible.key b/key.ui/examples/heap/permissions/threads/BFilter_initPost_accessible.key index 9087069b9d3..c29ca68b335 100644 --- a/key.ui/examples/heap/permissions/threads/BFilter_initPost_accessible.key +++ b/key.ui/examples/heap/permissions/threads/BFilter_initPost_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:10:48 CET 2014 -name=BFilter[ThreadSpec2\\:\\:initPost()].JML accessible clause.0 -contract=BFilter[ThreadSpec2\\:\\:initPost()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "BFilter[ThreadSpec2::initPost()].JML accessible clause.0", + "contract": "BFilter[ThreadSpec2::initPost()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/BFilter_inv_accessible1.key b/key.ui/examples/heap/permissions/threads/BFilter_inv_accessible1.key index b98b1afbbd0..56f691c9d40 100644 --- a/key.ui/examples/heap/permissions/threads/BFilter_inv_accessible1.key +++ b/key.ui/examples/heap/permissions/threads/BFilter_inv_accessible1.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:17:56 CET 2014 -name=BFilter[java.lang.Object\\:\\:()].JML accessible clause.0 -contract=BFilter[java.lang.Object\\:\\:()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "BFilter[java.lang.Object::()].JML accessible clause.0", + "contract": "BFilter[java.lang.Object::()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/BFilter_inv_accessible2.key b/key.ui/examples/heap/permissions/threads/BFilter_inv_accessible2.key index 7406a67a01c..6849053fac2 100644 --- a/key.ui/examples/heap/permissions/threads/BFilter_inv_accessible2.key +++ b/key.ui/examples/heap/permissions/threads/BFilter_inv_accessible2.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:18:14 CET 2014 -name=BFilter[java.lang.Object\\:\\:()].JML accessible clause.1 -contract=BFilter[java.lang.Object\\:\\:()].JML accessible clause.1 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "BFilter[java.lang.Object::()].JML accessible clause.1", + "contract": "BFilter[java.lang.Object::()].JML accessible clause.1", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/BFilter_joinTransfer_accessible.key b/key.ui/examples/heap/permissions/threads/BFilter_joinTransfer_accessible.key index 8282cb4f382..452227cf9d9 100644 --- a/key.ui/examples/heap/permissions/threads/BFilter_joinTransfer_accessible.key +++ b/key.ui/examples/heap/permissions/threads/BFilter_joinTransfer_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:12:21 CET 2014 -name=BFilter[ThreadSpec2\\:\\:joinTransfer()].JML accessible clause.0 -contract=BFilter[ThreadSpec2\\:\\:joinTransfer()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "BFilter[ThreadSpec2::joinTransfer()].JML accessible clause.0", + "contract": "BFilter[ThreadSpec2::joinTransfer()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/BFilter_joinTransfer_contract.key b/key.ui/examples/heap/permissions/threads/BFilter_joinTransfer_contract.key index 2a33e761076..ff7b688851c 100644 --- a/key.ui/examples/heap/permissions/threads/BFilter_joinTransfer_contract.key +++ b/key.ui/examples/heap/permissions/threads/BFilter_joinTransfer_contract.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:13:06 CET 2014 -name=BFilter[ThreadSpec2\\:\\:joinTransfer()].JML model_behavior operation contract.0 -contract=BFilter[ThreadSpec2\\:\\:joinTransfer()].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BFilter[ThreadSpec2::joinTransfer()].JML model_behavior operation contract.0", + "contract": "BFilter[ThreadSpec2::joinTransfer()].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/BFilter_postJoin_accessible.key b/key.ui/examples/heap/permissions/threads/BFilter_postJoin_accessible.key index 7c9f8900f60..c99434e1946 100644 --- a/key.ui/examples/heap/permissions/threads/BFilter_postJoin_accessible.key +++ b/key.ui/examples/heap/permissions/threads/BFilter_postJoin_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:13:41 CET 2014 -name=BFilter[ThreadSpec2\\:\\:postJoin(java.lang.Object)].JML accessible clause.0 -contract=BFilter[ThreadSpec2\\:\\:postJoin(java.lang.Object)].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "BFilter[ThreadSpec2::postJoin(java.lang.Object)].JML accessible clause.0", + "contract": "BFilter[ThreadSpec2::postJoin(java.lang.Object)].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/BFilter_preStart_accessible.key b/key.ui/examples/heap/permissions/threads/BFilter_preStart_accessible.key index cc328d3a87b..68e27119606 100644 --- a/key.ui/examples/heap/permissions/threads/BFilter_preStart_accessible.key +++ b/key.ui/examples/heap/permissions/threads/BFilter_preStart_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:14:18 CET 2014 -name=BFilter[ThreadSpec2\\:\\:preStart(java.lang.Object)].JML accessible clause.0 -contract=BFilter[ThreadSpec2\\:\\:preStart(java.lang.Object)].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "BFilter[ThreadSpec2::preStart(java.lang.Object)].JML accessible clause.0", + "contract": "BFilter[ThreadSpec2::preStart(java.lang.Object)].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/BFilter_run.key b/key.ui/examples/heap/permissions/threads/BFilter_run.key index b3b8144fc5c..3a180ad564f 100644 --- a/key.ui/examples/heap/permissions/threads/BFilter_run.key +++ b/key.ui/examples/heap/permissions/threads/BFilter_run.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:05:16 CET 2014 -name=BFilter[ThreadSpec2\\:\\:run()].JML normal_behavior operation contract.0 -contract=BFilter[ThreadSpec2\\:\\:run()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BFilter[ThreadSpec2::run()].JML normal_behavior operation contract.0", + "contract": "BFilter[ThreadSpec2::run()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/BFilter_startTransfer_accessible.key b/key.ui/examples/heap/permissions/threads/BFilter_startTransfer_accessible.key index 0b544f4e3b1..a01f0d4fd19 100644 --- a/key.ui/examples/heap/permissions/threads/BFilter_startTransfer_accessible.key +++ b/key.ui/examples/heap/permissions/threads/BFilter_startTransfer_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:15:49 CET 2014 -name=BFilter[ThreadSpec2\\:\\:startTransfer()].JML accessible clause.0 -contract=BFilter[ThreadSpec2\\:\\:startTransfer()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "BFilter[ThreadSpec2::startTransfer()].JML accessible clause.0", + "contract": "BFilter[ThreadSpec2::startTransfer()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/BFilter_startTransfer_contract.key b/key.ui/examples/heap/permissions/threads/BFilter_startTransfer_contract.key index dc13b20c1d6..b99e8f450cd 100644 --- a/key.ui/examples/heap/permissions/threads/BFilter_startTransfer_contract.key +++ b/key.ui/examples/heap/permissions/threads/BFilter_startTransfer_contract.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:15:15 CET 2014 -name=BFilter[ThreadSpec2\\:\\:startTransfer()].JML model_behavior operation contract.0 -contract=BFilter[ThreadSpec2\\:\\:startTransfer()].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "BFilter[ThreadSpec2::startTransfer()].JML model_behavior operation contract.0", + "contract": "BFilter[ThreadSpec2::startTransfer()].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/BFilter_stateInv_accessible.key b/key.ui/examples/heap/permissions/threads/BFilter_stateInv_accessible.key index 6b96d770354..65389db8a43 100644 --- a/key.ui/examples/heap/permissions/threads/BFilter_stateInv_accessible.key +++ b/key.ui/examples/heap/permissions/threads/BFilter_stateInv_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:16:28 CET 2014 -name=BFilter[ThreadSpec2\\:\\:stateInv()].JML accessible clause.0 -contract=BFilter[ThreadSpec2\\:\\:stateInv()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "BFilter[ThreadSpec2::stateInv()].JML accessible clause.0", + "contract": "BFilter[ThreadSpec2::stateInv()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/BFilter_staticPermissions_accessible.key b/key.ui/examples/heap/permissions/threads/BFilter_staticPermissions_accessible.key index 66c9975f4eb..bbc466fd1fe 100644 --- a/key.ui/examples/heap/permissions/threads/BFilter_staticPermissions_accessible.key +++ b/key.ui/examples/heap/permissions/threads/BFilter_staticPermissions_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:16:59 CET 2014 -name=BFilter[ThreadSpec2\\:\\:staticPermissions()].JML accessible clause.0 -contract=BFilter[ThreadSpec2\\:\\:staticPermissions()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "BFilter[ThreadSpec2::staticPermissions()].JML accessible clause.0", + "contract": "BFilter[ThreadSpec2::staticPermissions()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/BFilter_workingPermissions_accessible.key b/key.ui/examples/heap/permissions/threads/BFilter_workingPermissions_accessible.key index 5319fe7bba9..c04978d5d5b 100644 --- a/key.ui/examples/heap/permissions/threads/BFilter_workingPermissions_accessible.key +++ b/key.ui/examples/heap/permissions/threads/BFilter_workingPermissions_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:17:24 CET 2014 -name=BFilter[ThreadSpec2\\:\\:workingPermissions()].JML accessible clause.0 -contract=BFilter[ThreadSpec2\\:\\:workingPermissions()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "BFilter[ThreadSpec2::workingPermissions()].JML accessible clause.0", + "contract": "BFilter[ThreadSpec2::workingPermissions()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Fib_Fib.key b/key.ui/examples/heap/permissions/threads/Fib_Fib.key index 53fab1dc400..7df9bf76c3e 100644 --- a/key.ui/examples/heap/permissions/threads/Fib_Fib.key +++ b/key.ui/examples/heap/permissions/threads/Fib_Fib.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:42:50 CET 2014 -name=Fib[Fib\\:\\:Fib(int)].JML normal_behavior operation contract.0 -contract=Fib[Fib\\:\\:Fib(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Fib[Fib::Fib(int)].JML normal_behavior operation contract.0", + "contract": "Fib[Fib::Fib(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Fib_initPost_accessible.key b/key.ui/examples/heap/permissions/threads/Fib_initPost_accessible.key index b73bad69772..9892ffbff0b 100644 --- a/key.ui/examples/heap/permissions/threads/Fib_initPost_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Fib_initPost_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:43:28 CET 2014 -name=Fib[ThreadSpec\\:\\:initPost()].JML accessible clause.0 -contract=Fib[ThreadSpec\\:\\:initPost()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Fib[ThreadSpec::initPost()].JML accessible clause.0", + "contract": "Fib[ThreadSpec::initPost()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Fib_inv1_accessible.key b/key.ui/examples/heap/permissions/threads/Fib_inv1_accessible.key index 6c3a336bd03..e040a1569e3 100644 --- a/key.ui/examples/heap/permissions/threads/Fib_inv1_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Fib_inv1_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:47:27 CET 2014 -name=Fib[java.lang.Object\\:\\:()].JML accessible clause.0 -contract=Fib[java.lang.Object\\:\\:()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Fib[java.lang.Object::()].JML accessible clause.0", + "contract": "Fib[java.lang.Object::()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Fib_inv2_accessible.key b/key.ui/examples/heap/permissions/threads/Fib_inv2_accessible.key index e14f3604c5e..28d97cd9bb4 100644 --- a/key.ui/examples/heap/permissions/threads/Fib_inv2_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Fib_inv2_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:47:50 CET 2014 -name=Fib[java.lang.Object\\:\\:()].JML accessible clause.1 -contract=Fib[java.lang.Object\\:\\:()].JML accessible clause.1 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Fib[java.lang.Object::()].JML accessible clause.1", + "contract": "Fib[java.lang.Object::()].JML accessible clause.1", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Fib_joinTransfer_accessible.key b/key.ui/examples/heap/permissions/threads/Fib_joinTransfer_accessible.key index c17c89489f9..e317e76a80a 100644 --- a/key.ui/examples/heap/permissions/threads/Fib_joinTransfer_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Fib_joinTransfer_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:44:40 CET 2014 -name=Fib[ThreadSpec\\:\\:joinTransfer()].JML accessible clause.0 -contract=Fib[ThreadSpec\\:\\:joinTransfer()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Fib[ThreadSpec::joinTransfer()].JML accessible clause.0", + "contract": "Fib[ThreadSpec::joinTransfer()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Fib_joinTransfer_contract.key b/key.ui/examples/heap/permissions/threads/Fib_joinTransfer_contract.key index 758078cf9b9..3b5efdd16dd 100644 --- a/key.ui/examples/heap/permissions/threads/Fib_joinTransfer_contract.key +++ b/key.ui/examples/heap/permissions/threads/Fib_joinTransfer_contract.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:44:18 CET 2014 -name=Fib[ThreadSpec\\:\\:joinTransfer()].JML model_behavior operation contract.0 -contract=Fib[ThreadSpec\\:\\:joinTransfer()].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Fib[ThreadSpec::joinTransfer()].JML model_behavior operation contract.0", + "contract": "Fib[ThreadSpec::joinTransfer()].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Fib_postJoin_accessible.key b/key.ui/examples/heap/permissions/threads/Fib_postJoin_accessible.key index 2451ab03634..d23054b3e21 100644 --- a/key.ui/examples/heap/permissions/threads/Fib_postJoin_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Fib_postJoin_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:45:12 CET 2014 -name=Fib[ThreadSpec\\:\\:postJoin(java.lang.Object)].JML accessible clause.0 -contract=Fib[ThreadSpec\\:\\:postJoin(java.lang.Object)].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Fib[ThreadSpec::postJoin(java.lang.Object)].JML accessible clause.0", + "contract": "Fib[ThreadSpec::postJoin(java.lang.Object)].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Fib_preStart_accessible.key b/key.ui/examples/heap/permissions/threads/Fib_preStart_accessible.key index 68d552776d6..caf774ca703 100644 --- a/key.ui/examples/heap/permissions/threads/Fib_preStart_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Fib_preStart_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:45:39 CET 2014 -name=Fib[ThreadSpec\\:\\:preStart(java.lang.Object)].JML accessible clause.0 -contract=Fib[ThreadSpec\\:\\:preStart(java.lang.Object)].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Fib[ThreadSpec::preStart(java.lang.Object)].JML accessible clause.0", + "contract": "Fib[ThreadSpec::preStart(java.lang.Object)].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Fib_run.key b/key.ui/examples/heap/permissions/threads/Fib_run.key index 533a3aa0467..59d08228366 100644 --- a/key.ui/examples/heap/permissions/threads/Fib_run.key +++ b/key.ui/examples/heap/permissions/threads/Fib_run.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:48:45 CET 2014 -name=Fib[ThreadSpec\\:\\:run()].JML normal_behavior operation contract.0 -contract=Fib[ThreadSpec\\:\\:run()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Fib[ThreadSpec::run()].JML normal_behavior operation contract.0", + "contract": "Fib[ThreadSpec::run()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Fib_startTransfer_accessible.key b/key.ui/examples/heap/permissions/threads/Fib_startTransfer_accessible.key index fb121dd1282..4b2a4963a7e 100644 --- a/key.ui/examples/heap/permissions/threads/Fib_startTransfer_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Fib_startTransfer_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:46:34 CET 2014 -name=Fib[ThreadSpec\\:\\:startTransfer()].JML accessible clause.0 -contract=Fib[ThreadSpec\\:\\:startTransfer()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Fib[ThreadSpec::startTransfer()].JML accessible clause.0", + "contract": "Fib[ThreadSpec::startTransfer()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Fib_startTransfer_contract.key b/key.ui/examples/heap/permissions/threads/Fib_startTransfer_contract.key index 5296639042e..9fc30c474b3 100644 --- a/key.ui/examples/heap/permissions/threads/Fib_startTransfer_contract.key +++ b/key.ui/examples/heap/permissions/threads/Fib_startTransfer_contract.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:46:13 CET 2014 -name=Fib[ThreadSpec\\:\\:startTransfer()].JML model_behavior operation contract.0 -contract=Fib[ThreadSpec\\:\\:startTransfer()].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Fib[ThreadSpec::startTransfer()].JML model_behavior operation contract.0", + "contract": "Fib[ThreadSpec::startTransfer()].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Fib_workingPermissions_accessible.key b/key.ui/examples/heap/permissions/threads/Fib_workingPermissions_accessible.key index d55ee6f88c7..050a5a990ca 100644 --- a/key.ui/examples/heap/permissions/threads/Fib_workingPermissions_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Fib_workingPermissions_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:47:00 CET 2014 -name=Fib[ThreadSpec\\:\\:workingPermissions()].JML accessible clause.0 -contract=Fib[ThreadSpec\\:\\:workingPermissions()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Fib[ThreadSpec::workingPermissions()].JML accessible clause.0", + "contract": "Fib[ThreadSpec::workingPermissions()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Main_main.key b/key.ui/examples/heap/permissions/threads/Main_main.key index 4513139d472..9c21291461c 100644 --- a/key.ui/examples/heap/permissions/threads/Main_main.key +++ b/key.ui/examples/heap/permissions/threads/Main_main.key @@ -41,10 +41,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:41:35 CET 2014 -name=Main[Main\\:\\:main(Buffer)].JML normal_behavior operation contract.0 -contract=Main[Main\\:\\:main(Buffer)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Main[Main::main(Buffer)].JML normal_behavior operation contract.0", + "contract": "Main[Main::main(Buffer)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Plotter_Plotter.key b/key.ui/examples/heap/permissions/threads/Plotter_Plotter.key index 1cffbd12d01..19328c99353 100644 --- a/key.ui/examples/heap/permissions/threads/Plotter_Plotter.key +++ b/key.ui/examples/heap/permissions/threads/Plotter_Plotter.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:32:45 CET 2014 -name=Plotter[Plotter\\:\\:Plotter(AFilter,BFilter,Buffer)].JML normal_behavior operation contract.0 -contract=Plotter[Plotter\\:\\:Plotter(AFilter,BFilter,Buffer)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Plotter[Plotter::Plotter(AFilter,BFilter,Buffer)].JML normal_behavior operation contract.0", + "contract": "Plotter[Plotter::Plotter(AFilter,BFilter,Buffer)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Plotter_initPost_accessible.key b/key.ui/examples/heap/permissions/threads/Plotter_initPost_accessible.key index 209f55d56d8..2d4f8ee39d0 100644 --- a/key.ui/examples/heap/permissions/threads/Plotter_initPost_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Plotter_initPost_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:10:48 CET 2014 -name=Plotter[ThreadSpec2\\:\\:initPost()].JML accessible clause.0 -contract=Plotter[ThreadSpec2\\:\\:initPost()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Plotter[ThreadSpec2::initPost()].JML accessible clause.0", + "contract": "Plotter[ThreadSpec2::initPost()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Plotter_inv_accessible1.key b/key.ui/examples/heap/permissions/threads/Plotter_inv_accessible1.key index d7eb1cf72d5..24fcd1296f5 100644 --- a/key.ui/examples/heap/permissions/threads/Plotter_inv_accessible1.key +++ b/key.ui/examples/heap/permissions/threads/Plotter_inv_accessible1.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:17:56 CET 2014 -name=Plotter[java.lang.Object\\:\\:()].JML accessible clause.0 -contract=Plotter[java.lang.Object\\:\\:()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Plotter[java.lang.Object::()].JML accessible clause.0", + "contract": "Plotter[java.lang.Object::()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Plotter_inv_accessible2.key b/key.ui/examples/heap/permissions/threads/Plotter_inv_accessible2.key index 1bdedb825b8..c769b2f9da1 100644 --- a/key.ui/examples/heap/permissions/threads/Plotter_inv_accessible2.key +++ b/key.ui/examples/heap/permissions/threads/Plotter_inv_accessible2.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:18:14 CET 2014 -name=Plotter[java.lang.Object\\:\\:()].JML accessible clause.1 -contract=Plotter[java.lang.Object\\:\\:()].JML accessible clause.1 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Plotter[java.lang.Object::()].JML accessible clause.1", + "contract": "Plotter[java.lang.Object::()].JML accessible clause.1", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Plotter_joinTransfer_accessible.key b/key.ui/examples/heap/permissions/threads/Plotter_joinTransfer_accessible.key index cba19d5b76d..e4fa9eb0dc1 100644 --- a/key.ui/examples/heap/permissions/threads/Plotter_joinTransfer_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Plotter_joinTransfer_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:12:21 CET 2014 -name=Plotter[ThreadSpec2\\:\\:joinTransfer()].JML accessible clause.0 -contract=Plotter[ThreadSpec2\\:\\:joinTransfer()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Plotter[ThreadSpec2::joinTransfer()].JML accessible clause.0", + "contract": "Plotter[ThreadSpec2::joinTransfer()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Plotter_joinTransfer_accessible.proof b/key.ui/examples/heap/permissions/threads/Plotter_joinTransfer_accessible.proof index 5435e53e8d5..ae9a891ea17 100644 --- a/key.ui/examples/heap/permissions/threads/Plotter_joinTransfer_accessible.proof +++ b/key.ui/examples/heap/permissions/threads/Plotter_joinTransfer_accessible.proof @@ -44,12 +44,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Tue Feb 15 15:28:26 CET 2022 -contract=Plotter[ThreadSpec2\\:\\:joinTransfer()].JML accessible clause.0 -name=Plotter[ThreadSpec2\\:\\:joinTransfer()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "contract": "Plotter[ThreadSpec2::joinTransfer()].JML accessible clause.0", + "name": "Plotter[ThreadSpec2::joinTransfer()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } \proof { (keyLog "0" (keyUser "lukas" ) (keyVersion "4044cf2700")) diff --git a/key.ui/examples/heap/permissions/threads/Plotter_joinTransfer_contract.key b/key.ui/examples/heap/permissions/threads/Plotter_joinTransfer_contract.key index 72b984b170d..7047ef2407c 100644 --- a/key.ui/examples/heap/permissions/threads/Plotter_joinTransfer_contract.key +++ b/key.ui/examples/heap/permissions/threads/Plotter_joinTransfer_contract.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:13:06 CET 2014 -name=Plotter[ThreadSpec2\\:\\:joinTransfer()].JML model_behavior operation contract.0 -contract=Plotter[ThreadSpec2\\:\\:joinTransfer()].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Plotter[ThreadSpec2::joinTransfer()].JML model_behavior operation contract.0", + "contract": "Plotter[ThreadSpec2::joinTransfer()].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Plotter_postJoin_accessible.key b/key.ui/examples/heap/permissions/threads/Plotter_postJoin_accessible.key index 3e465211e9a..8170d918c8e 100644 --- a/key.ui/examples/heap/permissions/threads/Plotter_postJoin_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Plotter_postJoin_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:13:41 CET 2014 -name=Plotter[ThreadSpec2\\:\\:postJoin(java.lang.Object)].JML accessible clause.0 -contract=Plotter[ThreadSpec2\\:\\:postJoin(java.lang.Object)].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Plotter[ThreadSpec2::postJoin(java.lang.Object)].JML accessible clause.0", + "contract": "Plotter[ThreadSpec2::postJoin(java.lang.Object)].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Plotter_preStart_accessible.key b/key.ui/examples/heap/permissions/threads/Plotter_preStart_accessible.key index 580c46be462..eca635d1d06 100644 --- a/key.ui/examples/heap/permissions/threads/Plotter_preStart_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Plotter_preStart_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:14:18 CET 2014 -name=Plotter[ThreadSpec2\\:\\:preStart(java.lang.Object)].JML accessible clause.0 -contract=Plotter[ThreadSpec2\\:\\:preStart(java.lang.Object)].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Plotter[ThreadSpec2::preStart(java.lang.Object)].JML accessible clause.0", + "contract": "Plotter[ThreadSpec2::preStart(java.lang.Object)].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Plotter_run.key b/key.ui/examples/heap/permissions/threads/Plotter_run.key index 08df5bf7cbd..c9f901163e5 100644 --- a/key.ui/examples/heap/permissions/threads/Plotter_run.key +++ b/key.ui/examples/heap/permissions/threads/Plotter_run.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:05:16 CET 2014 -name=Plotter[ThreadSpec2\\:\\:run()].JML normal_behavior operation contract.0 -contract=Plotter[ThreadSpec2\\:\\:run()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Plotter[ThreadSpec2::run()].JML normal_behavior operation contract.0", + "contract": "Plotter[ThreadSpec2::run()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Plotter_startTransfer_accessible.key b/key.ui/examples/heap/permissions/threads/Plotter_startTransfer_accessible.key index e83643563b3..34794881a02 100644 --- a/key.ui/examples/heap/permissions/threads/Plotter_startTransfer_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Plotter_startTransfer_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:15:49 CET 2014 -name=Plotter[ThreadSpec2\\:\\:startTransfer()].JML accessible clause.0 -contract=Plotter[ThreadSpec2\\:\\:startTransfer()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Plotter[ThreadSpec2::startTransfer()].JML accessible clause.0", + "contract": "Plotter[ThreadSpec2::startTransfer()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Plotter_startTransfer_accessible.proof b/key.ui/examples/heap/permissions/threads/Plotter_startTransfer_accessible.proof index b4c86aacb4e..1a36e65502a 100644 --- a/key.ui/examples/heap/permissions/threads/Plotter_startTransfer_accessible.proof +++ b/key.ui/examples/heap/permissions/threads/Plotter_startTransfer_accessible.proof @@ -44,12 +44,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Sat Oct 29 22:46:07 CEST 2022 -contract=Plotter[ThreadSpec2\\:\\:startTransfer()].JML accessible clause.0 -name=Plotter[ThreadSpec2\\:\\:startTransfer()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "contract": "Plotter[ThreadSpec2::startTransfer()].JML accessible clause.0", + "name": "Plotter[ThreadSpec2::startTransfer()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } \proof { (keyLog "0" (keyUser "lukas" ) (keyVersion "4044cf2700")) diff --git a/key.ui/examples/heap/permissions/threads/Plotter_startTransfer_contract.key b/key.ui/examples/heap/permissions/threads/Plotter_startTransfer_contract.key index f0df2ee2457..417b1107220 100644 --- a/key.ui/examples/heap/permissions/threads/Plotter_startTransfer_contract.key +++ b/key.ui/examples/heap/permissions/threads/Plotter_startTransfer_contract.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:15:15 CET 2014 -name=Plotter[ThreadSpec2\\:\\:startTransfer()].JML model_behavior operation contract.0 -contract=Plotter[ThreadSpec2\\:\\:startTransfer()].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Plotter[ThreadSpec2::startTransfer()].JML model_behavior operation contract.0", + "contract": "Plotter[ThreadSpec2::startTransfer()].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Plotter_startTransfer_contract.proof b/key.ui/examples/heap/permissions/threads/Plotter_startTransfer_contract.proof index 9ae2139dde4..1772869f095 100644 --- a/key.ui/examples/heap/permissions/threads/Plotter_startTransfer_contract.proof +++ b/key.ui/examples/heap/permissions/threads/Plotter_startTransfer_contract.proof @@ -44,12 +44,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Tue Feb 15 22:50:30 CET 2022 -contract=Plotter[ThreadSpec2\\:\\:startTransfer()].JML model_behavior operation contract.0 -name=Plotter[ThreadSpec2\\:\\:startTransfer()].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "Plotter[ThreadSpec2::startTransfer()].JML model_behavior operation contract.0", + "name": "Plotter[ThreadSpec2::startTransfer()].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "lukas" ) (keyVersion "4044cf2700")) diff --git a/key.ui/examples/heap/permissions/threads/Plotter_stateInv_accessible.key b/key.ui/examples/heap/permissions/threads/Plotter_stateInv_accessible.key index 37de1cb940b..26e5573491f 100644 --- a/key.ui/examples/heap/permissions/threads/Plotter_stateInv_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Plotter_stateInv_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:16:28 CET 2014 -name=Plotter[ThreadSpec2\\:\\:stateInv()].JML accessible clause.0 -contract=Plotter[ThreadSpec2\\:\\:stateInv()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Plotter[ThreadSpec2::stateInv()].JML accessible clause.0", + "contract": "Plotter[ThreadSpec2::stateInv()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Plotter_staticPermissions_accessible.key b/key.ui/examples/heap/permissions/threads/Plotter_staticPermissions_accessible.key index 4f13b4b604d..649c6e4a638 100644 --- a/key.ui/examples/heap/permissions/threads/Plotter_staticPermissions_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Plotter_staticPermissions_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:16:59 CET 2014 -name=Plotter[ThreadSpec2\\:\\:staticPermissions()].JML accessible clause.0 -contract=Plotter[ThreadSpec2\\:\\:staticPermissions()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Plotter[ThreadSpec2::staticPermissions()].JML accessible clause.0", + "contract": "Plotter[ThreadSpec2::staticPermissions()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Plotter_workingPermissions_accessible.key b/key.ui/examples/heap/permissions/threads/Plotter_workingPermissions_accessible.key index 9a07fe8121d..9e5d6461d30 100644 --- a/key.ui/examples/heap/permissions/threads/Plotter_workingPermissions_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Plotter_workingPermissions_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:17:24 CET 2014 -name=Plotter[ThreadSpec2\\:\\:workingPermissions()].JML accessible clause.0 -contract=Plotter[ThreadSpec2\\:\\:workingPermissions()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Plotter[ThreadSpec2::workingPermissions()].JML accessible clause.0", + "contract": "Plotter[ThreadSpec2::workingPermissions()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Sampler_Sampler.key b/key.ui/examples/heap/permissions/threads/Sampler_Sampler.key index 48d1db4143a..709cf2cb233 100644 --- a/key.ui/examples/heap/permissions/threads/Sampler_Sampler.key +++ b/key.ui/examples/heap/permissions/threads/Sampler_Sampler.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:13:31 CET 2014 -name=Sampler[Sampler\\:\\:Sampler(Buffer)].JML normal_behavior operation contract.0 -contract=Sampler[Sampler\\:\\:Sampler(Buffer)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Sampler[Sampler::Sampler(Buffer)].JML normal_behavior operation contract.0", + "contract": "Sampler[Sampler::Sampler(Buffer)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Sampler_initPost_accessible.key b/key.ui/examples/heap/permissions/threads/Sampler_initPost_accessible.key index 09bd3d89ca0..14e66650489 100644 --- a/key.ui/examples/heap/permissions/threads/Sampler_initPost_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Sampler_initPost_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:10:48 CET 2014 -name=Sampler[ThreadSpec2\\:\\:initPost()].JML accessible clause.0 -contract=Sampler[ThreadSpec2\\:\\:initPost()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Sampler[ThreadSpec2::initPost()].JML accessible clause.0", + "contract": "Sampler[ThreadSpec2::initPost()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Sampler_inv_accessible1.key b/key.ui/examples/heap/permissions/threads/Sampler_inv_accessible1.key index 8473e13cfd7..4ed2288005c 100644 --- a/key.ui/examples/heap/permissions/threads/Sampler_inv_accessible1.key +++ b/key.ui/examples/heap/permissions/threads/Sampler_inv_accessible1.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:17:56 CET 2014 -name=Sampler[java.lang.Object\\:\\:()].JML accessible clause.0 -contract=Sampler[java.lang.Object\\:\\:()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Sampler[java.lang.Object::()].JML accessible clause.0", + "contract": "Sampler[java.lang.Object::()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Sampler_inv_accessible2.key b/key.ui/examples/heap/permissions/threads/Sampler_inv_accessible2.key index 2a96b97bb8e..edfc5b84c49 100644 --- a/key.ui/examples/heap/permissions/threads/Sampler_inv_accessible2.key +++ b/key.ui/examples/heap/permissions/threads/Sampler_inv_accessible2.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:18:14 CET 2014 -name=Sampler[java.lang.Object\\:\\:()].JML accessible clause.1 -contract=Sampler[java.lang.Object\\:\\:()].JML accessible clause.1 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Sampler[java.lang.Object::()].JML accessible clause.1", + "contract": "Sampler[java.lang.Object::()].JML accessible clause.1", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Sampler_joinTransfer_accessible.key b/key.ui/examples/heap/permissions/threads/Sampler_joinTransfer_accessible.key index dcd312576df..5f65bd6c84f 100644 --- a/key.ui/examples/heap/permissions/threads/Sampler_joinTransfer_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Sampler_joinTransfer_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:12:21 CET 2014 -name=Sampler[ThreadSpec2\\:\\:joinTransfer()].JML accessible clause.0 -contract=Sampler[ThreadSpec2\\:\\:joinTransfer()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Sampler[ThreadSpec2::joinTransfer()].JML accessible clause.0", + "contract": "Sampler[ThreadSpec2::joinTransfer()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Sampler_joinTransfer_contract.key b/key.ui/examples/heap/permissions/threads/Sampler_joinTransfer_contract.key index d08df0de697..90a00935a22 100644 --- a/key.ui/examples/heap/permissions/threads/Sampler_joinTransfer_contract.key +++ b/key.ui/examples/heap/permissions/threads/Sampler_joinTransfer_contract.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:13:06 CET 2014 -name=Sampler[ThreadSpec2\\:\\:joinTransfer()].JML model_behavior operation contract.0 -contract=Sampler[ThreadSpec2\\:\\:joinTransfer()].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Sampler[ThreadSpec2::joinTransfer()].JML model_behavior operation contract.0", + "contract": "Sampler[ThreadSpec2::joinTransfer()].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Sampler_postJoin_accessible.key b/key.ui/examples/heap/permissions/threads/Sampler_postJoin_accessible.key index 355bbfb1a3b..10ad8b28a75 100644 --- a/key.ui/examples/heap/permissions/threads/Sampler_postJoin_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Sampler_postJoin_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:13:41 CET 2014 -name=Sampler[ThreadSpec2\\:\\:postJoin(java.lang.Object)].JML accessible clause.0 -contract=Sampler[ThreadSpec2\\:\\:postJoin(java.lang.Object)].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Sampler[ThreadSpec2::postJoin(java.lang.Object)].JML accessible clause.0", + "contract": "Sampler[ThreadSpec2::postJoin(java.lang.Object)].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Sampler_preStart_accessible.key b/key.ui/examples/heap/permissions/threads/Sampler_preStart_accessible.key index d2299136499..be85d932686 100644 --- a/key.ui/examples/heap/permissions/threads/Sampler_preStart_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Sampler_preStart_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:14:18 CET 2014 -name=Sampler[ThreadSpec2\\:\\:preStart(java.lang.Object)].JML accessible clause.0 -contract=Sampler[ThreadSpec2\\:\\:preStart(java.lang.Object)].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Sampler[ThreadSpec2::preStart(java.lang.Object)].JML accessible clause.0", + "contract": "Sampler[ThreadSpec2::preStart(java.lang.Object)].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Sampler_run.key b/key.ui/examples/heap/permissions/threads/Sampler_run.key index 3d8ce236397..308e26e8fdc 100644 --- a/key.ui/examples/heap/permissions/threads/Sampler_run.key +++ b/key.ui/examples/heap/permissions/threads/Sampler_run.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 13:05:16 CET 2014 -name=Sampler[ThreadSpec2\\:\\:run()].JML normal_behavior operation contract.0 -contract=Sampler[ThreadSpec2\\:\\:run()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Sampler[ThreadSpec2::run()].JML normal_behavior operation contract.0", + "contract": "Sampler[ThreadSpec2::run()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Sampler_startTransfer_accessible.key b/key.ui/examples/heap/permissions/threads/Sampler_startTransfer_accessible.key index 86271faa743..f4bd1aec8bc 100644 --- a/key.ui/examples/heap/permissions/threads/Sampler_startTransfer_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Sampler_startTransfer_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:15:49 CET 2014 -name=Sampler[ThreadSpec2\\:\\:startTransfer()].JML accessible clause.0 -contract=Sampler[ThreadSpec2\\:\\:startTransfer()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Sampler[ThreadSpec2::startTransfer()].JML accessible clause.0", + "contract": "Sampler[ThreadSpec2::startTransfer()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Sampler_startTransfer_contract.key b/key.ui/examples/heap/permissions/threads/Sampler_startTransfer_contract.key index 79bee2d8f18..9eb089b4847 100644 --- a/key.ui/examples/heap/permissions/threads/Sampler_startTransfer_contract.key +++ b/key.ui/examples/heap/permissions/threads/Sampler_startTransfer_contract.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:15:15 CET 2014 -name=Sampler[ThreadSpec2\\:\\:startTransfer()].JML model_behavior operation contract.0 -contract=Sampler[ThreadSpec2\\:\\:startTransfer()].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Sampler[ThreadSpec2::startTransfer()].JML model_behavior operation contract.0", + "contract": "Sampler[ThreadSpec2::startTransfer()].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Sampler_stateInv_accessible.key b/key.ui/examples/heap/permissions/threads/Sampler_stateInv_accessible.key index aaf0639e478..b2994a24ff6 100644 --- a/key.ui/examples/heap/permissions/threads/Sampler_stateInv_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Sampler_stateInv_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:16:28 CET 2014 -name=Sampler[ThreadSpec2\\:\\:stateInv()].JML accessible clause.0 -contract=Sampler[ThreadSpec2\\:\\:stateInv()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Sampler[ThreadSpec2::stateInv()].JML accessible clause.0", + "contract": "Sampler[ThreadSpec2::stateInv()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Sampler_staticPermissions_accessible.key b/key.ui/examples/heap/permissions/threads/Sampler_staticPermissions_accessible.key index cf9b7e099f3..91ba047f9d8 100644 --- a/key.ui/examples/heap/permissions/threads/Sampler_staticPermissions_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Sampler_staticPermissions_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:16:59 CET 2014 -name=Sampler[ThreadSpec2\\:\\:staticPermissions()].JML accessible clause.0 -contract=Sampler[ThreadSpec2\\:\\:staticPermissions()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Sampler[ThreadSpec2::staticPermissions()].JML accessible clause.0", + "contract": "Sampler[ThreadSpec2::staticPermissions()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permissions/threads/Sampler_workingPermissions_accessible.key b/key.ui/examples/heap/permissions/threads/Sampler_workingPermissions_accessible.key index 57838181a93..129e574a600 100644 --- a/key.ui/examples/heap/permissions/threads/Sampler_workingPermissions_accessible.key +++ b/key.ui/examples/heap/permissions/threads/Sampler_workingPermissions_accessible.key @@ -41,11 +41,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 19 12:17:24 CET 2014 -name=Sampler[ThreadSpec2\\:\\:workingPermissions()].JML accessible clause.0 -contract=Sampler[ThreadSpec2\\:\\:workingPermissions()].JML accessible clause.0 -class=de.uka.ilkd.key.proof.init.DependencyContractPO -"; +\proofObligation { + "name": "Sampler[ThreadSpec2::workingPermissions()].JML accessible clause.0", + "contract": "Sampler[ThreadSpec2::workingPermissions()].JML accessible clause.0", + "class": "de.uka.ilkd.key.proof.init.DependencyContractPO", + } diff --git a/key.ui/examples/heap/permutedSum/perm.key b/key.ui/examples/heap/permutedSum/perm.key index d0f031329be..c5c5c5407bb 100644 --- a/key.ui/examples/heap/permutedSum/perm.key +++ b/key.ui/examples/heap/permutedSum/perm.key @@ -39,11 +39,10 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 05 17:02:47 CET 2014 -name=Perm[Perm\\:\\:foo()].JML normal_behavior operation contract.0 -contract=Perm[Perm\\:\\:foo()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Perm[Perm::foo()].JML normal_behavior operation contract.0", + "contract": "Perm[Perm::foo()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/permutedSum/perm.proof b/key.ui/examples/heap/permutedSum/perm.proof index c5d9225b91d..e2932c2455a 100644 --- a/key.ui/examples/heap/permutedSum/perm.proof +++ b/key.ui/examples/heap/permutedSum/perm.proof @@ -44,12 +44,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Jan 12 15:37:29 CET 2023 -contract=Perm[Perm\\:\\:foo()].JML normal_behavior operation contract.0 -name=Perm[Perm\\:\\:foo()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "Perm[Perm::foo()].JML normal_behavior operation contract.0", + "name": "Perm[Perm::foo()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "Julian" ) (keyVersion "008f011f15")) diff --git a/key.ui/examples/heap/quicksort/sort.key.proof.ignore b/key.ui/examples/heap/quicksort/sort.key.proof.ignore index b3a846e6762..4f10b4cd1b5 100644 --- a/key.ui/examples/heap/quicksort/sort.key.proof.ignore +++ b/key.ui/examples/heap/quicksort/sort.key.proof.ignore @@ -43,12 +43,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Nov 09 19:00:53 CET 2018 -contract=Quicksort[Quicksort\\:\\:sort([I,int,int)].JML normal_behavior operation contract.0 -name=Quicksort[Quicksort\\:\\:sort([I,int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "Quicksort[Quicksort::sort([I,int,int)].JML normal_behavior operation contract.0", + "name": "Quicksort[Quicksort::sort([I,int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "root" ) (keyVersion "d8e4b96a41a38b4f772fbf45dd18a193fe0340b4")) diff --git a/key.ui/examples/heap/vacid0_05_RedBlackTrees/src/vacid0/redblacktree/AbstractMap.java b/key.ui/examples/heap/vacid0_05_RedBlackTrees/src/vacid0/redblacktree/AbstractMap.java index 2598ef3a42e..9f3f9b633ff 100644 --- a/key.ui/examples/heap/vacid0_05_RedBlackTrees/src/vacid0/redblacktree/AbstractMap.java +++ b/key.ui/examples/heap/vacid0_05_RedBlackTrees/src/vacid0/redblacktree/AbstractMap.java @@ -36,7 +36,7 @@ public interface AbstractMap{ /** Set the value of key; add it if it is not in the map yet */ /*@ public normal_behavior @ requires 0 <= key && key < contents.length; - @ ensures contents == \seq_put(\old(contents),key,value); + @ ensures contents == \seq_upd(\old(contents),key,value); @ ensures \new_elems_fresh(footprint); @ assignable footprint; @*/ @@ -45,7 +45,7 @@ public interface AbstractMap{ /** Remove key from the map */ /*@ public normal_behavior @ requires 0 <= key && key < contents.length; - @ ensures contents == \seq_put(\old(contents),key,defaultValue); + @ ensures contents == \seq_upd(\old(contents),key,defaultValue); @ ensures \new_elems_fresh(footprint); @ assignable footprint; @*/ diff --git a/key.ui/examples/heap/vacid0_05_RedBlackTrees/src/vacid0/redblacktree/RedBlackTree.java b/key.ui/examples/heap/vacid0_05_RedBlackTrees/src/vacid0/redblacktree/RedBlackTree.java index 8a7c07fcc7d..4a04644366a 100644 --- a/key.ui/examples/heap/vacid0_05_RedBlackTrees/src/vacid0/redblacktree/RedBlackTree.java +++ b/key.ui/examples/heap/vacid0_05_RedBlackTrees/src/vacid0/redblacktree/RedBlackTree.java @@ -80,7 +80,7 @@ private void delete(Node z) { //TODO set height /*@ ghost int idx; @ set idx = \indexOf(theNodes,z); - @ set theNodes = \seq_concat(\seq_sub(theNodes, 0, idx-1),\seq_sub(theNodes, idx+1, \seq_length(theNodes)-1)); + @ set theNodes = \seq_concat(\seq_sub(theNodes, 0, idx-1),\seq_sub(theNodes, idx+1, theNodes.length-1)); @*/ if (!y.isRed){ deleteFix(x); diff --git a/key.ui/examples/heap/verifyThis15_1_RelaxedPrefix/relax.proof b/key.ui/examples/heap/verifyThis15_1_RelaxedPrefix/relax.proof index c31b9e3759a..c42aac6b650 100644 --- a/key.ui/examples/heap/verifyThis15_1_RelaxedPrefix/relax.proof +++ b/key.ui/examples/heap/verifyThis15_1_RelaxedPrefix/relax.proof @@ -44,12 +44,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Dec 08 19:31:27 CET 2022 -contract=Relaxed[Relaxed\\:\\:isRelaxedPrefix([I,[I)].JML operation contract.0 -name=Relaxed[Relaxed\\:\\:isRelaxedPrefix([I,[I)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "Relaxed[Relaxed::isRelaxedPrefix([I,[I)].JML operation contract.0", + "name": "Relaxed[Relaxed::isRelaxedPrefix([I,[I)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "4ff10e41cd53bfad321ed01e040d352805d54545")) diff --git a/key.ui/examples/heap/verifyThis15_2_ParallelGcd/gcd.proof b/key.ui/examples/heap/verifyThis15_2_ParallelGcd/gcd.proof index 568b5fec29d..f04bf93e341 100644 --- a/key.ui/examples/heap/verifyThis15_2_ParallelGcd/gcd.proof +++ b/key.ui/examples/heap/verifyThis15_2_ParallelGcd/gcd.proof @@ -41,12 +41,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 03 18:30:07 CEST 2015 -name=ParallelGcd[ParallelGcd\\:\\:gcd(int,int)].JML model_behavior operation contract.0 -contract=ParallelGcd[ParallelGcd\\:\\:gcd(int,int)].JML model_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ParallelGcd[ParallelGcd::gcd(int,int)].JML model_behavior operation contract.0", + "contract": "ParallelGcd[ParallelGcd::gcd(int,int)].JML model_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "c2a4d52c2ad58a473b8d4f6ce4c8d074ffe247f6")) diff --git a/key.ui/examples/heap/verifyThis15_2_ParallelGcd/parallelGcd.proof b/key.ui/examples/heap/verifyThis15_2_ParallelGcd/parallelGcd.proof index 67711f50ef3..9af804bfa28 100644 --- a/key.ui/examples/heap/verifyThis15_2_ParallelGcd/parallelGcd.proof +++ b/key.ui/examples/heap/verifyThis15_2_ParallelGcd/parallelGcd.proof @@ -49,12 +49,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Mar 16 12:59:23 CET 2023 -contract=ParallelGcd[ParallelGcd\\:\\:parallelGcd(int,int,[Z)].JML behavior operation contract.0 -name=ParallelGcd[ParallelGcd\\:\\:parallelGcd(int,int,[Z)].JML behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "ParallelGcd[ParallelGcd::parallelGcd(int,int,[Z)].JML behavior operation contract.0", + "name": "ParallelGcd[ParallelGcd::parallelGcd(int,int,[Z)].JML behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "c2a4d52c2ad58a473b8d4f6ce4c8d074ffe247f6")) diff --git a/key.ui/examples/heap/verifyThis15_3_DLL/dll.proof b/key.ui/examples/heap/verifyThis15_3_DLL/dll.proof index 5964d441cd3..178d56f5bcf 100644 --- a/key.ui/examples/heap/verifyThis15_3_DLL/dll.proof +++ b/key.ui/examples/heap/verifyThis15_3_DLL/dll.proof @@ -39,12 +39,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 03 19:20:23 CEST 2015 -name=DoubleLinkedList[DoubleLinkedList\\:\\:DoubleLinkedList([LDoubleLinkedList.Node)].JML normal_behavior operation contract.0 -contract=DoubleLinkedList[DoubleLinkedList\\:\\:DoubleLinkedList([LDoubleLinkedList.Node)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "DoubleLinkedList[DoubleLinkedList::DoubleLinkedList([LDoubleLinkedList.Node)].JML normal_behavior operation contract.0", + "contract": "DoubleLinkedList[DoubleLinkedList::DoubleLinkedList([LDoubleLinkedList.Node)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "c2a4d52c2ad58a473b8d4f6ce4c8d074ffe247f6")) diff --git a/key.ui/examples/heap/verifyThis15_3_DLL/doUndo.proof b/key.ui/examples/heap/verifyThis15_3_DLL/doUndo.proof index c1686c1d802..ad9dadf2124 100644 --- a/key.ui/examples/heap/verifyThis15_3_DLL/doUndo.proof +++ b/key.ui/examples/heap/verifyThis15_3_DLL/doUndo.proof @@ -49,12 +49,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Mon Jan 16 00:33:47 CET 2023 -contract=DoubleLinkedList[DoubleLinkedList\\:\\:doUndo(DoubleLinkedList.Node,int)].JML normal_behavior operation contract.0 -name=DoubleLinkedList[DoubleLinkedList\\:\\:doUndo(DoubleLinkedList.Node,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "DoubleLinkedList[DoubleLinkedList::doUndo(DoubleLinkedList.Node,int)].JML normal_behavior operation contract.0", + "name": "DoubleLinkedList[DoubleLinkedList::doUndo(DoubleLinkedList.Node,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "c2a4d52c2ad58a473b8d4f6ce4c8d074ffe247f6")) diff --git a/key.ui/examples/heap/verifyThis15_3_DLL/remove.proof b/key.ui/examples/heap/verifyThis15_3_DLL/remove.proof index 9e8b825768f..3121087b2f4 100644 --- a/key.ui/examples/heap/verifyThis15_3_DLL/remove.proof +++ b/key.ui/examples/heap/verifyThis15_3_DLL/remove.proof @@ -49,12 +49,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 30 16:17:36 CET 2022 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -contract=DoubleLinkedList[DoubleLinkedList\\:\\:remove(DoubleLinkedList.Node,int)].JML normal_behavior operation contract.0 -name=DoubleLinkedList[DoubleLinkedList\\:\\:remove(DoubleLinkedList.Node,int)].JML normal_behavior operation contract.0 -"; +\proofObligation { + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + "contract": "DoubleLinkedList[DoubleLinkedList::remove(DoubleLinkedList.Node,int)].JML normal_behavior operation contract.0", + "name": "DoubleLinkedList[DoubleLinkedList::remove(DoubleLinkedList.Node,int)].JML normal_behavior operation contract.0", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "c2a4d52c2ad58a473b8d4f6ce4c8d074ffe247f6")) diff --git a/key.ui/examples/heap/verifyThis15_3_DLL/unremove.proof b/key.ui/examples/heap/verifyThis15_3_DLL/unremove.proof index c57b92e6be2..b9825464218 100644 --- a/key.ui/examples/heap/verifyThis15_3_DLL/unremove.proof +++ b/key.ui/examples/heap/verifyThis15_3_DLL/unremove.proof @@ -49,12 +49,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Nov 30 16:18:22 CET 2022 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -contract=DoubleLinkedList[DoubleLinkedList\\:\\:unremove(DoubleLinkedList.Node,int)].JML normal_behavior operation contract.0 -name=DoubleLinkedList[DoubleLinkedList\\:\\:unremove(DoubleLinkedList.Node,int)].JML normal_behavior operation contract.0 -"; +\proofObligation { + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + "contract": "DoubleLinkedList[DoubleLinkedList::unremove(DoubleLinkedList.Node,int)].JML normal_behavior operation contract.0", + "name": "DoubleLinkedList[DoubleLinkedList::unremove(DoubleLinkedList.Node,int)].JML normal_behavior operation contract.0", + } \proof { (keyLog "0" (keyUser "kirsten" ) (keyVersion "c2a4d52c2ad58a473b8d4f6ce4c8d074ffe247f6")) diff --git a/key.ui/examples/heap/verifyThis17_1_PairInsertionSort/project.key b/key.ui/examples/heap/verifyThis17_1_PairInsertionSort/project.key index 37d0bd3b406..d6a0bc6f057 100644 --- a/key.ui/examples/heap/verifyThis17_1_PairInsertionSort/project.key +++ b/key.ui/examples/heap/verifyThis17_1_PairInsertionSort/project.key @@ -43,9 +43,8 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Aug 23 11:21:18 CEST 2017 -name=PairInsertionSort[PairInsertionSort\\:\\:sort([I,int,int)].JML normal_behavior operation contract.0 -contract=PairInsertionSort[PairInsertionSort\\:\\:sort([I,int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "PairInsertionSort[PairInsertionSort::sort([I,int,int)].JML normal_behavior operation contract.0", + "contract": "PairInsertionSort[PairInsertionSort::sort([I,int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/heap/verifyThis17_1_PairInsertionSort/sort.proof.ignore b/key.ui/examples/heap/verifyThis17_1_PairInsertionSort/sort.proof.ignore index 2c7b9d1c0fd..16e8bfad897 100644 --- a/key.ui/examples/heap/verifyThis17_1_PairInsertionSort/sort.proof.ignore +++ b/key.ui/examples/heap/verifyThis17_1_PairInsertionSort/sort.proof.ignore @@ -43,12 +43,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Aug 23 11:21:18 CEST 2017 -name=PairInsertionSort[PairInsertionSort\\:\\:sort([I,int,int)].JML normal_behavior operation contract.0 -contract=PairInsertionSort[PairInsertionSort\\:\\:sort([I,int,int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "PairInsertionSort[PairInsertionSort::sort([I,int,int)].JML normal_behavior operation contract.0", + "contract": "PairInsertionSort[PairInsertionSort::sort([I,int,int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "michael" ) (keyVersion "db42b97b0121b752c8b352c3881b5a037ffe2803")) diff --git a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__RingBuffer(int)).JML normal_behavior operation contract.0.proof b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__RingBuffer(int)).JML normal_behavior operation contract.0.proof index 942d6e904ad..9e48d6dfdc1 100644 --- a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__RingBuffer(int)).JML normal_behavior operation contract.0.proof +++ b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__RingBuffer(int)).JML normal_behavior operation contract.0.proof @@ -39,12 +39,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Apr 24 10:27:32 CEST 2014 -name=RingBuffer[RingBuffer\\:\\:RingBuffer(int)].JML normal_behavior operation contract.0 -contract=RingBuffer[RingBuffer\\:\\:RingBuffer(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "RingBuffer[RingBuffer::RingBuffer(int)].JML normal_behavior operation contract.0", + "contract": "RingBuffer[RingBuffer::RingBuffer(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "mattias" ) (keyVersion "e5095ad740f809525e4c4689dcc12514a0ca06cc")) diff --git a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__clear()).JML normal_behavior operation contract.0.proof b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__clear()).JML normal_behavior operation contract.0.proof index 4a6d327bbb2..1da18d765f1 100644 --- a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__clear()).JML normal_behavior operation contract.0.proof +++ b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__clear()).JML normal_behavior operation contract.0.proof @@ -39,12 +39,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Apr 24 10:27:41 CEST 2014 -name=RingBuffer[RingBuffer\\:\\:clear()].JML normal_behavior operation contract.0 -contract=RingBuffer[RingBuffer\\:\\:clear()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "RingBuffer[RingBuffer::clear()].JML normal_behavior operation contract.0", + "contract": "RingBuffer[RingBuffer::clear()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "mattias" ) (keyVersion "e5095ad740f809525e4c4689dcc12514a0ca06cc")) diff --git a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__head()).JML normal_behavior operation contract.0.proof b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__head()).JML normal_behavior operation contract.0.proof index e19f1a4d0e4..914db9ea1a1 100644 --- a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__head()).JML normal_behavior operation contract.0.proof +++ b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__head()).JML normal_behavior operation contract.0.proof @@ -39,12 +39,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Apr 24 10:27:51 CEST 2014 -name=RingBuffer[RingBuffer\\:\\:head()].JML normal_behavior operation contract.0 -contract=RingBuffer[RingBuffer\\:\\:head()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "RingBuffer[RingBuffer::head()].JML normal_behavior operation contract.0", + "contract": "RingBuffer[RingBuffer::head()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "mattias" ) (keyVersion "e5095ad740f809525e4c4689dcc12514a0ca06cc")) diff --git a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__isEmpty()).JML normal_behavior operation contract.0.proof b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__isEmpty()).JML normal_behavior operation contract.0.proof index 4bd279f3abb..0a1489e0ece 100644 --- a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__isEmpty()).JML normal_behavior operation contract.0.proof +++ b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__isEmpty()).JML normal_behavior operation contract.0.proof @@ -39,12 +39,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Apr 24 10:27:56 CEST 2014 -name=RingBuffer[RingBuffer\\:\\:isEmpty()].JML normal_behavior operation contract.0 -contract=RingBuffer[RingBuffer\\:\\:isEmpty()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "RingBuffer[RingBuffer::isEmpty()].JML normal_behavior operation contract.0", + "contract": "RingBuffer[RingBuffer::isEmpty()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "mattias" ) (keyVersion "e5095ad740f809525e4c4689dcc12514a0ca06cc")) diff --git a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__isFull()).JML normal_behavior operation contract.0.proof b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__isFull()).JML normal_behavior operation contract.0.proof index c42ff2438b8..64a7a2d30ad 100644 --- a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__isFull()).JML normal_behavior operation contract.0.proof +++ b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__isFull()).JML normal_behavior operation contract.0.proof @@ -39,12 +39,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Apr 24 10:28:15 CEST 2014 -name=RingBuffer[RingBuffer\\:\\:isFull()].JML normal_behavior operation contract.0 -contract=RingBuffer[RingBuffer\\:\\:isFull()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "RingBuffer[RingBuffer::isFull()].JML normal_behavior operation contract.0", + "contract": "RingBuffer[RingBuffer::isFull()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "mattias" ) (keyVersion "e5095ad740f809525e4c4689dcc12514a0ca06cc")) diff --git a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__modulo(int)).JML normal_behavior operation contract.0.proof b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__modulo(int)).JML normal_behavior operation contract.0.proof index 42ab59887fb..81e1d917f01 100644 --- a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__modulo(int)).JML normal_behavior operation contract.0.proof +++ b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__modulo(int)).JML normal_behavior operation contract.0.proof @@ -39,12 +39,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Apr 24 10:28:11 CEST 2014 -name=RingBuffer[RingBuffer\\:\\:modulo(int)].JML normal_behavior operation contract.0 -contract=RingBuffer[RingBuffer\\:\\:modulo(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "RingBuffer[RingBuffer::modulo(int)].JML normal_behavior operation contract.0", + "contract": "RingBuffer[RingBuffer::modulo(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "mattias" ) (keyVersion "e5095ad740f809525e4c4689dcc12514a0ca06cc")) diff --git a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__pop()).JML normal_behavior operation contract.0.proof b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__pop()).JML normal_behavior operation contract.0.proof index bd2676e1360..12317d6debb 100644 --- a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__pop()).JML normal_behavior operation contract.0.proof +++ b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__pop()).JML normal_behavior operation contract.0.proof @@ -39,12 +39,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Apr 24 10:28:22 CEST 2014 -name=RingBuffer[RingBuffer\\:\\:pop()].JML normal_behavior operation contract.0 -contract=RingBuffer[RingBuffer\\:\\:pop()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "RingBuffer[RingBuffer::pop()].JML normal_behavior operation contract.0", + "contract": "RingBuffer[RingBuffer::pop()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "mattias" ) (keyVersion "e5095ad740f809525e4c4689dcc12514a0ca06cc")) diff --git a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__push(int)).JML normal_behavior operation contract.0.proof b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__push(int)).JML normal_behavior operation contract.0.proof index 4c328ed55ff..111694f1ece 100644 --- a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__push(int)).JML normal_behavior operation contract.0.proof +++ b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__push(int)).JML normal_behavior operation contract.0.proof @@ -39,12 +39,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Apr 24 10:28:34 CEST 2014 -name=RingBuffer[RingBuffer\\:\\:push(int)].JML normal_behavior operation contract.0 -contract=RingBuffer[RingBuffer\\:\\:push(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "RingBuffer[RingBuffer::push(int)].JML normal_behavior operation contract.0", + "contract": "RingBuffer[RingBuffer::push(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "mattias" ) (keyVersion "e5095ad740f809525e4c4689dcc12514a0ca06cc")) diff --git a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__test(int,int,int)).JML operation contract.0.proof b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__test(int,int,int)).JML operation contract.0.proof index 514a9bc62d4..e29f9f1ae56 100644 --- a/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__test(int,int,int)).JML operation contract.0.proof +++ b/key.ui/examples/heap/vstte12_03_RingBuffer/RingBuffer(RingBuffer__test(int,int,int)).JML operation contract.0.proof @@ -39,12 +39,11 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Apr 24 10:28:48 CEST 2014 -name=RingBuffer[RingBuffer\\:\\:test(int,int,int)].JML operation contract.0 -contract=RingBuffer[RingBuffer\\:\\:test(int,int,int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "RingBuffer[RingBuffer::test(int,int,int)].JML operation contract.0", + "contract": "RingBuffer[RingBuffer::test(int,int,int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "mattias" ) (keyVersion "e5095ad740f809525e4c4689dcc12514a0ca06cc")) diff --git a/key.ui/examples/heap/vstte12_03_RingBuffer/src/RingBuffer.java b/key.ui/examples/heap/vstte12_03_RingBuffer/src/RingBuffer.java index f25f1564ab3..a98c174a75f 100644 --- a/key.ui/examples/heap/vstte12_03_RingBuffer/src/RingBuffer.java +++ b/key.ui/examples/heap/vstte12_03_RingBuffer/src/RingBuffer.java @@ -67,7 +67,7 @@ int pop() { first = modulo(first + 1); len--; - //@ set list = \seq_sub(list,1,\seq_length(list)); + //@ set list = \seq_sub(list,1,list.length); return r; } diff --git a/key.ui/examples/index/default+performance.txt b/key.ui/examples/index/default+performance.txt index b0b3cd2a7f3..c5545ec0d60 100644 --- a/key.ui/examples/index/default+performance.txt +++ b/key.ui/examples/index/default+performance.txt @@ -486,6 +486,7 @@ provable: ./standard_key/strings/substring2.key provable: ./standard_key/strings/substring3.key provable: ./standard_key/strings/substring4.key provable: ./standard_key/strings/substring5.key +provable: ./standard_key/types/subtypes.key provable: ./_testcase/classpath/classpath.key notprovable: ./heap/inconsistent_represents/MyClass_m.key diff --git a/key.ui/examples/index/samplesIndex.txt b/key.ui/examples/index/samplesIndex.txt index c2036e62fe5..673e17f3d38 100644 --- a/key.ui/examples/index/samplesIndex.txt +++ b/key.ui/examples/index/samplesIndex.txt @@ -46,6 +46,7 @@ firstTouch/05-ReverseArray/README.txt heap/saddleback_search/README.txt heap/permutedSum/README.txt heap/quicksort/README.txt +heap/BoyerMoore/README.txt # Dynamic Frames ## Block & Loop Contracts diff --git a/key.ui/examples/newBook/09.list_modelfield/ArrayList.add.key b/key.ui/examples/newBook/09.list_modelfield/ArrayList.add.key index a51017fdc94..a6527cf1ccb 100644 --- a/key.ui/examples/newBook/09.list_modelfield/ArrayList.add.key +++ b/key.ui/examples/newBook/09.list_modelfield/ArrayList.add.key @@ -31,10 +31,9 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -#Tue Feb 18 15:06:46 CET 2014 -name=ArrayList[List\\:\\:add(int)].JML normal_behavior operation contract.0 -contract=ArrayList[List\\:\\:add(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ArrayList[List::add(int)].JML normal_behavior operation contract.0", + "contract": "ArrayList[List::add(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/newBook/09.list_modelfield/ArrayList.empty.key b/key.ui/examples/newBook/09.list_modelfield/ArrayList.empty.key index bc11d7e21b7..a54fd3b9766 100644 --- a/key.ui/examples/newBook/09.list_modelfield/ArrayList.empty.key +++ b/key.ui/examples/newBook/09.list_modelfield/ArrayList.empty.key @@ -1,10 +1,9 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -#Tue Feb 18 15:06:46 CET 2014 -name=ArrayList[List\\:\\:empty()].JML normal_behavior operation contract.0 -contract=ArrayList[List\\:\\:empty()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ArrayList[List::empty()].JML normal_behavior operation contract.0", + "contract": "ArrayList[List::empty()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/newBook/09.list_modelfield/ArrayList.get.key b/key.ui/examples/newBook/09.list_modelfield/ArrayList.get.key index fd610018001..6caeb4a7f39 100644 --- a/key.ui/examples/newBook/09.list_modelfield/ArrayList.get.key +++ b/key.ui/examples/newBook/09.list_modelfield/ArrayList.get.key @@ -1,10 +1,9 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -#Tue Feb 18 15:06:46 CET 2014 -name=ArrayList[List\\:\\:get(int)].JML normal_behavior operation contract.0 -contract=ArrayList[List\\:\\:get(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ArrayList[List::get(int)].JML normal_behavior operation contract.0", + "contract": "ArrayList[List::get(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/newBook/09.list_modelfield/ArrayList.remFirst.key b/key.ui/examples/newBook/09.list_modelfield/ArrayList.remFirst.key index 277f26fcc0b..607ac2586b9 100644 --- a/key.ui/examples/newBook/09.list_modelfield/ArrayList.remFirst.key +++ b/key.ui/examples/newBook/09.list_modelfield/ArrayList.remFirst.key @@ -1,10 +1,9 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -#Tue Feb 18 15:06:46 CET 2014 -name=ArrayList[List\\:\\:remFirst()].JML normal_behavior operation contract.0 -contract=ArrayList[List\\:\\:remFirst()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ArrayList[List::remFirst()].JML normal_behavior operation contract.0", + "contract": "ArrayList[List::remFirst()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/newBook/09.list_modelfield/ArrayList.size.key b/key.ui/examples/newBook/09.list_modelfield/ArrayList.size.key index 81c64e0ec31..f3487d5a21e 100644 --- a/key.ui/examples/newBook/09.list_modelfield/ArrayList.size.key +++ b/key.ui/examples/newBook/09.list_modelfield/ArrayList.size.key @@ -1,10 +1,9 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -#Tue Feb 18 15:06:46 CET 2014 -name=ArrayList[List\\:\\:size()].JML normal_behavior operation contract.0 -contract=ArrayList[List\\:\\:size()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ArrayList[List::size()].JML normal_behavior operation contract.0", + "contract": "ArrayList[List::size()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_01()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_01()).JML_operation_contract.0.key index cc678a409f4..788cdf5b0a2 100644 --- a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_01()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_01()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Thu Jul 11 15:53:55 CEST 2013 -name=AccessChain1[AccessChain1\\:\\:foo_1()].JML operation contract.0 -contract=AccessChain1[AccessChain1\\:\\:foo_1()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain1[AccessChain1::foo_1()].JML operation contract.0", + "contract": "AccessChain1[AccessChain1::foo_1()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_02()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_02()).JML_operation_contract.0.key index 14bb3261706..cd7f2e22f18 100644 --- a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_02()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_02()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Thu Jul 11 15:56:07 CEST 2013 -name=AccessChain1[AccessChain1\\:\\:foo_2()].JML operation contract.0 -contract=AccessChain1[AccessChain1\\:\\:foo_2()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain1[AccessChain1::foo_2()].JML operation contract.0", + "contract": "AccessChain1[AccessChain1::foo_2()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_03()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_03()).JML_operation_contract.0.key index 1b47c9480fc..f9db8e4d692 100644 --- a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_03()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_03()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:13:06 CEST 2013 -name=AccessChain1[AccessChain1\\:\\:foo_3()].JML operation contract.0 -contract=AccessChain1[AccessChain1\\:\\:foo_3()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain1[AccessChain1::foo_3()].JML operation contract.0", + "contract": "AccessChain1[AccessChain1::foo_3()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_04()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_04()).JML_operation_contract.0.key index d5d3282ceea..591b6094411 100644 --- a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_04()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_04()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Thu Jul 11 15:56:15 CEST 2013 -name=AccessChain1[AccessChain1\\:\\:foo_4()].JML operation contract.0 -contract=AccessChain1[AccessChain1\\:\\:foo_4()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain1[AccessChain1::foo_4()].JML operation contract.0", + "contract": "AccessChain1[AccessChain1::foo_4()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_05()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_05()).JML_operation_contract.0.key index 8e6157a87ad..ee872bf7020 100644 --- a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_05()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_05()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:12:59 CEST 2013 -name=AccessChain1[AccessChain1\\:\\:foo_5()].JML operation contract.0 -contract=AccessChain1[AccessChain1\\:\\:foo_5()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain1[AccessChain1::foo_5()].JML operation contract.0", + "contract": "AccessChain1[AccessChain1::foo_5()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_06()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_06()).JML_operation_contract.0.key index 118954ef443..c8945943944 100644 --- a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_06()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_06()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:13:16 CEST 2013 -name=AccessChain1[AccessChain1\\:\\:foo_6()].JML operation contract.0 -contract=AccessChain1[AccessChain1\\:\\:foo_6()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain1[AccessChain1::foo_6()].JML operation contract.0", + "contract": "AccessChain1[AccessChain1::foo_6()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_07()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_07()).JML_operation_contract.0.key index 8ef72b8120d..4fc344f5457 100644 --- a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_07()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_07()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:13:23 CEST 2013 -name=AccessChain1[AccessChain1\\:\\:foo_7()].JML operation contract.0 -contract=AccessChain1[AccessChain1\\:\\:foo_7()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain1[AccessChain1::foo_7()].JML operation contract.0", + "contract": "AccessChain1[AccessChain1::foo_7()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_08()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_08()).JML_operation_contract.0.key index df29e8ed1d2..14cbd2d7ebd 100644 --- a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_08()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_08()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Thu Jul 11 15:56:21 CEST 2013 -name=AccessChain1[AccessChain1\\:\\:foo_8()].JML operation contract.0 -contract=AccessChain1[AccessChain1\\:\\:foo_8()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain1[AccessChain1::foo_8()].JML operation contract.0", + "contract": "AccessChain1[AccessChain1::foo_8()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_09()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_09()).JML_operation_contract.0.key index c9d817af4e5..959fddad9bf 100644 --- a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_09()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_09()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:13:29 CEST 2013 -name=AccessChain1[AccessChain1\\:\\:foo_9()].JML operation contract.0 -contract=AccessChain1[AccessChain1\\:\\:foo_9()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain1[AccessChain1::foo_9()].JML operation contract.0", + "contract": "AccessChain1[AccessChain1::foo_9()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_10()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_10()).JML_operation_contract.0.key index c54b94642f6..802c1599057 100644 --- a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_10()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_10()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:14:31 CEST 2013 -name=AccessChain1[AccessChain1\\:\\:foo_10()].JML operation contract.0 -contract=AccessChain1[AccessChain1\\:\\:foo_10()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain1[AccessChain1::foo_10()].JML operation contract.0", + "contract": "AccessChain1[AccessChain1::foo_10()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_20()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_20()).JML_operation_contract.0.key index a6d78bfdaa5..8dcb8207a0c 100644 --- a/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_20()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain1(AccessChain1__foo_20()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:14:36 CEST 2013 -name=AccessChain1[AccessChain1\\:\\:foo_20()].JML operation contract.0 -contract=AccessChain1[AccessChain1\\:\\:foo_20()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain1[AccessChain1::foo_20()].JML operation contract.0", + "contract": "AccessChain1[AccessChain1::foo_20()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_01()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_01()).JML_operation_contract.0.key index 494c966f63d..e1d4687a390 100644 --- a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_01()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_01()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Thu Jul 11 15:56:29 CEST 2013 -name=AccessChain2[AccessChain2\\:\\:foo_1()].JML operation contract.0 -contract=AccessChain2[AccessChain2\\:\\:foo_1()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain2[AccessChain2::foo_1()].JML operation contract.0", + "contract": "AccessChain2[AccessChain2::foo_1()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_02()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_02()).JML_operation_contract.0.key index 7194b616847..64db96f4e88 100644 --- a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_02()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_02()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Thu Jul 11 15:56:34 CEST 2013 -name=AccessChain2[AccessChain2\\:\\:foo_2()].JML operation contract.0 -contract=AccessChain2[AccessChain2\\:\\:foo_2()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain2[AccessChain2::foo_2()].JML operation contract.0", + "contract": "AccessChain2[AccessChain2::foo_2()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_03()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_03()).JML_operation_contract.0.key index 13bf8303207..1c7318a82be 100644 --- a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_03()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_03()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:13:45 CEST 2013 -name=AccessChain2[AccessChain2\\:\\:foo_3()].JML operation contract.0 -contract=AccessChain2[AccessChain2\\:\\:foo_3()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain2[AccessChain2::foo_3()].JML operation contract.0", + "contract": "AccessChain2[AccessChain2::foo_3()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_04()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_04()).JML_operation_contract.0.key index 14be66d7c73..816dd04aca9 100644 --- a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_04()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_04()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Thu Jul 11 15:56:55 CEST 2013 -name=AccessChain2[AccessChain2\\:\\:foo_4()].JML operation contract.0 -contract=AccessChain2[AccessChain2\\:\\:foo_4()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain2[AccessChain2::foo_4()].JML operation contract.0", + "contract": "AccessChain2[AccessChain2::foo_4()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_05()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_05()).JML_operation_contract.0.key index 46682bfb0e4..17ea97d9424 100644 --- a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_05()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_05()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:13:50 CEST 2013 -name=AccessChain2[AccessChain2\\:\\:foo_5()].JML operation contract.0 -contract=AccessChain2[AccessChain2\\:\\:foo_5()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain2[AccessChain2::foo_5()].JML operation contract.0", + "contract": "AccessChain2[AccessChain2::foo_5()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_06()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_06()).JML_operation_contract.0.key index 46220d5d2dc..e1008f10613 100644 --- a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_06()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_06()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:13:59 CEST 2013 -name=AccessChain2[AccessChain2\\:\\:foo_6()].JML operation contract.0 -contract=AccessChain2[AccessChain2\\:\\:foo_6()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain2[AccessChain2::foo_6()].JML operation contract.0", + "contract": "AccessChain2[AccessChain2::foo_6()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_07()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_07()).JML_operation_contract.0.key index 11925557af6..76d19b946a7 100644 --- a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_07()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_07()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:14:06 CEST 2013 -name=AccessChain2[AccessChain2\\:\\:foo_7()].JML operation contract.0 -contract=AccessChain2[AccessChain2\\:\\:foo_7()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain2[AccessChain2::foo_7()].JML operation contract.0", + "contract": "AccessChain2[AccessChain2::foo_7()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_08()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_08()).JML_operation_contract.0.key index e5f5ae772a1..f59055f3ec0 100644 --- a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_08()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_08()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Thu Jul 11 15:56:51 CEST 2013 -name=AccessChain2[AccessChain2\\:\\:foo_8()].JML operation contract.0 -contract=AccessChain2[AccessChain2\\:\\:foo_8()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain2[AccessChain2::foo_8()].JML operation contract.0", + "contract": "AccessChain2[AccessChain2::foo_8()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_09()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_09()).JML_operation_contract.0.key index 951d5c27a0b..144a54fc335 100644 --- a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_09()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_09()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:14:12 CEST 2013 -name=AccessChain2[AccessChain2\\:\\:foo_9()].JML operation contract.0 -contract=AccessChain2[AccessChain2\\:\\:foo_9()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain2[AccessChain2::foo_9()].JML operation contract.0", + "contract": "AccessChain2[AccessChain2::foo_9()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_10()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_10()).JML_operation_contract.0.key index dc24b72eed0..4583cd53d02 100644 --- a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_10()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_10()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:14:23 CEST 2013 -name=AccessChain2[AccessChain2\\:\\:foo_10()].JML operation contract.0 -contract=AccessChain2[AccessChain2\\:\\:foo_10()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain2[AccessChain2::foo_10()].JML operation contract.0", + "contract": "AccessChain2[AccessChain2::foo_10()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_20()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_20()).JML_operation_contract.0.key index 34271cb1903..6f1c3a98d62 100644 --- a/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_20()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain2(AccessChain2__foo_20()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:14:16 CEST 2013 -name=AccessChain2[AccessChain2\\:\\:foo_20()].JML operation contract.0 -contract=AccessChain2[AccessChain2\\:\\:foo_20()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain2[AccessChain2::foo_20()].JML operation contract.0", + "contract": "AccessChain2[AccessChain2::foo_20()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_01()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_01()).JML_operation_contract.0.key index 720e3ae8ba7..ce3baaec0c7 100644 --- a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_01()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_01()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Thu Jul 11 15:57:04 CEST 2013 -name=AccessChain4[AccessChain4\\:\\:foo_1()].JML operation contract.0 -contract=AccessChain4[AccessChain4\\:\\:foo_1()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain4[AccessChain4::foo_1()].JML operation contract.0", + "contract": "AccessChain4[AccessChain4::foo_1()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_02()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_02()).JML_operation_contract.0.key index fd7a768b5bc..32bbca90736 100644 --- a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_02()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_02()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Thu Jul 11 15:57:10 CEST 2013 -name=AccessChain4[AccessChain4\\:\\:foo_2()].JML operation contract.0 -contract=AccessChain4[AccessChain4\\:\\:foo_2()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain4[AccessChain4::foo_2()].JML operation contract.0", + "contract": "AccessChain4[AccessChain4::foo_2()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_03()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_03()).JML_operation_contract.0.key index 3c453d97cad..43eb85539c1 100644 --- a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_03()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_03()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:14:59 CEST 2013 -name=AccessChain4[AccessChain4\\:\\:foo_3()].JML operation contract.0 -contract=AccessChain4[AccessChain4\\:\\:foo_3()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain4[AccessChain4::foo_3()].JML operation contract.0", + "contract": "AccessChain4[AccessChain4::foo_3()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_04()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_04()).JML_operation_contract.0.key index c621849277b..19cfe3b2cfe 100644 --- a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_04()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_04()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Thu Jul 11 15:57:15 CEST 2013 -name=AccessChain4[AccessChain4\\:\\:foo_4()].JML operation contract.0 -contract=AccessChain4[AccessChain4\\:\\:foo_4()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain4[AccessChain4::foo_4()].JML operation contract.0", + "contract": "AccessChain4[AccessChain4::foo_4()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_05()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_05()).JML_operation_contract.0.key index 8d84c96c19b..af8b8e6eae4 100644 --- a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_05()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_05()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:15:05 CEST 2013 -name=AccessChain4[AccessChain4\\:\\:foo_5()].JML operation contract.0 -contract=AccessChain4[AccessChain4\\:\\:foo_5()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain4[AccessChain4::foo_5()].JML operation contract.0", + "contract": "AccessChain4[AccessChain4::foo_5()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_06()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_06()).JML_operation_contract.0.key index 54fc52c5ea1..06ad6940486 100644 --- a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_06()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_06()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:15:10 CEST 2013 -name=AccessChain4[AccessChain4\\:\\:foo_6()].JML operation contract.0 -contract=AccessChain4[AccessChain4\\:\\:foo_6()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain4[AccessChain4::foo_6()].JML operation contract.0", + "contract": "AccessChain4[AccessChain4::foo_6()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_07()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_07()).JML_operation_contract.0.key index 08dde2fce9d..17416e7e5b5 100644 --- a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_07()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_07()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:15:14 CEST 2013 -name=AccessChain4[AccessChain4\\:\\:foo_7()].JML operation contract.0 -contract=AccessChain4[AccessChain4\\:\\:foo_7()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain4[AccessChain4::foo_7()].JML operation contract.0", + "contract": "AccessChain4[AccessChain4::foo_7()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_08()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_08()).JML_operation_contract.0.key index 799caa3cde2..d1d77fa0a46 100644 --- a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_08()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_08()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Thu Jul 11 15:57:20 CEST 2013 -name=AccessChain4[AccessChain4\\:\\:foo_8()].JML operation contract.0 -contract=AccessChain4[AccessChain4\\:\\:foo_8()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain4[AccessChain4::foo_8()].JML operation contract.0", + "contract": "AccessChain4[AccessChain4::foo_8()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_09()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_09()).JML_operation_contract.0.key index 2b836646fb9..05bca229611 100644 --- a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_09()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_09()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:15:19 CEST 2013 -name=AccessChain4[AccessChain4\\:\\:foo_9()].JML operation contract.0 -contract=AccessChain4[AccessChain4\\:\\:foo_9()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain4[AccessChain4::foo_9()].JML operation contract.0", + "contract": "AccessChain4[AccessChain4::foo_9()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_10()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_10()).JML_operation_contract.0.key index 7ea11841038..6706e6a1212 100644 --- a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_10()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_10()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:14:47 CEST 2013 -name=AccessChain4[AccessChain4\\:\\:foo_10()].JML operation contract.0 -contract=AccessChain4[AccessChain4\\:\\:foo_10()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain4[AccessChain4::foo_10()].JML operation contract.0", + "contract": "AccessChain4[AccessChain4::foo_10()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_20()).JML_operation_contract.0.key b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_20()).JML_operation_contract.0.key index 6f83dd0320f..62b1bc4ce60 100644 --- a/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_20()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/AccessChain4(AccessChain4__foo_20()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:14:53 CEST 2013 -name=AccessChain4[AccessChain4\\:\\:foo_20()].JML operation contract.0 -contract=AccessChain4[AccessChain4\\:\\:foo_20()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "AccessChain4[AccessChain4::foo_20()].JML operation contract.0", + "contract": "AccessChain4[AccessChain4::foo_20()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_01()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_01()).JML_operation_contract.0.key index 2ca07a2773f..bf9dc4a6dca 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_01()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_01()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:44:27 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint2_1()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint2_1()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint2_1()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint2_1()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_02()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_02()).JML_operation_contract.0.key index 01c82e3d788..739fb52eb7f 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_02()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_02()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:44:41 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint2_2()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint2_2()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint2_2()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint2_2()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_03()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_03()).JML_operation_contract.0.key index 39d8ddc99b5..e24bc436600 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_03()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_03()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:15:41 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint2_3()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint2_3()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint2_3()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint2_3()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_04()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_04()).JML_operation_contract.0.key index 5f7e3fb85f6..5e1de454da0 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_04()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_04()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:44:46 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint2_4()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint2_4()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint2_4()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint2_4()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_05()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_05()).JML_operation_contract.0.key index 3cc702ce569..878a70eaf3b 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_05()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_05()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:15:46 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint2_5()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint2_5()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint2_5()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint2_5()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_06()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_06()).JML_operation_contract.0.key index d3e58b83f3d..800c5d87364 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_06()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_06()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:15:50 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint2_6()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint2_6()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint2_6()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint2_6()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_07()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_07()).JML_operation_contract.0.key index e9969944a4b..f87b548dd5b 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_07()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_07()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:15:55 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint2_7()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint2_7()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint2_7()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint2_7()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_08()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_08()).JML_operation_contract.0.key index c95e7d32e40..f8bdae0360f 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_08()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_08()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:44:53 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint2_8()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint2_8()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint2_8()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint2_8()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_09()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_09()).JML_operation_contract.0.key index 36d0411ccb0..a9f3bda1bd5 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_09()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_09()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:16:00 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint2_9()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint2_9()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint2_9()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint2_9()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_10()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_10()).JML_operation_contract.0.key index 714c3ca0d01..e6e3b1f40a6 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_10()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_10()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:44:35 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint2_10()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint2_10()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint2_10()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint2_10()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_20()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_20()).JML_operation_contract.0.key index 15cec4879ec..9fc3fa81741 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_20()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint2_20()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:15:34 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint2_20()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint2_20()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint2_20()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint2_20()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_01()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_01()).JML_operation_contract.0.key index 6e121564d90..08a6e2ab5b3 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_01()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_01()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:44:59 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint_1()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint_1()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint_1()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint_1()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_02()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_02()).JML_operation_contract.0.key index e674f8ca762..c693313d35f 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_02()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_02()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:45:09 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint_2()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint_2()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint_2()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint_2()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_03()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_03()).JML_operation_contract.0.key index 39393e2b2b7..429fbc214d0 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_03()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_03()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:16:25 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint_3()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint_3()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint_3()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint_3()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_04()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_04()).JML_operation_contract.0.key index a67d6b41494..a05b805c5cf 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_04()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_04()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:45:14 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint_4()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint_4()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint_4()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint_4()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_05()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_05()).JML_operation_contract.0.key index 133ea2a29cb..50aaeba3527 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_05()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_05()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:16:30 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint_5()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint_5()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint_5()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint_5()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_06()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_06()).JML_operation_contract.0.key index 78b5b46487e..11ac5d86420 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_06()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_06()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:16:35 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint_6()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint_6()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint_6()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint_6()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_07()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_07()).JML_operation_contract.0.key index 594bab92cc7..b2794e1e72f 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_07()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_07()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:16:40 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint_7()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint_7()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint_7()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint_7()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_08()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_08()).JML_operation_contract.0.key index 8494eb112fc..c455d8d4ef2 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_08()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_08()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:45:19 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint_8()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint_8()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint_8()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint_8()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_09()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_09()).JML_operation_contract.0.key index b9dc474ea70..25f849128b8 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_09()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_09()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:18:11 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint_9()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint_9()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint_9()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint_9()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_10()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_10()).JML_operation_contract.0.key index 7f5212dd802..11ecdba1ef7 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_10()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_10()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:45:05 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint_10()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint_10()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint_10()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint_10()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_20()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_20()).JML_operation_contract.0.key index 4e109500586..bab355ca52d 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_20()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__disjoint_20()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:16:19 CEST 2013 -name=Disjoint[Disjoint\\:\\:disjoint_20()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:disjoint_20()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::disjoint_20()].JML operation contract.0", + "contract": "Disjoint[Disjoint::disjoint_20()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_01()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_01()).JML_operation_contract.0.key index 59a44398cbc..7f46fe6dab2 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_01()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_01()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:45:29 CEST 2013 -name=Disjoint[Disjoint\\:\\:xZero_1()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:xZero_1()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::xZero_1()].JML operation contract.0", + "contract": "Disjoint[Disjoint::xZero_1()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_02()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_02()).JML_operation_contract.0.key index 472e1b922bb..b0c42b94c67 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_02()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_02()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:45:38 CEST 2013 -name=Disjoint[Disjoint\\:\\:xZero_2()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:xZero_2()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::xZero_2()].JML operation contract.0", + "contract": "Disjoint[Disjoint::xZero_2()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_03()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_03()).JML_operation_contract.0.key index a176f2aa82c..75b994a775a 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_03()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_03()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:17:34 CEST 2013 -name=Disjoint[Disjoint\\:\\:xZero_3()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:xZero_3()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::xZero_3()].JML operation contract.0", + "contract": "Disjoint[Disjoint::xZero_3()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_04()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_04()).JML_operation_contract.0.key index 1409d1c94e6..24a5d79117a 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_04()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_04()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:45:44 CEST 2013 -name=Disjoint[Disjoint\\:\\:xZero_4()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:xZero_4()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::xZero_4()].JML operation contract.0", + "contract": "Disjoint[Disjoint::xZero_4()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_05()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_05()).JML_operation_contract.0.key index 88672c1e1d2..475643639c6 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_05()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_05()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:17:39 CEST 2013 -name=Disjoint[Disjoint\\:\\:xZero_5()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:xZero_5()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::xZero_5()].JML operation contract.0", + "contract": "Disjoint[Disjoint::xZero_5()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_06()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_06()).JML_operation_contract.0.key index 43c5aa311fc..18d5eaeddd3 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_06()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_06()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:17:44 CEST 2013 -name=Disjoint[Disjoint\\:\\:xZero_6()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:xZero_6()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::xZero_6()].JML operation contract.0", + "contract": "Disjoint[Disjoint::xZero_6()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_07()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_07()).JML_operation_contract.0.key index 9a87c7acb33..d031fa0dc9e 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_07()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_07()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:17:49 CEST 2013 -name=Disjoint[Disjoint\\:\\:xZero_7()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:xZero_7()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::xZero_7()].JML operation contract.0", + "contract": "Disjoint[Disjoint::xZero_7()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_08()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_08()).JML_operation_contract.0.key index 8915f22a26e..a94dda8a5ca 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_08()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_08()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:45:49 CEST 2013 -name=Disjoint[Disjoint\\:\\:xZero_8()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:xZero_8()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::xZero_8()].JML operation contract.0", + "contract": "Disjoint[Disjoint::xZero_8()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_09()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_09()).JML_operation_contract.0.key index 9d02996f124..bd067ef38f5 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_09()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_09()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:17:54 CEST 2013 -name=Disjoint[Disjoint\\:\\:xZero_9()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:xZero_9()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::xZero_9()].JML operation contract.0", + "contract": "Disjoint[Disjoint::xZero_9()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_10()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_10()).JML_operation_contract.0.key index bda36637248..4e7c0c44aa6 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_10()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_10()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:45:33 CEST 2013 -name=Disjoint[Disjoint\\:\\:xZero_10()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:xZero_10()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::xZero_10()].JML operation contract.0", + "contract": "Disjoint[Disjoint::xZero_10()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_20()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_20()).JML_operation_contract.0.key index a06023ade93..e568f2afde2 100644 --- a/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_20()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Disjoint(Disjoint__xZero_20()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:17:29 CEST 2013 -name=Disjoint[Disjoint\\:\\:xZero_20()].JML operation contract.0 -contract=Disjoint[Disjoint\\:\\:xZero_20()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Disjoint[Disjoint::xZero_20()].JML operation contract.0", + "contract": "Disjoint[Disjoint::xZero_20()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_01()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_01()).JML_operation_contract.0.key index ceb58f4391b..7f02c1659e1 100644 --- a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_01()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_01()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:46:13 CEST 2013 -name=Dynamic[Dynamic\\:\\:foo_1()].JML operation contract.0 -contract=Dynamic[Dynamic\\:\\:foo_1()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic[Dynamic::foo_1()].JML operation contract.0", + "contract": "Dynamic[Dynamic::foo_1()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_02()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_02()).JML_operation_contract.0.key index faa1da3a6ae..6b4d44c5f86 100644 --- a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_02()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_02()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:46:23 CEST 2013 -name=Dynamic[Dynamic\\:\\:foo_2()].JML operation contract.0 -contract=Dynamic[Dynamic\\:\\:foo_2()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic[Dynamic::foo_2()].JML operation contract.0", + "contract": "Dynamic[Dynamic::foo_2()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_03()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_03()).JML_operation_contract.0.key index 30cdb0ada17..559f21b637d 100644 --- a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_03()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_03()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:18:28 CEST 2013 -name=Dynamic[Dynamic\\:\\:foo_3()].JML operation contract.0 -contract=Dynamic[Dynamic\\:\\:foo_3()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic[Dynamic::foo_3()].JML operation contract.0", + "contract": "Dynamic[Dynamic::foo_3()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_04()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_04()).JML_operation_contract.0.key index 9f5fec55120..a3e26ef810f 100644 --- a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_04()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_04()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:46:28 CEST 2013 -name=Dynamic[Dynamic\\:\\:foo_4()].JML operation contract.0 -contract=Dynamic[Dynamic\\:\\:foo_4()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic[Dynamic::foo_4()].JML operation contract.0", + "contract": "Dynamic[Dynamic::foo_4()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_05()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_05()).JML_operation_contract.0.key index 226e1aad128..4331c754024 100644 --- a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_05()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_05()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:18:35 CEST 2013 -name=Dynamic[Dynamic\\:\\:foo_5()].JML operation contract.0 -contract=Dynamic[Dynamic\\:\\:foo_5()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic[Dynamic::foo_5()].JML operation contract.0", + "contract": "Dynamic[Dynamic::foo_5()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_06()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_06()).JML_operation_contract.0.key index 09de42add21..874958b85df 100644 --- a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_06()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_06()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:18:39 CEST 2013 -name=Dynamic[Dynamic\\:\\:foo_6()].JML operation contract.0 -contract=Dynamic[Dynamic\\:\\:foo_6()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic[Dynamic::foo_6()].JML operation contract.0", + "contract": "Dynamic[Dynamic::foo_6()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_07()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_07()).JML_operation_contract.0.key index b21a45eba14..785fbb3bd70 100644 --- a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_07()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_07()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:18:44 CEST 2013 -name=Dynamic[Dynamic\\:\\:foo_7()].JML operation contract.0 -contract=Dynamic[Dynamic\\:\\:foo_7()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic[Dynamic::foo_7()].JML operation contract.0", + "contract": "Dynamic[Dynamic::foo_7()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_08()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_08()).JML_operation_contract.0.key index 4833e5bdb30..69f7ae53e31 100644 --- a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_08()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_08()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:46:32 CEST 2013 -name=Dynamic[Dynamic\\:\\:foo_8()].JML operation contract.0 -contract=Dynamic[Dynamic\\:\\:foo_8()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic[Dynamic::foo_8()].JML operation contract.0", + "contract": "Dynamic[Dynamic::foo_8()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_09()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_09()).JML_operation_contract.0.key index 387d3833634..8e7ba982934 100644 --- a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_09()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_09()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:18:49 CEST 2013 -name=Dynamic[Dynamic\\:\\:foo_9()].JML operation contract.0 -contract=Dynamic[Dynamic\\:\\:foo_9()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic[Dynamic::foo_9()].JML operation contract.0", + "contract": "Dynamic[Dynamic::foo_9()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_10()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_10()).JML_operation_contract.0.key index 8d0c7740f37..f032df9fb94 100644 --- a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_10()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_10()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:46:18 CEST 2013 -name=Dynamic[Dynamic\\:\\:foo_10()].JML operation contract.0 -contract=Dynamic[Dynamic\\:\\:foo_10()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic[Dynamic::foo_10()].JML operation contract.0", + "contract": "Dynamic[Dynamic::foo_10()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_20()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_20()).JML_operation_contract.0.key index 2d0829c4b15..c9013893854 100644 --- a/key.ui/examples/performance-test/Dynamic(Dynamic__foo_20()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic(Dynamic__foo_20()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:18:24 CEST 2013 -name=Dynamic[Dynamic\\:\\:foo_20()].JML operation contract.0 -contract=Dynamic[Dynamic\\:\\:foo_20()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic[Dynamic::foo_20()].JML operation contract.0", + "contract": "Dynamic[Dynamic::foo_20()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_01()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_01()).JML_operation_contract.0.key index 0a56a43b5fd..33b92add3a3 100644 --- a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_01()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_01()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:46:41 CEST 2013 -name=Dynamic2[Dynamic2\\:\\:foo_1()].JML operation contract.0 -contract=Dynamic2[Dynamic2\\:\\:foo_1()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic2[Dynamic2::foo_1()].JML operation contract.0", + "contract": "Dynamic2[Dynamic2::foo_1()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_02()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_02()).JML_operation_contract.0.key index 572a40294d3..2eef2377fba 100644 --- a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_02()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_02()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:46:51 CEST 2013 -name=Dynamic2[Dynamic2\\:\\:foo_2()].JML operation contract.0 -contract=Dynamic2[Dynamic2\\:\\:foo_2()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic2[Dynamic2::foo_2()].JML operation contract.0", + "contract": "Dynamic2[Dynamic2::foo_2()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_03()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_03()).JML_operation_contract.0.key index d30047a91bf..641de47036e 100644 --- a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_03()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_03()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:19:05 CEST 2013 -name=Dynamic2[Dynamic2\\:\\:foo_3()].JML operation contract.0 -contract=Dynamic2[Dynamic2\\:\\:foo_3()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic2[Dynamic2::foo_3()].JML operation contract.0", + "contract": "Dynamic2[Dynamic2::foo_3()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_04()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_04()).JML_operation_contract.0.key index 4fbf29fe32a..c627646ef24 100644 --- a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_04()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_04()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:46:56 CEST 2013 -name=Dynamic2[Dynamic2\\:\\:foo_4()].JML operation contract.0 -contract=Dynamic2[Dynamic2\\:\\:foo_4()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic2[Dynamic2::foo_4()].JML operation contract.0", + "contract": "Dynamic2[Dynamic2::foo_4()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_05()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_05()).JML_operation_contract.0.key index bdccc6ab03d..5dee1edccbd 100644 --- a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_05()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_05()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:19:10 CEST 2013 -name=Dynamic2[Dynamic2\\:\\:foo_5()].JML operation contract.0 -contract=Dynamic2[Dynamic2\\:\\:foo_5()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic2[Dynamic2::foo_5()].JML operation contract.0", + "contract": "Dynamic2[Dynamic2::foo_5()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_06()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_06()).JML_operation_contract.0.key index e44c991b909..4603582f5a4 100644 --- a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_06()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_06()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:19:15 CEST 2013 -name=Dynamic2[Dynamic2\\:\\:foo_6()].JML operation contract.0 -contract=Dynamic2[Dynamic2\\:\\:foo_6()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic2[Dynamic2::foo_6()].JML operation contract.0", + "contract": "Dynamic2[Dynamic2::foo_6()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_07()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_07()).JML_operation_contract.0.key index 8001b753fd2..2bf9c4d1067 100644 --- a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_07()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_07()).JML_operation_contract.0.key @@ -40,10 +40,9 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:19:19 CEST 2013 -name=Dynamic2[Dynamic2\\:\\:foo_7()].JML operation contract.0 -contract=Dynamic2[Dynamic2\\:\\:foo_7()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic2[Dynamic2::foo_7()].JML operation contract.0", + "contract": "Dynamic2[Dynamic2::foo_7()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_08()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_08()).JML_operation_contract.0.key index 1581f299b17..ba82ad1083e 100644 --- a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_08()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_08()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:47:03 CEST 2013 -name=Dynamic2[Dynamic2\\:\\:foo_8()].JML operation contract.0 -contract=Dynamic2[Dynamic2\\:\\:foo_8()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic2[Dynamic2::foo_8()].JML operation contract.0", + "contract": "Dynamic2[Dynamic2::foo_8()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_09()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_09()).JML_operation_contract.0.key index 8cfedb2f6ee..757dea4138e 100644 --- a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_09()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_09()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:19:23 CEST 2013 -name=Dynamic2[Dynamic2\\:\\:foo_9()].JML operation contract.0 -contract=Dynamic2[Dynamic2\\:\\:foo_9()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic2[Dynamic2::foo_9()].JML operation contract.0", + "contract": "Dynamic2[Dynamic2::foo_9()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_10()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_10()).JML_operation_contract.0.key index 284ed24fb7a..33b084e4474 100644 --- a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_10()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_10()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:46:46 CEST 2013 -name=Dynamic2[Dynamic2\\:\\:foo_10()].JML operation contract.0 -contract=Dynamic2[Dynamic2\\:\\:foo_10()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic2[Dynamic2::foo_10()].JML operation contract.0", + "contract": "Dynamic2[Dynamic2::foo_10()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_20()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_20()).JML_operation_contract.0.key index 1032c8443c2..12d6e56739b 100644 --- a/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_20()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Dynamic2(Dynamic2__foo_20()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:19:01 CEST 2013 -name=Dynamic2[Dynamic2\\:\\:foo_20()].JML operation contract.0 -contract=Dynamic2[Dynamic2\\:\\:foo_20()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Dynamic2[Dynamic2::foo_20()].JML operation contract.0", + "contract": "Dynamic2[Dynamic2::foo_20()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_01()).JML_normal_behavior_operation_contract.0.key b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_01()).JML_normal_behavior_operation_contract.0.key index 960e9fe868b..51062dfdee4 100644 --- a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_01()).JML_normal_behavior_operation_contract.0.key +++ b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_01()).JML_normal_behavior_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Fri Jul 12 14:46:25 CEST 2013 -name=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_1()].JML normal_behavior operation contract.0 -contract=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_1()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "DynamicGhost[DynamicGhost::dynamicGhost_1()].JML normal_behavior operation contract.0", + "contract": "DynamicGhost[DynamicGhost::dynamicGhost_1()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "0962c784de534d7c0b122eced35b3316f566f586")) diff --git a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_02()).JML_normal_behavior_operation_contract.0.key b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_02()).JML_normal_behavior_operation_contract.0.key index ecc260a27a6..e1470839f95 100644 --- a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_02()).JML_normal_behavior_operation_contract.0.key +++ b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_02()).JML_normal_behavior_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Fri Jul 12 14:48:00 CEST 2013 -name=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_2()].JML normal_behavior operation contract.0 -contract=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_2()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "DynamicGhost[DynamicGhost::dynamicGhost_2()].JML normal_behavior operation contract.0", + "contract": "DynamicGhost[DynamicGhost::dynamicGhost_2()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "0962c784de534d7c0b122eced35b3316f566f586")) diff --git a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_03()).JML_normal_behavior_operation_contract.0.key b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_03()).JML_normal_behavior_operation_contract.0.key index a3f5b0f8c28..af3d219f55d 100644 --- a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_03()).JML_normal_behavior_operation_contract.0.key +++ b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_03()).JML_normal_behavior_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Sat Jul 13 10:34:58 CEST 2013 -name=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_3()].JML normal_behavior operation contract.0 -contract=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_3()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "DynamicGhost[DynamicGhost::dynamicGhost_3()].JML normal_behavior operation contract.0", + "contract": "DynamicGhost[DynamicGhost::dynamicGhost_3()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "bf6fc51a6a9f63d2160dbb0d44ef932ed3483429")) diff --git a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_04()).JML_normal_behavior_operation_contract.0.key b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_04()).JML_normal_behavior_operation_contract.0.key index e1999cd32aa..429c82cc157 100644 --- a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_04()).JML_normal_behavior_operation_contract.0.key +++ b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_04()).JML_normal_behavior_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Fri Jul 12 14:48:09 CEST 2013 -name=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_4()].JML normal_behavior operation contract.0 -contract=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_4()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "DynamicGhost[DynamicGhost::dynamicGhost_4()].JML normal_behavior operation contract.0", + "contract": "DynamicGhost[DynamicGhost::dynamicGhost_4()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "0962c784de534d7c0b122eced35b3316f566f586")) diff --git a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_05()).JML_normal_behavior_operation_contract.0.key b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_05()).JML_normal_behavior_operation_contract.0.key index 775fe0e5f6d..b7685726219 100644 --- a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_05()).JML_normal_behavior_operation_contract.0.key +++ b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_05()).JML_normal_behavior_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Sat Jul 13 10:35:07 CEST 2013 -name=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_5()].JML normal_behavior operation contract.0 -contract=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_5()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "DynamicGhost[DynamicGhost::dynamicGhost_5()].JML normal_behavior operation contract.0", + "contract": "DynamicGhost[DynamicGhost::dynamicGhost_5()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "bf6fc51a6a9f63d2160dbb0d44ef932ed3483429")) diff --git a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_06()).JML_normal_behavior_operation_contract.0.key b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_06()).JML_normal_behavior_operation_contract.0.key index e5e56f689d7..391f4c207d1 100644 --- a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_06()).JML_normal_behavior_operation_contract.0.key +++ b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_06()).JML_normal_behavior_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Sat Jul 13 10:35:15 CEST 2013 -name=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_6()].JML normal_behavior operation contract.0 -contract=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_6()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "DynamicGhost[DynamicGhost::dynamicGhost_6()].JML normal_behavior operation contract.0", + "contract": "DynamicGhost[DynamicGhost::dynamicGhost_6()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "bf6fc51a6a9f63d2160dbb0d44ef932ed3483429")) diff --git a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_07()).JML_normal_behavior_operation_contract.0.key b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_07()).JML_normal_behavior_operation_contract.0.key index 69f8f88b8f4..3ad90f3a77f 100644 --- a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_07()).JML_normal_behavior_operation_contract.0.key +++ b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_07()).JML_normal_behavior_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Sat Jul 13 10:35:21 CEST 2013 -name=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_7()].JML normal_behavior operation contract.0 -contract=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_7()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "DynamicGhost[DynamicGhost::dynamicGhost_7()].JML normal_behavior operation contract.0", + "contract": "DynamicGhost[DynamicGhost::dynamicGhost_7()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "bf6fc51a6a9f63d2160dbb0d44ef932ed3483429")) diff --git a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_08()).JML_normal_behavior_operation_contract.0.key b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_08()).JML_normal_behavior_operation_contract.0.key index a21288cb259..f64275cfd38 100644 --- a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_08()).JML_normal_behavior_operation_contract.0.key +++ b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_08()).JML_normal_behavior_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Fri Jul 12 14:48:14 CEST 2013 -name=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_8()].JML normal_behavior operation contract.0 -contract=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_8()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "DynamicGhost[DynamicGhost::dynamicGhost_8()].JML normal_behavior operation contract.0", + "contract": "DynamicGhost[DynamicGhost::dynamicGhost_8()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "0962c784de534d7c0b122eced35b3316f566f586")) diff --git a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_09()).JML_normal_behavior_operation_contract.0.key b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_09()).JML_normal_behavior_operation_contract.0.key index 1170f971d21..01555b3d392 100644 --- a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_09()).JML_normal_behavior_operation_contract.0.key +++ b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_09()).JML_normal_behavior_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Sat Jul 13 10:35:28 CEST 2013 -name=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_9()].JML normal_behavior operation contract.0 -contract=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_9()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "DynamicGhost[DynamicGhost::dynamicGhost_9()].JML normal_behavior operation contract.0", + "contract": "DynamicGhost[DynamicGhost::dynamicGhost_9()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "bf6fc51a6a9f63d2160dbb0d44ef932ed3483429")) diff --git a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_10()).JML_normal_behavior_operation_contract.0.key b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_10()).JML_normal_behavior_operation_contract.0.key index 10dc6b9e75f..058609160e1 100644 --- a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_10()).JML_normal_behavior_operation_contract.0.key +++ b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_10()).JML_normal_behavior_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Fri Jul 12 14:46:32 CEST 2013 -name=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_10()].JML normal_behavior operation contract.0 -contract=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_10()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "DynamicGhost[DynamicGhost::dynamicGhost_10()].JML normal_behavior operation contract.0", + "contract": "DynamicGhost[DynamicGhost::dynamicGhost_10()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "0962c784de534d7c0b122eced35b3316f566f586")) diff --git a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_20()).JML_normal_behavior_operation_contract.0.key b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_20()).JML_normal_behavior_operation_contract.0.key index 68d07eb46db..7f49aaa2c86 100644 --- a/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_20()).JML_normal_behavior_operation_contract.0.key +++ b/key.ui/examples/performance-test/DynamicGhost(DynamicGhost__dynamicGhost_20()).JML_normal_behavior_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Fri Jul 12 14:48:05 CEST 2013 -name=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_20()].JML normal_behavior operation contract.0 -contract=DynamicGhost[DynamicGhost\\:\\:dynamicGhost_20()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "DynamicGhost[DynamicGhost::dynamicGhost_20()].JML normal_behavior operation contract.0", + "contract": "DynamicGhost[DynamicGhost::dynamicGhost_20()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "0962c784de534d7c0b122eced35b3316f566f586")) diff --git a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_01()).JML_operation_contract.0.key b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_01()).JML_operation_contract.0.key index 5822d2d1d8c..9c35b3f3216 100644 --- a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_01()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_01()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:47:11 CEST 2013 -name=GhostFrame[GhostFrame\\:\\:foo_1()].JML operation contract.0 -contract=GhostFrame[GhostFrame\\:\\:foo_1()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "GhostFrame[GhostFrame::foo_1()].JML operation contract.0", + "contract": "GhostFrame[GhostFrame::foo_1()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_02()).JML_operation_contract.0.key b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_02()).JML_operation_contract.0.key index 0c627c6399f..f15fa5c72e6 100644 --- a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_02()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_02()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:47:21 CEST 2013 -name=GhostFrame[GhostFrame\\:\\:foo_2()].JML operation contract.0 -contract=GhostFrame[GhostFrame\\:\\:foo_2()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "GhostFrame[GhostFrame::foo_2()].JML operation contract.0", + "contract": "GhostFrame[GhostFrame::foo_2()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_03()).JML_operation_contract.0.key b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_03()).JML_operation_contract.0.key index ae5e231b05a..c2b422201fb 100644 --- a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_03()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_03()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:20:22 CEST 2013 -name=GhostFrame[GhostFrame\\:\\:foo_3()].JML operation contract.0 -contract=GhostFrame[GhostFrame\\:\\:foo_3()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "GhostFrame[GhostFrame::foo_3()].JML operation contract.0", + "contract": "GhostFrame[GhostFrame::foo_3()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_04()).JML_operation_contract.0.key b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_04()).JML_operation_contract.0.key index 6fd5a111b8f..88e98ac3e5a 100644 --- a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_04()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_04()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:48:03 CEST 2013 -name=GhostFrame[GhostFrame\\:\\:foo_4()].JML operation contract.0 -contract=GhostFrame[GhostFrame\\:\\:foo_4()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "GhostFrame[GhostFrame::foo_4()].JML operation contract.0", + "contract": "GhostFrame[GhostFrame::foo_4()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_05()).JML_operation_contract.0.key b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_05()).JML_operation_contract.0.key index f36b6e0c4a6..60d57242012 100644 --- a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_05()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_05()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:20:27 CEST 2013 -name=GhostFrame[GhostFrame\\:\\:foo_5()].JML operation contract.0 -contract=GhostFrame[GhostFrame\\:\\:foo_5()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "GhostFrame[GhostFrame::foo_5()].JML operation contract.0", + "contract": "GhostFrame[GhostFrame::foo_5()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_06()).JML_operation_contract.0.key b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_06()).JML_operation_contract.0.key index 8833f6ee9ca..69e71b091b5 100644 --- a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_06()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_06()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:20:31 CEST 2013 -name=GhostFrame[GhostFrame\\:\\:foo_6()].JML operation contract.0 -contract=GhostFrame[GhostFrame\\:\\:foo_6()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "GhostFrame[GhostFrame::foo_6()].JML operation contract.0", + "contract": "GhostFrame[GhostFrame::foo_6()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_07()).JML_operation_contract.0.key b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_07()).JML_operation_contract.0.key index c708a445c17..898290e0685 100644 --- a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_07()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_07()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:20:35 CEST 2013 -name=GhostFrame[GhostFrame\\:\\:foo_7()].JML operation contract.0 -contract=GhostFrame[GhostFrame\\:\\:foo_7()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "GhostFrame[GhostFrame::foo_7()].JML operation contract.0", + "contract": "GhostFrame[GhostFrame::foo_7()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_08()).JML_operation_contract.0.key b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_08()).JML_operation_contract.0.key index 878d538dad7..0f4cceca1d7 100644 --- a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_08()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_08()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:48:07 CEST 2013 -name=GhostFrame[GhostFrame\\:\\:foo_8()].JML operation contract.0 -contract=GhostFrame[GhostFrame\\:\\:foo_8()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "GhostFrame[GhostFrame::foo_8()].JML operation contract.0", + "contract": "GhostFrame[GhostFrame::foo_8()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_09()).JML_operation_contract.0.key b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_09()).JML_operation_contract.0.key index 671c6281e8a..0fd59d56130 100644 --- a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_09()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_09()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:20:39 CEST 2013 -name=GhostFrame[GhostFrame\\:\\:foo_9()].JML operation contract.0 -contract=GhostFrame[GhostFrame\\:\\:foo_9()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "GhostFrame[GhostFrame::foo_9()].JML operation contract.0", + "contract": "GhostFrame[GhostFrame::foo_9()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_10()).JML_operation_contract.0.key b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_10()).JML_operation_contract.0.key index e67279a785e..643feb9d73f 100644 --- a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_10()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_10()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:47:16 CEST 2013 -name=GhostFrame[GhostFrame\\:\\:foo_10()].JML operation contract.0 -contract=GhostFrame[GhostFrame\\:\\:foo_10()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "GhostFrame[GhostFrame::foo_10()].JML operation contract.0", + "contract": "GhostFrame[GhostFrame::foo_10()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_20()).JML_operation_contract.0.key b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_20()).JML_operation_contract.0.key index 9d30efb6966..e71308de7d0 100644 --- a/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_20()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/GhostFrame(GhostFrame__foo_20()).JML_operation_contract.0.key @@ -37,10 +37,9 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:47:56 CEST 2013 -name=GhostFrame[GhostFrame\\:\\:foo_20()].JML operation contract.0 -contract=GhostFrame[GhostFrame\\:\\:foo_20()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "GhostFrame[GhostFrame::foo_20()].JML operation contract.0", + "contract": "GhostFrame[GhostFrame::foo_20()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/performance-test/Inc(Inc__foo_01()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc(Inc__foo_01()).JML_operation_contract.0.key index 3851d600b24..cb79c3f3257 100644 --- a/key.ui/examples/performance-test/Inc(Inc__foo_01()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc(Inc__foo_01()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:48:15 CEST 2013 -name=Inc[Inc\\:\\:foo_1()].JML operation contract.0 -contract=Inc[Inc\\:\\:foo_1()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc[Inc::foo_1()].JML operation contract.0", + "contract": "Inc[Inc::foo_1()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Inc(Inc__foo_02()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc(Inc__foo_02()).JML_operation_contract.0.key index f8cb36c026e..d73fc25d7d6 100644 --- a/key.ui/examples/performance-test/Inc(Inc__foo_02()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc(Inc__foo_02()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:48:24 CEST 2013 -name=Inc[Inc\\:\\:foo_2()].JML operation contract.0 -contract=Inc[Inc\\:\\:foo_2()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc[Inc::foo_2()].JML operation contract.0", + "contract": "Inc[Inc::foo_2()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Inc(Inc__foo_03()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc(Inc__foo_03()).JML_operation_contract.0.key index 4e050a20a79..8f9a1596980 100644 --- a/key.ui/examples/performance-test/Inc(Inc__foo_03()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc(Inc__foo_03()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:20:57 CEST 2013 -name=Inc[Inc\\:\\:foo_3()].JML operation contract.0 -contract=Inc[Inc\\:\\:foo_3()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc[Inc::foo_3()].JML operation contract.0", + "contract": "Inc[Inc::foo_3()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Inc(Inc__foo_04()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc(Inc__foo_04()).JML_operation_contract.0.key index a27017b1459..b20ed953ba8 100644 --- a/key.ui/examples/performance-test/Inc(Inc__foo_04()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc(Inc__foo_04()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:48:33 CEST 2013 -name=Inc[Inc\\:\\:foo_4()].JML operation contract.0 -contract=Inc[Inc\\:\\:foo_4()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc[Inc::foo_4()].JML operation contract.0", + "contract": "Inc[Inc::foo_4()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Inc(Inc__foo_05()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc(Inc__foo_05()).JML_operation_contract.0.key index f531bc06791..acb5a413719 100644 --- a/key.ui/examples/performance-test/Inc(Inc__foo_05()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc(Inc__foo_05()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:21:03 CEST 2013 -name=Inc[Inc\\:\\:foo_5()].JML operation contract.0 -contract=Inc[Inc\\:\\:foo_5()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc[Inc::foo_5()].JML operation contract.0", + "contract": "Inc[Inc::foo_5()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Inc(Inc__foo_06()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc(Inc__foo_06()).JML_operation_contract.0.key index c326de73757..8d9421428f4 100644 --- a/key.ui/examples/performance-test/Inc(Inc__foo_06()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc(Inc__foo_06()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:21:07 CEST 2013 -name=Inc[Inc\\:\\:foo_6()].JML operation contract.0 -contract=Inc[Inc\\:\\:foo_6()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc[Inc::foo_6()].JML operation contract.0", + "contract": "Inc[Inc::foo_6()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Inc(Inc__foo_07()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc(Inc__foo_07()).JML_operation_contract.0.key index 459eb0604ba..562193bcca7 100644 --- a/key.ui/examples/performance-test/Inc(Inc__foo_07()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc(Inc__foo_07()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:21:12 CEST 2013 -name=Inc[Inc\\:\\:foo_7()].JML operation contract.0 -contract=Inc[Inc\\:\\:foo_7()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc[Inc::foo_7()].JML operation contract.0", + "contract": "Inc[Inc::foo_7()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Inc(Inc__foo_08()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc(Inc__foo_08()).JML_operation_contract.0.key index 94707d45dd8..cb3051632d9 100644 --- a/key.ui/examples/performance-test/Inc(Inc__foo_08()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc(Inc__foo_08()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:48:46 CEST 2013 -name=Inc[Inc\\:\\:foo_8()].JML operation contract.0 -contract=Inc[Inc\\:\\:foo_8()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc[Inc::foo_8()].JML operation contract.0", + "contract": "Inc[Inc::foo_8()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Inc(Inc__foo_09()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc(Inc__foo_09()).JML_operation_contract.0.key index a6afde22ef5..4570be5c0ee 100644 --- a/key.ui/examples/performance-test/Inc(Inc__foo_09()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc(Inc__foo_09()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:21:16 CEST 2013 -name=Inc[Inc\\:\\:foo_9()].JML operation contract.0 -contract=Inc[Inc\\:\\:foo_9()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc[Inc::foo_9()].JML operation contract.0", + "contract": "Inc[Inc::foo_9()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Inc(Inc__foo_10()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc(Inc__foo_10()).JML_operation_contract.0.key index 9e8ae9849ed..c094e30ed96 100644 --- a/key.ui/examples/performance-test/Inc(Inc__foo_10()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc(Inc__foo_10()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:48:20 CEST 2013 -name=Inc[Inc\\:\\:foo_10()].JML operation contract.0 -contract=Inc[Inc\\:\\:foo_10()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc[Inc::foo_10()].JML operation contract.0", + "contract": "Inc[Inc::foo_10()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Inc(Inc__foo_20()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc(Inc__foo_20()).JML_operation_contract.0.key index 3cc1778f10a..c1857f332e0 100644 --- a/key.ui/examples/performance-test/Inc(Inc__foo_20()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc(Inc__foo_20()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:48:28 CEST 2013 -name=Inc[Inc\\:\\:foo_20()].JML operation contract.0 -contract=Inc[Inc\\:\\:foo_20()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc[Inc::foo_20()].JML operation contract.0", + "contract": "Inc[Inc::foo_20()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Inc2(Inc2__foo_01()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc2(Inc2__foo_01()).JML_operation_contract.0.key index 776e1a1900b..d7facff7b5d 100644 --- a/key.ui/examples/performance-test/Inc2(Inc2__foo_01()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc2(Inc2__foo_01()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:48:55 CEST 2013 -name=Inc2[Inc2\\:\\:foo_1()].JML operation contract.0 -contract=Inc2[Inc2\\:\\:foo_1()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc2[Inc2::foo_1()].JML operation contract.0", + "contract": "Inc2[Inc2::foo_1()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Inc2(Inc2__foo_02()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc2(Inc2__foo_02()).JML_operation_contract.0.key index 0072cb8c925..d8f550e3af2 100644 --- a/key.ui/examples/performance-test/Inc2(Inc2__foo_02()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc2(Inc2__foo_02()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:49:04 CEST 2013 -name=Inc2[Inc2\\:\\:foo_2()].JML operation contract.0 -contract=Inc2[Inc2\\:\\:foo_2()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc2[Inc2::foo_2()].JML operation contract.0", + "contract": "Inc2[Inc2::foo_2()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Inc2(Inc2__foo_03()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc2(Inc2__foo_03()).JML_operation_contract.0.key index 81f0287d46c..0a7b42c83a9 100644 --- a/key.ui/examples/performance-test/Inc2(Inc2__foo_03()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc2(Inc2__foo_03()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:21:33 CEST 2013 -name=Inc2[Inc2\\:\\:foo_3()].JML operation contract.0 -contract=Inc2[Inc2\\:\\:foo_3()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc2[Inc2::foo_3()].JML operation contract.0", + "contract": "Inc2[Inc2::foo_3()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Inc2(Inc2__foo_04()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc2(Inc2__foo_04()).JML_operation_contract.0.key index 9983d6ae2e3..8373d9e7e2b 100644 --- a/key.ui/examples/performance-test/Inc2(Inc2__foo_04()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc2(Inc2__foo_04()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:49:13 CEST 2013 -name=Inc2[Inc2\\:\\:foo_4()].JML operation contract.0 -contract=Inc2[Inc2\\:\\:foo_4()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc2[Inc2::foo_4()].JML operation contract.0", + "contract": "Inc2[Inc2::foo_4()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Inc2(Inc2__foo_05()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc2(Inc2__foo_05()).JML_operation_contract.0.key index 3d308c48794..c8b0661f0be 100644 --- a/key.ui/examples/performance-test/Inc2(Inc2__foo_05()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc2(Inc2__foo_05()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:21:48 CEST 2013 -name=Inc2[Inc2\\:\\:foo_5()].JML operation contract.0 -contract=Inc2[Inc2\\:\\:foo_5()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc2[Inc2::foo_5()].JML operation contract.0", + "contract": "Inc2[Inc2::foo_5()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Inc2(Inc2__foo_06()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc2(Inc2__foo_06()).JML_operation_contract.0.key index 8078e00781b..f722ec92641 100644 --- a/key.ui/examples/performance-test/Inc2(Inc2__foo_06()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc2(Inc2__foo_06()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:21:53 CEST 2013 -name=Inc2[Inc2\\:\\:foo_6()].JML operation contract.0 -contract=Inc2[Inc2\\:\\:foo_6()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc2[Inc2::foo_6()].JML operation contract.0", + "contract": "Inc2[Inc2::foo_6()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Inc2(Inc2__foo_07()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc2(Inc2__foo_07()).JML_operation_contract.0.key index 52127e97937..48fe4f3dcce 100644 --- a/key.ui/examples/performance-test/Inc2(Inc2__foo_07()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc2(Inc2__foo_07()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:21:58 CEST 2013 -name=Inc2[Inc2\\:\\:foo_7()].JML operation contract.0 -contract=Inc2[Inc2\\:\\:foo_7()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc2[Inc2::foo_7()].JML operation contract.0", + "contract": "Inc2[Inc2::foo_7()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Inc2(Inc2__foo_08()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc2(Inc2__foo_08()).JML_operation_contract.0.key index f8c63bb42f7..441d4862e43 100644 --- a/key.ui/examples/performance-test/Inc2(Inc2__foo_08()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc2(Inc2__foo_08()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:49:22 CEST 2013 -name=Inc2[Inc2\\:\\:foo_8()].JML operation contract.0 -contract=Inc2[Inc2\\:\\:foo_8()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc2[Inc2::foo_8()].JML operation contract.0", + "contract": "Inc2[Inc2::foo_8()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Inc2(Inc2__foo_09()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc2(Inc2__foo_09()).JML_operation_contract.0.key index 92b6698a123..28108bc9cd2 100644 --- a/key.ui/examples/performance-test/Inc2(Inc2__foo_09()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc2(Inc2__foo_09()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:22:02 CEST 2013 -name=Inc2[Inc2\\:\\:foo_9()].JML operation contract.0 -contract=Inc2[Inc2\\:\\:foo_9()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc2[Inc2::foo_9()].JML operation contract.0", + "contract": "Inc2[Inc2::foo_9()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Inc2(Inc2__foo_10()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc2(Inc2__foo_10()).JML_operation_contract.0.key index a7c6d524278..e59221acfe2 100644 --- a/key.ui/examples/performance-test/Inc2(Inc2__foo_10()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc2(Inc2__foo_10()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:49:00 CEST 2013 -name=Inc2[Inc2\\:\\:foo_10()].JML operation contract.0 -contract=Inc2[Inc2\\:\\:foo_10()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc2[Inc2::foo_10()].JML operation contract.0", + "contract": "Inc2[Inc2::foo_10()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Inc2(Inc2__foo_20()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc2(Inc2__foo_20()).JML_operation_contract.0.key index c31b2f1f499..d827f1eeed6 100644 --- a/key.ui/examples/performance-test/Inc2(Inc2__foo_20()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc2(Inc2__foo_20()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:49:08 CEST 2013 -name=Inc2[Inc2\\:\\:foo_20()].JML operation contract.0 -contract=Inc2[Inc2\\:\\:foo_20()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc2[Inc2::foo_20()].JML operation contract.0", + "contract": "Inc2[Inc2::foo_20()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Inc2(Inc2__foo_40()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Inc2(Inc2__foo_40()).JML_operation_contract.0.key index cb87fdd0db3..48e3d83fed9 100644 --- a/key.ui/examples/performance-test/Inc2(Inc2__foo_40()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Inc2(Inc2__foo_40()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:49:17 CEST 2013 -name=Inc2[Inc2\\:\\:foo_40()].JML operation contract.0 -contract=Inc2[Inc2\\:\\:foo_40()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Inc2[Inc2::foo_40()].JML operation contract.0", + "contract": "Inc2[Inc2::foo_40()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_01()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_01()).JML_operation_contract.0.key index 03006c12526..646892261bb 100644 --- a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_01()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_01()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:49:29 CEST 2013 -name=Modelfield[Modelfield\\:\\:foo_1()].JML operation contract.0 -contract=Modelfield[Modelfield\\:\\:foo_1()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Modelfield[Modelfield::foo_1()].JML operation contract.0", + "contract": "Modelfield[Modelfield::foo_1()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_02()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_02()).JML_operation_contract.0.key index fbe29db1d58..eb3cf99563d 100644 --- a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_02()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_02()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:49:37 CEST 2013 -name=Modelfield[Modelfield\\:\\:foo_2()].JML operation contract.0 -contract=Modelfield[Modelfield\\:\\:foo_2()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Modelfield[Modelfield::foo_2()].JML operation contract.0", + "contract": "Modelfield[Modelfield::foo_2()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_03()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_03()).JML_operation_contract.0.key index 2e178db044e..5773aa012ca 100644 --- a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_03()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_03()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:22:20 CEST 2013 -name=Modelfield[Modelfield\\:\\:foo_3()].JML operation contract.0 -contract=Modelfield[Modelfield\\:\\:foo_3()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Modelfield[Modelfield::foo_3()].JML operation contract.0", + "contract": "Modelfield[Modelfield::foo_3()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_04()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_04()).JML_operation_contract.0.key index 38cfc349bb0..050a6fe518d 100644 --- a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_04()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_04()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:49:46 CEST 2013 -name=Modelfield[Modelfield\\:\\:foo_4()].JML operation contract.0 -contract=Modelfield[Modelfield\\:\\:foo_4()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Modelfield[Modelfield::foo_4()].JML operation contract.0", + "contract": "Modelfield[Modelfield::foo_4()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_05()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_05()).JML_operation_contract.0.key index 73d7961790d..60fa2549c40 100644 --- a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_05()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_05()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:22:25 CEST 2013 -name=Modelfield[Modelfield\\:\\:foo_5()].JML operation contract.0 -contract=Modelfield[Modelfield\\:\\:foo_5()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Modelfield[Modelfield::foo_5()].JML operation contract.0", + "contract": "Modelfield[Modelfield::foo_5()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_06()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_06()).JML_operation_contract.0.key index 01315f5202d..212144b64ac 100644 --- a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_06()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_06()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:22:29 CEST 2013 -name=Modelfield[Modelfield\\:\\:foo_6()].JML operation contract.0 -contract=Modelfield[Modelfield\\:\\:foo_6()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Modelfield[Modelfield::foo_6()].JML operation contract.0", + "contract": "Modelfield[Modelfield::foo_6()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_07()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_07()).JML_operation_contract.0.key index e5228f80359..c8d53649930 100644 --- a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_07()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_07()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:22:33 CEST 2013 -name=Modelfield[Modelfield\\:\\:foo_7()].JML operation contract.0 -contract=Modelfield[Modelfield\\:\\:foo_7()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Modelfield[Modelfield::foo_7()].JML operation contract.0", + "contract": "Modelfield[Modelfield::foo_7()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_08()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_08()).JML_operation_contract.0.key index 1080104dfa1..7822cbeeabb 100644 --- a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_08()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_08()).JML_operation_contract.0.key @@ -37,10 +37,9 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:49:51 CEST 2013 -name=Modelfield[Modelfield\\:\\:foo_8()].JML operation contract.0 -contract=Modelfield[Modelfield\\:\\:foo_8()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Modelfield[Modelfield::foo_8()].JML operation contract.0", + "contract": "Modelfield[Modelfield::foo_8()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_09()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_09()).JML_operation_contract.0.key index 8d688cdcdb8..67cae070a7e 100644 --- a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_09()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_09()).JML_operation_contract.0.key @@ -40,12 +40,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Mon Jul 15 15:22:39 CEST 2013 -name=Modelfield[Modelfield\\:\\:foo_9()].JML operation contract.0 -contract=Modelfield[Modelfield\\:\\:foo_9()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Modelfield[Modelfield::foo_9()].JML operation contract.0", + "contract": "Modelfield[Modelfield::foo_9()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "9b99a36a7241f1d1a5a92957dac79a9ae0b82a2b")) diff --git a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_10()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_10()).JML_operation_contract.0.key index 7a78f4c14d4..ee6e3d5660b 100644 --- a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_10()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_10()).JML_operation_contract.0.key @@ -37,12 +37,11 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:49:33 CEST 2013 -name=Modelfield[Modelfield\\:\\:foo_10()].JML operation contract.0 -contract=Modelfield[Modelfield\\:\\:foo_10()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Modelfield[Modelfield::foo_10()].JML operation contract.0", + "contract": "Modelfield[Modelfield::foo_10()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "christoph" ) (keyVersion "98151b013121376e2e9354875c034e6e91892cac")) diff --git a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_20()).JML_operation_contract.0.key b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_20()).JML_operation_contract.0.key index c0857d00889..c0b731d0d2c 100644 --- a/key.ui/examples/performance-test/Modelfield(Modelfield__foo_20()).JML_operation_contract.0.key +++ b/key.ui/examples/performance-test/Modelfield(Modelfield__foo_20()).JML_operation_contract.0.key @@ -37,10 +37,9 @@ \javaSource "./src.templates"; -\proofObligation "#Proof Obligation Settings -#Wed Jun 26 17:49:41 CEST 2013 -name=Modelfield[Modelfield\\:\\:foo_20()].JML operation contract.0 -contract=Modelfield[Modelfield\\:\\:foo_20()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Modelfield[Modelfield::foo_20()].JML operation contract.0", + "contract": "Modelfield[Modelfield::foo_20()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/performance-test/Test(Test__a0(int)).JML_normal_behavior_operation_contract.0.key b/key.ui/examples/performance-test/Test(Test__a0(int)).JML_normal_behavior_operation_contract.0.key index e0d962be76b..5fc78e247c1 100644 --- a/key.ui/examples/performance-test/Test(Test__a0(int)).JML_normal_behavior_operation_contract.0.key +++ b/key.ui/examples/performance-test/Test(Test__a0(int)).JML_normal_behavior_operation_contract.0.key @@ -41,9 +41,8 @@ \javaSource "src.templates/"; -\proofObligation "#Proof Obligation Settings -#Sat Jul 02 14:00:34 CEST 2016 -name=Test[Test\\:\\:a0(int)].JML normal_behavior operation contract.0 -contract=Test[Test\\:\\:a0(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Test[Test::a0(int)].JML normal_behavior operation contract.0", + "contract": "Test[Test::a0(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/performance-test/Test(Test__a1(int)).JML_normal_behavior_operation_contract.0.key b/key.ui/examples/performance-test/Test(Test__a1(int)).JML_normal_behavior_operation_contract.0.key index 21a5691aed0..293203c2cbe 100644 --- a/key.ui/examples/performance-test/Test(Test__a1(int)).JML_normal_behavior_operation_contract.0.key +++ b/key.ui/examples/performance-test/Test(Test__a1(int)).JML_normal_behavior_operation_contract.0.key @@ -41,9 +41,8 @@ \javaSource "src.templates/"; -\proofObligation "#Proof Obligation Settings -#Sat Jul 02 14:00:44 CEST 2016 -name=Test[Test\\:\\:a1(int)].JML normal_behavior operation contract.0 -contract=Test[Test\\:\\:a1(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Test[Test::a1(int)].JML normal_behavior operation contract.0", + "contract": "Test[Test::a1(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/performance-test/Test(Test__f1(int)).JML_normal_behavior_operation_contract.0.key b/key.ui/examples/performance-test/Test(Test__f1(int)).JML_normal_behavior_operation_contract.0.key index 035f74f6855..c3ba82e0990 100644 --- a/key.ui/examples/performance-test/Test(Test__f1(int)).JML_normal_behavior_operation_contract.0.key +++ b/key.ui/examples/performance-test/Test(Test__f1(int)).JML_normal_behavior_operation_contract.0.key @@ -41,9 +41,8 @@ \javaSource "src.templates/"; -\proofObligation "#Proof Obligation Settings -#Sat Jul 02 14:01:39 CEST 2016 -name=Test[Test\\:\\:f1(int)].JML normal_behavior operation contract.0 -contract=Test[Test\\:\\:f1(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Test[Test::f1(int)].JML normal_behavior operation contract.0", + "contract": "Test[Test::f1(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/assert/assert1.key b/key.ui/examples/standard_key/java_dl/assert/assert1.key index 3f23984070e..9fcbb104228 100644 --- a/key.ui/examples/standard_key/java_dl/assert/assert1.key +++ b/key.ui/examples/standard_key/java_dl/assert/assert1.key @@ -9,10 +9,9 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jan 10 13:45:07 CET 2014 -name=C[C\\:\\:foo()].JML normal_behavior operation contract.0 -contract=C[C\\:\\:foo()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "C[C::foo()].JML normal_behavior operation contract.0", + "contract": "C[C::foo()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/assert/assert2.key b/key.ui/examples/standard_key/java_dl/assert/assert2.key index af7d21b0edf..e48be776488 100644 --- a/key.ui/examples/standard_key/java_dl/assert/assert2.key +++ b/key.ui/examples/standard_key/java_dl/assert/assert2.key @@ -9,11 +9,10 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jan 10 13:45:27 CET 2014 -name=C[C\\:\\:bar()].JML exceptional_behavior operation contract.0 -contract=C[C\\:\\:bar()].JML exceptional_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "C[C::bar()].JML exceptional_behavior operation contract.0", + "contract": "C[C::bar()].JML exceptional_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/assert/assert3.key b/key.ui/examples/standard_key/java_dl/assert/assert3.key index fabe8540437..e307a297661 100644 --- a/key.ui/examples/standard_key/java_dl/assert/assert3.key +++ b/key.ui/examples/standard_key/java_dl/assert/assert3.key @@ -9,10 +9,9 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jan 10 13:45:48 CET 2014 -name=C[C\\:\\:foo()].JML normal_behavior operation contract.0 -contract=C[C\\:\\:foo()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "C[C::foo()].JML normal_behavior operation contract.0", + "contract": "C[C::foo()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/constructorException/regressionTestBug1333.key b/key.ui/examples/standard_key/java_dl/constructorException/regressionTestBug1333.key index 74fe5934ae5..e466d03b9ef 100644 --- a/key.ui/examples/standard_key/java_dl/constructorException/regressionTestBug1333.key +++ b/key.ui/examples/standard_key/java_dl/constructorException/regressionTestBug1333.key @@ -7,9 +7,8 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Jul 10 10:31:47 CEST 2013 -name=False[False\\:\\:False()].JML normal_behavior operation contract.0 -contract=False[False\\:\\:False()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "False[False::False()].JML normal_behavior operation contract.0", + "contract": "False[False::False()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/constructorException/test.key b/key.ui/examples/standard_key/java_dl/constructorException/test.key index d12c67789bc..905bffe9949 100644 --- a/key.ui/examples/standard_key/java_dl/constructorException/test.key +++ b/key.ui/examples/standard_key/java_dl/constructorException/test.key @@ -1,9 +1,8 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Mon Jul 08 15:22:51 CEST 2013 -name=Test[Test\\:\\:Test(int)].JML operation contract.0 -contract=Test[Test\\:\\:Test(int)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Test[Test::Test(int)].JML operation contract.0", + "contract": "Test[Test::Test(int)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/deepNonNull/deepNonNull0.key b/key.ui/examples/standard_key/java_dl/deepNonNull/deepNonNull0.key index 43f02929ea6..7a5f6d48657 100644 --- a/key.ui/examples/standard_key/java_dl/deepNonNull/deepNonNull0.key +++ b/key.ui/examples/standard_key/java_dl/deepNonNull/deepNonNull0.key @@ -1,9 +1,8 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Thu Feb 13 14:11:07 CET 2014 -name=Arrays[Arrays\\:\\:get()].JML operation contract.0 -contract=Arrays[Arrays\\:\\:get()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Arrays[Arrays::get()].JML operation contract.0", + "contract": "Arrays[Arrays::get()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/deepNonNull/deepNonNull1.key b/key.ui/examples/standard_key/java_dl/deepNonNull/deepNonNull1.key index 4c85753d873..4cf38643154 100644 --- a/key.ui/examples/standard_key/java_dl/deepNonNull/deepNonNull1.key +++ b/key.ui/examples/standard_key/java_dl/deepNonNull/deepNonNull1.key @@ -1,9 +1,8 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Thu Feb 13 14:11:22 CET 2014 -name=Arrays[Arrays\\:\\:head()].JML operation contract.0 -contract=Arrays[Arrays\\:\\:head()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Arrays[Arrays::head()].JML operation contract.0", + "contract": "Arrays[Arrays::head()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/deepNonNull/deepNonNull2.key b/key.ui/examples/standard_key/java_dl/deepNonNull/deepNonNull2.key index 8006e1442bc..4adbb937d6f 100644 --- a/key.ui/examples/standard_key/java_dl/deepNonNull/deepNonNull2.key +++ b/key.ui/examples/standard_key/java_dl/deepNonNull/deepNonNull2.key @@ -1,9 +1,8 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Feb 14 09:27:05 CET 2014 -name=Arrays[Arrays\\:\\:unprovable(java.lang.Object)].JML operation contract.0 -contract=Arrays[Arrays\\:\\:unprovable(java.lang.Object)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Arrays[Arrays::unprovable(java.lang.Object)].JML operation contract.0", + "contract": "Arrays[Arrays::unprovable(java.lang.Object)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/deepNonNull/deepNonNull3.key b/key.ui/examples/standard_key/java_dl/deepNonNull/deepNonNull3.key index b870da3aa8a..17e3aa26eb5 100644 --- a/key.ui/examples/standard_key/java_dl/deepNonNull/deepNonNull3.key +++ b/key.ui/examples/standard_key/java_dl/deepNonNull/deepNonNull3.key @@ -1,9 +1,8 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Feb 14 11:35:05 CET 2014 -name=Arrays[Arrays\\:\\:head([[[[Ljava.lang.Object)].JML operation contract.0 -contract=Arrays[Arrays\\:\\:head([[[[Ljava.lang.Object)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Arrays[Arrays::head([[[[Ljava.lang.Object)].JML operation contract.0", + "contract": "Arrays[Arrays::head([[[[Ljava.lang.Object)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/java5/for_Array.key b/key.ui/examples/standard_key/java_dl/java5/for_Array.key index c9ac4bd02a5..922cc9050c5 100644 --- a/key.ui/examples/standard_key/java_dl/java5/for_Array.key +++ b/key.ui/examples/standard_key/java_dl/java5/for_Array.key @@ -45,10 +45,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Wed Aug 15 11:01:30 CEST 2012 -name=For[For\\:\\:sum([I)].JML operation contract.0 -contract=For[For\\:\\:sum([I)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "For[For::sum([I)].JML operation contract.0", + "contract": "For[For::sum([I)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/java5/for_Iterable.key b/key.ui/examples/standard_key/java_dl/java5/for_Iterable.key index 382e20d77c5..c7ca47671b4 100644 --- a/key.ui/examples/standard_key/java_dl/java5/for_Iterable.key +++ b/key.ui/examples/standard_key/java_dl/java5/for_Iterable.key @@ -45,10 +45,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Aug 02 09:50:46 CEST 2012 -name=For[For\\:\\:infiniteLoop(For)].JML operation contract.0 -contract=For[For\\:\\:infiniteLoop(For)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "For[For::infiniteLoop(For)].JML operation contract.0", + "contract": "For[For::infiniteLoop(For)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/java5/for_ReferenceArray.key b/key.ui/examples/standard_key/java_dl/java5/for_ReferenceArray.key index 179f04ab542..0b9d833ec9a 100644 --- a/key.ui/examples/standard_key/java_dl/java5/for_ReferenceArray.key +++ b/key.ui/examples/standard_key/java_dl/java5/for_ReferenceArray.key @@ -11,10 +11,9 @@ \javaSource "src"; -\proofObligation "#Proof Obligation Settings -#Thu Dec 20 11:57:36 CET 2012 -name=ForReferenceArray[ForReferenceArray\\:\\:foo([Ljava.lang.Object)].JML operation contract.0 -contract=ForReferenceArray[ForReferenceArray\\:\\:foo([Ljava.lang.Object)].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ForReferenceArray[ForReferenceArray::foo([Ljava.lang.Object)].JML operation contract.0", + "contract": "ForReferenceArray[ForReferenceArray::foo([Ljava.lang.Object)].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/jml-assert/assert-old/inc-field.key b/key.ui/examples/standard_key/java_dl/jml-assert/assert-old/inc-field.key index 28cca85d9f0..7cb3160a1b8 100644 --- a/key.ui/examples/standard_key/java_dl/jml-assert/assert-old/inc-field.key +++ b/key.ui/examples/standard_key/java_dl/jml-assert/assert-old/inc-field.key @@ -1,7 +1,7 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -contract=Inc[Inc\\:\\:inc_field()].JML normal_behavior operation contract.0 -name=Inc[Inc\\:\\:inc_field()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "Inc[Inc::inc_field()].JML normal_behavior operation contract.0", + "name": "Inc[Inc::inc_field()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/jml-assert/assert-old/inc-ghost-field.key b/key.ui/examples/standard_key/java_dl/jml-assert/assert-old/inc-ghost-field.key index 77b31631276..4f040b4a6e7 100644 --- a/key.ui/examples/standard_key/java_dl/jml-assert/assert-old/inc-ghost-field.key +++ b/key.ui/examples/standard_key/java_dl/jml-assert/assert-old/inc-ghost-field.key @@ -1,7 +1,7 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -contract=Inc[Inc\\:\\:inc_ghost_field()].JML normal_behavior operation contract.0 -name=Inc[Inc\\:\\:inc_ghost_field()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "Inc[Inc::inc_ghost_field()].JML normal_behavior operation contract.0", + "name": "Inc[Inc::inc_ghost_field()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/jml-assert/assert-old/inc-parameter-field.key b/key.ui/examples/standard_key/java_dl/jml-assert/assert-old/inc-parameter-field.key index 5b75484cbdf..c105c3a8a73 100644 --- a/key.ui/examples/standard_key/java_dl/jml-assert/assert-old/inc-parameter-field.key +++ b/key.ui/examples/standard_key/java_dl/jml-assert/assert-old/inc-parameter-field.key @@ -1,7 +1,7 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -contract=Inc[Inc\\:\\:inc_parameter_field(Inc)].JML normal_behavior operation contract.0 -name=Inc[Inc\\:\\:inc_parameter_field(Inc)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "Inc[Inc::inc_parameter_field(Inc)].JML normal_behavior operation contract.0", + "name": "Inc[Inc::inc_parameter_field(Inc)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/jml-assert/assert-old/inc-parameter.key b/key.ui/examples/standard_key/java_dl/jml-assert/assert-old/inc-parameter.key index 37193a95579..ee2e7dcc9f1 100644 --- a/key.ui/examples/standard_key/java_dl/jml-assert/assert-old/inc-parameter.key +++ b/key.ui/examples/standard_key/java_dl/jml-assert/assert-old/inc-parameter.key @@ -1,7 +1,7 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -contract=Inc[Inc\\:\\:inc_parameter(int)].JML normal_behavior operation contract.0 -name=Inc[Inc\\:\\:inc_parameter(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "Inc[Inc::inc_parameter(int)].JML normal_behavior operation contract.0", + "name": "Inc[Inc::inc_parameter(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/jml-assert/assert.key b/key.ui/examples/standard_key/java_dl/jml-assert/assert.key index 7d7b4aa1ccf..ef7534ecf9e 100644 --- a/key.ui/examples/standard_key/java_dl/jml-assert/assert.key +++ b/key.ui/examples/standard_key/java_dl/jml-assert/assert.key @@ -35,9 +35,8 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri May 03 11:42:55 CEST 2013 -name=Assert[Assert\\:\\:createArray(int)].JML normal_behavior operation contract.0 -contract=Assert[Assert\\:\\:createArray(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Assert[Assert::createArray(int)].JML normal_behavior operation contract.0", + "contract": "Assert[Assert::createArray(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/jml-assert/assert_assume_order.key b/key.ui/examples/standard_key/java_dl/jml-assert/assert_assume_order.key index d8aa3473f24..eb7f016655f 100644 --- a/key.ui/examples/standard_key/java_dl/jml-assert/assert_assume_order.key +++ b/key.ui/examples/standard_key/java_dl/jml-assert/assert_assume_order.key @@ -15,8 +15,8 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -name=Assert[AssertAssume\\:\\:singleAssumeAssert(int)].JML normal_behavior operation contract.0 -contract=AssertAssume[AssertAssume\\:\\:singleAssumeAssert(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Assert[AssertAssume::singleAssumeAssert(int)].JML normal_behavior operation contract.0", + "contract": "AssertAssume[AssertAssume::singleAssumeAssert(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/jml-assert/model-methods-instance-instance.key b/key.ui/examples/standard_key/java_dl/jml-assert/model-methods-instance-instance.key index e3b3ab376ef..caa5f8ed4b9 100644 --- a/key.ui/examples/standard_key/java_dl/jml-assert/model-methods-instance-instance.key +++ b/key.ui/examples/standard_key/java_dl/jml-assert/model-methods-instance-instance.key @@ -1,7 +1,7 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -name=ModelMethods[ModelMethods\\:\\:test3()].JML normal_behavior operation contract.0 -contract=ModelMethods[ModelMethods\\:\\:test3()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ModelMethods[ModelMethods::test3()].JML normal_behavior operation contract.0", + "contract": "ModelMethods[ModelMethods::test3()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/jml-assert/model-methods-instance-static.key b/key.ui/examples/standard_key/java_dl/jml-assert/model-methods-instance-static.key index df623d13a77..767da39aa26 100644 --- a/key.ui/examples/standard_key/java_dl/jml-assert/model-methods-instance-static.key +++ b/key.ui/examples/standard_key/java_dl/jml-assert/model-methods-instance-static.key @@ -1,7 +1,7 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -name=ModelMethods[ModelMethods\\:\\:test2()].JML normal_behavior operation contract.0 -contract=ModelMethods[ModelMethods\\:\\:test2()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ModelMethods[ModelMethods::test2()].JML normal_behavior operation contract.0", + "contract": "ModelMethods[ModelMethods::test2()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/jml-assert/model-methods-static-instance.key b/key.ui/examples/standard_key/java_dl/jml-assert/model-methods-static-instance.key index 0073bf66151..2ee1f016c5f 100644 --- a/key.ui/examples/standard_key/java_dl/jml-assert/model-methods-static-instance.key +++ b/key.ui/examples/standard_key/java_dl/jml-assert/model-methods-static-instance.key @@ -1,7 +1,7 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -name=ModelMethods[ModelMethods\\:\\:test4()].JML normal_behavior operation contract.0 -contract=ModelMethods[ModelMethods\\:\\:test4()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ModelMethods[ModelMethods::test4()].JML normal_behavior operation contract.0", + "contract": "ModelMethods[ModelMethods::test4()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/jml-assert/model-methods-static-static.key b/key.ui/examples/standard_key/java_dl/jml-assert/model-methods-static-static.key index b38ef31cc8c..64ad8436295 100644 --- a/key.ui/examples/standard_key/java_dl/jml-assert/model-methods-static-static.key +++ b/key.ui/examples/standard_key/java_dl/jml-assert/model-methods-static-static.key @@ -1,7 +1,7 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -name=ModelMethods[ModelMethods\\:\\:test1()].JML normal_behavior operation contract.0 -contract=ModelMethods[ModelMethods\\:\\:test1()].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "ModelMethods[ModelMethods::test1()].JML normal_behavior operation contract.0", + "contract": "ModelMethods[ModelMethods::test1()].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/jml-assert/quantor-assert.key b/key.ui/examples/standard_key/java_dl/jml-assert/quantor-assert.key index 525312262c3..7a04e60968f 100644 --- a/key.ui/examples/standard_key/java_dl/jml-assert/quantor-assert.key +++ b/key.ui/examples/standard_key/java_dl/jml-assert/quantor-assert.key @@ -1,7 +1,7 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -name=Quantor[Quantor\\:\\:square1(int)].JML normal_behavior operation contract.0 -contract=Quantor[Quantor\\:\\:square1(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Quantor[Quantor::square1(int)].JML normal_behavior operation contract.0", + "contract": "Quantor[Quantor::square1(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/jml-assert/quantor-assume.key b/key.ui/examples/standard_key/java_dl/jml-assert/quantor-assume.key index 385739e63ca..4514593649b 100644 --- a/key.ui/examples/standard_key/java_dl/jml-assert/quantor-assume.key +++ b/key.ui/examples/standard_key/java_dl/jml-assert/quantor-assume.key @@ -1,7 +1,7 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -name=Quantor[Quantor\\:\\:square2(int)].JML normal_behavior operation contract.0 -contract=Quantor[Quantor\\:\\:square2(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Quantor[Quantor::square2(int)].JML normal_behavior operation contract.0", + "contract": "Quantor[Quantor::square2(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/jml-assert/recursion-assert.key b/key.ui/examples/standard_key/java_dl/jml-assert/recursion-assert.key index 8eb6ad4e7dd..80308592007 100644 --- a/key.ui/examples/standard_key/java_dl/jml-assert/recursion-assert.key +++ b/key.ui/examples/standard_key/java_dl/jml-assert/recursion-assert.key @@ -1,7 +1,7 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -name=RecursiveMethod[RecursiveMethod\\:\\:fac1(int)].JML normal_behavior operation contract.0 -contract=RecursiveMethod[RecursiveMethod\\:\\:fac1(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "RecursiveMethod[RecursiveMethod::fac1(int)].JML normal_behavior operation contract.0", + "contract": "RecursiveMethod[RecursiveMethod::fac1(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/jml-assert/recursion-assume.key b/key.ui/examples/standard_key/java_dl/jml-assert/recursion-assume.key index bcc5f913c8d..f3a4c3a8c73 100644 --- a/key.ui/examples/standard_key/java_dl/jml-assert/recursion-assume.key +++ b/key.ui/examples/standard_key/java_dl/jml-assert/recursion-assume.key @@ -1,7 +1,7 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -name=RecursiveMethod[RecursiveMethod\\:\\:fac2(int)].JML normal_behavior operation contract.0 -contract=RecursiveMethod[RecursiveMethod\\:\\:fac2(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "RecursiveMethod[RecursiveMethod::fac2(int)].JML normal_behavior operation contract.0", + "contract": "RecursiveMethod[RecursiveMethod::fac2(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/jml-min/min-unprovable1.key b/key.ui/examples/standard_key/java_dl/jml-min/min-unprovable1.key index f11b2569ab8..a109f8b2ee5 100644 --- a/key.ui/examples/standard_key/java_dl/jml-min/min-unprovable1.key +++ b/key.ui/examples/standard_key/java_dl/jml-min/min-unprovable1.key @@ -1,8 +1,7 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 26 13:39:58 CEST 2013 -name=Min[Min\\:\\:foo()].JML operation contract.0 -contract=Min[Min\\:\\:foo()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Min[Min::foo()].JML operation contract.0", + "contract": "Min[Min::foo()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/jml-min/min-unprovable2.key b/key.ui/examples/standard_key/java_dl/jml-min/min-unprovable2.key index a09ae1bdb32..e97f8a96a4a 100644 --- a/key.ui/examples/standard_key/java_dl/jml-min/min-unprovable2.key +++ b/key.ui/examples/standard_key/java_dl/jml-min/min-unprovable2.key @@ -1,8 +1,7 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 26 13:40:10 CEST 2013 -name=Min[Min\\:\\:foo2()].JML operation contract.0 -contract=Min[Min\\:\\:foo2()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Min[Min::foo2()].JML operation contract.0", + "contract": "Min[Min::foo2()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/jml-min/min.key b/key.ui/examples/standard_key/java_dl/jml-min/min.key index 1e7c331e8e6..5a0bac76069 100644 --- a/key.ui/examples/standard_key/java_dl/jml-min/min.key +++ b/key.ui/examples/standard_key/java_dl/jml-min/min.key @@ -1,8 +1,7 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Jul 26 13:39:37 CEST 2013 -name=Min[Min\\:\\:bar()].JML operation contract.0 -contract=Min[Min\\:\\:bar()].JML operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Min[Min::bar()].JML operation contract.0", + "contract": "Min[Min::bar()].JML operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/recursion/triangular.key b/key.ui/examples/standard_key/java_dl/recursion/triangular.key index 5a6df1770af..4152a372fd0 100644 --- a/key.ui/examples/standard_key/java_dl/recursion/triangular.key +++ b/key.ui/examples/standard_key/java_dl/recursion/triangular.key @@ -2,10 +2,9 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Sep 25 13:37:22 CEST 2015 -name=Triangular[Triangular\\:\\:tria(int)].JML normal_behavior operation contract.0 -contract=Triangular[Triangular\\:\\:tria(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Triangular[Triangular::tria(int)].JML normal_behavior operation contract.0", + "contract": "Triangular[Triangular::tria(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/recursion/triangular.proof b/key.ui/examples/standard_key/java_dl/recursion/triangular.proof index 3efb0f3f395..2c921c735ff 100644 --- a/key.ui/examples/standard_key/java_dl/recursion/triangular.proof +++ b/key.ui/examples/standard_key/java_dl/recursion/triangular.proof @@ -39,12 +39,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Fri Sep 25 13:37:22 CEST 2015 -name=Triangular[Triangular\\:\\:tria(int)].JML normal_behavior operation contract.0 -contract=Triangular[Triangular\\:\\:tria(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Triangular[Triangular::tria(int)].JML normal_behavior operation contract.0", + "contract": "Triangular[Triangular::tria(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "daniel" ) (keyVersion "eff963a736c991e023578259348f159cd5643230")) diff --git a/key.ui/examples/standard_key/java_dl/strassen/strassen.auto.0.proof b/key.ui/examples/standard_key/java_dl/strassen/strassen.auto.0.proof index 8d499550163..d642f881c44 100644 --- a/key.ui/examples/standard_key/java_dl/strassen/strassen.auto.0.proof +++ b/key.ui/examples/standard_key/java_dl/strassen/strassen.auto.0.proof @@ -41,12 +41,11 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Thu Dec 03 15:06:52 CET 2015 -name=Matrix22[Matrix22\\:\\:strassen(Matrix22,Matrix22)].JML normal_behavior operation contract.0 -contract=Matrix22[Matrix22\\:\\:strassen(Matrix22,Matrix22)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Matrix22[Matrix22::strassen(Matrix22,Matrix22)].JML normal_behavior operation contract.0", + "contract": "Matrix22[Matrix22::strassen(Matrix22,Matrix22)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } \proof { (keyLog "0" (keyUser "daniel" ) (keyVersion "90bb886cd7b78027c8f6703803461f09e5699bb9")) diff --git a/key.ui/examples/standard_key/java_dl/strassen/strassen.key b/key.ui/examples/standard_key/java_dl/strassen/strassen.key index 254b4f407d6..4ccf092e837 100644 --- a/key.ui/examples/standard_key/java_dl/strassen/strassen.key +++ b/key.ui/examples/standard_key/java_dl/strassen/strassen.key @@ -45,10 +45,9 @@ \javaSource ""; -\proofObligation "#Proof Obligation Settings -#Wed Aug 22 15:59:39 CEST 2012 -name=Matrix22[Matrix22\\:\\:strassen(Matrix22,Matrix22)].JML normal_behavior operation contract.0 -contract=Matrix22[Matrix22\\:\\:strassen(Matrix22,Matrix22)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "name": "Matrix22[Matrix22::strassen(Matrix22,Matrix22)].JML normal_behavior operation contract.0", + "contract": "Matrix22[Matrix22::strassen(Matrix22,Matrix22)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/switch/labeled_case.key b/key.ui/examples/standard_key/java_dl/switch/labeled_case.key index 09d441b6335..488b29c8916 100644 --- a/key.ui/examples/standard_key/java_dl/switch/labeled_case.key +++ b/key.ui/examples/standard_key/java_dl/switch/labeled_case.key @@ -1,7 +1,7 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -contract=LabeledCase[LabeledCase\\:\\:m(int)].JML normal_behavior operation contract.0 -name=LabeledCase[LabeledCase\\:\\:m(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "LabeledCase[LabeledCase::m(int)].JML normal_behavior operation contract.0", + "name": "LabeledCase[LabeledCase::m(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/switch/large_switch.key b/key.ui/examples/standard_key/java_dl/switch/large_switch.key index 2ba3798c367..1670c7905e6 100644 --- a/key.ui/examples/standard_key/java_dl/switch/large_switch.key +++ b/key.ui/examples/standard_key/java_dl/switch/large_switch.key @@ -1,7 +1,7 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -contract=LargeSwitch[LargeSwitch\\:\\:m(int)].JML normal_behavior operation contract.0 -name=LargeSwitch[LargeSwitch\\:\\:m(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "LargeSwitch[LargeSwitch::m(int)].JML normal_behavior operation contract.0", + "name": "LargeSwitch[LargeSwitch::m(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/switch/switch_in_switch.key b/key.ui/examples/standard_key/java_dl/switch/switch_in_switch.key index 7659b06fa98..b84d1b4b1de 100644 --- a/key.ui/examples/standard_key/java_dl/switch/switch_in_switch.key +++ b/key.ui/examples/standard_key/java_dl/switch/switch_in_switch.key @@ -1,7 +1,7 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -contract=SwitchInSwitch[SwitchInSwitch\\:\\:m(int)].JML normal_behavior operation contract.0 -name=SwitchInSwitch[SwitchInSwitch\\:\\:m(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "SwitchInSwitch[SwitchInSwitch::m(int)].JML normal_behavior operation contract.0", + "name": "SwitchInSwitch[SwitchInSwitch::m(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/java_dl/switch/while_and_switch.key b/key.ui/examples/standard_key/java_dl/switch/while_and_switch.key index e7b3b1fce9d..857811f0823 100644 --- a/key.ui/examples/standard_key/java_dl/switch/while_and_switch.key +++ b/key.ui/examples/standard_key/java_dl/switch/while_and_switch.key @@ -7,8 +7,8 @@ \javaSource "."; -\proofObligation "#Proof Obligation Settings -contract=WhileAndSwitch[WhileAndSwitch\\:\\:m(int)].JML normal_behavior operation contract.0 -name=WhileAndSwitch[WhileAndSwitch\\:\\:m(int)].JML normal_behavior operation contract.0 -class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO -"; +\proofObligation { + "contract": "WhileAndSwitch[WhileAndSwitch::m(int)].JML normal_behavior operation contract.0", + "name": "WhileAndSwitch[WhileAndSwitch::m(int)].JML normal_behavior operation contract.0", + "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + } diff --git a/key.ui/examples/standard_key/types/Subtypes.java b/key.ui/examples/standard_key/types/Subtypes.java new file mode 100644 index 00000000000..5337d73f34a --- /dev/null +++ b/key.ui/examples/standard_key/types/Subtypes.java @@ -0,0 +1,16 @@ +class A { + + int f; + + //@ ghost \TYPE packed; + //@ invariant packed <: \type(A) ==> f > 0; +} + +class B extends A { + //@ invariant packed <: \type(B) ==> f > 1; + + //@ requires this.packed == \type(B); + //@ ensures f > 0; + //@ ensures f > 1; + void subtypes() {} +} diff --git a/key.ui/examples/standard_key/types/subtypes.key b/key.ui/examples/standard_key/types/subtypes.key new file mode 100644 index 00000000000..fbd886a548d --- /dev/null +++ b/key.ui/examples/standard_key/types/subtypes.key @@ -0,0 +1,37 @@ +\settings { +"#Proof-Settings-Config-File +#Fri Sep 11 22:56:40 CEST 2009 +[View]FontIndex=2 +[General]UseOCL=false +[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT +[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF +[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_SCOPE_INV_TACLET +[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF +[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF +[StrategyProperty]OSS_OPTIONS_KEY=OSS_ON +[DecisionProcedure]WaitForAllProvers=false +[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS +[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_NONE +[DecisionProcedure]Timeout=600 +[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON +[View]ShowWholeTaclet=false +[View]MaxTooltipLines=40 +[General]DnDDirectionSensitive=true +[General]StupidMode=true +[DecisionProcedure]savefile=false +[Strategy]Timeout=-1 +[Strategy]MaximumNumberOfAutomaticApplications=20000 +[Choice]DefaultChoices=assertions-assertions\:on , programRules-programRules\:Java , intRules-intRules\:arithmeticSemanticsIgnoringOF , initialisation-initialisation\:disableStaticInitialisation , runtimeExceptions-runtimeExceptions\:ban +[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_DEFAULT +[DecisionProcedure]ActiveRule=Simplify +[General]UseJML=true +[View]HideClosedSubtrees=false +[View]HideIntermediateProofsteps=false +[Strategy]ActiveStrategy=JavaCardDLStrategy +[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED +" +} + +\javaSource "."; + +\chooseContract "B[B::subtypes()].JML operation contract.0"; diff --git a/key.ui/src/main/java/de/uka/ilkd/key/core/KeYMediator.java b/key.ui/src/main/java/de/uka/ilkd/key/core/KeYMediator.java index d279e9f33ee..930e5542c0f 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/core/KeYMediator.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/core/KeYMediator.java @@ -429,8 +429,7 @@ public synchronized void fireProofLoaded(Proof p) { * * @return the current selected proof */ - @Nullable - public Proof getSelectedProof() { + public @Nullable Proof getSelectedProof() { return keySelectionModel.getSelectedProof(); } @@ -579,8 +578,7 @@ public boolean isInAutoMode() { return inAutoMode; } - @Nullable - private Lookup userData; + private @Nullable Lookup userData; /** * Retrieves a user-defined data. diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/GoalList.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/GoalList.java index 36f80c07666..4dc5f4adc46 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/GoalList.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/GoalList.java @@ -111,9 +111,8 @@ public void mouseReleased(MouseEvent e) { setMediator(mediator); } - @NonNull @Override - public String getTitle() { + public @NonNull String getTitle() { return "Goals"; } @@ -122,9 +121,8 @@ public Icon getIcon() { return GOAL_LIST_ICON; } - @NonNull @Override - public JComponent getComponent() { + public @NonNull JComponent getComponent() { return new JScrollPane(this); } diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/IssueDialog.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/IssueDialog.java index 2821d77057a..58587967ba5 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/IssueDialog.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/IssueDialog.java @@ -41,6 +41,9 @@ import org.key_project.util.java.StringUtil; import org.key_project.util.java.SwingUtil; +import org.antlr.v4.runtime.InputMismatchException; +import org.antlr.v4.runtime.NoViableAltException; +import org.antlr.v4.runtime.misc.ParseCancellationException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -600,6 +603,17 @@ private static PositionedIssueString extractMessage(Throwable exception) { String message = exception.getMessage(); String info = sw.toString(); + if (exception instanceof ParseCancellationException) { + exception = exception.getCause(); + } + + if (exception instanceof InputMismatchException ime) { + message = ExceptionTools.getNiceMessage(ime); + } + if (exception instanceof NoViableAltException nvae) { + message = ExceptionTools.getNiceMessage(nvae); + } + // also add message of the cause to the string if available if (exception.getCause() != null) { String causeMessage = exception.getCause().getMessage(); @@ -610,9 +624,9 @@ private static PositionedIssueString extractMessage(Throwable exception) { URI resourceLocation = null; Position pos = Position.UNDEFINED; - Optional location = ExceptionTools.getLocation(exception); - if (location.isPresent()) { - var loc = location.get(); + Location location = ExceptionTools.getLocation(exception); + if (location != null) { + var loc = location; if (!loc.getPosition().isNegative()) { pos = loc.getPosition(); } @@ -661,7 +675,11 @@ private void updatePreview(PositionedIssueString issue) { String source = StringUtil.replaceNewlines( fileContentsCache.computeIfAbsent(uri, fn -> { try { - return IOUtil.readFrom(finalUri).orElseThrow(); + String result = IOUtil.readFrom(finalUri); + if (result == null) { + throw new NullPointerException(); + } + return result; } catch (IOException e) { LOGGER.debug("Unknown IOException!", e); return "[SOURCE COULD NOT BE LOADED]\n" + e.getMessage(); @@ -730,7 +748,8 @@ private void addHighlights(DefaultHighlighter dh, PositionedString ps) { } private boolean isJava(String fileName) { - return fileName.endsWith(".java"); + // fileName can be null for URIs like "jar:file:/xxx/yyy.jar!aaa.java" + return fileName != null && fileName.endsWith(".java"); } public static int getOffsetFromLineColumn(String source, Position pos) { diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/KeyboardTacletExtension.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/KeyboardTacletExtension.java index 1e5dc67fef0..476a7fc7060 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/KeyboardTacletExtension.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/KeyboardTacletExtension.java @@ -58,9 +58,8 @@ public class KeyboardTacletExtension implements KeYGuiExtension, KeYGuiExtension.LeftPanel { private KeyboardTacletPanel panel; - @NonNull @Override - public Collection getPanels(@NonNull MainWindow window, + public @NonNull Collection getPanels(@NonNull MainWindow window, @NonNull KeYMediator mediator) { mediator.addKeYSelectionListener(new KeYSelectionListener() { @Override @@ -96,11 +95,9 @@ class KeyboardTacletPanel extends JPanel implements TabPanel { private final OnlyCompleteTacletsAction actionOnlyCompleteTaclets = new OnlyCompleteTacletsAction(); private final MainWindow mainWindow; - @Nullable - private KeyboardTacletModel model; + private @Nullable KeyboardTacletModel model; private final Box pCenter = new Box(BoxLayout.Y_AXIS); - @Nullable - private Goal lastGoal; + private @Nullable Goal lastGoal; private final PropertyChangeListener updateListener = (f) -> { updateCurrentPrefix(); relayout(); diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/PositionedIssueString.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/PositionedIssueString.java index 25d072d183b..23d561d662d 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/PositionedIssueString.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/PositionedIssueString.java @@ -54,8 +54,7 @@ public Kind getKind() { return kind; } - @NonNull - public String getAdditionalInfo() { + public @NonNull String getAdditionalInfo() { return additionalInfo; } diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/ProofManagementDialog.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/ProofManagementDialog.java index 54a0ddc0f86..e7a68588aa7 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/ProofManagementDialog.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/ProofManagementDialog.java @@ -58,8 +58,7 @@ public final class ProofManagementDialog extends JDialog { * The contracts are stored by name of the {@link KeYJavaType}, method name, and contract name * to avoid keeping environments in the memory. */ - @Nullable - private static ContractId previouslySelectedContracts; + private static @Nullable ContractId previouslySelectedContracts; private static final ImageIcon KEY_OPEN = IconFactory.keyHole(20, 20); private static final ImageIcon KEY_ALMOST_CLOSED = IconFactory.keyHoleAlmostClosed(20, 20); @@ -439,8 +438,7 @@ private Contract getSelectedContract() { * @return a proof for the contract, preferring closed proofs then closed proofs needing some * lemmas and then just any proof or {@code null} if there is no proof for the contract */ - @Nullable - private Proof findPreferablyClosedProof(@NonNull Contract contract) { + private @Nullable Proof findPreferablyClosedProof(@NonNull Contract contract) { // will the contracts here always be atomic? // it seems that way, but not completely sure ImmutableSet proofs = diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/WindowUserInterfaceControl.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/WindowUserInterfaceControl.java index fb2115dbe09..f9066745de7 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/WindowUserInterfaceControl.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/WindowUserInterfaceControl.java @@ -52,6 +52,7 @@ import org.key_project.util.collection.Pair; import org.key_project.util.java.SwingUtil; +import org.antlr.v4.runtime.misc.ParseCancellationException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import sun.misc.Signal; @@ -226,6 +227,9 @@ private void taskFinishedInternal(TaskFinishedInfo info) { Throwable result = (Throwable) info.getResult(); if (info.getResult() != null) { LOGGER.error("", result); + if (result instanceof ParseCancellationException) { + result = result.getCause(); + } IssueDialog.showExceptionDialog(mainWindow, result); } else if (getMediator().getUI().isSaveOnly()) { mainWindow.displayResults("Finished Saving!"); diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/actions/EditSourceFileAction.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/actions/EditSourceFileAction.java index 52e58dcbec8..8d495db8c9c 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/actions/EditSourceFileAction.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/actions/EditSourceFileAction.java @@ -138,10 +138,10 @@ public void addNotify() { } }; Optional file = location.getFileURI(); - String source = IOUtil.readFrom(file.orElse(null)).orElse(""); + String source = IOUtil.readFrom(file.orElse(null)); // workaround for #1641: replace all carriage returns, since JavaDocument can currently // not handle them - source = source.replace("\r", ""); + source = source != null ? source.replace("\r", "") : ""; if (file.isPresent() && file.get().toString().endsWith(".java")) { JavaDocument doc = new JavaDocument(); @@ -274,11 +274,10 @@ public void actionPerformed(ActionEvent arg0) { } try { - final Location location = ExceptionTools.getLocation(exception) - .filter(l -> l.getFileURI().isPresent()) - .orElseThrow( - () -> new IOException("Cannot recover file location from exception.")); - final URI uri = location.getFileURI().orElseThrow(); + final Location location = ExceptionTools.getLocation(exception); + if (location == null) + throw new IOException("Cannot recover file location from exception."); + final URI uri = location.fileUri(); // indicate edit/readonly in dialog title String prefix; diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/actions/RunAllProofsAction.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/actions/RunAllProofsAction.java index ceaba6d1bb1..b95e443df85 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/actions/RunAllProofsAction.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/actions/RunAllProofsAction.java @@ -46,8 +46,7 @@ public class RunAllProofsAction extends MainWindowAction { /** * Filename of the user-defined input files. */ - @Nullable - private static final String RUN_ALL_PROOFS_UI = System.getenv(ENV_VARIABLE); + private static final @Nullable String RUN_ALL_PROOFS_UI = System.getenv(ENV_VARIABLE); /** * Default file name for lookup in the classpath. @@ -70,8 +69,7 @@ public class RunAllProofsAction extends MainWindowAction { * content of {@link #ENV_VARIABLE} ({@link #RUN_ALL_PROOFS_UI}) is null, then * {@link #DEFAULT_FILE} is used. */ - @NonNull - private List loadFiles() throws IOException { + private @NonNull List loadFiles() throws IOException { LOGGER.info("Use 'export {}=<...>' to set the input file for {}.", ENV_VARIABLE, getClass().getSimpleName()); diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/actions/SendFeedbackAction.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/actions/SendFeedbackAction.java index 1d87d1712ac..1193b3e5406 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/actions/SendFeedbackAction.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/actions/SendFeedbackAction.java @@ -13,7 +13,6 @@ import java.nio.file.Files; import java.util.LinkedList; import java.util.List; -import java.util.Optional; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import javax.swing.*; @@ -267,7 +266,7 @@ boolean isEnabled() { if (throwable != null) { try { var location = ExceptionTools.getLocation(throwable); - return location.isPresent() && location.get().getFileURI().isPresent(); + return location != null && location.getFileURI().isPresent(); } catch (MalformedURLException e) { // no valid location could be extracted LOGGER.warn("Failed to extract location", e); @@ -284,12 +283,12 @@ byte[] retrieveFileData() throws IOException { * default charset) and then writing back to byte[] (using default charset again). * However, this way it is a very concise and easy to read. */ - URI url = ExceptionTools.getLocation(throwable) - .flatMap(Location::getFileURI) - .orElse(null); - Optional content = IOUtil.readFrom(url); - return content.map(s -> s.getBytes(Charset.defaultCharset())) - .orElse(new byte[0]); + Location url = ExceptionTools.getLocation(throwable); + if (url != null) { + String content = IOUtil.readFrom(url.fileUri()); + return content.getBytes(Charset.defaultCharset()); + } + return new byte[0]; } } diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/docking/DockingLayout.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/docking/DockingLayout.java index 68fa871169e..31d72c542fc 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/docking/DockingLayout.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/docking/DockingLayout.java @@ -130,9 +130,8 @@ private void setLayout(String layout) { DockingHelper.restoreMissingPanels(window); } - @NonNull @Override - public List getMainMenuActions(@NonNull MainWindow mainWindow) { + public @NonNull List getMainMenuActions(@NonNull MainWindow mainWindow) { List actions = new ArrayList<>(); int keypos = 0; for (String layout : LAYOUT_NAMES) { diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/extension/api/ContextMenuAdapter.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/extension/api/ContextMenuAdapter.java index 5aa68721268..a8004749df8 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/extension/api/ContextMenuAdapter.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/extension/api/ContextMenuAdapter.java @@ -20,9 +20,9 @@ * @version 1 (16.04.19) */ public abstract class ContextMenuAdapter implements KeYGuiExtension.ContextMenu { - @NonNull + @Override - public final List getContextActions(@NonNull KeYMediator mediator, + public final @NonNull List getContextActions(@NonNull KeYMediator mediator, @NonNull ContextMenuKind kind, @NonNull Object underlyingObject) { return switch ((DefaultContextMenuKind) kind) { diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/extension/api/TabPanel.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/extension/api/TabPanel.java index 6c7dc4b05ba..dcd7a8ab8d2 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/extension/api/TabPanel.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/extension/api/TabPanel.java @@ -17,6 +17,7 @@ * @version 1 (23.04.19) */ public interface TabPanel { + @NonNull String getTitle(); diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/extension/impl/TestExtension.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/extension/impl/TestExtension.java index 549aedbd1d6..8df816cba26 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/extension/impl/TestExtension.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/extension/impl/TestExtension.java @@ -99,9 +99,8 @@ public SettingsProvider getSettings() { return new TestSettingsProvider(); } - @NonNull @Override - public Collection getPanels(@NonNull MainWindow window, + public @NonNull Collection getPanels(@NonNull MainWindow window, @NonNull KeYMediator mediator) { return Collections.singleton(new TabPanel() { @Override diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/nodeviews/HTMLSyntaxHighlighter.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/nodeviews/HTMLSyntaxHighlighter.java index 60e39e626d3..378196c6c0c 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/nodeviews/HTMLSyntaxHighlighter.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/nodeviews/HTMLSyntaxHighlighter.java @@ -121,10 +121,15 @@ public class HTMLSyntaxHighlighter { private static final String PROGVAR_REPLACEMENT = "$1$2$3"; - private static final Pattern SINGLE_LINE_COMMENT_PATTERN = Pattern.compile("(//.*?)
"); + private static final Pattern SINGLE_LINE_COMMENT_PATTERN = Pattern.compile("(//[^@].*?)
"); + + private static final Pattern SINGLE_LINE_JML_PATTERN = Pattern.compile("(//@.*?)
"); + private static final String SINGLE_LINE_COMMENT_REPLACEMENT = "$1
"; + private static final String SINGLE_LINE_JML_REPLACEMENT = + "$1
"; private static final Pattern SEQUENT_ARROW_PATTERN = Pattern.compile("(==>|⟹)"); private static final String SEQUENT_ARROW_REPLACEMENT = "$1"; @@ -136,22 +141,15 @@ public class HTMLSyntaxHighlighter { * @param document The {@link HTMLDocument} */ public static void addCSSRulesTo(HTMLDocument document) { - final String propLogicHighlightRule = - ".prop_logic_highlight { color: #000000; font-weight: bold; }"; - final String foLogicHighlightRule = - ".dynamic_logic_highlight { color: #0000C0; font-weight: bold; }"; - final String javaHighlightRule = ".java_highlight { color: #7F0055; font-weight: bold; }"; - final String progVarHighlightRule = ".progvar_highlight { color: #6A3E3E; }"; - final String commentHighlightRule = ".comment_highlight { color: #3F7F5F; }"; - final String sequentArrowHighlightRule = - ".sequent_arrow_highlight { color: #000000; font-size: 1.7em }"; - - document.getStyleSheet().addRule(propLogicHighlightRule); - document.getStyleSheet().addRule(progVarHighlightRule); - document.getStyleSheet().addRule(javaHighlightRule); - document.getStyleSheet().addRule(foLogicHighlightRule); - document.getStyleSheet().addRule(commentHighlightRule); - document.getStyleSheet().addRule(sequentArrowHighlightRule); + document.getStyleSheet().addRule(""" + .prop_logic_highlight { color: #000000; font-weight: bold; } + .dynamic_logic_highlight { color: #0000C0; font-weight: bold; } + .java_highlight { color: #7F0055; font-weight: bold; } + .progvar_highlight { color: #6A3E3E; } + .comment_highlight { color: #3F7F5F; } + .jml_highlight { color: #5553c2; } + .sequent_arrow_highlight { color: #000000; font-size: 1.7em } + """); } /** @@ -235,6 +233,9 @@ private static String addSyntaxHighlighting(String htmlString, modality = SINGLE_LINE_COMMENT_PATTERN.matcher(modality) .replaceAll(SINGLE_LINE_COMMENT_REPLACEMENT); + modality = SINGLE_LINE_JML_PATTERN.matcher(modality) + .replaceAll(SINGLE_LINE_JML_REPLACEMENT); + htmlString = htmlString.replace(modalityMatcher.group(), modality); } diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/nodeviews/SequentViewSearchBar.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/nodeviews/SequentViewSearchBar.java index 86d45f5a195..622b4adeb1c 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/nodeviews/SequentViewSearchBar.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/nodeviews/SequentViewSearchBar.java @@ -22,8 +22,6 @@ import org.jspecify.annotations.NonNull; - - /* * Search bar implementing search function for SequentView. */ diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/plugins/javac/JavaCompilerCheckFacade.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/plugins/javac/JavaCompilerCheckFacade.java index 4332575eb41..8c1294cfc0f 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/plugins/javac/JavaCompilerCheckFacade.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/plugins/javac/JavaCompilerCheckFacade.java @@ -58,8 +58,7 @@ public class JavaCompilerCheckFacade { * @param javaPath the {@link String} with the path to the source of the target Java program * @return future providing the list of diagnostics */ - @NonNull - public static CompletableFuture> check( + public static @NonNull CompletableFuture> check( ProblemInitializer.ProblemInitializerListener listener, File bootClassPath, List classPath, File javaPath) { if (Boolean.getBoolean("KEY_JAVAC_DISABLE")) { diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/GUIAbstractTreeNode.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/GUIAbstractTreeNode.java index 2f937cdc2fa..55d8af0c3d9 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/GUIAbstractTreeNode.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/GUIAbstractTreeNode.java @@ -13,7 +13,6 @@ import org.jspecify.annotations.NonNull; - public abstract class GUIAbstractTreeNode implements TreeNode { private final GUIProofTreeModel tree; diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/GUIBranchNode.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/GUIBranchNode.java index 0aeac640d2f..79d418ecb1e 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/GUIBranchNode.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/GUIBranchNode.java @@ -72,9 +72,8 @@ public void flushCache() { childrenCache = null; } - @NonNull @Override - public String getSearchString() { + public @NonNull String getSearchString() { return toString(); } diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/GUIOneStepChildTreeNode.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/GUIOneStepChildTreeNode.java index 55c8cd0ab68..84eb9cec1ca 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/GUIOneStepChildTreeNode.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/GUIOneStepChildTreeNode.java @@ -73,9 +73,8 @@ public void flushCache() { // nothing to do } - @NonNull @Override - public String getSearchString() { + public @NonNull String getSearchString() { return toString(); } } diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/GUIProofTreeNode.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/GUIProofTreeNode.java index 82d36765ae8..f249667ab1e 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/GUIProofTreeNode.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/GUIProofTreeNode.java @@ -91,9 +91,8 @@ public void flushCache() { children = null; } - @NonNull @Override - public String getSearchString() { + public @NonNull String getSearchString() { return toString(); } } diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/ProofTreeExpansionState.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/ProofTreeExpansionState.java index 48c8aa81a54..8402266b162 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/ProofTreeExpansionState.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/ProofTreeExpansionState.java @@ -18,7 +18,6 @@ import org.jspecify.annotations.NonNull; - /** * Cache/Access JTree's expansion state. The interface of JTree to access the expanded paths is * rather incomplete, since expanded paths under collapsed ancestors cannot be accessed at all diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/ProofTreeView.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/ProofTreeView.java index d0361823e12..5ccd3abc9fc 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/ProofTreeView.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/prooftree/ProofTreeView.java @@ -679,9 +679,8 @@ public void showSearchPanel() { proofTreeSearchPanel.setVisible(true); } - @NonNull @Override - public String getTitle() { + public @NonNull String getTitle() { return "Proof"; } @@ -690,9 +689,8 @@ public Icon getIcon() { return IconFactory.PROOF_TREE.get(IconFactory.DEFAULT_SIZE); } - @NonNull @Override - public JComponent getComponent() { + public @NonNull JComponent getComponent() { return this; } @@ -776,9 +774,8 @@ private TreePath getPathForBranchNode(Node invokedNode, TreePath defaultPath) { return defaultPath; } - @NonNull @Override - public Collection getTitleCActions() { + public @NonNull Collection getTitleCActions() { return List.of(ProofTreeSettingsMenuFactory.create(this)); } diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/settings/TacletOptionsSettings.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/settings/TacletOptionsSettings.java index 9ffa6aee27c..619716431e9 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/settings/TacletOptionsSettings.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/settings/TacletOptionsSettings.java @@ -220,8 +220,7 @@ protected void addExplanation(String explanation) { pCenter.add(p, new CC().span().newline()); } - @NonNull - private JPanel createCollapsibleTitlePane(String titleText, JComponent child) { + private @NonNull JPanel createCollapsibleTitlePane(String titleText, JComponent child) { JPanel p = new JPanel(new BorderLayout()); JPanel north = new JPanel(new BorderLayout()); diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/sourceview/JavaDocument.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/sourceview/JavaDocument.java index 2eb275be4c5..9868aa84ce5 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/sourceview/JavaDocument.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/sourceview/JavaDocument.java @@ -194,7 +194,8 @@ private enum CommentState { "invariant_free", "model_behavior", "model_behaviour", "monitors_for", "normal_behavior", "normal_behaviour", "readable", "writable", // ADT functions: - "\\seq_empty", "\\seq_def", "\\seq_singleton", "\\seq_get", "\\seq_put", "\\seq_reverse", + "\\seq_empty", "\\seq_def", "\\seq_singleton", "\\seq_get", "\\seq_upd", "\\seq_upd", + "\\seq_reverse", "\\seq_sub", "\\seq_length", "\\index_of", "\\seq_concat", "\\empty", "\\singleton", "\\set_union", "\\intersect", "\\set_minus", "\\all_fields", "\\infinite_union", "\\strictly_than_nothing" }; diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/utilities/HeapStatusExt.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/utilities/HeapStatusExt.java index da0c9d2d520..564b7f90ac1 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/utilities/HeapStatusExt.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/utilities/HeapStatusExt.java @@ -137,9 +137,7 @@ public void actionPerformed(ActionEvent actionEvent) { } } - - @Nullable - private static String findJConsole() { + private static @Nullable String findJConsole() { var executableLinux = Paths.get(System.getProperty("java.home"), "bin", "jconsole"); var executableWindows = Paths.get(System.getProperty("java.home"), "bin", "jconsole.exe"); diff --git a/key.util/Readme.md b/key.util/Readme.md new file mode 100644 index 00000000000..0da4579914a --- /dev/null +++ b/key.util/Readme.md @@ -0,0 +1,104 @@ +# key.util + +This subproject contains various data structures and utility functions +used by the KeY project. + +## Nullness checking + +This subproject uses the EISOP branch of the Checker Framework +(https://eisop.github.io/) to check for nullness-related +errors at compile time. + +Any use of a type is considered to be `@NonNull` by default unless `@Nullable` +is specified. E.g., a variable of type `@Nullable Object` cannot be assigned +to a variable of type `@NonNull Object`. + +This is for the most part intuitive, but arrays and generics require some +explanation: +For an array, we specify the nullability of both the array and elements. +E.g., `@Nullable String @NonNull []` is a non-null array of nullable strings. +The nullability of a generic type is determined by its bounds. E.g., if we +have a class `class A`, then any use of `T` in `A` +is implicitly nullable; but if we have a class `class B`, then any use of +`S` in `B` is implicitly non-null because this is the default bound. + +For further details, see +https://jspecify.dev/docs/api/org/jspecify/annotations/package-summary.html +and +https://eisop.github.io/cf/manual/manual.html#nullness-checker + +## Initialization checking + +The Checker Framework also checks for initialization: If a constructor does +not initialize every `@NonNull` field with a non-null value, an error to that +effect is reported at compile time. If a constructor tries to call a non-helper +method, an error is also reported, as that method may rely on all `@NonNull` +fields being initialized. +You can mark a method as helper by specifying +`@UnderInitialization(InitClass.class) ReceiverClass this` as the first +parameter, where `ReceiverClass` is the name of the current class, and +`InitClass` is the class up to which `this` should be initialized before +the method is allowed to be called. +If you want to allow the helper method being called even after `this` has been +further initialized, use `@UnknownInitialization(InitClass.class)` instead. +Within a helper method, all possibly uninitialized fields are considered +`@Nullable` even if declared as `@NonNull`. + +E.g., consider the following listing. + +```java +class A { + @NonNull Object fieldA; + + A() { + fieldA = new Object(); + } +} + +class B extends A { + @NonNull Object fieldB; + + B() { + super(); + // Allowed because the super constructor has initialized this up to A + helperA(); + + // Not allowed because this is not yet initialized up to B + helperB(); + + fieldB = new Object(); + + // Allowed now because fieldB was just initialized + helperB(); + + // Not allowed because B is not final; thus there may be a subclass + // for which this has not yet been initialized. + nonHelper(); + } + + void helperA(@UnderInitialization(A.class) B this) { + // Allowed because this is initialized up to A; + // thus fieldA is @NonNull + fieldA.hashCode(); + // Not allowed because this is not initialized up to B; + // thus fieldB is @Nullable + fieldB.hashCode(); + } + + void helperB(@UnderInitialization(B.class) B this) { + // Both allowed because this is initialized up to B + fieldA.hashCode(); + fieldB.hashCode(); + } + + void nonHelper() { + // ... + } +} +``` + +The initialization types for arrays and generics are specified in the same way +as for nullness types. + +For more details, see +https://eisop.github.io/cf/manual/manual.html#initialization-checker \ No newline at end of file diff --git a/key.util/build.gradle b/key.util/build.gradle index 48d89172e19..25700d3ec91 100644 --- a/key.util/build.gradle +++ b/key.util/build.gradle @@ -2,4 +2,20 @@ description "Utility library of the key-project" dependencies { implementation("org.jspecify:jspecify:0.3.0") -} \ No newline at end of file +} + +checkerFramework { + if(System.getProperty("ENABLE_NULLNESS")) { + checkers = [ + "org.checkerframework.checker.nullness.NullnessChecker", + ] + extraJavacArgs = [ + "-AonlyDefs=^org\\.key_project\\.util", + "-Xmaxerrs", "10000", + "-Astubs=$projectDir/src/main/checkerframework:permit-nullness-assertion-exception.astub", + "-AstubNoWarnIfNotFound", + "-Werror", + "-Aversion", + ] + } +} diff --git a/key.util/src/main/checkerframework/java/net/URI.astub b/key.util/src/main/checkerframework/java/net/URI.astub new file mode 100644 index 00000000000..c4f24eb79e0 --- /dev/null +++ b/key.util/src/main/checkerframework/java/net/URI.astub @@ -0,0 +1,14 @@ +package java.net; + +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.framework.qual.AnnotatedFor; + +@AnnotatedFor("nullness") +public class URI { + + public URI(@Nullable String scheme, + @Nullable String userInfo, @Nullable String host, int port, + @Nullable String path, @Nullable String query, @Nullable String fragment) + throws URISyntaxException {} + +} diff --git a/key.util/src/main/java/module-info.java b/key.util/src/main/java/module-info.java deleted file mode 100644 index f48836b67ef..00000000000 --- a/key.util/src/main/java/module-info.java +++ /dev/null @@ -1,15 +0,0 @@ -module org.key_project.util { - requires java.desktop; - requires org.jspecify; - - exports org.key_project.util.bean; - exports org.key_project.util.collection; - exports org.key_project.util.bitops; - exports org.key_project.util.helper; - exports org.key_project.util.java; - exports org.key_project.util.java.thread; - exports org.key_project.util.lookup; - exports org.key_project.util.reflection; - exports org.key_project.util.testcategories; - exports org.key_project.util; -} \ No newline at end of file diff --git a/key.util/src/main/java/org/key_project/util/EqualsModProofIrrelevancyUtil.java b/key.util/src/main/java/org/key_project/util/EqualsModProofIrrelevancyUtil.java index f1caf2637ca..599ed7d6741 100644 --- a/key.util/src/main/java/org/key_project/util/EqualsModProofIrrelevancyUtil.java +++ b/key.util/src/main/java/org/key_project/util/EqualsModProofIrrelevancyUtil.java @@ -13,6 +13,7 @@ * * @author Arne Keller */ +@SuppressWarnings("nullness") public final class EqualsModProofIrrelevancyUtil { private EqualsModProofIrrelevancyUtil() { diff --git a/key.util/src/main/java/org/key_project/util/EqualsModProofIrrelevancyWrapper.java b/key.util/src/main/java/org/key_project/util/EqualsModProofIrrelevancyWrapper.java index d9ace447c10..b0b78f7f5ee 100644 --- a/key.util/src/main/java/org/key_project/util/EqualsModProofIrrelevancyWrapper.java +++ b/key.util/src/main/java/org/key_project/util/EqualsModProofIrrelevancyWrapper.java @@ -12,6 +12,7 @@ * @param type to wrap * @author Arne Keller */ +@SuppressWarnings("nullness") public class EqualsModProofIrrelevancyWrapper { /** * The wrapped object. diff --git a/key.util/src/main/java/org/key_project/util/ExtList.java b/key.util/src/main/java/org/key_project/util/ExtList.java index 3ac1566e0d9..b13b4f23cb2 100644 --- a/key.util/src/main/java/org/key_project/util/ExtList.java +++ b/key.util/src/main/java/org/key_project/util/ExtList.java @@ -8,12 +8,13 @@ import java.util.Iterator; import java.util.LinkedList; +import org.jspecify.annotations.Nullable; /** * Extends java.util.LinkedList in order to collect elements according to their type. * Has facilities to get elements of a certain type ({@link #get(Class)}, {@link #collect(Class)}). */ -public class ExtList extends LinkedList { +public final class ExtList extends LinkedList { private static final long serialVersionUID = 9182017368310263908L; @@ -60,7 +61,7 @@ public T[] collect(Class cl) { * @return the first element with type cl in list */ @SuppressWarnings("unchecked") - public T get(Class cl) { + public @Nullable T get(Class cl) { for (Object next : this) { if (cl.isInstance(next) && (next != null)) { return (T) next; @@ -78,7 +79,7 @@ public T get(Class cl) { * @return the first element with type cl in list */ @SuppressWarnings("unchecked") - public T removeFirstOccurrence(Class cl) { + public @Nullable T removeFirstOccurrence(Class cl) { Iterator it = iterator(); while (it.hasNext()) { Object next = it.next(); diff --git a/key.util/src/main/java/org/key_project/util/Filenames.java b/key.util/src/main/java/org/key_project/util/Filenames.java index f2160054131..9f0c7eb4e7d 100644 --- a/key.util/src/main/java/org/key_project/util/Filenames.java +++ b/key.util/src/main/java/org/key_project/util/Filenames.java @@ -156,7 +156,9 @@ private static String[] removeDotDot(String[] a) { if (!a[a.length - 1].equals("..")) { newa[k++] = a[a.length - 1]; } - return Arrays.copyOf(newa, k); + // @ assert (\forall int i; 0 <= i < k; newa[i] != null); + // TODO: nullness. This cast cannot be checked, can it? But there is no error message + return (String[]) Arrays.copyOf(newa, k); } public static String toValidFileName(String s) { diff --git a/key.util/src/main/java/org/key_project/util/RandomName.java b/key.util/src/main/java/org/key_project/util/RandomName.java index 2b21c81c758..ff58440b2b1 100644 --- a/key.util/src/main/java/org/key_project/util/RandomName.java +++ b/key.util/src/main/java/org/key_project/util/RandomName.java @@ -3,6 +3,7 @@ * SPDX-License-Identifier: GPL-2.0-only */ package org.key_project.util; + import java.util.Random; /** diff --git a/key.util/src/main/java/org/key_project/util/Streams.java b/key.util/src/main/java/org/key_project/util/Streams.java index 7840a975ead..d1eecb6a03d 100644 --- a/key.util/src/main/java/org/key_project/util/Streams.java +++ b/key.util/src/main/java/org/key_project/util/Streams.java @@ -8,7 +8,6 @@ import java.io.InputStream; public class Streams { - private Streams() { throw new Error("do not instantiate"); } diff --git a/key.util/src/main/java/org/key_project/util/Strings.java b/key.util/src/main/java/org/key_project/util/Strings.java index 200cc051283..f30a81a28ac 100644 --- a/key.util/src/main/java/org/key_project/util/Strings.java +++ b/key.util/src/main/java/org/key_project/util/Strings.java @@ -3,13 +3,15 @@ * SPDX-License-Identifier: GPL-2.0-only */ package org.key_project.util; - +import java.util.Objects; import java.util.function.Function; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.StreamSupport; +import org.key_project.util.java.StringUtil; + +import org.jspecify.annotations.Nullable; + /** * Helper functions for {@link String}s * @@ -18,44 +20,22 @@ */ public class Strings { /** - * Checks whether a string contains another one as a whole word (i.e., separated by whitespaces - * or a semicolon at the end). - * - * @param s string to search in - * @param word string to be searched for + * @deprecated This class has been merged with {@link org.key_project.util.java.StringUtil}. + * Call + * {@link org.key_project.util.java.StringUtil#containsWholeWord(String, String)} */ + @Deprecated public static boolean containsWholeWord(String s, String word) { - Pattern p = Pattern.compile("\\b" + word + "\\b"); - Matcher m = p.matcher(s); - return m.find(); - /* - * if (s == null || word == null) { return false; } int i = -1; final int wl = - * word.length(); while (true) { i = s.indexOf(word, i + 1); if (i < 0 || i >= s.length()) - * break; if (i == 0 || Character.isWhitespace(s.charAt(i - 1))) { if (i + wl == s.length() - * || Character.isWhitespace(s.charAt(i + wl)) || s.charAt(i + wl) == ';') { return true; } - * } } return false; - */ + return StringUtil.containsWholeWord(s, word); } - /** - * There are different kinds of JML markers. See Section 4.4 "Annotation markers" of the JML - * reference manual. - * - * @param comment - * @return + * @deprecated This class has been merged with {@link org.key_project.util.java.StringUtil}. + * Call {@link org.key_project.util.java.StringUtil#isJMLComment(String)} */ + @Deprecated public static boolean isJMLComment(String comment) { - try { - return (comment.startsWith("/*@") || comment.startsWith("//@") - || comment.startsWith("/*+KeY@") || comment.startsWith("//+KeY@") - || (comment.startsWith("/*-") && !comment.startsWith("KeY", 3) - && comment.contains("@")) - || (comment.startsWith("//-") && !comment.startsWith("KeY", 3) - && comment.contains("@"))); - } catch (IndexOutOfBoundsException e) { - return false; - } + return StringUtil.isJMLComment(comment); } /** @@ -70,11 +50,12 @@ public static boolean isJMLComment(String comment) { * @return the CharSequence in the described format * @param the type of the elements of the iterated collection */ - public static String formatAsList(Iterable it, + public static String formatAsList( + Iterable it, CharSequence open, CharSequence sep, CharSequence close, Function mapper) { return StreamSupport.stream(it.spliterator(), false) - .map(a -> mapper.apply(a).toString()) + .map(a -> Objects.toString(mapper.apply(a))) .collect(Collectors.joining(sep, open, close)); } @@ -89,7 +70,7 @@ public static String formatAsList(Iterable it, * @return the CharSequence in the described format * @param the type of the elements of the iterated collection */ - public static String formatAsList(Iterable it, + public static String formatAsList(Iterable it, CharSequence open, CharSequence sep, CharSequence close) { return formatAsList(it, open, sep, close, Function.identity()); } diff --git a/key.util/src/main/java/org/key_project/util/bean/Bean.java b/key.util/src/main/java/org/key_project/util/bean/Bean.java index de4ac6f2f7a..7c3a46c0391 100644 --- a/key.util/src/main/java/org/key_project/util/bean/Bean.java +++ b/key.util/src/main/java/org/key_project/util/bean/Bean.java @@ -9,6 +9,8 @@ import org.key_project.util.java.ArrayUtil; +import org.jspecify.annotations.Nullable; + /** * Implements the basic methods that a Java bean should have and is the default implementation of * {@link IBean}. @@ -20,6 +22,7 @@ public class Bean implements IBean { /** * The used {@link PropertyChangeSupport}. */ + @SuppressWarnings("nullness") // TODO Check with Werner Dietl why this is so. private final PropertyChangeSupport pcs = new PropertyChangeSupport(this); /** @@ -129,8 +132,8 @@ protected void fireIndexedPropertyChange(String propertyName, int index, int old * @param oldValue The old value. * @param newValue The new value. */ - protected void fireIndexedPropertyChange(String propertyName, int index, Object oldValue, - Object newValue) { + protected void fireIndexedPropertyChange(String propertyName, int index, + @Nullable Object oldValue, @Nullable Object newValue) { pcs.fireIndexedPropertyChange(propertyName, index, oldValue, newValue); } diff --git a/key.util/src/main/java/org/key_project/util/bean/package-info.java b/key.util/src/main/java/org/key_project/util/bean/package-info.java new file mode 100644 index 00000000000..0cf610b9f7b --- /dev/null +++ b/key.util/src/main/java/org/key_project/util/bean/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package org.key_project.util.bean; + +import org.jspecify.annotations.NullMarked; diff --git a/key.util/src/main/java/org/key_project/util/bitops/ImmutableFixedLengthBitSet.java b/key.util/src/main/java/org/key_project/util/bitops/ImmutableFixedLengthBitSet.java index 56f92c9595c..e501d56e68c 100644 --- a/key.util/src/main/java/org/key_project/util/bitops/ImmutableFixedLengthBitSet.java +++ b/key.util/src/main/java/org/key_project/util/bitops/ImmutableFixedLengthBitSet.java @@ -6,16 +6,19 @@ import java.util.ArrayList; import java.util.BitSet; +import org.jspecify.annotations.NullMarked; + /** * Represents a non-negative number with access to single bits; the length of the bit set is fixed. * Comparable to {@link BitSet} with fixed length. Objects of this class are immutable. * * @author Dominic Scheurer */ +@NullMarked public class ImmutableFixedLengthBitSet { - private boolean[] bitSet = null; - private int value = -1; + private final boolean[] bitSet; + private int value; /** * Constructs a new {@link ImmutableFixedLengthBitSet} for the given length. All bits are set to diff --git a/key.util/src/main/java/org/key_project/util/collection/DefaultEdge.java b/key.util/src/main/java/org/key_project/util/collection/DefaultEdge.java index aeecc7916dc..bc976b8c70c 100644 --- a/key.util/src/main/java/org/key_project/util/collection/DefaultEdge.java +++ b/key.util/src/main/java/org/key_project/util/collection/DefaultEdge.java @@ -9,6 +9,7 @@ * * @author Arne Keller */ +@SuppressWarnings("nullness") public class DefaultEdge implements GraphEdge { /** * Source node of this edge. diff --git a/key.util/src/main/java/org/key_project/util/collection/DefaultImmutableMap.java b/key.util/src/main/java/org/key_project/util/collection/DefaultImmutableMap.java index 2181760ca64..04ebd8b85cf 100644 --- a/key.util/src/main/java/org/key_project/util/collection/DefaultImmutableMap.java +++ b/key.util/src/main/java/org/key_project/util/collection/DefaultImmutableMap.java @@ -11,13 +11,9 @@ * This class implements {@code ImmutableMap} and provides a persistent map. * It is a simple implementation like lists */ +@SuppressWarnings("nullness") public class DefaultImmutableMap implements ImmutableMap { - /** - * generated serial - */ - private static final long serialVersionUID = 3268346732418187405L; - /** the empty map */ @SuppressWarnings("unchecked") diff --git a/key.util/src/main/java/org/key_project/util/collection/DefaultImmutableSet.java b/key.util/src/main/java/org/key_project/util/collection/DefaultImmutableSet.java index d35264c12f3..ba1af27f3c9 100644 --- a/key.util/src/main/java/org/key_project/util/collection/DefaultImmutableSet.java +++ b/key.util/src/main/java/org/key_project/util/collection/DefaultImmutableSet.java @@ -3,10 +3,7 @@ * SPDX-License-Identifier: GPL-2.0-only */ package org.key_project.util.collection; -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; +import java.util.*; import java.util.function.Predicate; import java.util.stream.Stream; import java.util.stream.StreamSupport; @@ -21,7 +18,7 @@ * * @param type of object to store */ -public class DefaultImmutableSet implements ImmutableSet { +public class DefaultImmutableSet implements ImmutableSet { /** * @@ -38,7 +35,7 @@ public class DefaultImmutableSet implements ImmutableSet { /** the empty set */ @SuppressWarnings("unchecked") - public static DefaultImmutableSet nil() { + public static DefaultImmutableSet nil() { return (DefaultImmutableSet) NILSet.NIL; } @@ -51,7 +48,7 @@ protected DefaultImmutableSet() { * * @param element of type the new Set contains */ - protected DefaultImmutableSet(T element) { + private DefaultImmutableSet(T element) { elementList = (ImmutableSLList.nil()).prepend(element); } @@ -65,6 +62,10 @@ private DefaultImmutableSet(ImmutableList elementList) { this.elementList = elementList; } + public static ImmutableSet fromCollection(Collection seq) { + return new DefaultImmutableSet<>(ImmutableList.fromList(seq)); + } + // private static HashSet previousComplains = new HashSet<>(); private void complainAboutSize() { // // Immutable linear sets are very expensive with O(n) addition @@ -234,7 +235,7 @@ public ImmutableSet remove(T element) { * @return true iff the this set is subset of o and vice versa. */ @Override - public boolean equals(Object obj) { + public boolean equals(@Nullable Object obj) { if (obj == this) { return true; } @@ -289,7 +290,8 @@ public ImmutableList toImmutableList() { * @param list a non-null immutable list * @return a fresh immutable set with the same iteration order. */ - public static ImmutableSet fromImmutableList(ImmutableList list) { + public static ImmutableSet fromImmutableList( + ImmutableList list) { if (list.isEmpty()) { return nil(); } else { @@ -297,36 +299,6 @@ public static ImmutableSet fromImmutableList(ImmutableList list) { } } - /** - * Create an immutable set from a mutable set - * - * @param set a non-null mutable set - * @return a fresh immutable set with all the elements in set - */ - public static ImmutableSet fromSet(@Nullable Set set) { - if (set == null) { - return null; - } - if (set.isEmpty()) { - return nil(); - } else { - ImmutableList backerList = ImmutableSLList.nil(); - for (T element : set) { - backerList = backerList.prepend(element); - } - return new DefaultImmutableSet<>(backerList); - } - } - - - public static ImmutableSet fromCollection(@Nullable Collection seq) { - if (seq == null) { - return null; - } - return fromSet(new HashSet<>(seq)); - } - - @Override public String toString() { return Strings.formatAsList(this, "{", ",", "}"); @@ -403,10 +375,10 @@ public boolean isEmpty() { } /** - * @return true iff the this set is subset of o and vice versa. + * @return true iff this set is subset of o and vice versa. */ @Override - public boolean equals(Object o) { + public boolean equals(@Nullable Object o) { return o instanceof NILSet; } diff --git a/key.util/src/main/java/org/key_project/util/collection/DirectedGraph.java b/key.util/src/main/java/org/key_project/util/collection/DirectedGraph.java index 3f48bef5442..921359281ad 100644 --- a/key.util/src/main/java/org/key_project/util/collection/DirectedGraph.java +++ b/key.util/src/main/java/org/key_project/util/collection/DirectedGraph.java @@ -17,6 +17,7 @@ * @param edge type * @author Arne Keller */ +@SuppressWarnings("nullness") public class DirectedGraph implements Graph { /** * Set of vertices in this graph. diff --git a/key.util/src/main/java/org/key_project/util/collection/IdentityHashSet.java b/key.util/src/main/java/org/key_project/util/collection/IdentityHashSet.java index 0c4d1408f30..f68a9b8a6b9 100644 --- a/key.util/src/main/java/org/key_project/util/collection/IdentityHashSet.java +++ b/key.util/src/main/java/org/key_project/util/collection/IdentityHashSet.java @@ -8,17 +8,19 @@ import java.util.Iterator; import java.util.Set; +import org.jspecify.annotations.Nullable; + /** * Hash set using the object's identity instead of their hashcode to determine uniqueness. * * @param elmeent type * @author Arne Keller */ -public class IdentityHashSet implements Set { +public final class IdentityHashSet implements Set { /** * Backing store. */ - private final IdentityHashMap innerMap = new IdentityHashMap<>(); + private final IdentityHashMap innerMap = new IdentityHashMap<>(); /** * Construct an empty set. @@ -47,7 +49,7 @@ public boolean isEmpty() { } @Override - public boolean contains(Object o) { + public boolean contains(@Nullable Object o) { return innerMap.containsKey(o); } @@ -56,13 +58,17 @@ public Iterator iterator() { return innerMap.keySet().iterator(); } + // see https://eisop.github.io/cf/manual/manual.html#nullness-collection-toarray + @SuppressWarnings({ "nullness", "override.return.invalid" }) @Override - public Object[] toArray() { + public @Nullable Object[] toArray() { return innerMap.keySet().toArray(); } + // see https://eisop.github.io/cf/manual/manual.html#nullness-collection-toarray + @SuppressWarnings({ "nullness", "override.return.invalid" }) @Override - public T1[] toArray(T1[] a) { + public T[] toArray(T[] a) { return innerMap.keySet().toArray(a); } @@ -72,7 +78,7 @@ public boolean add(T o) { } @Override - public boolean remove(Object o) { + public boolean remove(@Nullable Object o) { var contained = innerMap.containsKey(o); innerMap.remove(o); return contained; @@ -101,6 +107,8 @@ public boolean removeAll(Collection c) { return changed; } + + @Override public boolean retainAll(Collection c) { return innerMap.keySet().retainAll(c); diff --git a/key.util/src/main/java/org/key_project/util/collection/ImmutableArray.java b/key.util/src/main/java/org/key_project/util/collection/ImmutableArray.java index aefc3822e32..e102f797603 100644 --- a/key.util/src/main/java/org/key_project/util/collection/ImmutableArray.java +++ b/key.util/src/main/java/org/key_project/util/collection/ImmutableArray.java @@ -16,6 +16,7 @@ import org.jspecify.annotations.NonNull; +@SuppressWarnings("nullness") public class ImmutableArray implements java.lang.Iterable, java.io.Serializable { /** diff --git a/key.util/src/main/java/org/key_project/util/collection/ImmutableLeftistHeap.java b/key.util/src/main/java/org/key_project/util/collection/ImmutableLeftistHeap.java index 9b981683b32..b0dee24b25b 100644 --- a/key.util/src/main/java/org/key_project/util/collection/ImmutableLeftistHeap.java +++ b/key.util/src/main/java/org/key_project/util/collection/ImmutableLeftistHeap.java @@ -12,6 +12,7 @@ * This class implements the leftist heap, see "Functional Data Structures" by Chris * Okasaki */ +@SuppressWarnings("nullness") public abstract class ImmutableLeftistHeap> implements ImmutableHeap { /** diff --git a/key.util/src/main/java/org/key_project/util/collection/ImmutableList.java b/key.util/src/main/java/org/key_project/util/collection/ImmutableList.java index 6fd1ec96f77..b46809d980a 100644 --- a/key.util/src/main/java/org/key_project/util/collection/ImmutableList.java +++ b/key.util/src/main/java/org/key_project/util/collection/ImmutableList.java @@ -10,19 +10,21 @@ import java.util.stream.Stream; import java.util.stream.StreamSupport; -import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; /** * List interface to be implemented by non-destructive lists */ -public interface ImmutableList extends Iterable, java.io.Serializable { +public interface ImmutableList + extends Iterable, java.io.Serializable { /** * Returns a Collector that accumulates the input elements into a new ImmutableList. * * @return a Collector that accumulates the input elements into a new ImmutableList. */ - static Collector, ImmutableList> collector() { + @SuppressWarnings("nullness") // it seems some annotations are missing on Collector.of ... + static Collector, ImmutableList> collector() { return Collector.of(LinkedList::new, List::add, (list1, list2) -> { list1.addAll(list2); return list1; @@ -35,7 +37,7 @@ static Collector, ImmutableList> collector() { * @param list a List. * @return an ImmutableList containing the same elements as the specified list. */ - static ImmutableList fromList(Collection list) { + static ImmutableList fromList(Collection list) { ImmutableList result = ImmutableSLList.nil(); for (T el : list) { @@ -51,7 +53,7 @@ static ImmutableList fromList(Collection list) { * @return empty immutable list. * @param the entry type of the list. */ - static ImmutableList of() { + static ImmutableList of() { return ImmutableSLList.nil(); } @@ -62,7 +64,7 @@ static ImmutableList of() { * @return singleton immutable list. * @param the entry type of the list. */ - static ImmutableList of(T e1) { + static ImmutableList of(T e1) { return ImmutableSLList.singleton(e1); } @@ -75,7 +77,7 @@ static ImmutableList of(T e1) { * @return (e1, e2) as immutable list * @param the entry type of the list. */ - static ImmutableList of(T e1, T e2) { + static ImmutableList of(T e1, T e2) { return ImmutableSLList.singleton(e2).prepend(e1); } @@ -89,7 +91,7 @@ static ImmutableList of(T e1, T e2) { * @return (e1, e2, e3) as immutable list * @param the entry type of the list. */ - static ImmutableList of(T e1, T e2, T e3) { + static ImmutableList of(T e1, T e2, T e3) { return ImmutableSLList.singleton(e3).prepend(e2).prepend(e1); } @@ -101,7 +103,7 @@ static ImmutableList of(T e1, T e2, T e3) { * @return (e1, e2, e3, ...) as immutable list * @param the entry type of the list. */ - static ImmutableList of(T... es) { + static ImmutableList of(T... es) { ImmutableList result = ImmutableSLList.nil(); for (int i = es.length - 1; i >= 0; i--) { result = result.prepend(es[i]); @@ -190,7 +192,7 @@ static ImmutableList of(T... es) { * @param predicate the predicate * @return true if predicate is fullfilled for at least one element */ - boolean exists(Predicate predicate); + boolean exists(Predicate predicate); /** * @return IList tail of list @@ -228,6 +230,7 @@ static ImmutableList of(T... es) { /** * @return true iff the list is empty */ + // not true: @EnsuresNonNullIf(expression = {"head()"}, result = false) boolean isEmpty(); /** @@ -247,12 +250,12 @@ static ImmutableList of(T... es) { /** * Convert the list to a Java array (O(n)) */ - S[] toArray(S[] array); + S[] toArray(S[] array); /** * Convert the list to a Java array (O(n)) */ - S[] toArray(Class type); + S[] toArray(Class type); /** @@ -287,7 +290,7 @@ default List toList() { * * @returns the filtered list */ - default @NonNull ImmutableList filter(@NonNull Predicate predicate) { + default ImmutableList filter(Predicate predicate) { return Immutables.filter(this, predicate); } @@ -299,7 +302,7 @@ default List toList() { * @param function a non-interfering, stateless function to apply to each element * @return the mapped list of the same length as this */ - default ImmutableList map(Function function) { + default ImmutableList map(Function function) { return Immutables.map(this, function); } @@ -307,7 +310,7 @@ default ImmutableList map(Function function) { * @param other prefix to check for * @return whether this list starts with the elements of the provided prefix */ - default boolean hasPrefix(ImmutableList other) { + default boolean hasPrefix(ImmutableList other) { if (other.size() > this.size()) { return false; } @@ -328,7 +331,7 @@ default boolean hasPrefix(ImmutableList other) { * @return new list with the prefix removed * @throws IllegalArgumentException if the provided prefix is not a prefix of this list */ - default ImmutableList stripPrefix(ImmutableList prefix) { + default ImmutableList stripPrefix(ImmutableList prefix) { if (prefix.isEmpty()) { return this; } @@ -352,7 +355,9 @@ default T last() { while (!remainder.tail().isEmpty()) { remainder = remainder.tail(); } - return remainder.head(); + T result = remainder.head(); + assert result != null : "@AssumeAssertion(nullness): this should never be null"; + return result; } /** diff --git a/key.util/src/main/java/org/key_project/util/collection/ImmutableMap.java b/key.util/src/main/java/org/key_project/util/collection/ImmutableMap.java index fe8b3bd499d..0c13b30233b 100644 --- a/key.util/src/main/java/org/key_project/util/collection/ImmutableMap.java +++ b/key.util/src/main/java/org/key_project/util/collection/ImmutableMap.java @@ -10,7 +10,7 @@ * This interface has to be implemented by a Class providing a persistent Map. */ public interface ImmutableMap - extends Iterable>, java.io.Serializable { + extends Iterable> { /** * adds a mapping {@code } to the Map (old map is not modified) if key exists old entry diff --git a/key.util/src/main/java/org/key_project/util/collection/ImmutableMapEntry.java b/key.util/src/main/java/org/key_project/util/collection/ImmutableMapEntry.java index a6d3e1304cf..c7d5876752c 100644 --- a/key.util/src/main/java/org/key_project/util/collection/ImmutableMapEntry.java +++ b/key.util/src/main/java/org/key_project/util/collection/ImmutableMapEntry.java @@ -8,7 +8,7 @@ * second one is of type and named value */ -public interface ImmutableMapEntry extends java.io.Serializable { +public interface ImmutableMapEntry { /** @return the first part of the tupel */ S key(); diff --git a/key.util/src/main/java/org/key_project/util/collection/ImmutableSLList.java b/key.util/src/main/java/org/key_project/util/collection/ImmutableSLList.java index 50106229327..7e52f453ee0 100644 --- a/key.util/src/main/java/org/key_project/util/collection/ImmutableSLList.java +++ b/key.util/src/main/java/org/key_project/util/collection/ImmutableSLList.java @@ -14,6 +14,11 @@ import org.key_project.util.Strings; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * Simple implementation of a non-destructive (unmodifiable) list. The list implementation allows * list sharing of sublists. @@ -24,22 +29,21 @@ * appending and prepending and element can be realized with O(1) costs (see Osaka) then having tail * and head with amortized O(1). This will be done later (if necessary). */ - -@SuppressWarnings("unchecked") -public abstract class ImmutableSLList implements ImmutableList { +@SuppressWarnings({ "unchecked" }) +public abstract class ImmutableSLList implements ImmutableList { /** * generated serial id */ private static final long serialVersionUID = 8717813038177120287L; - + private static final Logger log = LoggerFactory.getLogger(ImmutableSLList.NIL.class); /** the empty list */ - public static ImmutableSLList nil() { + public static ImmutableSLList nil() { return (ImmutableSLList) NIL.NIL; } - public static ImmutableSLList singleton(T obj) { + public static ImmutableSLList singleton(T obj) { return new Cons<>(obj, nil()); } @@ -65,10 +69,13 @@ public ImmutableList reverse() { * Convert the list to a Java array (O(n)) */ @Override - public S[] toArray(S[] array) { + public S[] toArray(S[] array) { S[] result; if (array.length < size()) { - result = (S[]) Array.newInstance(array.getClass().getComponentType(), size()); + Class arrayClass = array.getClass(); + assert arrayClass.isArray() + : "@AssumeAssertion(nullness): This has indeed a component type"; + result = (S[]) Array.newInstance(arrayClass.getComponentType(), size()); } else { result = array; } @@ -84,11 +91,14 @@ public S[] toArray(S[] array) { * Convert the list to a Java array (O(n)) */ @Override - public S[] toArray(Class type) { + @SuppressWarnings("nullness") + public S[] toArray(Class type) { S[] result = (S[]) Array.newInstance(type, size()); ImmutableList rest = this; for (int i = 0, sz = size(); i < sz; i++) { - result[i] = (S) rest.head(); + // @ assert !rest.isEmpty(); + T head = rest.head(); + result[i] = (S) type.cast(head); rest = rest.tail(); } return result; @@ -165,7 +175,7 @@ public ImmutableList take(int n) { } - private static class Cons extends ImmutableSLList { + private static class Cons extends ImmutableSLList { /** * @@ -226,7 +236,11 @@ public ImmutableList prepend(ImmutableList list) { } else { final int sz = list.size(); if (sz == 1) { - return new Cons<>(list.head(), this); + // @ assert !list.isEmpty(); + @SuppressWarnings("nullness") + @NonNull + S head = list.head(); + return new Cons<>(head, this); } Cons result = this; final Object[] listElements = list.toArray(new Object[sz]); @@ -250,6 +264,7 @@ public ImmutableList prependReverse(ImmutableList list) { } else { Cons result = this; for (int sz = list.size(); sz > 0; sz--) { + assert !list.isEmpty() : "@AssumeAssertion(nullness): Invariant"; result = new Cons<>(list.head(), result); list = list.tail(); } @@ -264,7 +279,7 @@ public ImmutableList prependReverse(ImmutableList list) { * @return true if predicate is fullfilled for at least one element */ @Override - public boolean exists(Predicate predicate) { + public boolean exists(Predicate predicate) { ImmutableList list = this; while (!list.isEmpty()) { if (predicate.test(list.head())) { @@ -284,7 +299,7 @@ public boolean exists(Predicate predicate) { */ @Override public ImmutableList append(S e) { - return new Cons<>(e).prepend(this); + return new Cons(e).prepend(this); } /** @@ -429,7 +444,7 @@ public ImmutableList removeAll(S obj) { @Override - public boolean equals(Object o) { + public boolean equals(@Nullable Object o) { if (!(o instanceof ImmutableList)) { return false; } @@ -458,7 +473,7 @@ public String toString() { } /** iterates through a none destructive list */ - private static class SLListIterator implements Iterator { + private static class SLListIterator implements Iterator { /** the list of remaining elements */ private ImmutableList list; @@ -475,6 +490,7 @@ public SLListIterator(ImmutableList list) { /** @return next element in list */ @Override public T next() { + // TODO Perhaps add a RT and throw NuSuchElement to make type checker happy. final T element = list.head(); list = list.tail(); return element; @@ -529,7 +545,7 @@ public int size() { } @Override - public boolean equals(Object o) { + public boolean equals(@Nullable Object o) { return o instanceof NIL; } @@ -580,7 +596,7 @@ public boolean contains(S obj) { * @return true if predicate is fullfilled for at least one element */ @Override - public boolean exists(Predicate predicate) { + public boolean exists(Predicate predicate) { return false; } @@ -596,7 +612,9 @@ public Iterator iterator() { @Override public S head() { - return null; + NoSuchElementException ex = new NoSuchElementException(); + log.error("head on NIL!", ex); + throw ex; } @Override @@ -631,7 +649,7 @@ public SLNilListIterator() { /** @return next element in list */ @Override public S next() { - return null; + throw new NoSuchElementException(); } /** diff --git a/key.util/src/main/java/org/key_project/util/collection/ImmutableSet.java b/key.util/src/main/java/org/key_project/util/collection/ImmutableSet.java index 9b1dcf7381c..ec69790c40d 100644 --- a/key.util/src/main/java/org/key_project/util/collection/ImmutableSet.java +++ b/key.util/src/main/java/org/key_project/util/collection/ImmutableSet.java @@ -9,60 +9,40 @@ import java.util.stream.Collector.Characteristics; import java.util.stream.Stream; -import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; /** * interface implemented by non-destructive Sets. CONVENTION: Each SetOf implementation has to * offer a public static final variable .nil() */ - -public interface ImmutableSet extends Iterable, java.io.Serializable { +public interface ImmutableSet + extends Iterable, java.io.Serializable { /** * Returns a Collector that accumulates the input elements into a new ImmutableSet. * * @return a Collector that accumulates the input elements into a new ImmutableSet. */ - static Collector, ImmutableSet> collector() { + @SuppressWarnings("nullness") // it seems some annotations are missing on Collector.of ... + static Collector, ImmutableSet> collector() { return Collector.of(HashSet::new, Set::add, (set1, set2) -> { set1.addAll(set2); return set1; - }, ImmutableSet::fromSet, Characteristics.UNORDERED); - } - - /** - * Creates an ImmutableSet from a Set. - * - * @param set a Set. - * @return an ImmutableSet containing the same elements as the specified set. - */ - static ImmutableSet fromSet(Set set) { - ImmutableSet result = DefaultImmutableSet.nil(); - - for (T el : set) { - result = result.add(el); - } - - return result; + }, Immutables::createSetFrom, Characteristics.UNORDERED); } /** * Builds a single set with the given obj. */ - static ImmutableSet singleton(T obj) { + static ImmutableSet singleton(T obj) { ImmutableSet result = DefaultImmutableSet.nil(); return result.add(obj); } - static ImmutableSet empty() { + static ImmutableSet empty() { return DefaultImmutableSet.nil(); } - - static ImmutableSet fromCollection(@NonNull Collection seq) { - return fromSet(new HashSet<>(seq)); - } - /** * @return a {@code Set} containing the same elements as this {@code ImmutableSet} */ @@ -115,7 +95,7 @@ static ImmutableSet fromCollection(@NonNull Collection seq) * @return true iff the this set is subset of o and vice versa. */ @Override - boolean equals(Object o); + boolean equals(@Nullable Object o); @Override int hashCode(); diff --git a/key.util/src/main/java/org/key_project/util/collection/Immutables.java b/key.util/src/main/java/org/key_project/util/collection/Immutables.java index 7c9cd4c3919..9dc51e9218e 100644 --- a/key.util/src/main/java/org/key_project/util/collection/Immutables.java +++ b/key.util/src/main/java/org/key_project/util/collection/Immutables.java @@ -4,10 +4,11 @@ package org.key_project.util.collection; import java.util.HashSet; -import java.util.Set; import java.util.function.Function; import java.util.function.Predicate; +import org.jspecify.annotations.Nullable; + /** * This class is a collection of methods that operate on immutable collections, in particular * {@link ImmutableSet}s and {@link ImmutableList}s. @@ -34,8 +35,7 @@ private Immutables() { * @param list any list, must not be null * @return true iff every */ - public static boolean isDuplicateFree(ImmutableList list) { - + public static boolean isDuplicateFree(ImmutableList list) { HashSet set = new HashSet<>(); for (T element : list) { if (set.contains(element)) { @@ -63,7 +63,7 @@ public static boolean isDuplicateFree(ImmutableList list) { * The implementation uses a hash set internally and thus runs in O(n). * * It reuses as much created datastructure as possible. In particular, if the list is already - * duplicate-fre, it does not allocate new memory (well, only temporarily) and returns the + * duplicate-free, it does not allocate new memory (well, only temporarily) and returns the * argument. * * Sidenote: Would that not make a nice KeY-Verification condition? Eat your own dogfood. @@ -72,7 +72,8 @@ public static boolean isDuplicateFree(ImmutableList list) { * * @return a duplicate-free version of the argument, never null */ - public static ImmutableList removeDuplicates(ImmutableList list) { + public static ImmutableList removeDuplicates( + ImmutableList list) { if (list.isEmpty()) { return list; @@ -90,6 +91,7 @@ public static ImmutableList removeDuplicates(ImmutableList list) { while (!stack.isEmpty()) { ImmutableList top = stack.head(); + assert !top.isEmpty() : "@AssumeAssertion(nullness)"; T element = top.head(); stack = stack.tail(); if (alreadySeen.contains(element)) { @@ -102,6 +104,7 @@ public static ImmutableList removeDuplicates(ImmutableList list) { while (!stack.isEmpty()) { ImmutableList top = stack.head(); + assert !top.isEmpty() : "@AssumeAssertion(nullness)"; T element = top.head(); stack = stack.tail(); if (!alreadySeen.contains(element)) { @@ -114,10 +117,11 @@ public static ImmutableList removeDuplicates(ImmutableList list) { } - public static ImmutableList concatDuplicateFreeLists(ImmutableList l1, + public static ImmutableList concatDuplicateFreeLists( + ImmutableList l1, ImmutableList l2) { - Set lookup = new HashSet<>(); + HashSet lookup = new HashSet<>(); for (T element : l1) { lookup.add(element); } @@ -132,7 +136,19 @@ public static ImmutableList concatDuplicateFreeLists(ImmutableList l1, return result; } - public static ImmutableSet createSetFrom(Iterable iterable) { + /** + * Returns an immutable set consisting of the elements of the + * given iterable collection. + * + * The iteration order of the result is identical to that of the argument. + * + * @param iterable the collection to iterate through to obtain the elements + * for the resulting list + * + * @return the view onto the iterable as an immutable set + */ + public static ImmutableSet createSetFrom( + Iterable iterable) { return DefaultImmutableSet.fromImmutableList(createListFrom(iterable)); } @@ -145,9 +161,9 @@ public static ImmutableSet createSetFrom(Iterable iterable) { * @param iterable the collection to iterate through to obtain the elements * for the resulting list * - * @returns the view onto the iterable as an immutable list + * @return the view onto the iterable as an immutable list */ - public static ImmutableList createListFrom(Iterable iterable) { + public static ImmutableList createListFrom(Iterable iterable) { ImmutableList result = ImmutableSLList.nil(); for (T t : iterable) { result = result.prepend(t); @@ -167,11 +183,12 @@ public static ImmutableList createListFrom(Iterable iterable) { * * @returns the filtered list */ - public static ImmutableList filter(ImmutableList ts, Predicate predicate) { + public static ImmutableList filter(ImmutableList ts, + Predicate predicate) { // This must be a loop. A tail recursive implementation is not optimised // by the compiler and quickly leads to a stack overlow. ImmutableList acc = ImmutableSLList.nil(); - while (ts.size() > 0) { + while (!ts.isEmpty()) { T hd = ts.head(); if (predicate.test(hd)) { acc = acc.prepend(hd); @@ -190,11 +207,12 @@ public static ImmutableList filter(ImmutableList ts, Predicate pred * @param function a non-interfering, stateless function to apply to each element * @return the mapped list of the same length as this */ - public static ImmutableList map(ImmutableList ts, Function function) { + public static ImmutableList map( + ImmutableList ts, Function function) { // This must be a loop. A tail recursive implementation is not optimised // by the compiler and quickly leads to a stack overlow. ImmutableList acc = ImmutableSLList.nil(); - while (ts.size() > 0) { + while (!ts.isEmpty()) { T hd = ts.head(); acc = acc.prepend(function.apply(hd)); ts = ts.tail(); diff --git a/key.util/src/main/java/org/key_project/util/collection/KeYCollections.java b/key.util/src/main/java/org/key_project/util/collection/KeYCollections.java index d7e1e6fcc46..e6193c17e99 100644 --- a/key.util/src/main/java/org/key_project/util/collection/KeYCollections.java +++ b/key.util/src/main/java/org/key_project/util/collection/KeYCollections.java @@ -10,10 +10,12 @@ import java.util.stream.Collectors; import java.util.stream.StreamSupport; +import org.checkerframework.checker.nullness.util.NullnessUtil; +import org.jspecify.annotations.Nullable; + /** * Utilities for Collections. * - * * @author Alexander Weigl * @version 1 (29.03.19) */ @@ -27,9 +29,11 @@ public class KeYCollections { * first one. */ public static S[] concat(S[] s1, T[] s2) { + @Nullable S[] res = Arrays.copyOf(s1, s1.length + s2.length); System.arraycopy(s2, 0, res, s1.length, s2.length); - return res; + // After arraycopy, all elements of res are NonNull. + return NullnessUtil.castNonNullDeep(res); } // ======================================================= @@ -58,9 +62,12 @@ public static Map apply(Map m0, Map m1) { } for (Map.Entry e : m0.entrySet()) { - final U value = m1.get(e.getValue()); - if (value != null) { - res.put(e.getKey(), value); + final T v1 = e.getValue(); + if (v1 != null) { + final U value = m1.get(v1); + if (value != null) { + res.put(e.getKey(), value); + } } } return res; diff --git a/key.util/src/main/java/org/key_project/util/collection/NotUniqueException.java b/key.util/src/main/java/org/key_project/util/collection/NotUniqueException.java index fc8748aa286..3d734f450f7 100644 --- a/key.util/src/main/java/org/key_project/util/collection/NotUniqueException.java +++ b/key.util/src/main/java/org/key_project/util/collection/NotUniqueException.java @@ -4,20 +4,19 @@ package org.key_project.util.collection; +import org.jspecify.annotations.Nullable; /** thrown if a duplicate is being added via addUnique() */ public class NotUniqueException extends Exception { + private final @Nullable Object offender; - private static final long serialVersionUID = 6565515240836947955L; - final Object offender; - - public NotUniqueException(Object o) { + public NotUniqueException(@Nullable Object o) { offender = o; } @Override public String toString() { - return "Tried to add a duplicate object to set. Offender is \n" + offender + "\nof class " - + offender.getClass(); + return "Tried to add a duplicate object to set. Offender is \n" + offender + + (offender != null ? " of class " + offender.getClass() : ""); } } diff --git a/key.util/src/main/java/org/key_project/util/collection/Pair.java b/key.util/src/main/java/org/key_project/util/collection/Pair.java index 56cb9295521..29a7d3f9393 100644 --- a/key.util/src/main/java/org/key_project/util/collection/Pair.java +++ b/key.util/src/main/java/org/key_project/util/collection/Pair.java @@ -8,6 +8,8 @@ import java.util.Objects; import java.util.Set; +import org.jspecify.annotations.Nullable; + /** * Simple value object to hold two values. * @@ -43,7 +45,7 @@ public String toString() { @Override - public boolean equals(Object o) { + public boolean equals(@Nullable Object o) { if (!(o instanceof Pair p)) { return false; } diff --git a/key.util/src/main/java/org/key_project/util/collection/PropertiesUtil.java b/key.util/src/main/java/org/key_project/util/collection/PropertiesUtil.java index ac84384ede7..d82b74398e3 100644 --- a/key.util/src/main/java/org/key_project/util/collection/PropertiesUtil.java +++ b/key.util/src/main/java/org/key_project/util/collection/PropertiesUtil.java @@ -10,6 +10,7 @@ import java.nio.charset.StandardCharsets; import java.util.Properties; +@SuppressWarnings("nullness") public class PropertiesUtil { private PropertiesUtil() { diff --git a/key.util/src/main/java/org/key_project/util/collection/package-info.java b/key.util/src/main/java/org/key_project/util/collection/package-info.java new file mode 100644 index 00000000000..06e5b31dba6 --- /dev/null +++ b/key.util/src/main/java/org/key_project/util/collection/package-info.java @@ -0,0 +1,8 @@ +/** + * @author Alexander Weigl + * @version 1 (24.07.23) + */ +@NullMarked +package org.key_project.util.collection; + +import org.jspecify.annotations.NullMarked; diff --git a/key.util/src/main/java/org/key_project/util/helper/FindResources.java b/key.util/src/main/java/org/key_project/util/helper/FindResources.java index 580d0a288d7..64f13ac7efd 100644 --- a/key.util/src/main/java/org/key_project/util/helper/FindResources.java +++ b/key.util/src/main/java/org/key_project/util/helper/FindResources.java @@ -10,9 +10,10 @@ import java.nio.file.*; import java.util.Arrays; import java.util.List; -import java.util.Objects; import java.util.stream.Collectors; +import org.jspecify.annotations.Nullable; + /** * @author Alexander Weigl * @version 1 (13.02.19) @@ -29,13 +30,20 @@ public final class FindResources { * @throws IOException * @author Greg Briggs */ - public static List getResources(String path, Class clazz) + public static @Nullable List getResources(String path, Class clazz) throws URISyntaxException, IOException { - URL dirURL = clazz.getClassLoader().getResource(path); + final var classLoader = clazz.getClassLoader(); + + if (classLoader == null) + return null; + + @Nullable + URL dirURL = classLoader.getResource(path); if (dirURL != null && dirURL.getProtocol().equals("file")) { /* A file path: easy enough */ File[] files = new File(dirURL.toURI()).listFiles(); - Objects.requireNonNull(files); + if (files == null) + files = new File[0]; return Arrays.stream(files).map(File::toPath).collect(Collectors.toList()); } @@ -45,7 +53,7 @@ public static List getResources(String path, Class clazz) * jar as clazz. */ String me = clazz.getName().replace(".", "/") + ".class"; - dirURL = clazz.getClassLoader().getResource(me); + dirURL = classLoader.getResource(me); } if (dirURL == null) { @@ -57,7 +65,7 @@ public static List getResources(String path, Class clazz) // strip out only the JAR file String jarPath = dirURL.getPath().substring(5, dirURL.getPath().indexOf('!')); try (FileSystem fs = - FileSystems.newFileSystem(Paths.get(jarPath), clazz.getClassLoader())) { + FileSystems.newFileSystem(Paths.get(jarPath), classLoader)) { Path dir = fs.getPath(path); try (var s = Files.list(dir)) { return s.collect(Collectors.toList()); @@ -67,13 +75,17 @@ public static List getResources(String path, Class clazz) throw new UnsupportedOperationException("Cannot list files for URL \"" + dirURL + "\""); } - public static List getResources(String path) throws URISyntaxException, IOException { + public static @Nullable List getResources(String path) + throws URISyntaxException, IOException { return getResources(path, FindResources.class); } - public static Path getResource(String path, Class clazz) + public static @Nullable Path getResource(String path, Class clazz) throws URISyntaxException, IOException { - URL dirURL = clazz.getClassLoader().getResource(path); + final var classLoader = clazz.getClassLoader(); + if (classLoader == null) + return null; + URL dirURL = classLoader.getResource(path); if (dirURL != null && dirURL.getProtocol().equals("file")) { return new File(dirURL.toURI()).toPath(); } @@ -84,7 +96,7 @@ public static Path getResource(String path, Class clazz) * jar as clazz. */ String me = clazz.getName().replace(".", "/") + ".class"; - dirURL = clazz.getClassLoader().getResource(me); + dirURL = classLoader.getResource(me); } if (dirURL == null) { @@ -96,14 +108,15 @@ public static Path getResource(String path, Class clazz) // strip out only the JAR file String jarPath = dirURL.getPath().substring(5, dirURL.getPath().indexOf('!')); try (FileSystem fs = - FileSystems.newFileSystem(Paths.get(jarPath), clazz.getClassLoader())) { + FileSystems.newFileSystem(Paths.get(jarPath), classLoader)) { return fs.getPath(path); } } throw new UnsupportedOperationException("Cannot list files for URL \"" + dirURL + "\""); } - public static Path getResource(String path) throws URISyntaxException, IOException { + public static @Nullable Path getResource(String path) + throws URISyntaxException, IOException { return getResource(path, FindResources.class); } @@ -112,7 +125,7 @@ public static Path getResource(String path) throws URISyntaxException, IOExc * @param candidates * @return */ - public static File findFolder(String property, String... candidates) { + public static @Nullable File findFolder(String property, String... candidates) { return findFolder(true, property, candidates); } @@ -131,7 +144,7 @@ public static File findFolder(String property, String... candidates) { * user * @return */ - public static File findFolder(boolean exists, String property, String... candidates) { + public static @Nullable File findFolder(boolean exists, String property, String... candidates) { if (System.getProperty(property) != null) { File f = new File(System.getProperty(property)); if (f.exists() || !exists) { @@ -147,23 +160,23 @@ public static File findFolder(boolean exists, String property, String... candida return null; } - public static File getExampleDirectory() { + public static @Nullable File getExampleDirectory() { return findFolder("KEY_EXAMPLES_DIR", "key.ui/examples", "../key.ui/examples", "examples"); } - public static File getTestResultForRunAllProofs() { + public static @Nullable File getTestResultForRunAllProofs() { return findFolder(false, "KEY_TESTRESULT_RUNALLPROOFS", "build/reports/runallproofs"); } - public static File getTestCasesDirectory() { + public static @Nullable File getTestCasesDirectory() { return findFolder("TEST_CASES", "src/test/resources/testcase"); } - public static File getTestResourcesDirectory() { + public static @Nullable File getTestResourcesDirectory() { return findFolder("TEST_RESOURCES", "src/test/resources/"); } - public static File getTacletProofsDirectory() { + public static @Nullable File getTacletProofsDirectory() { return findFolder("TACLET_PROOFS", "key.core/tacletProofs", "../key.core/tacletProofs", "tacletProofs"); } diff --git a/key.util/src/main/java/org/key_project/util/helper/HelperClassForUtilityTests.java b/key.util/src/main/java/org/key_project/util/helper/HelperClassForUtilityTests.java index 2f5716d9650..176a29171f1 100644 --- a/key.util/src/main/java/org/key_project/util/helper/HelperClassForUtilityTests.java +++ b/key.util/src/main/java/org/key_project/util/helper/HelperClassForUtilityTests.java @@ -8,6 +8,7 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; +@SuppressWarnings("nullness") public class HelperClassForUtilityTests { public static final File RESOURCE_DIRECTORY = FindResources.getTestResourcesDirectory(); diff --git a/key.util/src/main/java/org/key_project/util/helper/package-info.java b/key.util/src/main/java/org/key_project/util/helper/package-info.java new file mode 100644 index 00000000000..3472f55554e --- /dev/null +++ b/key.util/src/main/java/org/key_project/util/helper/package-info.java @@ -0,0 +1,8 @@ +/** + * @author Alexander Weigl + * @version 1 (24.07.23) + */ +@NullMarked +package org.key_project.util.helper; + +import org.jspecify.annotations.NullMarked; diff --git a/key.util/src/main/java/org/key_project/util/java/ArrayUtil.java b/key.util/src/main/java/org/key_project/util/java/ArrayUtil.java index f18e83601c6..c1fe336dd4d 100644 --- a/key.util/src/main/java/org/key_project/util/java/ArrayUtil.java +++ b/key.util/src/main/java/org/key_project/util/java/ArrayUtil.java @@ -8,6 +8,8 @@ import java.util.Objects; import java.util.function.Predicate; +import org.jspecify.annotations.Nullable; + /** * Provides static methods to work with arrays. * @@ -23,20 +25,20 @@ private ArrayUtil() { /** * Searches an element in the given {@link Iterable} instance. * + * Returns the first element that satisfies the predicate. + * * @param array The instance to search in. * @param filter The filter to select an element. * @return The found element or {@code null} if no element was found. */ - public static T search(T[] array, Predicate filter) { + public static @Nullable T search(T[] array, Predicate filter) { T result = null; - if (array != null && filter != null) { - int i = 0; - while (result == null && i < array.length) { - if (filter.test(array[i])) { - result = array[i]; - } - i++; + int i = 0; + while (result == null && i < array.length) { + if (filter.test(array[i])) { + result = array[i]; } + i++; } return result; } @@ -57,32 +59,19 @@ public static T search(T[] array, Predicate filter) { * @throws IllegalArgumentException Both parameters are {@code null}. */ @SuppressWarnings("unchecked") - public static T[] addAll(T[] array, T[] toAdd) { - if (array != null) { - if (toAdd != null) { - T[] result = - (T[]) java.lang.reflect.Array.newInstance(array.getClass().getComponentType(), - array.length + toAdd.length); - System.arraycopy(array, 0, result, 0, array.length); - System.arraycopy(toAdd, 0, result, array.length, toAdd.length); - return result; - } else { - T[] result = (T[]) java.lang.reflect.Array - .newInstance(array.getClass().getComponentType(), array.length); - System.arraycopy(array, 0, result, 0, array.length); - return result; - } - } else { - if (toAdd != null) { - T[] result = (T[]) java.lang.reflect.Array - .newInstance(toAdd.getClass().getComponentType(), toAdd.length); - System.arraycopy(toAdd, 0, result, 0, toAdd.length); - return result; - } else { - throw new IllegalArgumentException( - "Can not create an array if both paramters are null."); - } - } + public static T[] addAll(T[] array, T[] toAdd) { + T[] result = + (T[]) java.lang.reflect.Array.newInstance(getComponentType(array), + array.length + toAdd.length); + System.arraycopy(array, 0, result, 0, array.length); + System.arraycopy(toAdd, 0, result, array.length, toAdd.length); + return result; + } + + private static Class getComponentType(T[] array) { + Class arrayClass = array.getClass(); + assert arrayClass.isArray() : "@AssumeAssertion(nullness): This is always the case"; + return (Class) arrayClass.getComponentType(); } /** @@ -102,28 +91,13 @@ public static T[] addAll(T[] array, T[] toAdd) { * @throws IllegalArgumentException Both parameters are {@code null}. */ @SuppressWarnings("unchecked") - public static T[] addAll(T[] array, T[] toAdd, Class newArrayType) { - if (array != null) { - if (toAdd != null) { - T[] result = (T[]) java.lang.reflect.Array.newInstance(newArrayType, - array.length + toAdd.length); - System.arraycopy(array, 0, result, 0, array.length); - System.arraycopy(toAdd, 0, result, array.length, toAdd.length); - return result; - } else { - T[] result = (T[]) java.lang.reflect.Array.newInstance(newArrayType, array.length); - System.arraycopy(array, 0, result, 0, array.length); - return result; - } - } else { - if (toAdd != null) { - T[] result = (T[]) java.lang.reflect.Array.newInstance(newArrayType, toAdd.length); - System.arraycopy(toAdd, 0, result, 0, toAdd.length); - return result; - } else { - return (T[]) java.lang.reflect.Array.newInstance(newArrayType, 0); - } - } + public static T[] addAll(T[] array, T[] toAdd, + Class newArrayType) { + T[] result = (T[]) java.lang.reflect.Array.newInstance(newArrayType, + array.length + toAdd.length); + System.arraycopy(array, 0, result, 0, array.length); + System.arraycopy(toAdd, 0, result, array.length, toAdd.length); + return result; } /** @@ -142,23 +116,12 @@ public static T[] addAll(T[] array, T[] toAdd, Class newArrayType) { * @throws IllegalArgumentException Both parameters are {@code null}. */ @SuppressWarnings("unchecked") - public static T[] add(T[] array, T toAdd) { - if (array != null) { - T[] result = (T[]) java.lang.reflect.Array - .newInstance(array.getClass().getComponentType(), array.length + 1); - System.arraycopy(array, 0, result, 0, array.length); - result[array.length] = toAdd; - return result; - } else { - if (toAdd != null) { - T[] result = (T[]) java.lang.reflect.Array.newInstance(toAdd.getClass(), 1); - result[0] = toAdd; - return result; - } else { - throw new IllegalArgumentException( - "Can not create an array if both paramters are null."); - } - } + public static T[] add(T[] array, T toAdd) { + T[] result = (T[]) java.lang.reflect.Array + .newInstance(getComponentType(array), array.length + 1); + System.arraycopy(array, 0, result, 0, array.length); + result[array.length] = toAdd; + return result; } /** @@ -172,14 +135,10 @@ public static T[] add(T[] array, T toAdd) { * @return The new created array with one more element. */ public static int[] add(int[] array, int toAdd) { - if (array != null) { - int[] result = new int[array.length + 1]; - System.arraycopy(array, 0, result, 0, array.length); - result[array.length] = toAdd; - return result; - } else { - return new int[] { toAdd }; - } + int[] result = new int[array.length + 1]; + System.arraycopy(array, 0, result, 0, array.length); + result[array.length] = toAdd; + return result; } /** @@ -194,26 +153,15 @@ public static int[] add(int[] array, int toAdd) { * @return The new created array with one more element. */ @SuppressWarnings("unchecked") - public static T[] insert(T[] array, T toInsert, int index) { - if (array != null) { - T[] result = (T[]) java.lang.reflect.Array - .newInstance(array.getClass().getComponentType(), array.length + 1); - if (index >= 1) { - System.arraycopy(array, 0, result, 0, index); - } - result[index] = toInsert; - System.arraycopy(array, index, result, index + 1, array.length - index); - return result; - } else { - if (toInsert != null) { - T[] result = (T[]) java.lang.reflect.Array.newInstance(toInsert.getClass(), 1); - result[0] = toInsert; - return result; - } else { - throw new IllegalArgumentException( - "Can not create an array if array and element to insert are null."); - } + public static T[] insert(T[] array, T toInsert, int index) { + T[] result = (T[]) java.lang.reflect.Array + .newInstance(getComponentType(array), array.length + 1); + if (index >= 1) { + System.arraycopy(array, 0, result, 0, index); } + result[index] = toInsert; + System.arraycopy(array, index, result, index + 1, array.length - index); + return result; } /** @@ -225,7 +173,7 @@ public static T[] insert(T[] array, T toInsert, int index) { * @return {@code true} if the array contains the element or {@code false} if not or if the * array is {@code null}. */ - public static boolean contains(T[] array, T toSearch) { + public static boolean contains(T[] array, T toSearch) { return indexOf(array, toSearch) >= 0; } @@ -238,13 +186,11 @@ public static boolean contains(T[] array, T toSearch) { * @return The first index in the array that contains the element to search or {@code -1} if the * elment is not containd in the array. */ - public static int indexOf(T[] array, T toSearch) { + public static int indexOf(T[] array, T toSearch) { int index = -1; - if (array != null) { - for (int i = 0; i < array.length; i++) { - if (Objects.equals(array[i], toSearch)) { - return i; - } + for (int i = 0; i < array.length; i++) { + if (Objects.equals(array[i], toSearch)) { + return i; } } return index; @@ -256,23 +202,18 @@ public static int indexOf(T[] array, T toSearch) { * * @param array The array to remove from. * @param toRemove The element to remove. - * @return A copy of the array without the element toRemove or {@code null} if the given array - * was {@code null}. + * @return A copy of the array without the element toRemove. */ @SuppressWarnings("unchecked") - public static T[] remove(T[] array, T toRemove) { - if (array != null) { - List result = new LinkedList<>(); - for (T element : array) { - if (!Objects.equals(element, toRemove)) { - result.add(element); - } + public static T[] remove(T[] array, T toRemove) { + List result = new LinkedList<>(); + for (T element : array) { + if (!Objects.equals(element, toRemove)) { + result.add(element); } - return result.toArray((T[]) java.lang.reflect.Array - .newInstance(array.getClass().getComponentType(), result.size())); - } else { - return null; } + return (T[]) result.toArray((T[]) java.lang.reflect.Array + .newInstance(getComponentType(array), result.size())); } /** @@ -281,7 +222,7 @@ public static T[] remove(T[] array, T toRemove) { * @param array The array to convert. * @return The array as {@link String}. */ - public static String toString(T[] array) { + public static String toString(T[] array) { return toString(array, ", "); } @@ -292,18 +233,16 @@ public static String toString(T[] array) { * @param separator The separator between to array elements. * @return The array as {@link String}. */ - public static String toString(T[] array, String separator) { + public static String toString(T[] array, String separator) { StringBuilder sb = new StringBuilder(); - if (array != null) { - boolean afterFirst = false; - for (T element : array) { - if (afterFirst) { - sb.append(separator); - } else { - afterFirst = true; - } - sb.append(element); + boolean afterFirst = false; + for (T element : array) { + if (afterFirst) { + sb.append(separator); + } else { + afterFirst = true; } + sb.append(element); } return sb.toString(); } @@ -327,16 +266,14 @@ public static String toString(int[] array) { */ public static String toString(int[] array, String separator) { StringBuilder sb = new StringBuilder(); - if (array != null) { - boolean afterFirst = false; - for (int element : array) { - if (afterFirst) { - sb.append(separator); - } else { - afterFirst = true; - } - sb.append(element); + boolean afterFirst = false; + for (int element : array) { + if (afterFirst) { + sb.append(separator); + } else { + afterFirst = true; } + sb.append(element); } return sb.toString(); } @@ -347,7 +284,7 @@ public static String toString(int[] array, String separator) { * @param array The array to check. * @return {@code true} array is empty or {@code null}, {@code false} array is not empty. */ - public static boolean isEmpty(T[] array) { - return array == null || array.length == 0; + public static boolean isEmpty(T[] array) { + return array.length == 0; } } diff --git a/key.util/src/main/java/org/key_project/util/java/CollectionUtil.java b/key.util/src/main/java/org/key_project/util/java/CollectionUtil.java index c6e462cb99e..baa70c6c94f 100644 --- a/key.util/src/main/java/org/key_project/util/java/CollectionUtil.java +++ b/key.util/src/main/java/org/key_project/util/java/CollectionUtil.java @@ -6,6 +6,8 @@ import java.util.*; import java.util.function.Predicate; +import org.jspecify.annotations.Nullable; + /** * Provides static methods to work with {@link Collection}s. * @@ -30,23 +32,19 @@ private CollectionUtil() { * @param toSearch The element to search. * @return The index of the element or {@code -1} if it was not found. */ - public static int indexOf(Iterator iter, T toSearch) { - if (iter != null) { - int i = 0; - boolean found = false; - while (!found && iter.hasNext()) { - T next = iter.next(); - if (Objects.equals(next, toSearch)) { - found = true; - } else { - i++; - } - } - if (found) { - return i; + public static int indexOf(Iterator iter, T toSearch) { + int i = 0; + boolean found = false; + while (!found && iter.hasNext()) { + T next = iter.next(); + if (Objects.equals(next, toSearch)) { + found = true; } else { - return -1; + i++; } + } + if (found) { + return i; } else { return -1; } @@ -72,42 +70,20 @@ public static String toString(Collection collection) { */ public static String toString(Collection collection, String separator) { StringBuilder sb = new StringBuilder(); - if (collection != null) { - boolean afterFirst = false; - for (Object object : collection) { - if (afterFirst) { - if (separator != null) { - sb.append(separator); - } - } else { - afterFirst = true; + boolean afterFirst = false; + for (Object object : collection) { + if (afterFirst) { + if (separator != null) { + sb.append(separator); } - sb.append(object); + } else { + afterFirst = true; } + sb.append(object); } return sb.toString(); } - /** - * Nullpointersave execution of {@link Collection#isEmpty()}. - * - * @param collection The given {@link Collection}. - * @return {@code true} = is empty or {@code null}, {@code false} = is not empty. - */ - public static boolean isEmpty(Collection collection) { - return collection == null || collection.isEmpty(); - } - - /** - * Nullpointersave execution of {@link Map#isEmpty()}. - * - * @param map The given {@link Map}. - * @return {@code true} = is empty or {@code null}, {@code false} = is not empty. - */ - public static boolean isEmpty(Map map) { - return map == null || map.isEmpty(); - } - /** * Adds all elements to the {@link Collection}. * @@ -116,10 +92,8 @@ public static boolean isEmpty(Map map) { * @param iterable The elements to add. */ public static void addAll(Collection collection, Iterable iterable) { - if (collection != null && iterable != null) { - for (T toAdd : iterable) { - collection.add(toAdd); - } + for (T toAdd : iterable) { + collection.add(toAdd); } } @@ -131,20 +105,17 @@ public static void addAll(Collection collection, Iterable iterable) { * @return {@code true} if at least one element was removed, {@code false} if the * {@link Collection} was not modified. */ - public static boolean removeComplete(Collection collection, T toRemove) { - if (collection != null) { - Iterator iter = collection.iterator(); - boolean changed = false; - while (iter.hasNext()) { - if (Objects.equals(iter.next(), toRemove)) { - iter.remove(); - changed = true; - } + public static boolean removeComplete(Collection collection, + T toRemove) { + Iterator iter = collection.iterator(); + boolean changed = false; + while (iter.hasNext()) { + if (Objects.equals(iter.next(), toRemove)) { + iter.remove(); + changed = true; } - return changed; - } else { - return false; } + return changed; } /** @@ -154,13 +125,12 @@ public static boolean removeComplete(Collection collection, T toRemove) { * @param filter The {@link IFilter} to use. * @return The elements accepted by the given {@link Predicate}. */ - public static List searchAll(Iterable iterable, Predicate filter) { + public static List searchAll(Iterable iterable, + Predicate filter) { List result = new ArrayList<>(); - if (iterable != null && filter != null) { - for (T element : iterable) { - if (filter.test(element)) { - result.add(element); - } + for (T element : iterable) { + if (filter.test(element)) { + result.add(element); } } return result; @@ -173,15 +143,14 @@ public static List searchAll(Iterable iterable, Predicate filter) { * @param filter The filter to select an element. * @return The found element or {@code null} if no element was found. */ - public static T search(Iterable iterable, Predicate filter) { + public static @Nullable T search(Iterable iterable, + Predicate filter) { T result = null; - if (iterable != null && filter != null) { - Iterator iter = iterable.iterator(); - while (result == null && iter.hasNext()) { - T next = iter.next(); - if (filter.test(next)) { - result = next; - } + Iterator iter = iterable.iterator(); + while (result == null && iter.hasNext()) { + T next = iter.next(); + if (filter.test(next)) { + result = next; } } return result; @@ -195,16 +164,15 @@ public static T search(Iterable iterable, Predicate filter) { * @param filter The filter to select an element. * @return The found element or {@code null} if no element was found. */ - public static T searchAndRemove(Iterable iterable, Predicate filter) { + public static @Nullable T searchAndRemove(Iterable iterable, + Predicate filter) { T result = null; - if (iterable != null && filter != null) { - Iterator iter = iterable.iterator(); - while (result == null && iter.hasNext()) { - T next = iter.next(); - if (filter.test(next)) { - result = next; - iter.remove(); - } + Iterator iter = iterable.iterator(); + while (result == null && iter.hasNext()) { + T next = iter.next(); + if (filter.test(next)) { + result = next; + iter.remove(); } } return result; @@ -218,17 +186,16 @@ public static T searchAndRemove(Iterable iterable, Predicate filter) { * @param filter The filter to select an element. * @return The found element or {@code null} if no element was found. */ - public static T searchAndRemoveWithException(Iterable iterable, + public static @Nullable T searchAndRemoveWithException( + Iterable iterable, IFilterWithException filter) throws E { T result = null; - if (iterable != null && filter != null) { - Iterator iter = iterable.iterator(); - while (result == null && iter.hasNext()) { - T next = iter.next(); - if (filter.select(next)) { - result = next; - iter.remove(); - } + Iterator iter = iterable.iterator(); + while (result == null && iter.hasNext()) { + T next = iter.next(); + if (filter.select(next)) { + result = next; + iter.remove(); } } return result; @@ -241,13 +208,11 @@ public static T searchAndRemoveWithException(Iterable boolean contains(Iterable iterable, T element) { + public static boolean contains(Iterable iterable, T element) { boolean found = false; - if (iterable != null) { - Iterator iter = iterable.iterator(); - while (!found && iter.hasNext()) { - found = Objects.equals(iter.next(), element); - } + Iterator iter = iterable.iterator(); + while (!found && iter.hasNext()) { + found = Objects.equals(iter.next(), element); } return found; } @@ -260,13 +225,12 @@ public static boolean contains(Iterable iterable, T element) { * @param filter The {@link IFilter} to select elements. * @return The number of elements selected by the {@link IFilter} in the given {@link Iterable}. */ - public static int count(Iterable iterable, Predicate filter) { + public static int count(Iterable iterable, + Predicate filter) { int count = 0; - if (iterable != null && filter != null) { - for (T element : iterable) { - if (filter.test(element)) { - count++; - } + for (T element : iterable) { + if (filter.test(element)) { + count++; } } return count; @@ -285,26 +249,23 @@ public static int count(Iterable iterable, Predicate filter) { * @return {@code true} both {@link Collection}s contains same elements, {@code false} * {@link Collection}s are different. */ - public static boolean containsSame(Collection first, Collection second) { - if (first != null) { - if (second != null) { - if (first.size() == second.size()) { - Collection firstCopy = new LinkedList<>(first); - boolean same = true; - Iterator secondIter = second.iterator(); - while (same && secondIter.hasNext()) { - T secondNext = secondIter.next(); - same = firstCopy.remove(secondNext); - } - return same; - } else { - return false; - } - } else { - return first.size() == 0; + @SuppressWarnings("nullness:argument.type.incompatible") + // Checker Framework conservatively disallows passing null to Collection.remove, but if we have + // a collection of type + // Collection<@Nullable C>, it's probably fine. + public static boolean containsSame(Collection first, + Collection second) { + if (first.size() == second.size()) { + Collection firstCopy = new LinkedList<>(first); + boolean same = true; + Iterator secondIter = second.iterator(); + while (same && secondIter.hasNext()) { + T secondNext = secondIter.next(); + same = firstCopy.remove(secondNext); } + return same; } else { - return second == null || second.size() == 0; + return false; } } @@ -314,16 +275,12 @@ public static boolean containsSame(Collection first, Collection second * @param iterable The {@link Iterable} to remove first element from. * @return The removed first element or {@code null} if no element was removed. */ - public static T removeFirst(Iterable iterable) { + public static @Nullable T removeFirst(Iterable iterable) { try { - if (iterable != null) { - Iterator iter = iterable.iterator(); - T next = iter.next(); - iter.remove(); - return next; - } else { - return null; - } + Iterator iter = iterable.iterator(); + T next = iter.next(); + iter.remove(); + return next; } catch (NoSuchElementException e) { return null; // Iterable must be empty. } @@ -336,7 +293,8 @@ public static T removeFirst(Iterable iterable) { * @param toInsert The element to insert. * @param comparator The {@link Comparator} to use. */ - public static void binaryInsert(List list, T toInsert, Comparator comparator) { + public static void binaryInsert(List list, T toInsert, + Comparator comparator) { if (list.isEmpty()) { list.add(toInsert); } else { diff --git a/key.util/src/main/java/org/key_project/util/java/IFilterWithException.java b/key.util/src/main/java/org/key_project/util/java/IFilterWithException.java index db96031f16e..5eb8eeb4a92 100644 --- a/key.util/src/main/java/org/key_project/util/java/IFilterWithException.java +++ b/key.util/src/main/java/org/key_project/util/java/IFilterWithException.java @@ -3,13 +3,15 @@ * SPDX-License-Identifier: GPL-2.0-only */ package org.key_project.util.java; +import org.jspecify.annotations.Nullable; + /** * Utility class to select elements which also allows that exceptions are thrown during selection * phase. * * @author Martin Hentschel */ -public interface IFilterWithException { +public interface IFilterWithException { /** * Checks if the given element should be selected. * diff --git a/key.util/src/main/java/org/key_project/util/java/IOUtil.java b/key.util/src/main/java/org/key_project/util/java/IOUtil.java index 39fe82a3581..65578b4e82a 100644 --- a/key.util/src/main/java/org/key_project/util/java/IOUtil.java +++ b/key.util/src/main/java/org/key_project/util/java/IOUtil.java @@ -16,6 +16,9 @@ import java.util.zip.ZipException; import java.util.zip.ZipInputStream; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; + /** * Provides static methods to work with java IO. * @@ -43,7 +46,7 @@ private IOUtil() { * * @return The home directory. */ - public static File getHomeDirectory() { + public static @Nullable File getHomeDirectory() { String path = System.getProperty("user.home"); if (path != null) { return new File(path); @@ -58,15 +61,11 @@ public static File getHomeDirectory() { * @param file The file to extract it extension. * @return The file extension or {@code null} if not available. */ - public static String getFileExtension(File file) { - if (file != null) { - String name = file.getName(); - int dotIndex = name.lastIndexOf('.'); - if (dotIndex >= 0) { - return name.substring(dotIndex + 1); - } else { - return null; - } + public static @Nullable String getFileExtension(File file) { + String name = file.getName(); + int dotIndex = name.lastIndexOf('.'); + if (dotIndex >= 0) { + return name.substring(dotIndex + 1); } else { return null; } @@ -77,18 +76,14 @@ public static String getFileExtension(File file) { * * @param fileName The file name with extension for that the file name without extension is * needed. - * @return The file name without extension or {@code null} if it was not possible to compute it. + * @return The file name without extension. */ public static String getFileNameWithoutExtension(String fileName) { - if (fileName != null) { - int dotIndex = fileName.lastIndexOf('.'); - if (dotIndex >= 0) { - return fileName.substring(0, dotIndex); - } else { - return fileName; - } + int dotIndex = fileName.lastIndexOf('.'); + if (dotIndex >= 0) { + return fileName.substring(0, dotIndex); } else { - return null; + return fileName; } } @@ -98,7 +93,7 @@ public static String getFileNameWithoutExtension(String fileName) { * @param file The file/folder to delete. */ public static void delete(File file) { - if (file != null && file.exists()) { + if (file.exists()) { if (file.isDirectory()) { File[] children = file.listFiles(); if (children != null) { @@ -118,12 +113,8 @@ public static void delete(File file) { * @return The read content or {@code null} if the {@link URL} is {@code null}. * @throws IOException Occurred Exception. */ - public static Optional readFrom(URL url) throws IOException { - if (url != null) { - return Optional.of(readFrom(url.openStream())); - } else { - return Optional.empty(); - } + public static @Nullable String readFrom(URL url) throws IOException { + return readFrom(url.openStream()); } /** @@ -133,24 +124,19 @@ public static Optional readFrom(URL url) throws IOException { * @return The read content or {@code null} if the {@link URL} is {@code null}. * @throws IOException Occurred Exception. */ - public static Optional readFrom(URI url) throws IOException { - if (url != null) { - return Optional.of(readFrom(url.toURL().openStream())); - } else { - return Optional.empty(); - } + public static @Nullable String readFrom(URI url) throws IOException { + return readFrom(url.toURL().openStream()); } /** * Reads the complete content from the {@link File}. * * @param file The {@link File} to read from. - * @return The read content or {@code null} if the {@link File} is {@code null} or not an - * existing file. + * @return The read content or {@code null} if the {@link File} is not an existing file. * @throws IOException Occurred Exception. */ - public static String readFrom(File file) throws IOException { - if (file != null && file.isFile()) { + public static @Nullable String readFrom(File file) throws IOException { + if (file.isFile()) { return readFrom(new FileInputStream(file)); } else { return null; @@ -161,14 +147,10 @@ public static String readFrom(File file) throws IOException { * Reads the complete content from the {@link InputStream} and closes it. * * @param in The {@link InputStream} to read from and to close. - * @return The read content or {@code null} if the {@link InputStream} is {@code null}. + * @return The read content. * @throws IOException Occurred Exception. */ public static String readFrom(InputStream in) throws IOException { - if (in == null) { - return null; - } - try (InputStreamReader reader = new InputStreamReader(in, StandardCharsets.UTF_8)) { StringBuilder sb = new StringBuilder(); char[] buffer = new char[BUFFER_SIZE]; @@ -189,7 +171,7 @@ public static String readFrom(InputStream in) throws IOException { * @throws IOException Occurred Exception. */ public static void writeTo(OutputStream out, String content) throws IOException { - writeTo(out, content, (String) null); + writeTo(out, content, DEFAULT_CHARSET); } /** @@ -202,7 +184,7 @@ public static void writeTo(OutputStream out, String content) throws IOException */ public static void writeTo(OutputStream out, String content, Charset encoding) throws IOException { - writeTo(out, content, encoding != null ? encoding.displayName() : null); + writeTo(out, content, encoding.displayName()); } /** @@ -216,13 +198,7 @@ public static void writeTo(OutputStream out, String content, Charset encoding) */ public static void writeTo(OutputStream out, String content, String encoding) throws IOException { - if (out == null || content == null) { - return; - } - - try (PrintStream printStream = - encoding != null ? new PrintStream(out, false, encoding) - : new PrintStream(out, false, DEFAULT_CHARSET)) { + try (PrintStream printStream = new PrintStream(out, false, encoding)) { printStream.print(content); } } @@ -260,11 +236,7 @@ public static void writeTo(OutputStream out, String content, String encoding) * @throws IOException Occurred Exception. */ public static LineInformation[] computeLineInformation(File file) throws IOException { - if (file != null) { - return computeLineInformation(new FileInputStream(file)); - } else { - return computeLineInformation((InputStream) null); - } + return computeLineInformation(new FileInputStream(file)); } /** @@ -299,11 +271,8 @@ public static LineInformation[] computeLineInformation(File file) throws IOExcep * @return The computed start indices. * @throws IOException Occurred Exception. */ - public static LineInformation[] computeLineInformation(InputStream in) throws IOException { - if (in == null) { - return new LineInformation[0]; - } - + public static LineInformation[] computeLineInformation(InputStream in) + throws IOException { try (InputStreamReader reader = new InputStreamReader(in, StandardCharsets.UTF_8)) { List result = new LinkedList<>(); char[] buffer = new char[BUFFER_SIZE]; // Buffer with the read signs @@ -541,13 +510,11 @@ public static File createTempDirectory(String prefix, String suffix) throws IOEx */ public static List search(File file, final Predicate filter) throws IOException { final List result = new LinkedList<>(); - if (file != null) { - visit(file, visitedFile -> { - if (filter == null || filter.test(visitedFile)) { - result.add(visitedFile); - } - }); - } + visit(file, visitedFile -> { + if (filter == null || filter.test(visitedFile)) { + result.add(visitedFile); + } + }); return result; } @@ -559,13 +526,11 @@ public static List search(File file, final Predicate filter) throws * @throws IOException Occurred Exception */ public static void visit(File file, IFileVisitor visitor) throws IOException { - if (file != null && visitor != null) { - visitor.visit(file); - File[] children = file.listFiles(); - if (children != null) { - for (File child : children) { - visit(child, visitor); - } + visitor.visit(file); + File[] children = file.listFiles(); + if (children != null) { + for (File child : children) { + visit(child, visitor); } } } @@ -592,15 +557,12 @@ public interface IFileVisitor { * @return A new {@link InputStream} with with the replaced line breaks. * @throws IOException Occurred Exception. */ - public static InputStream unifyLineBreaks(InputStream in) throws IOException { - if (in != null) { - String text = IOUtil.readFrom(in); - text = text.replace("\r\n", "\n"); - text = text.replace("\r", "\n"); - return new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8)); - } else { - return null; - } + public static InputStream unifyLineBreaks(InputStream in) + throws IOException { + String text = IOUtil.readFrom(in); + text = text.replace("\r\n", "\n"); + text = text.replace("\r", "\n"); + return new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8)); } /** @@ -632,13 +594,13 @@ public static boolean contains(Iterable parents, File child) { */ public static boolean contains(File parent, File child) { boolean contains = false; - if (parent != null && child != null) { - while (!contains && child != null) { - if (parent.equals(child)) { - contains = true; - } - child = child.getParentFile(); + @Nullable + File current = child; + while (!contains && current != null) { + if (parent.equals(current)) { + contains = true; } + current = current.getParentFile(); } return contains; } @@ -653,25 +615,16 @@ public static boolean contains(File parent, File child) { */ public static boolean copy(Reader source, StringWriter target) throws IOException { try { - if (source != null && target != null) { - char[] buffer = new char[BUFFER_SIZE]; - int read; - while ((read = source.read(buffer)) >= 1) { - target.write(buffer, 0, read); - } - return true; - } else { - return false; + char[] buffer = new char[BUFFER_SIZE]; + int read; + while ((read = source.read(buffer)) >= 1) { + target.write(buffer, 0, read); } + return true; } finally { - if (source != null) { - source.close(); - } - if (target != null) { - target.close(); - } + source.close(); + target.close(); } - } /** @@ -685,65 +638,43 @@ public static boolean copy(Reader source, StringWriter target) throws IOExceptio */ public static boolean copy(InputStream source, OutputStream target) throws IOException { try { - if (source != null && target != null) { - byte[] buffer = new byte[BUFFER_SIZE]; - int read; - while ((read = source.read(buffer)) >= 1) { - target.write(buffer, 0, read); - } - return true; - } else { - return false; + byte[] buffer = new byte[BUFFER_SIZE]; + int read; + while ((read = source.read(buffer)) >= 1) { + target.write(buffer, 0, read); } + return true; } finally { - if (source != null) { - source.close(); - } - if (target != null) { - target.close(); - } + source.close(); + target.close(); } } - /** - * Checks if the given {@link File} exists. - * - * @param file The {@link File} to check. - * @return {@code true} {@link File} is not {@code null} and exists, {@code false} otherwise. - */ - public static boolean exists(File file) { - return file != null && file.exists(); - } - - public static URL getClassLocationURL(Class classInstance) { + public static @Nullable URL getClassLocationURL(Class classInstance) { CodeSource cs = classInstance.getProtectionDomain().getCodeSource(); return cs != null ? cs.getLocation() : null; } - public static File getClassLocation(Class classInstance) { - if (classInstance != null) { - return toFile(getClassLocationURL(classInstance)); - } else { - return null; - } + public static @Nullable File getClassLocation(Class classInstance) { + return toFile(getClassLocationURL(classInstance)); } - public static File getProjectRoot(Class classInstance) { + public static @Nullable File getProjectRoot(Class classInstance) { File file = getClassLocation(classInstance); return file != null ? file.getParentFile() : null; } - public static File toFile(URL url) { + public static @Nullable File toFile(@Nullable URL url) { URI uri = toURI(url); return uri != null ? new File(uri) : null; } - public static String toFileString(URL url) { + public static @Nullable String toFileString(@Nullable URL url) { File file = toFile(url); return file != null ? file.toString() : null; } - public static URI toURI(URL url) { + public static @Nullable URI toURI(@Nullable URL url) { try { if (url != null) { String protocol = url.getProtocol(); @@ -774,7 +705,10 @@ public static URI toURI(URL url) { * @return The current directory. */ public static File getCurrentDirectory() { - return new File(".").getAbsoluteFile().getParentFile(); + File result = new File(".").getAbsoluteFile().getParentFile(); + assert result != null + : "@AssumeAssertion(nullness): this always works, even in the toplevel directory ..."; + return result; } /** @@ -839,7 +773,12 @@ public static void extractZip(InputStream in, Path targetDir) throws IOException Files.createDirectories(path); } else { // create nonexistent parent directories and then extract the file - Files.createDirectories(path.getParent()); + // Since path is the result of resolving a zip entry name in the + // target directory, it does have a parent. + @SuppressWarnings("nullness") + @NonNull + Path parent = path.getParent(); + Files.createDirectories(parent); Files.copy(zin, path); } } diff --git a/key.util/src/main/java/org/key_project/util/java/IntegerUtil.java b/key.util/src/main/java/org/key_project/util/java/IntegerUtil.java index cd5ee659ab6..240bc59f135 100644 --- a/key.util/src/main/java/org/key_project/util/java/IntegerUtil.java +++ b/key.util/src/main/java/org/key_project/util/java/IntegerUtil.java @@ -3,6 +3,7 @@ * SPDX-License-Identifier: GPL-2.0-only */ package org.key_project.util.java; + public final class IntegerUtil { /** * Forbid instances. diff --git a/key.util/src/main/java/org/key_project/util/java/MapUtil.java b/key.util/src/main/java/org/key_project/util/java/MapUtil.java index b9ad2689b75..bdabc94c6b9 100644 --- a/key.util/src/main/java/org/key_project/util/java/MapUtil.java +++ b/key.util/src/main/java/org/key_project/util/java/MapUtil.java @@ -15,6 +15,7 @@ * * @author lanzinger */ +@SuppressWarnings("nullness") public final class MapUtil { private MapUtil() {} diff --git a/key.util/src/main/java/org/key_project/util/java/NumberUtil.java b/key.util/src/main/java/org/key_project/util/java/NumberUtil.java index f08710f645f..bbf2c637d99 100644 --- a/key.util/src/main/java/org/key_project/util/java/NumberUtil.java +++ b/key.util/src/main/java/org/key_project/util/java/NumberUtil.java @@ -3,6 +3,7 @@ * SPDX-License-Identifier: GPL-2.0-only */ package org.key_project.util.java; + /** * Provides utility methods to work with numbers. * diff --git a/key.util/src/main/java/org/key_project/util/java/StringUtil.java b/key.util/src/main/java/org/key_project/util/java/StringUtil.java index e265e58c67e..710c322e5d6 100644 --- a/key.util/src/main/java/org/key_project/util/java/StringUtil.java +++ b/key.util/src/main/java/org/key_project/util/java/StringUtil.java @@ -6,10 +6,13 @@ import java.util.Arrays; import java.util.Comparator; import java.util.function.Predicate; +import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.swing.*; +import org.checkerframework.checker.nullness.qual.PolyNull; import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; /** * Provides static methods to work with strings. @@ -76,7 +79,7 @@ private StringUtil() { * @param text The text to check. * @return {@code true} = text is {@code null} or empty, {@code false} = text is not empty. */ - public static boolean isEmpty(String text) { + public static boolean isEmpty(@Nullable String text) { return text == null || text.isEmpty(); } @@ -87,7 +90,7 @@ public static boolean isEmpty(String text) { * @return {@code true} = text is {@code null} or trimmed empty, {@code false} = text is not * empty. */ - public static boolean isTrimmedEmpty(String text) { + public static boolean isTrimmedEmpty(@Nullable String text) { return text == null || text.trim().isEmpty(); } @@ -97,7 +100,7 @@ public static boolean isTrimmedEmpty(String text) { * @param text The text. * @return The trimmed text. */ - public static String trim(String text) { + public static @Nullable String trim(@Nullable String text) { return text != null ? text.trim() : null; } @@ -107,8 +110,8 @@ public static String trim(String text) { * @param text The text to convert. * @return The text in lower case or {@code null} if the given text is {@code null}. */ - public static String toLowerCase(String text) { - return text != null ? text.toLowerCase() : null; + public static @PolyNull String toLowerCase(@PolyNull String text) { + return text == null ? null : text.toLowerCase(); } /** @@ -120,7 +123,7 @@ public static String toLowerCase(String text) { * * @return The created {@link Comparator}. */ - public static Comparator createIgnoreCaseComparator() { + public static Comparator<@Nullable String> createIgnoreCaseComparator() { return (o1, o2) -> { if (o1 != null && o2 != null) { return o1.compareToIgnoreCase(o2); @@ -155,7 +158,7 @@ public static String repeat(String text, int repetitions) { * {@code false} if at least one string is {@code null} or the string does not contain * the substring. */ - public static boolean contains(String string, CharSequence substring) { + public static boolean contains(@Nullable String string, @Nullable CharSequence substring) { return string != null && substring != null && string.contains(substring); } @@ -170,7 +173,7 @@ public static boolean contains(String string, CharSequence substring) { * * @author Mattias Ulbrich (under GPL) */ - public static String wrapLines(String string, int length) { + public static @NonNull String wrapLines(@NonNull String string, int length) { char[] c = string.toCharArray(); WrapUtils.wrapLines(c, length); return new String(c); @@ -186,7 +189,7 @@ public static String wrapLines(String string, int length) { * * @author Mattias Ulbrich (under GPL) */ - public static String wrapLines(String string) { + public static @NonNull String wrapLines(@NonNull String string) { return wrapLines(string, 100); } @@ -197,7 +200,7 @@ public static String wrapLines(String string) { * @param text The text to convert. * @return The single lined text. */ - public static String toSingleLinedString(String text) { + public static @Nullable String toSingleLinedString(@Nullable String text) { return replaceAll(text, new char[] { '\n', '\r', '\t' }, ' '); } @@ -209,7 +212,8 @@ public static String toSingleLinedString(String text) { * @param toReplace The sign to replace with. * @return The new created {@link String}. */ - public static String replaceAll(String text, char[] toSearch, char toReplace) { + public static @Nullable String replaceAll(@Nullable String text, char[] toSearch, + char toReplace) { if (text != null && toSearch != null) { // Sort toSearch Arrays.sort(toSearch); @@ -234,7 +238,7 @@ public static String replaceAll(String text, char[] toSearch, char toReplace) { * @param second The second {@link String}. * @return {@code true} equal ignoring whitespace, {@code false} different. */ - public static boolean equalIgnoreWhiteSpace(String first, String second) { + public static boolean equalIgnoreWhiteSpace(@Nullable String first, @Nullable String second) { if (first != null) { if (second != null) { char[] firstContent = first.toCharArray(); @@ -297,7 +301,8 @@ && contains(WHITESPACE, secondContent[secondIndex] + EMPTY_STRING)) { * @return The created text. * @throws IllegalArgumentException If the text is already longer as the given length */ - public static String fillString(String text, char leadingCharacter, int length) + public static @NonNull String fillString(@Nullable String text, char leadingCharacter, + int length) throws IllegalArgumentException { StringBuilder sb = new StringBuilder(); if (text != null) { @@ -320,7 +325,7 @@ public static String fillString(String text, char leadingCharacter, int length) * @param text The text to trim its right side. * @return The trimmed text. */ - public static String trimRight(String text) { + public static @PolyNull String trimRight(@PolyNull String text) { if (text != null) { char[] content = text.toCharArray(); int newLength = content.length; @@ -340,7 +345,7 @@ public static String trimRight(String text) { * @param maxLength The maximal length to ensure. * @return The text considering the maximal length. */ - public static String chop(String text, int maxLength) { + public static @PolyNull String chop(@PolyNull String text, int maxLength) { if (text != null && text.length() > maxLength) { if (maxLength <= 0) { return EMPTY_STRING; @@ -366,11 +371,11 @@ public static String chop(String text, int maxLength) { * @return {@code true} {@link Object} is {@link String} with given prefix, {@code false} * otherwise. */ - public static boolean startsWith(Object obj, String prefix) { + public static boolean startsWith(@Nullable Object obj, @Nullable String prefix) { return obj instanceof String && prefix != null && ((String) obj).startsWith(prefix); } - public static boolean isNumber(String val) { + public static boolean isNumber(@NonNull String val) { try { Long.parseLong(val); } catch (NumberFormatException e) { @@ -387,8 +392,8 @@ public static boolean isNumber(String val) { * * The given predicate test the characters, if true the character is removed. */ - @NonNull - public static String trim(@NonNull String text, @NonNull Predicate predicate) { + public static @NonNull String trim(@NonNull String text, + @NonNull Predicate predicate) { int first = 0; int last = text.length() - 1; char[] value = text.toCharArray(); @@ -407,8 +412,7 @@ public static String trim(@NonNull String text, @NonNull Predicate pr * * @see #trim(String, Predicate) */ - @NonNull - public static String trim(String text, char c) { + public static @NonNull String trim(@NonNull String text, char c) { return trim(text, it -> it == c); } @@ -417,8 +421,7 @@ public static String trim(String text, char c) { * * @see #trim(String, Predicate) */ - @NonNull - public static String trim(String text, String chars) { + public static @NonNull String trim(@NonNull String text, @NonNull String chars) { return trim(text, it -> chars.indexOf(it) >= 0); } @@ -429,10 +432,50 @@ public static String trim(String text, String chars) { * @param with with * @return the normalized text. */ - public static String replaceNewlines(String text, String with) { + public static @NonNull String replaceNewlines(@NonNull String text, String with) { return NEWLINE_PATTERN.matcher(text).replaceAll(with); } + /** + * Checks whether a string contains another one as a whole word (i.e., separated by whitespaces + * or a semicolon at the end). + * + * @param s string to search in + * @param word string to be searched for + */ + public static boolean containsWholeWord(@NonNull String s, @NonNull String word) { + Pattern p = Pattern.compile("\\b" + word + "\\b"); + Matcher m = p.matcher(s); + return m.find(); + /* + * if (s == null || word == null) { return false; } int i = -1; final int wl = + * word.length(); while (true) { i = s.indexOf(word, i + 1); if (i < 0 || i >= s.length()) + * break; if (i == 0 || Character.isWhitespace(s.charAt(i - 1))) { if (i + wl == s.length() + * || Character.isWhitespace(s.charAt(i + wl)) || s.charAt(i + wl) == ';') { return true; } + * } } return false; + */ + } + + /** + * There are different kinds of JML markers. See Section 4.4 "Annotation markers" of the JML + * reference manual. + * + * @param comment + * @return + */ + public static boolean isJMLComment(@NonNull String comment) { + try { + return (comment.startsWith("/*@") || comment.startsWith("//@") + || comment.startsWith("/*+KeY@") || comment.startsWith("//+KeY@") + || (comment.startsWith("/*-") && !comment.startsWith("KeY", 3) + && comment.contains("@")) + || (comment.startsWith("//-") && !comment.startsWith("KeY", 3) + && comment.contains("@"))); + } catch (IndexOutOfBoundsException e) { + return false; + } + } + /** * Count occurences of character x in text, starting at beginIndex and ending at endIndex * (exclusive). diff --git a/key.util/src/main/java/org/key_project/util/java/XMLUtil.java b/key.util/src/main/java/org/key_project/util/java/XMLUtil.java index 78aa587411c..0a3b5022dec 100644 --- a/key.util/src/main/java/org/key_project/util/java/XMLUtil.java +++ b/key.util/src/main/java/org/key_project/util/java/XMLUtil.java @@ -6,6 +6,8 @@ import java.util.Map; import java.util.Map.Entry; +import org.jspecify.annotations.Nullable; + /** * Provides static methods to work with XML. * @@ -36,38 +38,36 @@ private XMLUtil() { * @return The new created text. */ public static String replaceTags(String text, ITagReplacer replacer) { - if (text != null && replacer != null) { - StringBuilder sb = new StringBuilder(); - char[] signs = text.toCharArray(); - boolean inTag = false; - boolean inAttribute = false; - StringBuilder tagSB = null; - for (char sign : signs) { - if (!inTag) { - if (sign == '<') { - inTag = true; - tagSB = new StringBuilder(); - tagSB.append(sign); - } else { - sb.append(sign); - } - } else { + StringBuilder sb = new StringBuilder(); + char[] signs = text.toCharArray(); + boolean inTag = false; + boolean inAttribute = false; + StringBuilder tagSB = null; + for (char sign : signs) { + if (!inTag) { + if (sign == '<') { + inTag = true; + tagSB = new StringBuilder(); tagSB.append(sign); - if (sign == '>' && !inAttribute) { - inTag = false; - String replacement = replacer.replaceTag(tagSB.toString()); - if (replacement != null) { - sb.append(replacement); - } - } else if (sign == '\'' || sign == '"') { - inAttribute = !inAttribute; + } else { + sb.append(sign); + } + } else { + assert tagSB != null + : "@AssumeAssertion(nullness): tagSB must have been intialised already"; + tagSB.append(sign); + if (sign == '>' && !inAttribute) { + inTag = false; + String replacement = replacer.replaceTag(tagSB.toString()); + if (replacement != null) { + sb.append(replacement); } + } else if (sign == '\'' || sign == '"') { + inAttribute = !inAttribute; } } - return sb.toString(); - } else { - return null; } + return sb.toString(); } /** @@ -83,6 +83,7 @@ public interface ITagReplacer { * @param tag The found tag. * @return The replacement to use or {@code null} to remove the tag. */ + @Nullable String replaceTag(String tag); } @@ -95,7 +96,7 @@ public interface ITagReplacer { */ public static class HTMLRendererReplacer implements ITagReplacer { @Override - public String replaceTag(String tag) { + public @Nullable String replaceTag(String tag) { if (tag.startsWith("' && !inAttribute) { - inTag = false; - } else if (sign == '\'' || sign == '"') { - inAttribute = !inAttribute; - } + sb.append(sign); + } + } else { + if (sign == '>' && !inAttribute) { + inTag = false; + } else if (sign == '\'' || sign == '"') { + inAttribute = !inAttribute; } } - return sb.toString(); - } else { - return null; } + return sb.toString(); } /** @@ -170,23 +167,19 @@ public static String removeTags(String text) { * @return The encoded text. */ public static String encodeText(String text) { - if (text != null) { - char[] signs = text.toCharArray(); - StringBuilder sb = new StringBuilder(); - for (char sign : signs) { - switch (sign) { - case '"' -> sb.append("""); - case '&' -> sb.append("&"); - case '\'' -> sb.append("'"); - case '<' -> sb.append("<"); - case '>' -> sb.append(">"); - default -> sb.append(sign); - } + char[] signs = text.toCharArray(); + StringBuilder sb = new StringBuilder(); + for (char sign : signs) { + switch (sign) { + case '"' -> sb.append("""); + case '&' -> sb.append("&"); + case '\'' -> sb.append("'"); + case '<' -> sb.append("<"); + case '>' -> sb.append(">"); + default -> sb.append(sign); } - return sb.toString(); - } else { - return null; } + return sb.toString(); } /** diff --git a/key.util/src/main/java/org/key_project/util/java/package-info.java b/key.util/src/main/java/org/key_project/util/java/package-info.java new file mode 100644 index 00000000000..19d34270142 --- /dev/null +++ b/key.util/src/main/java/org/key_project/util/java/package-info.java @@ -0,0 +1,8 @@ +/** + * @author Alexander Weigl + * @version 1 (24.07.23) + */ +@NullMarked +package org.key_project.util.java; + +import org.jspecify.annotations.NullMarked; diff --git a/key.util/src/main/java/org/key_project/util/java/thread/AbstractRunnableWithException.java b/key.util/src/main/java/org/key_project/util/java/thread/AbstractRunnableWithException.java index 9fdae18a51d..52b8bea53d7 100644 --- a/key.util/src/main/java/org/key_project/util/java/thread/AbstractRunnableWithException.java +++ b/key.util/src/main/java/org/key_project/util/java/thread/AbstractRunnableWithException.java @@ -3,6 +3,9 @@ * SPDX-License-Identifier: GPL-2.0-only */ package org.key_project.util.java.thread; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; +import org.jspecify.annotations.Nullable; + /** *

* Provides a basic implementation of {@link IRunnableWithException}. @@ -19,13 +22,13 @@ public abstract class AbstractRunnableWithException implements IRunnableWithExce /** * An occurred exception. */ - private Exception exception; + private @MonotonicNonNull Exception exception; /** * {@inheritDoc} */ @Override - public Exception getException() { + public @Nullable Exception getException() { return exception; } diff --git a/key.util/src/main/java/org/key_project/util/java/thread/AbstractRunnableWithResult.java b/key.util/src/main/java/org/key_project/util/java/thread/AbstractRunnableWithResult.java index 0af9a762996..baa8c020edc 100644 --- a/key.util/src/main/java/org/key_project/util/java/thread/AbstractRunnableWithResult.java +++ b/key.util/src/main/java/org/key_project/util/java/thread/AbstractRunnableWithResult.java @@ -3,6 +3,8 @@ * SPDX-License-Identifier: GPL-2.0-only */ package org.key_project.util.java.thread; +import org.jspecify.annotations.Nullable; + /** *

* Provides a basic implementation of {@link IRunnableWithResult}. @@ -20,13 +22,13 @@ public abstract class AbstractRunnableWithResult extends AbstractRunnableWith /** * The result. */ - private T result; + private @Nullable T result; /** * {@inheritDoc} */ @Override - public T getResult() { + public @Nullable T getResult() { return result; } @@ -35,7 +37,7 @@ public T getResult() { * * @param result The result to set. */ - protected void setResult(T result) { + protected void setResult(@Nullable T result) { this.result = result; } } diff --git a/key.util/src/main/java/org/key_project/util/java/thread/IRunnableWithException.java b/key.util/src/main/java/org/key_project/util/java/thread/IRunnableWithException.java index 917329688b1..91c60d95c60 100644 --- a/key.util/src/main/java/org/key_project/util/java/thread/IRunnableWithException.java +++ b/key.util/src/main/java/org/key_project/util/java/thread/IRunnableWithException.java @@ -3,6 +3,8 @@ * SPDX-License-Identifier: GPL-2.0-only */ package org.key_project.util.java.thread; +import org.jspecify.annotations.Nullable; + /** *

* A {@link Runnable} that provides access to an exception that occurred during execution @@ -21,5 +23,6 @@ public interface IRunnableWithException extends Runnable { * * @return An occurred exception. */ + @Nullable Exception getException(); } diff --git a/key.util/src/main/java/org/key_project/util/java/thread/IRunnableWithResult.java b/key.util/src/main/java/org/key_project/util/java/thread/IRunnableWithResult.java index 14311bdc90a..31ee5a9ce68 100644 --- a/key.util/src/main/java/org/key_project/util/java/thread/IRunnableWithResult.java +++ b/key.util/src/main/java/org/key_project/util/java/thread/IRunnableWithResult.java @@ -3,6 +3,8 @@ * SPDX-License-Identifier: GPL-2.0-only */ package org.key_project.util.java.thread; +import org.jspecify.annotations.Nullable; + /** *

* A {@link Runnable} that has a result that is accessible via {@link #getResult()}. @@ -20,6 +22,7 @@ public interface IRunnableWithResult extends IRunnableWithException { * * @return The result. */ + @Nullable T getResult(); /** @@ -27,5 +30,6 @@ public interface IRunnableWithResult extends IRunnableWithException { * * @return An occurred exception. */ + @Nullable Exception getException(); } diff --git a/key.util/src/main/java/org/key_project/util/java/thread/package-info.java b/key.util/src/main/java/org/key_project/util/java/thread/package-info.java new file mode 100644 index 00000000000..4b58f90e8e6 --- /dev/null +++ b/key.util/src/main/java/org/key_project/util/java/thread/package-info.java @@ -0,0 +1,8 @@ +/** + * @author Alexander Weigl + * @version 1 (24.07.23) + */ +@NullMarked +package org.key_project.util.java.thread; + +import org.jspecify.annotations.NullMarked; diff --git a/key.util/src/main/java/org/key_project/util/lookup/InjectionException.java b/key.util/src/main/java/org/key_project/util/lookup/InjectionException.java index 968a233c528..07b807c095e 100644 --- a/key.util/src/main/java/org/key_project/util/lookup/InjectionException.java +++ b/key.util/src/main/java/org/key_project/util/lookup/InjectionException.java @@ -7,6 +7,7 @@ * @author Alexander Weigl * @version 1 (13.01.19) */ +@SuppressWarnings("nullness") public class InjectionException extends RuntimeException { private static final long serialVersionUID = 119998955722036861L; diff --git a/key.util/src/main/java/org/key_project/util/lookup/Lookup.java b/key.util/src/main/java/org/key_project/util/lookup/Lookup.java index e8ab359ad24..a61dce2197a 100644 --- a/key.util/src/main/java/org/key_project/util/lookup/Lookup.java +++ b/key.util/src/main/java/org/key_project/util/lookup/Lookup.java @@ -9,6 +9,10 @@ import java.lang.reflect.Method; import java.util.*; +import org.checkerframework.checker.initialization.qual.Initialized; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; + /** * This class handles the management of services and implementations. *

@@ -21,10 +25,11 @@ * @author Alexander Weigl * @version 1 (15.03.19) */ +@NullMarked public class Lookup { - public static Lookup DEFAULT = new Lookup(); + public static final Lookup DEFAULT = new Lookup(); - private final Lookup parent; + private final @Nullable Lookup parent; /** * Registered services. The first service in the list is the default. @@ -45,10 +50,13 @@ public Lookup() { this(null); } - public Lookup(Lookup parent) { + public Lookup(@Nullable Lookup parent) { this.parent = parent; if (parent != null) { - parent.children.add(new WeakReference<>(this)); + @SuppressWarnings("nullness") // WeakReference to this + @Initialized + WeakReference weakthis = new WeakReference<>(this); + parent.children.add(weakthis); } } @@ -83,7 +91,7 @@ public Collection lookupAll(Class service) { * @param * @return */ - public T get(Class service) { + public T get(Class service) { List t = getList(service); if (t.isEmpty()) { if (parent != null) { @@ -134,7 +142,7 @@ public void dispose() { } } - public List getListeners(Class name) { + public List getListeners(Class name) { return propertyListener.computeIfAbsent(name, a -> new LinkedList<>()); } @@ -142,11 +150,11 @@ public void addChangeListener(LookupListener listener) { addChangeListener(ALL.class, listener); } - public void addChangeListener(Class name, LookupListener listener) { + public void addChangeListener(Class name, LookupListener listener) { getListeners(name).add(listener); } - public void removeChangeListener(Class name, LookupListener listener) { + public void removeChangeListener(Class name, LookupListener listener) { getListeners(name).remove(listener); } @@ -178,7 +186,7 @@ public void register(T o) { } @SuppressWarnings("unchecked") - private List getList(Class service) { + private List getList(Class service) { return (List) serviceMap.computeIfAbsent(service, (k -> new LinkedList<>())); } @@ -191,8 +199,10 @@ private List getList(Class service) { * @return * @throws InjectionException if non suitable constructors could be found. */ - @SuppressWarnings("unchecked") - public T createInstance(Class clazz) throws InjectionException { + @SuppressWarnings({ "unchecked", + "keyfor", "nullness", // KeyFor and type variable bounds + }) + public @Nullable T createInstance(Class clazz) throws InjectionException { for (Constructor ctor : clazz.getConstructors()) { if (ctor.getAnnotation(Inject.class) != null) { T instance = (T) tryToInject(ctor); @@ -210,13 +220,15 @@ public T createInstance(Class clazz) throws InjectionException { * @return * @throws InjectionException */ - protected T tryToInject(Constructor ctor) throws InjectionException { + protected @Nullable T tryToInject(Constructor ctor) throws InjectionException { List services = Arrays.stream(ctor.getParameterTypes()).map(this::get).toList(); if (services.stream().allMatch(Objects::nonNull)) { try { - return ctor.newInstance(services.toArray()); + @SuppressWarnings("nullness") // connection to allMatch lost + T res = ctor.newInstance(services.toArray()); + return res; } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) { throw new InjectionException(e); diff --git a/key.util/src/main/java/org/key_project/util/package-info.java b/key.util/src/main/java/org/key_project/util/package-info.java new file mode 100644 index 00000000000..5a4916969b6 --- /dev/null +++ b/key.util/src/main/java/org/key_project/util/package-info.java @@ -0,0 +1,8 @@ +/** + * @author Alexander Weigl + * @version 1 (24.07.23) + */ +@NullMarked +package org.key_project.util; + +import org.jspecify.annotations.NullMarked; diff --git a/key.util/src/main/java/org/key_project/util/reflection/package-info.java b/key.util/src/main/java/org/key_project/util/reflection/package-info.java new file mode 100644 index 00000000000..5c2695077d4 --- /dev/null +++ b/key.util/src/main/java/org/key_project/util/reflection/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package org.key_project.util.reflection; + +import org.jspecify.annotations.NullMarked; diff --git a/key.util/src/main/java/org/key_project/util/testcategories/Interactive.java b/key.util/src/main/java/org/key_project/util/testcategories/Interactive.java index fe5f22bab68..8b9b6272f9e 100644 --- a/key.util/src/main/java/org/key_project/util/testcategories/Interactive.java +++ b/key.util/src/main/java/org/key_project/util/testcategories/Interactive.java @@ -4,7 +4,7 @@ package org.key_project.util.testcategories; /** - * These test should never be executed by CIs, because they require manual interaction. + * CIs should never execute these tests, because they require manual interaction. */ public interface Interactive { } diff --git a/key.util/src/main/java/org/key_project/util/testcategories/Slow.java b/key.util/src/main/java/org/key_project/util/testcategories/Slow.java index c16316daced..31836735744 100644 --- a/key.util/src/main/java/org/key_project/util/testcategories/Slow.java +++ b/key.util/src/main/java/org/key_project/util/testcategories/Slow.java @@ -4,7 +4,7 @@ package org.key_project.util.testcategories; /** - * Category for slow test cases, that should only consider on Jenkins (merge request and master). + * Category for slow test cases, that should only consider on Jenkins (merge request and main). */ public interface Slow { } diff --git a/key.util/src/main/java/org/key_project/util/testcategories/package-info.java b/key.util/src/main/java/org/key_project/util/testcategories/package-info.java index a23e3782c42..31b3f4f9f6e 100644 --- a/key.util/src/main/java/org/key_project/util/testcategories/package-info.java +++ b/key.util/src/main/java/org/key_project/util/testcategories/package-info.java @@ -7,4 +7,7 @@ * @date 2019-04-18 * @see "https://dzone.com/articles/closer-look-junit-categories" */ +@NullMarked package org.key_project.util.testcategories; + +import org.jspecify.annotations.NullMarked; diff --git a/key.util/src/test/java/org/key_project/util/collection/TestImmutables.java b/key.util/src/test/java/org/key_project/util/collection/TestImmutables.java index 24ad263cdcd..e97c6d53814 100644 --- a/key.util/src/test/java/org/key_project/util/collection/TestImmutables.java +++ b/key.util/src/test/java/org/key_project/util/collection/TestImmutables.java @@ -3,6 +3,7 @@ * SPDX-License-Identifier: GPL-2.0-only */ package org.key_project.util.collection; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; @@ -34,17 +35,20 @@ public void testRemoveDuplicatesLarge() { @Test public void testRemoveDuplicates() { + @Nullable String[][] a = { { "a", "b", "a", "c", "d", "d", "a", "e" }, { null, "a", null }, { "1", "1", "1", "1", "1" } }; + @Nullable String[][] expected = { { "a", "b", "c", "d", "e" }, { null, "a" }, { "1" } }; for (int i = 0; i < a.length; i++) { - ImmutableList l = ImmutableSLList.nil().prepend(a[i]).reverse(); + ImmutableList<@Nullable String> l = + ImmutableSLList.<@Nullable String>nil().prepend(a[i]).reverse(); assertFalse(Immutables.isDuplicateFree(l)); - ImmutableList cleaned = Immutables.removeDuplicates(l); + ImmutableList<@Nullable String> cleaned = Immutables.removeDuplicates(l); String[] a2 = cleaned.reverse().toArray(String.class); @@ -65,25 +69,31 @@ public void testRemoveDuplicatesIdentical() { @Test public void testIsDuplicateFree() { + @Nullable String[][] a = { { "a", "b", "c", "d", "e" }, {}, { "a" }, { null }, { null, "a" } }; - for (String[] strings : a) { - ImmutableList l = ImmutableSLList.nil().prepend(strings); + for (@Nullable + String[] strings : a) { + ImmutableList<@Nullable String> l = + ImmutableSLList.<@Nullable String>nil().prepend(strings); assertTrue(Immutables.isDuplicateFree(l)); } + @Nullable String[][] b = { { "a", "a" }, { "a", "b", "c", "d", "a" }, { "a", "b", "a", "d", "e" }, { "a", "b", "d", "d", "e" }, { "a", "b", "c", "d", "d" }, { null, "a", null } }; - for (String[] strings : b) { - ImmutableList l = ImmutableSLList.nil().prepend(strings); + for (@Nullable + String[] strings : b) { + ImmutableList<@Nullable String> l = + ImmutableSLList.<@Nullable String>nil().prepend(strings); assertFalse(Immutables.isDuplicateFree(l)); } } - private static void assertDeepEquals(Object[] expected, Object[] array) { + private static void assertDeepEquals(@Nullable Object[] expected, @Nullable Object[] array) { assertEquals(expected.length, array.length); for (int i = 0; i < array.length; i++) { assertEquals(expected[i], array[i]); diff --git a/key.util/src/test/java/org/key_project/util/model/ClassA.java b/key.util/src/test/java/org/key_project/util/model/ClassA.java index 25b2b28889e..97483d79cc0 100644 --- a/key.util/src/test/java/org/key_project/util/model/ClassA.java +++ b/key.util/src/test/java/org/key_project/util/model/ClassA.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: GPL-2.0-only */ package org.key_project.util.model; -@SuppressWarnings("unused") +@SuppressWarnings({ "unused", "nullness" }) public class ClassA { private final int privateField = 1; diff --git a/key.util/src/test/java/org/key_project/util/testcase/collection/TestLeftistHeapOfInteger.java b/key.util/src/test/java/org/key_project/util/testcase/collection/TestLeftistHeapOfInteger.java index 3058ad1c094..bb5a03f8942 100644 --- a/key.util/src/test/java/org/key_project/util/testcase/collection/TestLeftistHeapOfInteger.java +++ b/key.util/src/test/java/org/key_project/util/testcase/collection/TestLeftistHeapOfInteger.java @@ -19,6 +19,7 @@ import static org.junit.jupiter.api.Assertions.assertSame; import static org.junit.jupiter.api.Assertions.assertTrue; +@SuppressWarnings("initialization") public class TestLeftistHeapOfInteger { ImmutableList a; diff --git a/key.util/src/test/java/org/key_project/util/testcase/collection/TestMapAsListFromIntegerToString.java b/key.util/src/test/java/org/key_project/util/testcase/collection/TestMapAsListFromIntegerToString.java index 61c7f52c134..7d492d19e3a 100644 --- a/key.util/src/test/java/org/key_project/util/testcase/collection/TestMapAsListFromIntegerToString.java +++ b/key.util/src/test/java/org/key_project/util/testcase/collection/TestMapAsListFromIntegerToString.java @@ -14,8 +14,7 @@ /** * JUnit test for MapAsList implementation */ - - +@SuppressWarnings("initialization") public class TestMapAsListFromIntegerToString { private String[] entryStr; diff --git a/key.util/src/test/java/org/key_project/util/testcase/collection/TestSLListOfString.java b/key.util/src/test/java/org/key_project/util/testcase/collection/TestSLListOfString.java index 90af33bf6fe..e621abd3c76 100644 --- a/key.util/src/test/java/org/key_project/util/testcase/collection/TestSLListOfString.java +++ b/key.util/src/test/java/org/key_project/util/testcase/collection/TestSLListOfString.java @@ -9,6 +9,7 @@ import org.key_project.util.collection.ImmutableList; import org.key_project.util.collection.ImmutableSLList; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.slf4j.Logger; @@ -19,6 +20,7 @@ /** * tests non-destructive list implementation with String */ +@SuppressWarnings("initialization") public class TestSLListOfString { private static final Logger LOGGER = LoggerFactory.getLogger(TestSLListOfString.class); @@ -29,8 +31,8 @@ public class TestSLListOfString { ImmutableList b; // "A" "B" ImmutableList c; // "A" "B" "C" "D" ImmutableList d; // "A" "B" "A" - ImmutableList e; // "A" "B" null - ImmutableList e1; // "A" "B" null + ImmutableList<@Nullable String> e; // "A" "B" null + ImmutableList<@Nullable String> e1; // "A" "B" null @BeforeEach @@ -40,8 +42,10 @@ public void setUp() { b = ImmutableSLList.nil().prepend("B").prepend("A"); c = ImmutableSLList.nil().prepend("D").prepend("C").prepend("B").prepend("A"); d = ImmutableSLList.nil().prepend("A").prepend("B").prepend("A"); - e = ImmutableSLList.nil().prepend((String) null).prepend("B").prepend("A"); - e1 = ImmutableSLList.nil().prepend((String) null).prepend("B").prepend("A"); + e = ImmutableSLList.<@Nullable String>nil().prepend((String) null).prepend("B") + .prepend("A"); + e1 = ImmutableSLList.<@Nullable String>nil().prepend((String) null).prepend("B") + .prepend("A"); } // tests prepend and implicitly iterator, size diff --git a/key.util/src/test/java/org/key_project/util/testcase/java/ArrayUtilTest.java b/key.util/src/test/java/org/key_project/util/testcase/java/ArrayUtilTest.java index 6a80dd23658..d0122cb7ed5 100644 --- a/key.util/src/test/java/org/key_project/util/testcase/java/ArrayUtilTest.java +++ b/key.util/src/test/java/org/key_project/util/testcase/java/ArrayUtilTest.java @@ -8,6 +8,7 @@ import org.key_project.util.java.ArrayUtil; import org.key_project.util.java.StringUtil; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; @@ -20,24 +21,15 @@ public class ArrayUtilTest { @Test public void testInsert() { + @Nullable String[] array = { "A", "B", "C" }; // Test possible indices assertArray(ArrayUtil.insert(array, "X", 0), "X", "A", "B", "C"); assertArray(ArrayUtil.insert(array, "X", 1), "A", "X", "B", "C"); assertArray(ArrayUtil.insert(array, "X", 2), "A", "B", "X", "C"); assertArray(ArrayUtil.insert(array, "X", 3), "A", "B", "C", "X"); - // Test null array - assertArray(ArrayUtil.insert(null, "X", 0), "X"); // Test null element assertArray(ArrayUtil.insert(array, null, 1), "A", null, "B", "C"); - // Test null array an delement - try { - ArrayUtil.insert(null, null, 0); - fail(); - } catch (IllegalArgumentException e) { - assertEquals("Can not create an array if array and element to insert are null.", - e.getMessage()); - } // Test invalid indices try { ArrayUtil.insert(array, "X", -1); @@ -52,7 +44,7 @@ public void testInsert() { } @SuppressWarnings("unchecked") - private void assertArray(T[] current, T... expected) { + private void assertArray(T[] current, T... expected) { assertNotNull(current); assertEquals(current.length, expected.length); for (int i = 0; i < current.length; i++) { @@ -65,14 +57,13 @@ private void assertArray(T[] current, T... expected) { */ @Test public void testSearch() { + @Nullable String[] array = { "A", "B", "C", "D" }; - assertEquals("A", ArrayUtil.search(array, "A"::equals)); - assertEquals("B", ArrayUtil.search(array, "B"::equals)); - assertEquals("C", ArrayUtil.search(array, "C"::equals)); - assertEquals("D", ArrayUtil.search(array, "D"::equals)); - assertNull(ArrayUtil.search(array, "E"::equals)); - assertNull(ArrayUtil.search(array, null)); - assertNull(ArrayUtil.search(null, "E"::equals)); + assertEquals("A", ArrayUtil.<@Nullable String>search(array, "A"::equals)); + assertEquals("B", ArrayUtil.<@Nullable String>search(array, "B"::equals)); + assertEquals("C", ArrayUtil.<@Nullable String>search(array, "C"::equals)); + assertEquals("D", ArrayUtil.<@Nullable String>search(array, "D"::equals)); + assertNull(ArrayUtil.<@Nullable String>search(array, "E"::equals)); } /** @@ -80,7 +71,6 @@ public void testSearch() { */ @Test public void testIsEmpty() { - assertTrue(ArrayUtil.isEmpty(null)); assertTrue(ArrayUtil.isEmpty(new String[] {})); assertFalse(ArrayUtil.isEmpty(new String[] { "A" })); assertFalse(ArrayUtil.isEmpty(new String[] { null })); @@ -92,12 +82,10 @@ public void testIsEmpty() { */ @Test public void testToString_int_String() { - assertEquals(StringUtil.EMPTY_STRING, ArrayUtil.toString((int[]) null, ";")); assertEquals(StringUtil.EMPTY_STRING, ArrayUtil.toString(new int[] {}, ";")); assertEquals("1", ArrayUtil.toString(new int[] { 1 }, ";")); assertEquals("1;2", ArrayUtil.toString(new int[] { 1, 2 }, ";")); assertEquals("1;2;3", ArrayUtil.toString(new int[] { 1, 2, 3 }, ";")); - assertEquals("1null2null3", ArrayUtil.toString(new int[] { 1, 2, 3 }, null)); } /** @@ -105,7 +93,6 @@ public void testToString_int_String() { */ @Test public void testToString_int() { - assertEquals(StringUtil.EMPTY_STRING, ArrayUtil.toString((int[]) null)); assertEquals(StringUtil.EMPTY_STRING, ArrayUtil.toString(new int[] {})); assertEquals("1", ArrayUtil.toString(new int[] { 1 })); assertEquals("1, 2", ArrayUtil.toString(new int[] { 1, 2 })); @@ -117,14 +104,11 @@ public void testToString_int() { */ @Test public void testToString_Object_String() { - assertEquals(StringUtil.EMPTY_STRING, ArrayUtil.toString((String[]) null, ";")); assertEquals(StringUtil.EMPTY_STRING, ArrayUtil.toString(new String[] {}, ";")); assertEquals("A", ArrayUtil.toString(new String[] { "A" }, ";")); assertEquals("A;B", ArrayUtil.toString(new String[] { "A", "B" }, ";")); assertEquals("A;B;null", ArrayUtil.toString(new String[] { "A", "B", null }, ";")); assertEquals("A;B;null;D", ArrayUtil.toString(new String[] { "A", "B", null, "D" }, ";")); - assertEquals("AnullBnullnullnullD", - ArrayUtil.toString(new String[] { "A", "B", null, "D" }, null)); } /** @@ -132,7 +116,6 @@ public void testToString_Object_String() { */ @Test public void testToString_Object() { - assertEquals(StringUtil.EMPTY_STRING, ArrayUtil.toString((String[]) null)); assertEquals(StringUtil.EMPTY_STRING, ArrayUtil.toString(new String[] {})); assertEquals("A", ArrayUtil.toString(new String[] { "A" })); assertEquals("A, B", ArrayUtil.toString(new String[] { "A", "B" })); @@ -146,7 +129,8 @@ public void testToString_Object() { @Test public void testRemove() { // Test remove on array - String[] array = new String[] { "A", "B", "C", null, "D", null, null, "C", "A" }; + @Nullable + String[] array = new @Nullable String[] { "A", "B", "C", null, "D", null, null, "C", "A" }; array = ArrayUtil.remove(array, "B"); // Remove B assertArrayEquals(array, "A", "C", null, "D", null, null, "C", "A"); array = ArrayUtil.remove(array, "B"); // Remove B again @@ -163,9 +147,6 @@ public void testRemove() { assertArrayEquals(array); array = ArrayUtil.remove(array, "A"); // Remove A assertArrayEquals(array); - // Test null array - array = ArrayUtil.remove(null, "X"); - assertNull(array); } /** @@ -190,32 +171,14 @@ protected void assertArrayEquals(T[] array, T... expectedValues) { public void testAddAll() { String[] first = new String[] { "A", "B", "C" }; String[] second = new String[] { "D", "E" }; - // Test first parameter null - String[] combined = ArrayUtil.addAll(null, second); - assertEquals(2, combined.length); - assertEquals("D", combined[0]); - assertEquals("E", combined[1]); - // Test second parameter null - combined = ArrayUtil.addAll(first, null); - assertEquals(3, combined.length); - assertEquals("A", combined[0]); - assertEquals("B", combined[1]); - assertEquals("C", combined[2]); - // Test both parameter valid - combined = ArrayUtil.addAll(first, second); + @Nullable + String[] combined = ArrayUtil.addAll(first, second); assertEquals(5, combined.length); assertEquals("A", combined[0]); assertEquals("B", combined[1]); assertEquals("C", combined[2]); assertEquals("D", combined[3]); assertEquals("E", combined[4]); - // Test both parameter null - try { - ArrayUtil.addAll(null, null); - fail("Exception expected if both parameters are null."); - } catch (IllegalArgumentException e) { - assertEquals("Can not create an array if both paramters are null.", e.getMessage()); - } } /** @@ -225,21 +188,8 @@ public void testAddAll() { public void testAddAll_newType() { String[] first = new String[] { "A", "B", "C" }; String[] second = new String[] { "D", "E" }; - // Test first parameter null - Object[] combined = ArrayUtil.addAll(null, second, Object.class); - assertEquals(Object.class, combined.getClass().getComponentType()); - assertEquals(2, combined.length); - assertEquals("D", combined[0]); - assertEquals("E", combined[1]); - // Test second parameter null - combined = ArrayUtil.addAll(first, null, Object.class); - assertEquals(Object.class, combined.getClass().getComponentType()); - assertEquals(3, combined.length); - assertEquals("A", combined[0]); - assertEquals("B", combined[1]); - assertEquals("C", combined[2]); - // Test both parameter valid - combined = ArrayUtil.addAll(first, second, Object.class); + @Nullable + Object[] combined = ArrayUtil.addAll(first, second, Object.class); assertEquals(Object.class, combined.getClass().getComponentType()); assertEquals(5, combined.length); assertEquals("A", combined[0]); @@ -247,10 +197,6 @@ public void testAddAll_newType() { assertEquals("C", combined[2]); assertEquals("D", combined[3]); assertEquals("E", combined[4]); - // Test both parameter null - combined = ArrayUtil.addAll(null, null, Object.class); - assertEquals(Object.class, combined.getClass().getComponentType()); - assertEquals(0, combined.length); } /** @@ -258,14 +204,9 @@ public void testAddAll_newType() { */ @Test public void testAdd_int() { - // Test null array - int[] result = ArrayUtil.add(null, 1); - assertNotNull(result); - assertEquals(1, result.length); - assertEquals(1, result[0]); // Test empty array int[] array = new int[] {}; - result = ArrayUtil.add(array, 1); + int[] result = ArrayUtil.add(array, 1); assertNotNull(result); assertEquals(1, result.length); assertEquals(1, result[0]); @@ -300,14 +241,11 @@ public void testAdd_int() { */ @Test public void testAdd_Object() { - // Test null array - String[] result = ArrayUtil.add(null, "A"); - assertNotNull(result); - assertEquals(1, result.length); - assertEquals("A", result[0]); // Test empty array + @Nullable String[] array = new String[] {}; - result = ArrayUtil.add(array, "A"); + @Nullable + String[] result = ArrayUtil.add(array, "A"); assertNotNull(result); assertEquals(1, result.length); assertEquals("A", result[0]); @@ -344,13 +282,6 @@ public void testAdd_Object() { assertEquals("B", result[1]); assertEquals("C", result[2]); assertNull(result[3]); - // Test null new element on null array - try { - ArrayUtil.add(null, null); - fail("Exception expected if both parameters are null."); - } catch (IllegalArgumentException e) { - assertEquals("Can not create an array if both paramters are null.", e.getMessage()); - } } /** @@ -360,14 +291,13 @@ public void testAdd_Object() { public void testContains() { String[] array = { "A", "B", "C" }; assertFalse(ArrayUtil.contains(array, null)); - assertFalse(ArrayUtil.contains(null, "A")); assertTrue(ArrayUtil.contains(array, "A")); assertTrue(ArrayUtil.contains(array, "B")); assertTrue(ArrayUtil.contains(array, "C")); assertFalse(ArrayUtil.contains(array, "D")); + @Nullable String[] arrayWithNull = { "A", "B", null, "D" }; assertTrue(ArrayUtil.contains(arrayWithNull, null)); - assertFalse(ArrayUtil.contains(null, "A")); assertTrue(ArrayUtil.contains(arrayWithNull, "A")); assertTrue(ArrayUtil.contains(arrayWithNull, "B")); assertFalse(ArrayUtil.contains(arrayWithNull, "C")); @@ -375,7 +305,6 @@ public void testContains() { assertFalse(ArrayUtil.contains(arrayWithNull, "E")); String[] arrayWithDoubleElements = { "B", "A", "C", "B", "C" }; assertFalse(ArrayUtil.contains(arrayWithDoubleElements, null)); - assertFalse(ArrayUtil.contains(null, "A")); assertTrue(ArrayUtil.contains(arrayWithDoubleElements, "A")); assertTrue(ArrayUtil.contains(arrayWithDoubleElements, "B")); assertTrue(ArrayUtil.contains(arrayWithDoubleElements, "C")); @@ -389,14 +318,13 @@ public void testContains() { public void testIndexOf() { String[] array = { "A", "B", "C" }; assertEquals(-1, ArrayUtil.indexOf(array, null)); - assertEquals(-1, ArrayUtil.indexOf(null, "A")); assertEquals(0, ArrayUtil.indexOf(array, "A")); assertEquals(1, ArrayUtil.indexOf(array, "B")); assertEquals(2, ArrayUtil.indexOf(array, "C")); assertEquals(-1, ArrayUtil.indexOf(array, "D")); + @Nullable String[] arrayWithNull = { "A", "B", null, "D" }; assertEquals(2, ArrayUtil.indexOf(arrayWithNull, null)); - assertEquals(-1, ArrayUtil.indexOf(null, "A")); assertEquals(0, ArrayUtil.indexOf(arrayWithNull, "A")); assertEquals(1, ArrayUtil.indexOf(arrayWithNull, "B")); assertEquals(-1, ArrayUtil.indexOf(arrayWithNull, "C")); @@ -404,7 +332,6 @@ public void testIndexOf() { assertEquals(-1, ArrayUtil.indexOf(arrayWithNull, "E")); String[] arrayWithDoubleElements = { "B", "A", "C", "B", "C" }; assertEquals(-1, ArrayUtil.indexOf(arrayWithDoubleElements, null)); - assertEquals(-1, ArrayUtil.indexOf(null, "A")); assertEquals(1, ArrayUtil.indexOf(arrayWithDoubleElements, "A")); assertEquals(0, ArrayUtil.indexOf(arrayWithDoubleElements, "B")); assertEquals(2, ArrayUtil.indexOf(arrayWithDoubleElements, "C")); diff --git a/key.util/src/test/java/org/key_project/util/testcase/java/CollectionUtilTest.java b/key.util/src/test/java/org/key_project/util/testcase/java/CollectionUtilTest.java index a8e0c8dab81..c38f12143c1 100644 --- a/key.util/src/test/java/org/key_project/util/testcase/java/CollectionUtilTest.java +++ b/key.util/src/test/java/org/key_project/util/testcase/java/CollectionUtilTest.java @@ -9,6 +9,7 @@ import org.key_project.util.java.CollectionUtil; import org.key_project.util.java.IFilterWithException; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; @@ -37,11 +38,6 @@ public void testSearchAll() { // Test single not existing value found = CollectionUtil.searchAll(collection, "E"::equals); assertList(found); - // Test null - found = CollectionUtil.searchAll(collection, null); - assertList(found); - found = CollectionUtil.searchAll(null, "E"::equals); - assertList(found); // Test multible values found = CollectionUtil.searchAll(collection, element -> "A".equals(element) || "C".equals(element)); @@ -97,13 +93,11 @@ protected static void assertList(List actual, String... expected) { */ @Test public void testIndexOf_Iterator() { - List list = new LinkedList<>(); + List<@Nullable String> list = new LinkedList<>(); list.add("A"); list.add("B"); list.add("C"); - assertEquals(-1, CollectionUtil.indexOf((Iterator) null, null)); assertEquals(-1, CollectionUtil.indexOf(list.iterator(), null)); - assertEquals(-1, CollectionUtil.indexOf(null, "A")); assertEquals(0, CollectionUtil.indexOf(list.iterator(), "A")); assertEquals(1, CollectionUtil.indexOf(list.iterator(), "B")); assertEquals(2, CollectionUtil.indexOf(list.iterator(), "C")); @@ -153,9 +147,6 @@ public void testSearchAndRemoveWithException() throws Throwable { assertNull(CollectionUtil.searchAndRemoveWithException(collection, (IFilterWithException) "E"::equals)); assertEquals(collection, List.of()); - assertNull(CollectionUtil.searchAndRemoveWithException(collection, null)); - assertNull(CollectionUtil.searchAndRemoveWithException(null, - (IFilterWithException) "E"::equals)); assertEquals(collection, List.of()); } @@ -183,8 +174,6 @@ public void testSearchAndRemove() { assertEquals(collection, List.of()); assertNull(CollectionUtil.searchAndRemove(collection, "E"::equals)); assertEquals(collection, List.of()); - assertNull(CollectionUtil.searchAndRemove(collection, null)); - assertNull(CollectionUtil.searchAndRemove(null, "E"::equals)); assertEquals(collection, List.of()); } @@ -193,8 +182,6 @@ public void testSearchAndRemove() { */ @Test public void testRemoveFirst() { - // Test null - assertNull(CollectionUtil.removeFirst(null)); // Test empty collection Set set = new HashSet<>(); List list = new ArrayList<>(); @@ -223,28 +210,22 @@ public void testRemoveFirst() { @Test public void testContainsSame_List() { // Create model - List empty = new LinkedList<>(); - List one = Collections.singletonList("A"); - List oneCopy = Collections.singletonList("A"); - List oneDifferent = Collections.singletonList("B"); - List two = Arrays.asList("A", "B"); - List twoCopy = Arrays.asList("A", "B"); - List twoDifferent = Arrays.asList("C", "B"); - List twoChangedOrder = Arrays.asList("B", "A"); - List three = Arrays.asList("A", "B", "A"); - List threeCopy = Arrays.asList("A", "B", "A"); - List threeDifferent = Arrays.asList("A", "B", "B"); - List threeChangedOrder = Arrays.asList("A", "A", "B"); - List four = Arrays.asList("A", "B", null, "A"); - List fourCopy = Arrays.asList("A", "B", null, "A"); - List fourDifferent = Arrays.asList("A", null, null, "B"); - List fourChangedOrder = Arrays.asList(null, "A", "A", "B"); - // Test handlig of null - assertTrue(CollectionUtil.containsSame(null, null)); - assertTrue(CollectionUtil.containsSame(empty, null)); - assertTrue(CollectionUtil.containsSame(null, empty)); - assertFalse(CollectionUtil.containsSame(null, one)); - assertFalse(CollectionUtil.containsSame(one, null)); + List<@Nullable String> empty = new LinkedList<>(); + List<@Nullable String> one = Collections.singletonList("A"); + List<@Nullable String> oneCopy = Collections.singletonList("A"); + List<@Nullable String> oneDifferent = Collections.singletonList("B"); + List<@Nullable String> two = Arrays.asList("A", "B"); + List<@Nullable String> twoCopy = Arrays.asList("A", "B"); + List<@Nullable String> twoDifferent = Arrays.asList("C", "B"); + List<@Nullable String> twoChangedOrder = Arrays.asList("B", "A"); + List<@Nullable String> three = Arrays.asList("A", "B", "A"); + List<@Nullable String> threeCopy = Arrays.asList("A", "B", "A"); + List<@Nullable String> threeDifferent = Arrays.asList("A", "B", "B"); + List<@Nullable String> threeChangedOrder = Arrays.asList("A", "A", "B"); + List<@Nullable String> four = Arrays.asList("A", "B", null, "A"); + List<@Nullable String> fourCopy = Arrays.asList("A", "B", null, "A"); + List<@Nullable String> fourDifferent = Arrays.asList("A", null, null, "B"); + List<@Nullable String> fourChangedOrder = Arrays.asList(null, "A", "A", "B"); // Test one elements assertTrue(CollectionUtil.containsSame(one, one)); assertTrue(CollectionUtil.containsSame(one, oneCopy)); @@ -322,12 +303,6 @@ public void testContainsSame_Set() { Set twoCopy = Set.of("A", "B"); Set twoDifferent = Set.of("C", "B"); Set twoChangedOrder = Set.of("B", "A"); - // Test handlig of null - assertTrue(CollectionUtil.containsSame(null, null)); - assertTrue(CollectionUtil.containsSame(empty, null)); - assertTrue(CollectionUtil.containsSame(null, empty)); - assertFalse(CollectionUtil.containsSame(null, one)); - assertFalse(CollectionUtil.containsSame(one, null)); // Test one element assertTrue(CollectionUtil.containsSame(one, one)); assertTrue(CollectionUtil.containsSame(one, oneCopy)); @@ -360,9 +335,6 @@ public void testCount() { list.add("B"); list.add("A"); // Test counts - assertEquals(0, CollectionUtil.count(null, null)); - assertEquals(0, CollectionUtil.count(list, null)); - assertEquals(0, CollectionUtil.count(null, element -> false)); assertEquals(3, CollectionUtil.count(list, "A"::equals)); assertEquals(2, CollectionUtil.count(list, "B"::equals)); assertEquals(1, CollectionUtil.count(list, "C"::equals)); @@ -375,15 +347,13 @@ public void testCount() { @Test public void testContains() { // Create model - List list = new LinkedList<>(); + List<@Nullable String> list = new LinkedList<>(); list.add("A"); list.add("B"); list.add("C"); list.add("D"); // Test null parameter - assertFalse(CollectionUtil.contains(null, "A")); assertFalse(CollectionUtil.contains(list, null)); - assertFalse(CollectionUtil.contains(null, null)); // Test values assertTrue(CollectionUtil.contains(list, "A")); assertTrue(CollectionUtil.contains(list, "B")); @@ -406,8 +376,6 @@ public void testSearch() { assertEquals("C", CollectionUtil.search(collection, "C"::equals)); assertEquals("D", CollectionUtil.search(collection, "D"::equals)); assertNull(CollectionUtil.search(collection, "E"::equals)); - assertNull(CollectionUtil.search(collection, null)); - assertNull(CollectionUtil.search(null, "E"::equals)); } /** @@ -415,7 +383,7 @@ public void testSearch() { */ @Test public void testRemoveComplete() { - List collection = + List<@Nullable String> collection = new ArrayList<>(Arrays.asList("A", "B", "C", "A", "A", "B", "A", "D")); assertFalse(CollectionUtil.removeComplete(collection, null)); assertEquals("A", collection.get(0)); @@ -426,7 +394,6 @@ public void testRemoveComplete() { assertEquals("B", collection.get(5)); assertEquals("A", collection.get(6)); assertEquals("D", collection.get(7)); - assertFalse(CollectionUtil.removeComplete(null, "A")); assertEquals("A", collection.get(0)); assertEquals("B", collection.get(1)); assertEquals("C", collection.get(2)); @@ -468,9 +435,7 @@ public void testRemoveComplete() { @Test public void testAddAll_Iterable() { List collection = new LinkedList<>(); - CollectionUtil.addAll(null, List.of("A")); assertEquals(0, collection.size()); - CollectionUtil.addAll(collection, null); assertEquals(0, collection.size()); CollectionUtil.addAll(collection, List.of("A")); assertEquals(1, collection.size()); @@ -503,44 +468,11 @@ public void testAddAll_Iterable() { assertEquals("G", collection.get(6)); } - /** - * Test for {@link CollectionUtil#isEmpty(java.util.Collection)} - */ - @Test - public void testIsEmpty_Collection() { - assertTrue(CollectionUtil.isEmpty((Collection) null)); - List collection = new LinkedList<>(); - assertTrue(CollectionUtil.isEmpty(collection)); - collection.add("A"); - assertFalse(CollectionUtil.isEmpty(collection)); - collection.add("B"); - assertFalse(CollectionUtil.isEmpty(collection)); - collection.add("C"); - assertFalse(CollectionUtil.isEmpty(collection)); - } - - /** - * Test for {@link CollectionUtil#isEmpty(java.util.Map)} - */ - @Test - public void testIsEmpty_Map() { - assertTrue(CollectionUtil.isEmpty((Map) null)); - Map map = new HashMap<>(); - assertTrue(CollectionUtil.isEmpty(map)); - map.put("A", "A"); - assertFalse(CollectionUtil.isEmpty(map)); - map.put("B", "B"); - assertFalse(CollectionUtil.isEmpty(map)); - map.put("C", "C"); - assertFalse(CollectionUtil.isEmpty(map)); - } - /** * Test for {@link CollectionUtil#toString(java.util.Collection, String)} */ @Test public void testToString_Collection_String() { - assertEquals("", CollectionUtil.toString(null, " | ")); List collection = new LinkedList<>(); assertEquals("", CollectionUtil.toString(collection, " | ")); collection.add("A"); @@ -551,7 +483,6 @@ public void testToString_Collection_String() { assertEquals("A | B | C", CollectionUtil.toString(collection, " | ")); collection.add("D"); assertEquals("A | B | C | D", CollectionUtil.toString(collection, " | ")); - assertEquals("ABCD", CollectionUtil.toString(collection, null)); } /** @@ -559,7 +490,6 @@ public void testToString_Collection_String() { */ @Test public void testToString_Collection() { - assertEquals("", CollectionUtil.toString(null)); List collection = new LinkedList<>(); assertEquals("", CollectionUtil.toString(collection)); collection.add("A"); diff --git a/key.util/src/test/java/org/key_project/util/testcase/java/IOUtilTest.java b/key.util/src/test/java/org/key_project/util/testcase/java/IOUtilTest.java index 94f6b51b29e..920fa516e97 100644 --- a/key.util/src/test/java/org/key_project/util/testcase/java/IOUtilTest.java +++ b/key.util/src/test/java/org/key_project/util/testcase/java/IOUtilTest.java @@ -20,6 +20,7 @@ import org.key_project.util.java.IOUtil.LineInformation; import org.key_project.util.java.XMLUtil; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.Test; import org.xml.sax.Attributes; import org.xml.sax.SAXException; @@ -42,22 +43,6 @@ public void testGetCurrentDirectory() { assertNotNull(currentDir); } - /** - * Tests {@link IOUtil#exists(File)} - */ - @Test - public void testExists() throws IOException { - assertFalse(IOUtil.exists(null)); - File tempFile = File.createTempFile("IOUtilTest_", ".testExists"); - assertTrue(IOUtil.exists(tempFile)); - tempFile.delete(); - assertFalse(IOUtil.exists(tempFile)); - File tempDir = IOUtil.createTempDirectory("IOUtilTest_", ".testExists"); - assertTrue(IOUtil.exists(tempDir)); - IOUtil.delete(tempDir); - assertFalse(IOUtil.exists(tempDir)); - } - /** * {@link IOUtil#contains(Iterable, File)}. */ @@ -84,10 +69,10 @@ public void testContains_Iterable() throws IOException { File noSubFile = HelperClassForUtilityTests.createFile(new File(noFolder, "Hello.txt"), "Hello"); List parents = Arrays.asList(yesDir, alsoYesDir); - assertFalse(IOUtil.contains((Iterable) null, yesFile)); - assertFalse(IOUtil.contains(parents, null)); - assertFalse(IOUtil.contains((Iterable) null, null)); - assertFalse(IOUtil.contains(parents, yesDir.getParentFile())); + File yesDirParent = yesDir.getParentFile(); + if (yesDirParent != null) { + assertFalse(IOUtil.contains(yesDir, yesDirParent)); + } assertTrue(IOUtil.contains(parents, yesDir)); assertTrue(IOUtil.contains(parents, yesFile)); assertTrue(IOUtil.contains(parents, yesFolder)); @@ -125,10 +110,10 @@ public void testContains_File() throws IOException { File noFolder = HelperClassForUtilityTests.createFolder(new File(noDir, "yesSub")); File noSubFile = HelperClassForUtilityTests.createFile(new File(noFolder, "Hello.txt"), "Hello"); - assertFalse(IOUtil.contains((File) null, yesFile)); - assertFalse(IOUtil.contains(yesDir, null)); - assertFalse(IOUtil.contains((File) null, null)); - assertFalse(IOUtil.contains(yesDir, yesDir.getParentFile())); + File yesDirParent = yesDir.getParentFile(); + if (yesDirParent != null) { + assertFalse(IOUtil.contains(yesDir, yesDirParent)); + } assertTrue(IOUtil.contains(yesDir, yesDir)); assertTrue(IOUtil.contains(yesDir, yesFile)); assertTrue(IOUtil.contains(yesDir, yesFolder)); @@ -148,7 +133,6 @@ public void testContains_File() throws IOException { */ @Test public void testUnifyLineBreaks() throws IOException { - doTestUnifyLineBreaks(null, null); doTestUnifyLineBreaks("A\nB\rC\n\nD\r\rE", "A\nB\nC\n\nD\n\nE"); doTestUnifyLineBreaks("A\r\nE", "A\nE"); } @@ -161,9 +145,7 @@ public void testUnifyLineBreaks() throws IOException { * @throws IOException Occurred Exception. */ protected void doTestUnifyLineBreaks(String toTest, String expected) throws IOException { - ByteArrayInputStream in = - toTest != null ? new ByteArrayInputStream(toTest.getBytes(StandardCharsets.UTF_8)) - : null; + ByteArrayInputStream in = new ByteArrayInputStream(toTest.getBytes(StandardCharsets.UTF_8)); InputStream converted = IOUtil.unifyLineBreaks(in); assertEquals(expected, IOUtil.readFrom(converted)); } @@ -231,9 +213,6 @@ public void testVisit() throws IOException { IOUtil.writeTo(new FileOutputStream(text), "Text.txt"); // Create visitor LogVisitor visitor = new LogVisitor(); - // Test null - IOUtil.visit(null, visitor); - assertEquals(0, visitor.getVisitedFiles().size()); // Test visiting IOUtil.visit(tempDir, visitor); // Ensure same order in all operating systems @@ -305,24 +284,8 @@ public void testSearch() throws IOException { IOUtil.writeTo(new FileOutputStream(text), "Text.txt"); // Create filter Predicate filter = element -> element.getName().contains("Sub"); - // Test null - List result = IOUtil.search(null, filter); - assertEquals(0, result.size()); - // Test no filter - result = IOUtil.search(tempDir, null); - result.sort(Comparator.comparing(File::getAbsolutePath)); // Ensure same order in all - // operating systems - assertEquals(8, result.size()); - assertEquals(tempDir, result.get(0)); - assertEquals(text, result.get(1)); - assertEquals(emptyFolder, result.get(2)); - assertEquals(subDir, result.get(3)); - assertEquals(subFile, result.get(4)); - assertEquals(subSubDir, result.get(5)); - assertEquals(subSubA, result.get(6)); - assertEquals(subSubB, result.get(7)); // Test with filter - result = IOUtil.search(tempDir, filter); + List result = IOUtil.search(tempDir, filter); result.sort(Comparator.comparing(File::getAbsolutePath)); // Ensure same order in all // operating systems assertEquals(4, result.size()); @@ -340,7 +303,6 @@ public void testSearch() throws IOException { */ @Test public void testGetFileExtension() { - assertNull(IOUtil.getFileExtension(null)); assertNull(IOUtil.getFileExtension(new File(""))); assertNull(IOUtil.getFileExtension(new File("hello"))); assertNull(IOUtil.getFileExtension(new File("path", "hello"))); @@ -369,7 +331,6 @@ public void testGetHomeDirectory() { */ @Test public void testGetFileNameWithoutExtension() { - assertNull(IOUtil.getFileNameWithoutExtension(null)); assertEquals("test", IOUtil.getFileNameWithoutExtension("test.txt")); assertEquals("hello.world", IOUtil.getFileNameWithoutExtension("hello.world.diagram")); assertEquals("", IOUtil.getFileNameWithoutExtension(".project")); @@ -391,7 +352,9 @@ public void testCreateTempDirectory() throws IOException { assertTrue(tempDir.getName().startsWith("IOUtilTest")); assertTrue(tempDir.getName().endsWith("testCreateTempDirectory")); } finally { - IOUtil.delete(tempDir); + if (tempDir != null) { + IOUtil.delete(tempDir); + } } } @@ -461,8 +424,6 @@ public void testComputeLineInformation_File() throws IOException { File textFile = new File(HelperClassForUtilityTests.RESOURCE_DIRECTORY + File.separator + "lineIndicesTest" + File.separator + "Text.txt"); assertTrue(textFile.isFile(), "File '" + textFile + "' does not exist."); - // Test null - assertLineInformation((File) null); // Test unix file assertLineInformation(convertTextFile(textFile, "Text_Unix.txt", "\r"), 0, 1, 2, 9, 16, 17, 24, 50, 23661, 23662, 23663, 23671, 23672); @@ -550,8 +511,8 @@ public void testComputeLineInformation_InputStream() throws IOException { * @throws IOException Occurred Exception. */ protected void doTestComputeLineInformation_InputStream(String newLine) throws IOException { - // Test null - assertLineInformation(newLine, new String[0]); + // Test empty string + assertLineInformation(newLine, ""); // Test single line assertLineInformation(newLine, "Hello World!"); // Test two line @@ -591,32 +552,28 @@ protected void doTestComputeLineInformation_InputStream(String newLine) throws I * @throws IOException Occurred Exception. */ protected void assertLineInformation(String newLine, String... textLines) throws IOException { - if (textLines != null) { - StringBuilder sb = new StringBuilder(); - LineInformation[] expectedInfos = new LineInformation[textLines.length]; - int lastIndex = 0; - for (int i = 0; i < textLines.length; i++) { - // Compute tabs - List tabIndices = new LinkedList<>(); - char[] lineChars = textLines[i].toCharArray(); - for (int j = 0; j < lineChars.length; j++) { - if ('\t' == lineChars[j]) { - tabIndices.add(j); - } - } - // Compute line - expectedInfos[i] = new LineInformation(lastIndex, tabIndices); - sb.append(textLines[i]); - lastIndex += textLines[i].length(); - if (i < textLines.length - 1) { - sb.append(newLine); - lastIndex += newLine.length(); + StringBuilder sb = new StringBuilder(); + LineInformation[] expectedInfos = new LineInformation[textLines.length]; + int lastIndex = 0; + for (int i = 0; i < textLines.length; i++) { + // Compute tabs + List tabIndices = new LinkedList<>(); + char[] lineChars = textLines[i].toCharArray(); + for (int j = 0; j < lineChars.length; j++) { + if ('\t' == lineChars[j]) { + tabIndices.add(j); } } - assertLineInformation(sb.length() >= 1 ? sb.toString() : null, expectedInfos); - } else { - assertLineInformation(null, new LineInformation[0]); + // Compute line + expectedInfos[i] = new LineInformation(lastIndex, tabIndices); + sb.append(textLines[i]); + lastIndex += textLines[i].length(); + if (i < textLines.length - 1) { + sb.append(newLine); + lastIndex += newLine.length(); + } } + assertLineInformation(sb.toString(), expectedInfos); } /** @@ -629,7 +586,7 @@ protected void assertLineInformation(String newLine, String... textLines) throws protected void assertLineInformation(String text, LineInformation... expectedInfos) throws IOException { LineInformation[] result = IOUtil.computeLineInformation( - text != null ? new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8)) : null); + new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8))); assertNotNull(result, text); assertEquals(expectedInfos.length, result.length, text); for (int i = 0; i < expectedInfos.length; i++) { @@ -652,13 +609,8 @@ protected void assertLineInformation(String text, LineInformation... expectedInf public void testWriteTo() throws IOException { File tempFile = null; try { - // Test null stream, nothing should happen String content = "Hello World!"; - IOUtil.writeTo(null, content); - // Test null content ByteArrayOutputStream out = new ByteArrayOutputStream(); - IOUtil.writeTo(out, null); - assertEquals(0, out.toByteArray().length); // Test writing to memory stream out = new ByteArrayOutputStream(); IOUtil.writeTo(out, content); @@ -697,7 +649,7 @@ public void testWriteTo_Charstet() throws Exception { protected byte[] doWriteCharsetAsXmlTest(String text, Charset encoding) throws Exception { // Create XML StringBuilder sb = new StringBuilder(); - XMLUtil.appendXmlHeader(encoding != null ? encoding.displayName() : null, sb); + XMLUtil.appendXmlHeader(encoding.displayName(), sb); Map attributes = new LinkedHashMap<>(); attributes.put("text", XMLUtil.encodeText(text)); XMLUtil.appendEmptyTag(0, "root", attributes, sb); @@ -724,7 +676,7 @@ private static final class RootHandler extends DefaultHandler { /** * The parsed text. */ - private String text; + private @Nullable String text; /** * {@inheritDoc} @@ -748,7 +700,7 @@ public void startElement(String uri, String localName, String qName, Attributes * * @return The parsed text. */ - public String getText() { + public @Nullable String getText() { return text; } } @@ -758,8 +710,6 @@ public String getText() { */ @Test public void testReadFrom_File() throws IOException { - // Test null - assertNull(IOUtil.readFrom((File) null)); File tempFile = File.createTempFile("IOUtilTest", "testReadFrom_File"); try { // Test not existing file @@ -780,7 +730,6 @@ public void testReadFrom_File() throws IOException { @Test public void testReadFrom_InputStream() { try { - doTestReadFrom(null); doTestReadFrom("One Line"); doTestReadFrom("First Line\n\rSecond Line"); doTestReadFrom("One Line\r"); @@ -794,12 +743,8 @@ public void testReadFrom_InputStream() { } protected void doTestReadFrom(String text) throws IOException { - if (text != null) { - assertEquals(text, - IOUtil.readFrom(new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8)))); - } else { - assertNull(IOUtil.readFrom((InputStream) null)); - } + assertEquals(text, + IOUtil.readFrom(new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8)))); } /** @@ -807,8 +752,6 @@ protected void doTestReadFrom(String text) throws IOException { */ @Test public void testDelete() throws IOException { - // Test null - IOUtil.delete(null); // No exception expected // Test existing file File tmpFile = File.createTempFile("IOUtilTest", "deleteMe"); assertTrue(tmpFile.exists()); @@ -844,10 +787,6 @@ public void testDelete() throws IOException { */ @Test public void testCopy() throws IOException { - doTestCopy(null); - assertFalse(IOUtil.copy((InputStream) null, null)); - assertFalse(IOUtil.copy( - new ByteArrayInputStream("NotCopied".getBytes(StandardCharsets.UTF_8)), null)); doTestCopy("One Line"); doTestCopy("First Line\n\rSecond Line"); doTestCopy("One Line\r"); @@ -864,18 +803,14 @@ public void testCopy() throws IOException { * @throws IOException Occurred Exception. */ protected void doTestCopy(String text) throws IOException { - if (text != null) { - byte[] inBytes = text.getBytes(StandardCharsets.UTF_8); - ByteArrayInputStream in = new ByteArrayInputStream(inBytes); - ByteArrayOutputStream out = new ByteArrayOutputStream(); - assertTrue(IOUtil.copy(in, out)); - byte[] outBytes = out.toByteArray(); - assertEquals(inBytes.length, outBytes.length); - for (int i = 0; i < inBytes.length; i++) { - assertEquals(inBytes[i], outBytes[i]); - } - } else { - assertFalse(IOUtil.copy(null, new ByteArrayOutputStream())); + byte[] inBytes = text.getBytes(StandardCharsets.UTF_8); + ByteArrayInputStream in = new ByteArrayInputStream(inBytes); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + assertTrue(IOUtil.copy(in, out)); + byte[] outBytes = out.toByteArray(); + assertEquals(inBytes.length, outBytes.length); + for (int i = 0; i < inBytes.length; i++) { + assertEquals(inBytes[i], outBytes[i]); } } @@ -884,7 +819,6 @@ protected void doTestCopy(String text) throws IOException { */ @Test public void testGetClassLocation() { - assertNull(IOUtil.getClassLocation(null)); assertNotNull(IOUtil.getClassLocation(getClass())); } @@ -893,7 +827,6 @@ public void testGetClassLocation() { */ @Test public void testGetProjectRoot() { - assertNull(IOUtil.getProjectRoot(null)); assertNotNull(IOUtil.getProjectRoot(getClass())); } @@ -969,7 +902,6 @@ public void testToFileString() throws MalformedURLException { */ @Test public void testValidateOSIndependentFileName() { - assertNull(IOUtil.validateOSIndependentFileName(null)); assertEquals("Hello_World", IOUtil.validateOSIndependentFileName("Hello World")); assertEquals("Hello_World_txt", IOUtil.validateOSIndependentFileName("Hello World.txt")); assertEquals("Hello__World_txt", IOUtil.validateOSIndependentFileName("Hello<>World.txt")); diff --git a/key.util/src/test/java/org/key_project/util/testcase/java/NumberUtilTest.java b/key.util/src/test/java/org/key_project/util/testcase/java/NumberUtilTest.java index 84c0be704fe..e5fbdba9bc2 100644 --- a/key.util/src/test/java/org/key_project/util/testcase/java/NumberUtilTest.java +++ b/key.util/src/test/java/org/key_project/util/testcase/java/NumberUtilTest.java @@ -8,7 +8,6 @@ import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; /** * Tests for {@link NumberUtil}. @@ -32,12 +31,6 @@ public void testParseFullInt() { assertEquals(123, NumberUtil.parseFullInt(NumberUtil.toFullString(123))); assertEquals(Integer.MAX_VALUE, NumberUtil.parseFullInt(NumberUtil.toFullString(Integer.MAX_VALUE))); - try { - NumberUtil.parseFullInt(null); - fail(); - } catch (NumberFormatException e) { - assertEquals("Text not defined.", e.getMessage()); - } } /** @@ -56,12 +49,6 @@ public void testParseFullLong() { assertEquals(123, NumberUtil.parseFullLong(NumberUtil.toFullString(123))); assertEquals(Long.MAX_VALUE, NumberUtil.parseFullLong(NumberUtil.toFullString(Long.MAX_VALUE))); - try { - NumberUtil.parseFullInt(null); - fail(); - } catch (NumberFormatException e) { - assertEquals("Text not defined.", e.getMessage()); - } } /** diff --git a/key.util/src/test/java/org/key_project/util/testcase/java/StringUtilTest.java b/key.util/src/test/java/org/key_project/util/testcase/java/StringUtilTest.java index 9294b92aa93..6e165ac6aa6 100644 --- a/key.util/src/test/java/org/key_project/util/testcase/java/StringUtilTest.java +++ b/key.util/src/test/java/org/key_project/util/testcase/java/StringUtilTest.java @@ -7,6 +7,7 @@ import org.key_project.util.java.StringUtil; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; @@ -163,7 +164,6 @@ public void testToSingleLinedString() { public void testReplaceAll() { String text = "ABCDABCDABCDABCD"; assertNull(StringUtil.replaceAll(null, new char[] {}, 'X')); - assertEquals(text, StringUtil.replaceAll(text, null, 'X')); assertEquals(text, StringUtil.replaceAll(text, new char[] {}, 'X')); assertEquals("XBCDXBCDXBCDXBCD", StringUtil.replaceAll(text, new char[] { 'A' }, 'X')); assertEquals("AXCDAXCDAXCDAXCD", StringUtil.replaceAll(text, new char[] { 'B' }, 'X')); @@ -209,13 +209,6 @@ public void testRepeat() { assertEquals("#####", StringUtil.repeat("#", 5)); // Test line with multiple characters assertEquals("ABABAB", StringUtil.repeat("AB", 3)); - - // Test null text - try { - assertEquals("nullnullnullnull", StringUtil.repeat(null, 4)); - fail(); - } catch (NullPointerException expected) { - } } /** @@ -223,7 +216,7 @@ public void testRepeat() { */ @Test public void testCreateIgnoreCaseComparator() { - Comparator c = StringUtil.createIgnoreCaseComparator(); + Comparator<@Nullable String> c = StringUtil.createIgnoreCaseComparator(); assertNotNull(c); assertSame("A".compareToIgnoreCase("A"), c.compare("A", "A")); assertSame("A".compareToIgnoreCase("a"), c.compare("A", "a")); diff --git a/key.util/src/test/java/org/key_project/util/testcase/java/XMLUtilTest.java b/key.util/src/test/java/org/key_project/util/testcase/java/XMLUtilTest.java index 281cfbbb497..d2ef7105106 100644 --- a/key.util/src/test/java/org/key_project/util/testcase/java/XMLUtilTest.java +++ b/key.util/src/test/java/org/key_project/util/testcase/java/XMLUtilTest.java @@ -13,7 +13,6 @@ import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNull; /** * Tests for {@link XMLUtil}. @@ -26,15 +25,9 @@ public class XMLUtilTest { */ @Test public void testReplaceTags() { - assertNull(XMLUtil.replaceTags(null, null)); - assertNull(XMLUtil.replaceTags("Hello", null)); - assertNull(XMLUtil.replaceTags(null, new LoggingReplacer("|"))); assertReplaceTags("Hello World", "Hello World", "|"); assertReplaceTags("Hello
World", "|Hello| World|", "|", "", "
", ""); - assertReplaceTags("Hello World", "Hello World", null); - assertReplaceTags("Hello
World", "Hello World", null, "", "
", - ""); assertReplaceTags("Hello
World", "|Hello| World", "|", "", "
"); assertReplaceTags("Hello
World", "Hello| World|", "|", "
", ""); assertReplaceTags("Hello World", "|Hello World|", "|", @@ -49,7 +42,7 @@ public void testReplaceTags() { * @param text The text to execute * {@link XMLUtil#replaceTags(String, org.key_project.util.java.XMLUtil.ITagReplacer)} * on. - * @param expectedResult The expected result. + * @param expectedResult The expected result.N * @param fixedReplacement The fixed replacement to use. * @param expectedTags The expected found tags. */ @@ -115,7 +108,6 @@ public List getLog() { */ @Test public void testRemoveTags() { - assertNull(XMLUtil.removeTags(null)); assertEquals("Hello World", XMLUtil.removeTags("Hello World")); assertEquals("Hello World", XMLUtil.removeTags("Hello
World")); assertEquals("Hello World", XMLUtil.removeTags("Hello
World")); @@ -130,8 +122,6 @@ public void testRemoveTags() { */ @Test public void testEncodeText() { - // Test null - assertNull(XMLUtil.encodeText(null)); // Test empty string assertEquals(StringUtil.EMPTY_STRING, XMLUtil.encodeText(StringUtil.EMPTY_STRING)); // Text XML tags diff --git a/keyext.caching/src/main/java/de/uka/ilkd/key/gui/plugins/caching/CachingExtension.java b/keyext.caching/src/main/java/de/uka/ilkd/key/gui/plugins/caching/CachingExtension.java index c0f7f1d813c..51fc0986e86 100644 --- a/keyext.caching/src/main/java/de/uka/ilkd/key/gui/plugins/caching/CachingExtension.java +++ b/keyext.caching/src/main/java/de/uka/ilkd/key/gui/plugins/caching/CachingExtension.java @@ -200,9 +200,8 @@ public void proofDisposed(ProofDisposedEvent e) { } - @NonNull @Override - public List getContextActions(@NonNull KeYMediator mediator, + public @NonNull List getContextActions(@NonNull KeYMediator mediator, @NonNull ContextMenuKind kind, @NonNull Object underlyingObject) { if (kind.getType() == Node.class) { Node node = (Node) underlyingObject; diff --git a/keyext.exploration/src/main/java/org/key_project/exploration/ExplorationExtension.java b/keyext.exploration/src/main/java/org/key_project/exploration/ExplorationExtension.java index 0ea1280b2bb..3e671516e44 100644 --- a/keyext.exploration/src/main/java/org/key_project/exploration/ExplorationExtension.java +++ b/keyext.exploration/src/main/java/org/key_project/exploration/ExplorationExtension.java @@ -76,16 +76,14 @@ public void proofPruned(de.uka.ilkd.key.proof.ProofTreeEvent e) { } }; - @NonNull @Override - public List getContextActions(@NonNull KeYMediator mediator, + public @NonNull List getContextActions(@NonNull KeYMediator mediator, @NonNull ContextMenuKind kind, @NonNull Object underlyingObject) { return adapter.getContextActions(mediator, kind, underlyingObject); } - @NonNull @Override - public JToolBar getToolbar(MainWindow mainWindow) { + public @NonNull JToolBar getToolbar(MainWindow mainWindow) { if (explorationToolbar == null) { explorationToolbar = new JToolBar(); explorationToolbar.add(new JCheckBox(new ToggleExplorationAction(model, mainWindow))); @@ -132,9 +130,8 @@ private void initLeftPanel(@NonNull MainWindow window) { e -> leftPanel.setEnabled(model.isExplorationModeSelected())); } - @NonNull @Override - public Collection getPanels(@NonNull MainWindow window, + public @NonNull Collection getPanels(@NonNull MainWindow window, @NonNull KeYMediator mediator) { if (leftPanel == null) { initLeftPanel(window); diff --git a/keyext.exploration/src/main/java/org/key_project/exploration/actions/AddFormulaToSuccedentAction.java b/keyext.exploration/src/main/java/org/key_project/exploration/actions/AddFormulaToSuccedentAction.java index c4acd7fc56e..9c82697f90d 100644 --- a/keyext.exploration/src/main/java/org/key_project/exploration/actions/AddFormulaToSuccedentAction.java +++ b/keyext.exploration/src/main/java/org/key_project/exploration/actions/AddFormulaToSuccedentAction.java @@ -13,7 +13,6 @@ import org.jspecify.annotations.NonNull; - /** * @author Alexander Weigl * @author Sarah Grebing diff --git a/keyext.exploration/src/main/java/org/key_project/exploration/ui/ExplorationStepsList.java b/keyext.exploration/src/main/java/org/key_project/exploration/ui/ExplorationStepsList.java index cfc68cf0b41..5e5565becd4 100644 --- a/keyext.exploration/src/main/java/org/key_project/exploration/ui/ExplorationStepsList.java +++ b/keyext.exploration/src/main/java/org/key_project/exploration/ui/ExplorationStepsList.java @@ -221,15 +221,13 @@ private JPanel createBottomPanel() { return buttonPanel; } - @NonNull @Override - public String getTitle() { + public @NonNull String getTitle() { return "Exploration Steps"; } - @NonNull @Override - public JComponent getComponent() { + public @NonNull JComponent getComponent() { return this; } diff --git a/keyext.proofmanagement/src/main/java/org/key_project/proofmanagement/ProofManagementExt.java b/keyext.proofmanagement/src/main/java/org/key_project/proofmanagement/ProofManagementExt.java index 0a7a94ea061..6b856b8bac8 100644 --- a/keyext.proofmanagement/src/main/java/org/key_project/proofmanagement/ProofManagementExt.java +++ b/keyext.proofmanagement/src/main/java/org/key_project/proofmanagement/ProofManagementExt.java @@ -28,9 +28,8 @@ public class ProofManagementExt implements private static final String MENU_PM = "Proof Management"; - @NonNull @Override - public List getMainMenuActions(@NonNull MainWindow mainWindow) { + public @NonNull List getMainMenuActions(@NonNull MainWindow mainWindow) { return List.of(new CheckAction()); } diff --git a/keyext.proofmanagement/src/main/java/org/key_project/proofmanagement/check/KeYFacade.java b/keyext.proofmanagement/src/main/java/org/key_project/proofmanagement/check/KeYFacade.java index 6d445482155..3b606d46792 100644 --- a/keyext.proofmanagement/src/main/java/org/key_project/proofmanagement/check/KeYFacade.java +++ b/keyext.proofmanagement/src/main/java/org/key_project/proofmanagement/check/KeYFacade.java @@ -3,15 +3,13 @@ * SPDX-License-Identifier: GPL-2.0-only */ package org.key_project.proofmanagement.check; -import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; -import java.lang.reflect.Method; import java.nio.file.Path; import java.util.Iterator; import java.util.LinkedList; import java.util.List; -import java.util.Properties; +import java.util.ServiceLoader; import java.util.stream.Collectors; import de.uka.ilkd.key.control.DefaultUserInterfaceControl; @@ -22,16 +20,8 @@ import de.uka.ilkd.key.proof.Node; import de.uka.ilkd.key.proof.Proof; import de.uka.ilkd.key.proof.ProofAggregate; -import de.uka.ilkd.key.proof.init.AbstractProfile; -import de.uka.ilkd.key.proof.init.ContractPO; -import de.uka.ilkd.key.proof.init.FunctionalOperationContractPO; -import de.uka.ilkd.key.proof.init.IPersistablePO; -import de.uka.ilkd.key.proof.init.InitConfig; -import de.uka.ilkd.key.proof.init.KeYUserProblemFile; -import de.uka.ilkd.key.proof.init.ProblemInitializer; -import de.uka.ilkd.key.proof.init.Profile; -import de.uka.ilkd.key.proof.init.ProofInputException; -import de.uka.ilkd.key.proof.init.ProofOblInput; +import de.uka.ilkd.key.proof.init.*; +import de.uka.ilkd.key.proof.init.loader.ProofObligationLoader; import de.uka.ilkd.key.proof.io.AbstractProblemLoader.ReplayResult; import de.uka.ilkd.key.proof.io.EnvInput; import de.uka.ilkd.key.proof.io.IntermediatePresentationProofFileParser; @@ -41,6 +31,7 @@ import de.uka.ilkd.key.proof.io.consistency.TrivialFileRepo; import de.uka.ilkd.key.proof.mgt.SpecificationRepository; import de.uka.ilkd.key.rule.OneStepSimplifier; +import de.uka.ilkd.key.settings.Configuration; import de.uka.ilkd.key.speclang.Contract; import de.uka.ilkd.key.speclang.SLEnvInput; import de.uka.ilkd.key.strategy.Strategy; @@ -52,7 +43,6 @@ import org.key_project.proofmanagement.io.LogLevel; import org.key_project.proofmanagement.io.Logger; import org.key_project.proofmanagement.io.ProofBundleHandler; -import org.key_project.util.reflection.ClassLoaderUtil; /** * This class provides static methods to access the prover (KeY). @@ -108,10 +98,10 @@ public static void ensureProofsLoaded(CheckerData data) throws ProofManagementEx } } } - } catch (IOException | ProofInputException e) { + } catch (Exception e) { // TODO: exception handling: better not throw exceptions, but print to log and continue throw new ProofManagementException( - "Could not load proof! " + System.lineSeparator() + e.toString()); + "Could not load proof! " + System.lineSeparator() + e); } } @@ -134,7 +124,7 @@ private static CheckerData.ProofEntry findProofLine(Path proofPath, CheckerData } private static boolean loadProofTree(Path path, CheckerData.ProofEntry line, Logger logger) - throws ProofInputException, IOException { + throws Exception { logger.print(LogLevel.DEBUG, "Loading proof from " + path); line.proofFile = path; @@ -166,7 +156,7 @@ private static boolean loadProofTree(Path path, CheckerData.ProofEntry line, Log } private static Proof[] loadProofFile(Path path, CheckerData.ProofEntry line) - throws ProofInputException, IOException { + throws Exception { Profile profile = AbstractProfile.getDefaultProfile(); // TODO: FileRepo/InitConfig/ProblemInitializer reuse possible? @@ -195,16 +185,14 @@ private static Proof[] loadProofFile(Path path, CheckerData.ProofEntry line) initConfig.setFileRepo(fileRepo); /////////////////// createProofObligationContainer - String proofObligation = keyFile.getProofObligation(); + var proofObligation = keyFile.getProofObligation(); // Load proof obligation settings - final Properties properties = new Properties(); - properties.load(new ByteArrayInputStream(proofObligation.getBytes())); - properties.setProperty(IPersistablePO.PROPERTY_FILENAME, path.toString()); + proofObligation.set(IPersistablePO.PROPERTY_FILENAME, path.toString()); // more generic version (works e.g. for taclet proofs) IPersistablePO.LoadedPOContainer poContainer = - createProofObligationContainer(keyFile, initConfig, properties); + createProofObligationContainer(keyFile, initConfig, proofObligation); ProofAggregate proofList = pi.startProver(initConfig, poContainer.getProofOblInput()); for (Proof p : proofList.getProofs()) { @@ -235,6 +223,7 @@ private static Proof[] loadProofFile(Path path, CheckerData.ProofEntry line) } // TODO: adapted copy from AbstractProblemLoader + /** * Creates a {@link IPersistablePO.LoadedPOContainer} if available which contains * the {@link ProofOblInput} for which a {@link Proof} should be instantiated. @@ -243,19 +232,16 @@ private static Proof[] loadProofFile(Path path, CheckerData.ProofEntry line) * @throws IOException Occurred Exception. */ private static IPersistablePO.LoadedPOContainer createProofObligationContainer(KeYFile keyFile, - InitConfig initConfig, Properties properties) throws IOException { - final String chooseContract; - final String proofObligation; - - chooseContract = keyFile.chooseContract(); - proofObligation = keyFile.getProofObligation(); + InitConfig initConfig, Configuration properties) throws Exception { + final String chooseContract = keyFile.chooseContract(); + final Configuration proofObligation = keyFile.getProofObligation(); // Instantiate proof obligation if (keyFile instanceof ProofOblInput && chooseContract == null && proofObligation == null) { return new IPersistablePO.LoadedPOContainer((ProofOblInput) keyFile); - } else if (chooseContract != null && chooseContract.length() > 0) { + } else if (chooseContract != null && !chooseContract.isEmpty()) { int proofNum = 0; - String baseContractName = null; + String baseContractName; int ind = -1; for (String tag : FunctionalOperationContractPO.TRANSACTION_TAGS.values()) { ind = chooseContract.indexOf("." + tag); @@ -279,27 +265,21 @@ private static IPersistablePO.LoadedPOContainer createProofObligationContainer(K return new IPersistablePO.LoadedPOContainer(contract.createProofObl(initConfig), proofNum); } - } else if (proofObligation != null && proofObligation.length() > 0) { - - String poClass = properties.getProperty(IPersistablePO.PROPERTY_CLASS); + } else if (proofObligation != null) { + String poClass = properties.getString(IPersistablePO.PROPERTY_CLASS); if (poClass == null || poClass.isEmpty()) { throw new IOException("Proof obligation class property \"" + IPersistablePO.PROPERTY_CLASS + "\" is not defined or empty."); } - try { - // Try to instantiate proof obligation by calling static method: public static - // LoadedPOContainer loadFrom(InitConfig initConfig, Properties properties) throws - // IOException - Class poClassInstance = ClassLoaderUtil.getClassforName(poClass); - Method loadMethod = - poClassInstance.getMethod("loadFrom", InitConfig.class, Properties.class); - return (IPersistablePO.LoadedPOContainer) loadMethod.invoke(null, initConfig, - properties); - } catch (Exception e) { - throw new IOException( - "Can't call static factory method \"loadFrom\" on class \"" + poClass + "\".", - e); + ServiceLoader loader = + ServiceLoader.load(ProofObligationLoader.class); + for (ProofObligationLoader poloader : loader) { + if (poloader.handles(poClass)) { + return poloader.loadFrom(initConfig, proofObligation); + } } + throw new IllegalArgumentException( + "There is no builder that can build the PO for the id " + poClass); } else { return null; } @@ -334,7 +314,7 @@ public static void ensureProofsReplayed(CheckerData data) throws ProofManagement } catch (ProofInputException e) { throw new ProofManagementException( "Could not replay proof from " + envInput - + System.lineSeparator() + e.toString()); + + System.lineSeparator() + e); } } } diff --git a/keyext.slicing/src/main/java/org/key_project/slicing/SlicingExtension.java b/keyext.slicing/src/main/java/org/key_project/slicing/SlicingExtension.java index 13b32c6c07f..8d03e6a7303 100644 --- a/keyext.slicing/src/main/java/org/key_project/slicing/SlicingExtension.java +++ b/keyext.slicing/src/main/java/org/key_project/slicing/SlicingExtension.java @@ -106,9 +106,8 @@ public List getContextActions( } }; - @NonNull @Override - public List getContextActions(@NonNull KeYMediator mediator, + public @NonNull List getContextActions(@NonNull KeYMediator mediator, @NonNull ContextMenuKind kind, @NonNull Object underlyingObject) { return adapter.getContextActions(mediator, kind, underlyingObject); @@ -145,9 +144,8 @@ private void createTrackerForProof(Proof newProof) { }); } - @NonNull @Override - public Collection getPanels( + public @NonNull Collection getPanels( @NonNull MainWindow window, @NonNull KeYMediator mediator) { if (leftPanel == null) { leftPanel = new SlicingLeftPanel(mediator, this); diff --git a/keyext.slicing/src/main/java/org/key_project/slicing/SlicingProofReplayer.java b/keyext.slicing/src/main/java/org/key_project/slicing/SlicingProofReplayer.java index 060258921c6..89132804c50 100644 --- a/keyext.slicing/src/main/java/org/key_project/slicing/SlicingProofReplayer.java +++ b/keyext.slicing/src/main/java/org/key_project/slicing/SlicingProofReplayer.java @@ -98,7 +98,7 @@ public static SlicingProofReplayer constructSlicer(ProblemLoaderControl control, Proof originalProof, AnalysisResults results, ProgressMonitor progressMonitor) - throws IOException, ProofInputException, ProblemLoaderException { + throws Exception { boolean loadInUI = MainWindow.hasInstance(); if (loadInUI) { MainWindow.getInstance().setStatusLine( diff --git a/keyext.slicing/src/main/java/org/key_project/slicing/ui/SlicingLeftPanel.java b/keyext.slicing/src/main/java/org/key_project/slicing/ui/SlicingLeftPanel.java index 6af1fb82d77..78a3140fd38 100644 --- a/keyext.slicing/src/main/java/org/key_project/slicing/ui/SlicingLeftPanel.java +++ b/keyext.slicing/src/main/java/org/key_project/slicing/ui/SlicingLeftPanel.java @@ -341,9 +341,8 @@ private GridBagConstraints gridBagConstraints(int y) { return c; } - @NonNull @Override - public Collection getTitleCActions() { + public @NonNull Collection getTitleCActions() { return List.of(HelpFacade.createHelpButton("user/ProofSlicing/")); } @@ -514,9 +513,8 @@ private void displayGraphLabels() { graphEdges.setText("Graph edges: " + graphEdgesNr); } - @NonNull @Override - public String getTitle() { + public @NonNull String getTitle() { return "Proof Slicing"; } @@ -525,9 +523,8 @@ public Icon getIcon() { return INFO_ICON; } - @NonNull @Override - public JComponent getComponent() { + public @NonNull JComponent getComponent() { return this; } diff --git a/keyext.slicing/src/test/java/org/key_project/slicing/Issue3437Test.java b/keyext.slicing/src/test/java/org/key_project/slicing/Issue3437Test.java new file mode 100644 index 00000000000..4bcc33efd96 --- /dev/null +++ b/keyext.slicing/src/test/java/org/key_project/slicing/Issue3437Test.java @@ -0,0 +1,54 @@ +/* This file is part of KeY - https://key-project.org + * KeY is licensed under the GNU General Public License Version 2 + * SPDX-License-Identifier: GPL-2.0-only */ +package org.key_project.slicing; + +import java.io.File; + +import de.uka.ilkd.key.control.DefaultUserInterfaceControl; +import de.uka.ilkd.key.control.KeYEnvironment; +import de.uka.ilkd.key.proof.io.ProblemLoaderControl; +import de.uka.ilkd.key.settings.GeneralSettings; + +import org.key_project.util.helper.FindResources; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +public class Issue3437Test { + public static final File testCaseDirectory = FindResources.getTestCasesDirectory(); + + @Test + void loadsAndSlicesCorrectly() throws Exception { + GeneralSettings.noPruningClosed = false; + + var file = new File(testCaseDirectory, + "issues/3437/Newnames(Newnames__createArray()).JML normal_behavior operation contract.0.proof"); + var env = KeYEnvironment.load(file); + var proof = env.getLoadedProof(); + var tracker = new DependencyTracker(proof); + env.getProofControl().startAutoMode(proof, proof.openEnabledGoals()); + env.getProofControl().waitWhileAutoMode(); + assertTrue(proof.closed()); + // prune and re-run automode to ensure the counters on the temporary variables are different + proof.pruneProof(proof.findAny(x -> x.serialNr() == 13)); + env.getProofControl().startAutoMode(proof, proof.openEnabledGoals()); + env.getProofControl().waitWhileAutoMode(); + assertTrue(proof.closed()); + + var results = tracker.analyze(true, false); + + ProblemLoaderControl control = new DefaultUserInterfaceControl(); + SlicingProofReplayer replayer = SlicingProofReplayer + .constructSlicer(control, proof, results, env.getUi()); + var newFile = replayer.slice(); + var env2 = KeYEnvironment.load(newFile); + var proof2 = env.getLoadedProof(); + assertTrue(proof2.closed()); + + env.dispose(); + env2.dispose(); + GeneralSettings.noPruningClosed = true; + } +} diff --git a/keyext.slicing/src/test/resources/testcase/issues/3437/Newnames(Newnames__createArray()).JML normal_behavior operation contract.0.proof b/keyext.slicing/src/test/resources/testcase/issues/3437/Newnames(Newnames__createArray()).JML normal_behavior operation contract.0.proof new file mode 100644 index 00000000000..e0644d94eca --- /dev/null +++ b/keyext.slicing/src/test/resources/testcase/issues/3437/Newnames(Newnames__createArray()).JML normal_behavior operation contract.0.proof @@ -0,0 +1,94 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:safe", + "bigint" : "bigint:on", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 7000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\javaSource "."; + +\proofObligation "#Proof Obligation Settings +#Thu Mar 07 13:11:27 CET 2024 +class=de.uka.ilkd.key.proof.init.FunctionalOperationContractPO +contract=Newnames[Newnames\\:\\:createArray()].JML normal_behavior operation contract.0 +name=Newnames[Newnames\\:\\:createArray()].JML normal_behavior operation contract.0 +"; + +\proof { +(keyLog "0" (keyUser "arne" ) (keyVersion "9ad6cc893ef6e61574fac6994511791b8411ccfc")) + +(autoModeTime "0") + +(branch "dummy ID" + (opengoal "==> ( ( ((((wellFormed(heap)<> & (!( self<> = null)<>)<>)<> & ( boolean::select(heap, self, java.lang.Object::) = TRUE)<>)<> & (Newnames::exactInstance(self) = TRUE)<>)<> & measuredByEmpty<>)<> & java.lang.Object::(heap, self)<>)<> -> ({heapAtPre:=heap} (\\<{ exc = null; try { self.createArray()@Newnames; } catch (java.lang.Throwable e) { exc = e; } }\\> (( (java.lang.Object::(heap, self)<> & ( exc<> = null)<>)<> & (\\forall Field f; (\\forall java.lang.Object o; (( (elementOf(o, f, allLocs)<> | ((!(o = null)<>)<> & (!( boolean::select(heapAtPre, o, java.lang.Object::) = TRUE)<>)<>)<>)<> | ( any::select(heap, o, f) = any::select(heapAtPre, o, f))<>)<>))<>)<>)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>))< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>)< (implicit)\",\"[requires (implicit), ensures (implicit), assignable (implicit)]\")>>") +) +} diff --git a/keyext.slicing/src/test/resources/testcase/issues/3437/Newnames.java b/keyext.slicing/src/test/resources/testcase/issues/3437/Newnames.java new file mode 100644 index 00000000000..e85a8c2b2e8 --- /dev/null +++ b/keyext.slicing/src/test/resources/testcase/issues/3437/Newnames.java @@ -0,0 +1,8 @@ +class Newnames { + /*@ normal_behaviour + @ ensures true; + @*/ + void createArray() { + int[] a = new int[5 + 1]; + } +} diff --git a/recoder/build.gradle b/recoder/build.gradle index 27147e285c5..598d8e64a13 100644 --- a/recoder/build.gradle +++ b/recoder/build.gradle @@ -5,7 +5,7 @@ repositories { mavenCentral() } dependencies { - implementation 'org.ow2.asm:asm:9.6' + implementation 'org.ow2.asm:asm:9.7' implementation 'org.apache-extras.beanshell:bsh:2.0b6' implementation 'net.sf.retrotranslator:retrotranslator-runtime:1.2.9' implementation 'net.sf.retrotranslator:retrotranslator-transformer:1.2.9' diff --git a/recoder/src/test/java/recoder/testsuite/basic/BasicTestsSuite.java b/recoder/src/test/java/recoder/testsuite/basic/BasicTestsSuite.java index 9407df3abb3..6b1b8d3e63e 100644 --- a/recoder/src/test/java/recoder/testsuite/basic/BasicTestsSuite.java +++ b/recoder/src/test/java/recoder/testsuite/basic/BasicTestsSuite.java @@ -19,16 +19,14 @@ public class BasicTestsSuite { private static CrossReferenceServiceConfiguration config; private static File projectFile; - @NonNull - public static File getProjectFile() { + public static @NonNull File getProjectFile() { if (projectFile == null) { init(); } return projectFile; } - @NonNull - public static CrossReferenceServiceConfiguration getConfig() { + public static @NonNull CrossReferenceServiceConfiguration getConfig() { if (config == null) { init(); } diff --git a/scripts/proofobligationrewrite.py b/scripts/proofobligationrewrite.py new file mode 100755 index 00000000000..6ccdaba8456 --- /dev/null +++ b/scripts/proofobligationrewrite.py @@ -0,0 +1,42 @@ +#!/usr/bin/python3 + +import sys +import re + +REGEX = re.compile(r'\\proofObligation\s*"(.*?)";', re.DOTALL) + +def replace(matcher): + orig = matcher.group(1) + translated = "" + for line in orig.split("\n"): + if line == "": continue + if line.startswith("#"): continue + k,v = line.split("=", 1) + v = v.replace(r'\\','') + + if not(v == 'false' or v == 'true'): + v = f'"{v}"' + + translated += f"\t\"{k}\": {v},\n" + return '\\proofObligation {\n%s }' % translated + + +def rewrite(filename): + with open(filename) as fh: + text = fh.read() + + with open(f"{filename}.orig", 'w') as fh: + fh.write(text) + + new_text = REGEX.sub(replace, text, 1) + + with open(filename, 'w') as fh: + fh.write(new_text) + +if __name__=="__main__": + for a in sys.argv[1:]: + try: + print(f"File: {a}") + rewrite(a) + except Exception as e: + print(e) diff --git a/settings.gradle b/settings.gradle index 65ec0e06535..171f3b1d56c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -15,3 +15,7 @@ include 'keyext.proofmanagement' include 'keyext.exploration' include 'keyext.slicing' include 'keyext.caching' + +// ENABLE NULLNESS here or on the CLI +// This flag is activated to enable the checker framework. +// System.setProperty("ENABLE_NULLNESS", "true") \ No newline at end of file diff --git a/test/Test.java b/test/Test.java new file mode 100644 index 00000000000..2fbd2fe0440 --- /dev/null +++ b/test/Test.java @@ -0,0 +1,40 @@ +class Test { + //@ ghost int x; + + int a; + + //@ requires true; ensures x==a; + void foo() { + //@set x = 0; + a = 0; + //@set x = x + 1; + a = a + 1; + //@set x = x + 1; + a = a + 1; + //@set x = x + 1; + a = a + 1; + //@set x = x + 1; + a = a + 1; + //@set x = x + 1; + a = a + 1; + } + + + //@ ghost int rec; + int cer; + + //@ requires a >= 0; ensures rec == cer; measured_by a; + int voo(int a) { + if (a == 0) { + //@ set rec = 0; + cer = 0; + return 0; + } else { + int r = voo(a - 1) + 1; + //@ set rec = r; + cer = r; + return r; + } + } + +}