diff --git a/key.core.proof_references/src/test/java/de/uka/ilkd/key/proof_references/testcase/analyst/TestClassAxiomAndInvariantProofReferencesAnalyst.java b/key.core.proof_references/src/test/java/de/uka/ilkd/key/proof_references/testcase/analyst/TestClassAxiomAndInvariantProofReferencesAnalyst.java index 198f09c01d6..c072c1fa539 100644 --- a/key.core.proof_references/src/test/java/de/uka/ilkd/key/proof_references/testcase/analyst/TestClassAxiomAndInvariantProofReferencesAnalyst.java +++ b/key.core.proof_references/src/test/java/de/uka/ilkd/key/proof_references/testcase/analyst/TestClassAxiomAndInvariantProofReferencesAnalyst.java @@ -27,7 +27,7 @@ public void testInvariantInOperationContractOfArgument() throws Exception { new ClassAxiomAndInvariantProofReferencesAnalyst(), element -> IProofReference.USE_INVARIANT.equals(element.getKind()), new ExpectedProofReferences(IProofReference.USE_INVARIANT, - "and(geq(int::select(heap,self,Child::$x),Z(0(#))),leq(int::select(heap,self,Child::$x),Z(0(1(#)))))<>")); + "and(geq(select<[int]>(heap,self,Child::$x),Z(0(#))),leq(select<[int]>(heap,self,Child::$x),Z(0(1(#)))))<>")); } /** @@ -69,7 +69,7 @@ false, new ClassAxiomAndInvariantProofReferencesAnalyst(), new ExpectedProofReferences(IProofReference.USE_AXIOM, "equiv(java.lang.Object::$inv(heap,self),true)"), new ExpectedProofReferences(IProofReference.USE_AXIOM, - "equals(test.ModelFieldTest::$f(heap,self),mul(Z(2(#)),int::select(heap,self,test.ModelFieldTest::$x)))")); + "equals(test.ModelFieldTest::$f(heap,self),mul(Z(2(#)),select<[int]>(heap,self,test.ModelFieldTest::$x)))")); } /** @@ -83,7 +83,7 @@ public void testModelFieldTest_f() throws Exception { new ExpectedProofReferences(IProofReference.USE_AXIOM, "equiv(java.lang.Object::$inv(heap,self),true)"), new ExpectedProofReferences(IProofReference.USE_AXIOM, - "equals(test.ModelFieldTest::$f(heap,self),mul(Z(2(#)),int::select(heap,self,test.ModelFieldTest::$x)))")); + "equals(test.ModelFieldTest::$f(heap,self),mul(Z(2(#)),select<[int]>(heap,self,test.ModelFieldTest::$x)))")); } /** diff --git a/key.core.symbolic_execution/src/test/java/de/uka/ilkd/key/symbolic_execution/testcase/TestConditionalVariables.java b/key.core.symbolic_execution/src/test/java/de/uka/ilkd/key/symbolic_execution/testcase/TestConditionalVariables.java index 53033d41cb1..1aaa2e1428e 100644 --- a/key.core.symbolic_execution/src/test/java/de/uka/ilkd/key/symbolic_execution/testcase/TestConditionalVariables.java +++ b/key.core.symbolic_execution/src/test/java/de/uka/ilkd/key/symbolic_execution/testcase/TestConditionalVariables.java @@ -101,7 +101,7 @@ protected IExecutionVariable[] createExpectedEqualCaseVariables() { ExecutionNodeReader.KeYlessVariable selfContentVar = new ExecutionNodeReader.KeYlessVariable(selfValue, false, null, "content"); selfContentVar.addValue(new ExecutionNodeReader.KeYlessValue(selfContentVar, "int", - "int::select(heap,n,Number::$content)", "content {true}", false, false, "true")); + "select<[int]>(heap,n,Number::$content)", "content {true}", false, false, "true")); selfValue.addChildVariable(selfContentVar); // n result[1] = new ExecutionNodeReader.KeYlessVariable(null, false, null, "n"); @@ -111,7 +111,7 @@ protected IExecutionVariable[] createExpectedEqualCaseVariables() { ExecutionNodeReader.KeYlessVariable nContentVar = new ExecutionNodeReader.KeYlessVariable(nValue, false, null, "content"); nContentVar.addValue(new ExecutionNodeReader.KeYlessValue(nContentVar, "int", - "int::select(heap,n,Number::$content)", "content {true}", false, false, "true")); + "select<[int]>(heap,n,Number::$content)", "content {true}", false, false, "true")); nValue.addChildVariable(nContentVar); // exc result[2] = new ExecutionNodeReader.KeYlessVariable(null, false, null, "exc"); @@ -135,7 +135,7 @@ protected IExecutionVariable[] createExpectedNotEqualCaseVariables() { ExecutionNodeReader.KeYlessVariable selfContentVar = new ExecutionNodeReader.KeYlessVariable(selfValue, false, null, "content"); selfContentVar.addValue(new ExecutionNodeReader.KeYlessValue(selfContentVar, "int", - "int::select(heap,self,Number::$content)", "content {true}", false, false, "true")); + "select<[int]>(heap,self,Number::$content)", "content {true}", false, false, "true")); selfValue.addChildVariable(selfContentVar); // n result[1] = new ExecutionNodeReader.KeYlessVariable(null, false, null, "n"); @@ -145,7 +145,7 @@ protected IExecutionVariable[] createExpectedNotEqualCaseVariables() { ExecutionNodeReader.KeYlessVariable nContentVar = new ExecutionNodeReader.KeYlessVariable(nValue, false, null, "content"); nContentVar.addValue(new ExecutionNodeReader.KeYlessValue(nContentVar, "int", - "int::select(heap,n,Number::$content)", "content {true}", false, false, "true")); + "select<[int]>(heap,n,Number::$content)", "content {true}", false, false, "true")); nValue.addChildVariable(nContentVar); // exc result[2] = new ExecutionNodeReader.KeYlessVariable(null, false, null, "exc"); @@ -169,7 +169,7 @@ protected IExecutionVariable[] createExpectedNullCaseVariables() { ExecutionNodeReader.KeYlessVariable selfContentVar = new ExecutionNodeReader.KeYlessVariable(selfValue, false, null, "content"); selfContentVar.addValue(new ExecutionNodeReader.KeYlessValue(selfContentVar, "int", - "int::select(heap,self,Number::$content)", "content {true}", false, false, "true")); + "select<[int]>(heap,self,Number::$content)", "content {true}", false, false, "true")); selfValue.addChildVariable(selfContentVar); // n result[1] = new ExecutionNodeReader.KeYlessVariable(null, false, null, "n"); diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/aliasTest/oracle/AliasTest_main_immediately.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/aliasTest/oracle/AliasTest_main_immediately.xml index 701885777c6..c0586c5d526 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/aliasTest/oracle/AliasTest_main_immediately.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/aliasTest/oracle/AliasTest_main_immediately.xml @@ -17,7 +17,7 @@ - + @@ -25,7 +25,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -151,7 +151,7 @@ - + @@ -159,7 +159,7 @@ - + @@ -269,7 +269,7 @@ - + @@ -277,7 +277,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/aliasTest/oracle/AliasTest_main_never.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/aliasTest/oracle/AliasTest_main_never.xml index c7e78952dd8..fa5fd2fdc29 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/aliasTest/oracle/AliasTest_main_never.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/aliasTest/oracle/AliasTest_main_never.xml @@ -17,7 +17,7 @@ - + @@ -25,7 +25,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -138,7 +138,7 @@ as result of self.main(a, b)>" isReturnValueComputed="true" methodReturnCondi - + @@ -146,7 +146,7 @@ as result of self.main(a, b)>" isReturnValueComputed="true" methodReturnCondi - + 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 0946bfedb16..6f5b29f7f60 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 @@ -241,7 +241,7 @@ (rule "tryEmpty" (formula "9") (term "1")) (rule "emptyModality" (formula "9") (term "1")) (builtin "One Step Simplification" (formula "9")) - (opengoal " wellFormed(heap)<>, ( boolean::select(heap, obj, java.lang.Object::) = TRUE)<>, measuredByEmpty<>, wellFormed(anon_heap_doubleValue<>), anon(store(heap, obj, AllNodeTypesTest::$value, Z(1(#))), allLocs, anon_heap_doubleValue<>) = heapAfter_doubleValue, (exc_1 = null)< (implicit)\",\"[ensures @ file AllNodeTypesTest.java @ line 28, ensures (implicit)]\")>>, (result_0 = Z(2(#)))<> ==> (obj = null)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>, SETAccumulate(store(heapAfter_doubleValue, obj<>, AllNodeTypesTest::$value, Z(2(#))), null, obj<>)<>") + (opengoal " wellFormed(heap)<>, ( select<[boolean]>(heap, obj, java.lang.Object::#$created) = TRUE)<>, measuredByEmpty<>, wellFormed(anon_heap_doubleValue<>), anon(store(heap, obj, AllNodeTypesTest::$value, Z(1(#))), allLocs, anon_heap_doubleValue<>) = heapAfter_doubleValue, (exc_1 = null)< (implicit)\",\"[ensures @ file AllNodeTypesTest.java @ line 28, ensures (implicit)]\")>>, (result_0 = Z(2(#)))<> ==> (obj = null)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>, SETAccumulate(store(heapAfter_doubleValue, obj<>, AllNodeTypesTest::$value, Z(2(#))), null, obj<>)<>") ) ) (branch "if b_2 false" @@ -358,7 +358,7 @@ (rule "emptyModality" (formula "14") (term "1")) (builtin "One Step Simplification" (formula "14") (ifInst "" (formula "13"))) (rule "false_right" (formula "14")) - (opengoal " (obj = null)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>, wellFormed(heap)<>, measuredByEmpty<>, wellFormed(anon_heap_NullPointerException<>), ( anon(heap, union(singleton(self, java.lang.Throwable::$cause), singleton(self, java.lang.Throwable::$message)), anon_heap_NullPointerException<>) = heapAfter_NullPointerException)<>, ( boolean::select(anon_heap_NullPointerException<>, self, java.lang.Object::) = TRUE)< (implicit)\",\"[ensures @ file NullPointerException.java @ line 10, ensures (implicit)]\")>>, ( java.lang.NullPointerException::exactInstance(self) = TRUE)< (implicit)\",\"[ensures @ file NullPointerException.java @ line 10, ensures (implicit)]\")>>, ( java.lang.String::select(anon_heap_NullPointerException<>, self, java.lang.Throwable::$message) = null)<>, ( java.lang.Throwable::select(anon_heap_NullPointerException<>, self, java.lang.Throwable::$cause) = null)<>, java.lang.Object::$inv(heapAfter_NullPointerException, self), (exc_0 = null)<> ==> ( boolean::select(heap, self, java.lang.Object::) = TRUE)< (implicit)\",\"[ensures @ file NullPointerException.java @ line 10, ensures (implicit)]\")>>, (self = null)< (implicit)\",\"[ensures @ file NullPointerException.java @ line 10, ensures (implicit)]\")>>") + (opengoal " (obj = null)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>, wellFormed(heap)<>, measuredByEmpty<>, wellFormed(anon_heap_NullPointerException<>), ( anon(heap, union(singleton(self, java.lang.Throwable::$cause), singleton(self, java.lang.Throwable::$message)), anon_heap_NullPointerException<>) = heapAfter_NullPointerException)<>, ( select<[boolean]>(anon_heap_NullPointerException<>, self, java.lang.Object::#$created) = TRUE)< (implicit)\",\"[ensures @ file NullPointerException.java @ line 10, ensures (implicit)]\")>>, ( java.lang.NullPointerException::exactInstance(self) = TRUE)< (implicit)\",\"[ensures @ file NullPointerException.java @ line 10, ensures (implicit)]\")>>, ( java.lang.String::select(anon_heap_NullPointerException<>, self, java.lang.Throwable::$message) = null)<>, ( java.lang.Throwable::select(anon_heap_NullPointerException<>, self, java.lang.Throwable::$cause) = null)<>, java.lang.Object::$inv(heapAfter_NullPointerException, self), (exc_0 = null)<> ==> ( select<[boolean]>(heap, self, java.lang.Object::#$created) = TRUE)< (implicit)\",\"[ensures @ file NullPointerException.java @ line 10, ensures (implicit)]\")>>, (self = null)< (implicit)\",\"[ensures @ file NullPointerException.java @ line 10, ensures (implicit)]\")>>") ) (branch "if n instanceof java.lang.Throwable false" (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "14"))) 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 154868d7e2c..6354511bb0c 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 @@ -424,7 +424,7 @@ (rule "emptyModality" (formula "7") (term "1")) (builtin "One Step Simplification" (formula "7") (ifInst "" (formula "5"))) (rule "false_right" (formula "7")) - (opengoal " ( java.lang.NullPointerException::exactInstance(n_3) = TRUE)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>, (obj = null)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>, wellFormed(heap)<>, measuredByEmpty<> ==> (n_3 = null)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>, ( boolean::select(heap, n_3, java.lang.Object::) = TRUE)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>") + (opengoal " ( java.lang.NullPointerException::exactInstance(n_3) = TRUE)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>, (obj = null)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>, wellFormed(heap)<>, measuredByEmpty<> ==> (n_3 = null)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>, ( select<[boolean]>(heap, n_3, java.lang.Object::#$created) = TRUE)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>") ) (branch "if n instanceof java.lang.Throwable false" (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "6"))) 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 db952494345..7f1887f8a11 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 @@ -753,7 +753,7 @@ (rule "applyOnRigidFormula" (formula "7")) (rule "applyOnPV" (formula "7") (term "0")) (rule "simplifyUpdate1" (formula "7") (term "1")) - (opengoal " ( java.lang.NullPointerException::exactInstance(n_3) = TRUE)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>, (obj = null)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>, wellFormed(heap)<>, measuredByEmpty<> ==> ( boolean::select(heap, n_3, java.lang.Object::) = TRUE)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>, (n_3 = null)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>") + (opengoal " ( java.lang.NullPointerException::exactInstance(n_3) = TRUE)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>, (obj = null)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>, wellFormed(heap)<>, measuredByEmpty<> ==> ( select<[boolean]>(heap, n_3, java.lang.Object::#$created) = TRUE)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>, (n_3 = null)< (implicit)\",\"[ensures (implicit), assignable (implicit)]\")>>") ) (branch "if n instanceof java.lang.Throwable false" (rule "instanceof_static_type" (formula "1") (term "2,0,1")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractModifiableEverything/oracle/BlockContractModifiableEverything.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractModifiableEverything/oracle/BlockContractModifiableEverything.xml index a9489d5c9e3..d1f54e26c2d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractModifiableEverything/oracle/BlockContractModifiableEverything.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractModifiableEverything/oracle/BlockContractModifiableEverything.xml @@ -21,17 +21,17 @@ mod allLocs \setMinus freshLocs(heap)termination diamond" pathCondition="true" p - + - + - + - - + + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractModifiableLocationNotRequested/oracle/BlockContractModifiableLocationNotRequested.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractModifiableLocationNotRequested/oracle/BlockContractModifiableLocationNotRequested.xml index c8172e0f445..8c858c53975 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractModifiableLocationNotRequested/oracle/BlockContractModifiableLocationNotRequested.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractModifiableLocationNotRequested/oracle/BlockContractModifiableLocationNotRequested.xml @@ -19,17 +19,17 @@ mod {(null, - + - + - + - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractModifiableRequestedLocation/oracle/BlockContractModifiableRequestedLocation.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractModifiableRequestedLocation/oracle/BlockContractModifiableRequestedLocation.xml index 003fffcc5cd..8aa5cbd14b7 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractModifiableRequestedLocation/oracle/BlockContractModifiableRequestedLocation.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractModifiableRequestedLocation/oracle/BlockContractModifiableRequestedLocation.xml @@ -18,17 +18,17 @@ mod {(null, BlockContractModifiableRequestedLocation::$x)}termination diamond" p - + - + - + - - + + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractParamRemaned/oracle/BlockContractParamRemaned.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractParamRemaned/oracle/BlockContractParamRemaned.xml index 2e5e6cfefca..da0132d901c 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractParamRemaned/oracle/BlockContractParamRemaned.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractParamRemaned/oracle/BlockContractParamRemaned.xml @@ -17,25 +17,25 @@ post exc_0 = null & x_3 = -2 mod {}termination diamond" pathCondition="true" pathConditionChanged="false" preconditionComplied="false"> - + - + - + - + - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractPreconditionNotVerified/oracle/BlockContractPreconditionNotVerified.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractPreconditionNotVerified/oracle/BlockContractPreconditionNotVerified.xml index c3e8664be94..751d7e6a50d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractPreconditionNotVerified/oracle/BlockContractPreconditionNotVerified.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractPreconditionNotVerified/oracle/BlockContractPreconditionNotVerified.xml @@ -13,22 +13,22 @@ post returned = TRUE mod {}<<impl>>termination diamond" pathCondition="true" pathConditionChanged="false" preconditionComplied="false"> - + - + - + - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractPreconditionNotVerified/oracle/BlockContractPreconditionNotVerified_symbolicExecution.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractPreconditionNotVerified/oracle/BlockContractPreconditionNotVerified_symbolicExecution.xml index 87a993fe403..d556d2e69cf 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractPreconditionNotVerified/oracle/BlockContractPreconditionNotVerified_symbolicExecution.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractPreconditionNotVerified/oracle/BlockContractPreconditionNotVerified_symbolicExecution.xml @@ -15,10 +15,10 @@ mod {}<<impl>>termination diamond" pathCondition="true" pathConditio - - - - + + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractThisTest/oracle/BlockContractThisTest.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractThisTest/oracle/BlockContractThisTest.xml index 20e2128807b..05e0f8b4be3 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractThisTest/oracle/BlockContractThisTest.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractThisTest/oracle/BlockContractThisTest.xml @@ -18,17 +18,17 @@ mod {(self, BlockContractThisTest::$x)}termination diamond" pathCondition="true" - + - + - + - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractVarRenamedLater/oracle/BlockContractVarRenamedLater.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractVarRenamedLater/oracle/BlockContractVarRenamedLater.xml index a614087b4e5..3f1e30be08e 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractVarRenamedLater/oracle/BlockContractVarRenamedLater.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractVarRenamedLater/oracle/BlockContractVarRenamedLater.xml @@ -14,17 +14,17 @@ pre measuredByEmpty & x_2 = 2 post exc_0 = null & x_2 = -2 mod {}termination diamond" pathCondition="true" pathConditionChanged="false" preconditionComplied="false"> - + - + - + - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithException/oracle/BlockContractWithException.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithException/oracle/BlockContractWithException.xml index 7ae2455ff46..79225d7174b 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithException/oracle/BlockContractWithException.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithException/oracle/BlockContractWithException.xml @@ -14,20 +14,20 @@ post !exc_0 = null mod {}termination diamond" pathCondition="true" pathConditionChanged="false" preconditionComplied="false"> - + - + - + - + - - - + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithException/oracle/BlockContractWithException_symbolicExecution.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithException/oracle/BlockContractWithException_symbolicExecution.xml index 2373673b330..6b978d8bb82 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithException/oracle/BlockContractWithException_symbolicExecution.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithException/oracle/BlockContractWithException_symbolicExecution.xml @@ -20,10 +20,10 @@ mod {}termination diamond" pathCondition="true" pathConditionChanged="false" pre - - - - + + + + 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 3364586d6e3..a4a9045cad8 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 @@ -488,7 +488,7 @@ (rule "replace_known_right" (formula "8") (term "0,0") (ifseqformula "7")) (builtin "One Step Simplification" (formula "8")) (rule "cut_direct" (formula "6") (term "0")) - (branch "CUT: boolean::select(heap, exc_0, java.lang.Object::#$created) = TRUE TRUE" + (branch "CUT: select<[boolean]>(heap, exc_0, java.lang.Object::#$created) = TRUE TRUE" (builtin "One Step Simplification" (formula "7")) (rule "true_left" (formula "7")) (rule "cut_direct" (formula "8") (term "0")) @@ -508,7 +508,7 @@ (rule "closeTypeSwitched" (formula "8") (ifseqformula "4")) ) ) - (branch "CUT: boolean::select(heap, exc_0, java.lang.Object::#$created) = TRUE FALSE" + (branch "CUT: select<[boolean]>(heap, exc_0, java.lang.Object::#$created) = TRUE FALSE" (builtin "One Step Simplification" (formula "6")) (rule "cut_direct" (formula "9") (term "0")) (branch "CUT: java.lang.RuntimeException::instance(exc_0) = TRUE TRUE" diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithExceptionPostconditionNotVerified/oracle/BlockContractWithExceptionPostconditionNotVerified.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithExceptionPostconditionNotVerified/oracle/BlockContractWithExceptionPostconditionNotVerified.xml index 5732804c004..4f84ad5928d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithExceptionPostconditionNotVerified/oracle/BlockContractWithExceptionPostconditionNotVerified.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithExceptionPostconditionNotVerified/oracle/BlockContractWithExceptionPostconditionNotVerified.xml @@ -18,24 +18,24 @@ post !exc_0 = null mod {}termination diamond" pathCondition="true" pathConditionChanged="false" preconditionComplied="false"> - + - + +)>>" pathCondition="imp(equals(select<[boolean]>(anon_heap,exc_0,java.lang.Object::<created>),java_lang_Object_created__0<<selectSK>>),and(and(and(not(equals(exc_0,null)),imp(not(equals(exc_0,null)),equals(java.lang.NullPointerException::instance(exc_0),TRUE))),wellFormed(anon_heap<<anonHeapFunction>>)),or(or(equals(java_lang_Object_created__0<<selectSK>>,TRUE),equals(exc_0,null)),equals(select<[boolean]>(heap,exc_0,java.lang.Object::<created>),TRUE))))" pathConditionChanged="false" methodReturnCondition="imp(equals(select<[boolean]>(anon_heap,exc_0,java.lang.Object::<created>),java_lang_Object_created__0<<selectSK>>),and(and(and(not(equals(exc_0,null)),imp(not(equals(exc_0,null)),equals(java.lang.NullPointerException::instance(exc_0),TRUE))),wellFormed(anon_heap<<anonHeapFunction>>)),or(or(equals(java_lang_Object_created__0<<selectSK>>,TRUE),equals(exc_0,null)),equals(select<[boolean]>(heap,exc_0,java.lang.Object::<created>),TRUE))))"> +)>>" pathCondition="imp(equals(select<[boolean]>(anon_heap,exc_0,java.lang.Object::<created>),java_lang_Object_created__0<<selectSK>>),and(and(and(not(equals(exc_0,null)),imp(not(equals(exc_0,null)),equals(java.lang.NullPointerException::instance(exc_0),TRUE))),wellFormed(anon_heap<<anonHeapFunction>>)),or(or(equals(java_lang_Object_created__0<<selectSK>>,TRUE),equals(exc_0,null)),equals(select<[boolean]>(heap,exc_0,java.lang.Object::<created>),TRUE))))" pathConditionChanged="false" methodReturnCondition="imp(equals(select<[boolean]>(anon_heap,exc_0,java.lang.Object::<created>),java_lang_Object_created__0<<selectSK>>),and(and(and(not(equals(exc_0,null)),imp(not(equals(exc_0,null)),equals(java.lang.NullPointerException::instance(exc_0),TRUE))),wellFormed(anon_heap<<anonHeapFunction>>)),or(or(equals(java_lang_Object_created__0<<selectSK>>,TRUE),equals(exc_0,null)),equals(select<[boolean]>(heap,exc_0,java.lang.Object::<created>),TRUE))))"> - - - + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithExceptionPostconditionNotVerified/oracle/BlockContractWithExceptionPostconditionNotVerified_symbolicExecution.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithExceptionPostconditionNotVerified/oracle/BlockContractWithExceptionPostconditionNotVerified_symbolicExecution.xml index 1e7d865cf48..b25491d7ec6 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithExceptionPostconditionNotVerified/oracle/BlockContractWithExceptionPostconditionNotVerified_symbolicExecution.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithExceptionPostconditionNotVerified/oracle/BlockContractWithExceptionPostconditionNotVerified_symbolicExecution.xml @@ -24,14 +24,14 @@ mod {}termination diamond" pathCondition="true" pathConditionChanged="false" pre - + +)>>" pathCondition="update-application(parallel-upd(elem-update(exc)(null),elem-update(x_3)(x)),update-application(elem-update(heap_Before_BLOCK)(heap),update-application(elem-update(heap)(anon(heap,empty,anonOut_heap<<anonHeapFunction>>)),and(and(and(and(not(equals(exc_0,null)),imp(not(equals(exc_0,null)),equals(java.lang.NullPointerException::instance(exc_0),TRUE))),wellFormed(anonOut_heap<<anonHeapFunction>>)),and(inInt(result_magic),or(equals(exc_0,null),equals(select<[boolean]>(heap,exc_0,java.lang.Object::<created>),TRUE))<<SC>>)),or(equals(exc_0,null),not(equals(exc_0,null)))))))" pathConditionChanged="false" methodReturnCondition="update-application(parallel-upd(elem-update(exc)(null),elem-update(x_3)(x)),update-application(elem-update(heap_Before_BLOCK)(heap),update-application(elem-update(heap)(anon(heap,empty,anonOut_heap<<anonHeapFunction>>)),and(and(and(and(not(equals(exc_0,null)),imp(not(equals(exc_0,null)),equals(java.lang.NullPointerException::instance(exc_0),TRUE))),wellFormed(anonOut_heap<<anonHeapFunction>>)),and(inInt(result_magic),or(equals(exc_0,null),equals(select<[boolean]>(heap,exc_0,java.lang.Object::<created>),TRUE))<<SC>>)),or(equals(exc_0,null),not(equals(exc_0,null)))))))"> - +)>>" pathCondition="update-application(parallel-upd(elem-update(exc)(null),elem-update(x_3)(x)),update-application(elem-update(heap_Before_BLOCK)(heap),update-application(elem-update(heap)(anon(heap,empty,anonOut_heap<<anonHeapFunction>>)),and(and(and(and(not(equals(exc_0,null)),imp(not(equals(exc_0,null)),equals(java.lang.NullPointerException::instance(exc_0),TRUE))),wellFormed(anonOut_heap<<anonHeapFunction>>)),and(inInt(result_magic),or(equals(exc_0,null),equals(select<[boolean]>(heap,exc_0,java.lang.Object::<created>),TRUE))<<SC>>)),or(equals(exc_0,null),not(equals(exc_0,null)))))))" pathConditionChanged="false" methodReturnCondition="update-application(parallel-upd(elem-update(exc)(null),elem-update(x_3)(x)),update-application(elem-update(heap_Before_BLOCK)(heap),update-application(elem-update(heap)(anon(heap,empty,anonOut_heap<<anonHeapFunction>>)),and(and(and(and(not(equals(exc_0,null)),imp(not(equals(exc_0,null)),equals(java.lang.NullPointerException::instance(exc_0),TRUE))),wellFormed(anonOut_heap<<anonHeapFunction>>)),and(inInt(result_magic),or(equals(exc_0,null),equals(select<[boolean]>(heap,exc_0,java.lang.Object::<created>),TRUE))<<SC>>)),or(equals(exc_0,null),not(equals(exc_0,null)))))))"> + 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 6122dcf55a2..6afe07f0bf4 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 @@ -310,7 +310,7 @@ (rule "replace_known_right" (formula "8") (term "0,0") (ifseqformula "7")) (builtin "One Step Simplification" (formula "8")) (rule "cut_direct" (formula "6") (term "0")) - (branch "CUT: boolean::select(heap, exc_0, java.lang.Object::#$created) = TRUE TRUE" + (branch "CUT: select<[boolean]>(heap, exc_0, java.lang.Object::#$created) = TRUE TRUE" (builtin "One Step Simplification" (formula "7")) (rule "true_left" (formula "7")) (rule "cut_direct" (formula "8") (term "0")) @@ -330,7 +330,7 @@ (rule "closeTypeSwitched" (formula "8") (ifseqformula "4")) ) ) - (branch "CUT: boolean::select(heap, exc_0, java.lang.Object::#$created) = TRUE FALSE" + (branch "CUT: select<[boolean]>(heap, exc_0, java.lang.Object::#$created) = TRUE FALSE" (builtin "One Step Simplification" (formula "6")) (rule "cut_direct" (formula "9") (term "0")) (branch "CUT: java.lang.RuntimeException::instance(exc_0) = TRUE TRUE" diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturn/oracle/BlockContractWithReturn.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturn/oracle/BlockContractWithReturn.xml index ef2bf45b4bf..42d028169e8 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturn/oracle/BlockContractWithReturn.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturn/oracle/BlockContractWithReturn.xml @@ -13,22 +13,22 @@ post returned = TRUE mod {}<<impl>>termination diamond" pathCondition="true" pathConditionChanged="false" preconditionComplied="false"> - + - + - + - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturn/oracle/BlockContractWithReturn_symbolicExecution.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturn/oracle/BlockContractWithReturn_symbolicExecution.xml index 45df68f2b7b..2cedc29a719 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturn/oracle/BlockContractWithReturn_symbolicExecution.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturn/oracle/BlockContractWithReturn_symbolicExecution.xml @@ -21,10 +21,10 @@ mod {}<<impl>>termination diamond" pathCondition="true" pathConditio - - - - + + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturnPostconditionNotVerified/oracle/BlockContractWithReturnPostconditionNotVerified.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturnPostconditionNotVerified/oracle/BlockContractWithReturnPostconditionNotVerified.xml index 455cf3ab5dc..01f92bd2bb1 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturnPostconditionNotVerified/oracle/BlockContractWithReturnPostconditionNotVerified.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturnPostconditionNotVerified/oracle/BlockContractWithReturnPostconditionNotVerified.xml @@ -15,26 +15,26 @@ post returned = TRUE mod {}<<impl>>termination diamond" pathCondition="true" pathConditionChanged="false" preconditionComplied="false"> - + - + +)>" isReturnValueComputed="true" methodReturnCondition="and(and(and(and(equals(returned,TRUE),equals(exc_0,null)),imp(equals(returned,TRUE),equals(result_0,Z(neglit(2(#)))))),or(equals(exc_0,null),equals(select<[boolean]>(heap,exc_0,java.lang.Object::<created>),TRUE))),or(not(equals(returned,TRUE)),equals(exc_0,null)))"> - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturnPostconditionNotVerified/oracle/BlockContractWithReturnPostconditionNotVerified_symbolicExecution.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturnPostconditionNotVerified/oracle/BlockContractWithReturnPostconditionNotVerified_symbolicExecution.xml index 79ea1137052..2ebaaec9392 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturnPostconditionNotVerified/oracle/BlockContractWithReturnPostconditionNotVerified_symbolicExecution.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/blockContractWithReturnPostconditionNotVerified/oracle/BlockContractWithReturnPostconditionNotVerified_symbolicExecution.xml @@ -23,12 +23,12 @@ mod {}<<impl>>termination diamond" pathCondition="true" pathConditio - + - - +)>" pathCondition="update-application(parallel-upd(elem-update(exc)(null),elem-update(x_3)(x)),update-application(elem-update(heap_Before_BLOCK)(heap),and(and(and(and(equals(returned#0,TRUE),equals(exc_0,null)),imp(equals(returned#0,TRUE),equals(result_magic,Z(neglit(2(#)))))),and(inInt(result_magic),or(equals(exc_0,null),equals(select<[boolean]>(heap,exc_0,java.lang.Object::<created>),TRUE))<<SC>>)),or(or(and(equals(returned#0,FALSE),equals(exc_0,null)),and(not(equals(returned#0,FALSE)),equals(exc_0,null))),and(not(equals(exc_0,null)),equals(returned#0,FALSE))))))" pathConditionChanged="false" isReturnValueComputed="false" methodReturnCondition="update-application(parallel-upd(elem-update(exc)(null),elem-update(x_3)(x)),update-application(elem-update(heap_Before_BLOCK)(heap),and(and(and(and(equals(returned#0,TRUE),equals(exc_0,null)),imp(equals(returned#0,TRUE),equals(result_magic,Z(neglit(2(#)))))),and(inInt(result_magic),or(equals(exc_0,null),equals(select<[boolean]>(heap,exc_0,java.lang.Object::<created>),TRUE))<<SC>>)),or(or(and(equals(returned#0,FALSE),equals(exc_0,null)),and(not(equals(returned#0,FALSE)),equals(exc_0,null))),and(not(equals(exc_0,null)),equals(returned#0,FALSE))))))"> + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/conditionalVariables/oracle/Number.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/conditionalVariables/oracle/Number.xml index c48eb375126..2e7702a6472 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/conditionalVariables/oracle/Number.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/conditionalVariables/oracle/Number.xml @@ -3,22 +3,22 @@ - - - - + + + + - + - - - - + + + + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorArrayIndexReadAccess/oracle/ArrayIndexReadAccess.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorArrayIndexReadAccess/oracle/ArrayIndexReadAccess.xml index b92dbde3cba..0624b9d15e8 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorArrayIndexReadAccess/oracle/ArrayIndexReadAccess.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorArrayIndexReadAccess/oracle/ArrayIndexReadAccess.xml @@ -6,26 +6,26 @@ - - - - + + + + - - - + + + - - - - + + + + - - - + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorArrayIndexWriteAccess/oracle/testArrayIndexWriteAccess_initial0.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorArrayIndexWriteAccess/oracle/testArrayIndexWriteAccess_initial0.xml index f740559d962..ecc555b881d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorArrayIndexWriteAccess/oracle/testArrayIndexWriteAccess_initial0.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorArrayIndexWriteAccess/oracle/testArrayIndexWriteAccess_initial0.xml @@ -6,6 +6,6 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/oracle/testExistsQuantifierTest_current0.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/oracle/testExistsQuantifierTest_current0.xml index 001134d2b64..0906c51aed9 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/oracle/testExistsQuantifierTest_current0.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/oracle/testExistsQuantifierTest_current0.xml @@ -5,12 +5,12 @@ - + - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/oracle/testExistsQuantifierTest_current1.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/oracle/testExistsQuantifierTest_current1.xml index 6a27d25fc91..39a41cce320 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/oracle/testExistsQuantifierTest_current1.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/oracle/testExistsQuantifierTest_current1.xml @@ -9,9 +9,9 @@ - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/oracle/testExistsQuantifierTest_initial0.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/oracle/testExistsQuantifierTest_initial0.xml index f98b4230efb..5a6bd034df8 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/oracle/testExistsQuantifierTest_initial0.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/oracle/testExistsQuantifierTest_initial0.xml @@ -5,12 +5,12 @@ - + - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/oracle/testExistsQuantifierTest_initial1.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/oracle/testExistsQuantifierTest_initial1.xml index f4fc0557cd2..94dc8bd043c 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/oracle/testExistsQuantifierTest_initial1.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorExistsQuantifierTest/oracle/testExistsQuantifierTest_initial1.xml @@ -9,9 +9,9 @@ - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorIntegerConditionTest/oracle/IsInstanceTest.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorIntegerConditionTest/oracle/IsInstanceTest.xml index 4366bfeaf1f..ba0b85b6ef1 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorIntegerConditionTest/oracle/IsInstanceTest.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorIntegerConditionTest/oracle/IsInstanceTest.xml @@ -2,44 +2,44 @@ - - - - - - - - - + + + + + + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - + @@ -49,13 +49,13 @@ - - - - + + + + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMultiArrayIndexReadWriteAccess/oracle/MultiArrayIndexReadWriteAccess.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMultiArrayIndexReadWriteAccess/oracle/MultiArrayIndexReadWriteAccess.xml index 8a83c2e1ce0..c2d7553bf48 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMultiArrayIndexReadWriteAccess/oracle/MultiArrayIndexReadWriteAccess.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMultiArrayIndexReadWriteAccess/oracle/MultiArrayIndexReadWriteAccess.xml @@ -9,30 +9,30 @@ - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMyInteger/oracle/testMyInteger_current0.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMyInteger/oracle/testMyInteger_current0.xml index 33781eb844d..2bbc56d3e26 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMyInteger/oracle/testMyInteger_current0.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMyInteger/oracle/testMyInteger_current0.xml @@ -8,6 +8,6 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMyInteger/oracle/testMyInteger_current1.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMyInteger/oracle/testMyInteger_current1.xml index 3bb8d4142d1..33eae0eada2 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMyInteger/oracle/testMyInteger_current1.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMyInteger/oracle/testMyInteger_current1.xml @@ -10,6 +10,6 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMyInteger/oracle/testMyInteger_initial0.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMyInteger/oracle/testMyInteger_initial0.xml index f7a2841e5b4..baf30b6f977 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMyInteger/oracle/testMyInteger_initial0.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMyInteger/oracle/testMyInteger_initial0.xml @@ -8,6 +8,6 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMyInteger/oracle/testMyInteger_initial1.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMyInteger/oracle/testMyInteger_initial1.xml index 4196f1e17c9..ad6d2d5677f 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMyInteger/oracle/testMyInteger_initial1.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorMyInteger/oracle/testMyInteger_initial1.xml @@ -10,6 +10,6 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorObjectArrayIndexReadAccess/oracle/ObjectArrayIndexReadAccess.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorObjectArrayIndexReadAccess/oracle/ObjectArrayIndexReadAccess.xml index 0cf29e43aa0..e7d7dadd918 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorObjectArrayIndexReadAccess/oracle/ObjectArrayIndexReadAccess.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorObjectArrayIndexReadAccess/oracle/ObjectArrayIndexReadAccess.xml @@ -7,26 +7,26 @@ - - - - + + + + - - - + + + - - - - + + + + - - - + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorObjectConditionTest/oracle/ObjectConditionTest.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorObjectConditionTest/oracle/ObjectConditionTest.xml index b804357dd6d..fb8eb4e1cf4 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorObjectConditionTest/oracle/ObjectConditionTest.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorObjectConditionTest/oracle/ObjectConditionTest.xml @@ -2,59 +2,59 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - + + + + - - - - - - + + + + + + - - - + + + - - - - - + + + + + @@ -63,28 +63,28 @@ - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + @@ -95,26 +95,26 @@ - - - - + + + + - - - - + + + + - - - + + + - - - + + + @@ -127,24 +127,24 @@ - - - - + + + + - - - + + + - - - + + + - - + + @@ -159,22 +159,22 @@ - - - - + + + + - - + + - - - + + + - + @@ -191,13 +191,13 @@ - - - - + + + + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial0.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial0.xml index 4b7175f7cb9..524df5a448d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial0.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial0.xml @@ -19,6 +19,6 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial1.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial1.xml index 125380a16c6..bf985a0cccf 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial1.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial1.xml @@ -16,7 +16,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial2.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial2.xml index ccbae88914e..cbdf5c083e2 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial2.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial2.xml @@ -20,7 +20,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial3.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial3.xml index 1e4ab34e762..3fa24f4bcce 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial3.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial3.xml @@ -9,7 +9,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial4.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial4.xml index 6d9d032aedf..9c47f2c3e41 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial4.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedArrays/oracle/testSimpleLinkedArrays_initial4.xml @@ -14,7 +14,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbectsPreCondition_initial0.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbectsPreCondition_initial0.xml index e7c6159f946..e0c9bf851ef 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbectsPreCondition_initial0.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbectsPreCondition_initial0.xml @@ -11,6 +11,6 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbectsPreCondition_initial1.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbectsPreCondition_initial1.xml index 23bb57e0f11..b2da182b246 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbectsPreCondition_initial1.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbectsPreCondition_initial1.xml @@ -12,7 +12,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbectsPreCondition_initial2.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbectsPreCondition_initial2.xml index 268db3a260f..409855a42d5 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbectsPreCondition_initial2.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbectsPreCondition_initial2.xml @@ -9,7 +9,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbectsPreCondition_initial3.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbectsPreCondition_initial3.xml index 5fe8ef91a17..2639e5790e1 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbectsPreCondition_initial3.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbectsPreCondition_initial3.xml @@ -10,7 +10,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbects_initial0.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbects_initial0.xml index e7c6159f946..e0c9bf851ef 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbects_initial0.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbects_initial0.xml @@ -11,6 +11,6 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbects_initial1.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbects_initial1.xml index 23bb57e0f11..b2da182b246 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbects_initial1.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbects_initial1.xml @@ -12,7 +12,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbects_initial2.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbects_initial2.xml index 268db3a260f..409855a42d5 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbects_initial2.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbects_initial2.xml @@ -9,7 +9,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbects_initial3.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbects_initial3.xml index 5fe8ef91a17..2639e5790e1 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbects_initial3.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbects/oracle/testSimpleLinkedOjbects_initial3.xml @@ -10,7 +10,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbectsInstanceVariable/oracle/testSimpleLinkedOjbectsInstanceVariable_initial0.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbectsInstanceVariable/oracle/testSimpleLinkedOjbectsInstanceVariable_initial0.xml index 9585e43456d..aa00bf9d1c0 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbectsInstanceVariable/oracle/testSimpleLinkedOjbectsInstanceVariable_initial0.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbectsInstanceVariable/oracle/testSimpleLinkedOjbectsInstanceVariable_initial0.xml @@ -11,6 +11,6 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbectsInstanceVariable/oracle/testSimpleLinkedOjbectsInstanceVariable_initial1.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbectsInstanceVariable/oracle/testSimpleLinkedOjbectsInstanceVariable_initial1.xml index f12f065d492..3686eed295f 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbectsInstanceVariable/oracle/testSimpleLinkedOjbectsInstanceVariable_initial1.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbectsInstanceVariable/oracle/testSimpleLinkedOjbectsInstanceVariable_initial1.xml @@ -12,7 +12,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbectsInstanceVariable/oracle/testSimpleLinkedOjbectsInstanceVariable_initial2.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbectsInstanceVariable/oracle/testSimpleLinkedOjbectsInstanceVariable_initial2.xml index 5ee37d21f5f..7f0a6cda064 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbectsInstanceVariable/oracle/testSimpleLinkedOjbectsInstanceVariable_initial2.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbectsInstanceVariable/oracle/testSimpleLinkedOjbectsInstanceVariable_initial2.xml @@ -9,7 +9,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbectsInstanceVariable/oracle/testSimpleLinkedOjbectsInstanceVariable_initial3.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbectsInstanceVariable/oracle/testSimpleLinkedOjbectsInstanceVariable_initial3.xml index f181bad1707..22a8936061e 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbectsInstanceVariable/oracle/testSimpleLinkedOjbectsInstanceVariable_initial3.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorSimpleLinkedOjbectsInstanceVariable/oracle/testSimpleLinkedOjbectsInstanceVariable_initial3.xml @@ -10,7 +10,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/StaticMember.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/StaticMember.xml index 834a8e812ea..5426a0c67d7 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/StaticMember.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/StaticMember.xml @@ -2,46 +2,46 @@ - - - - - - - + + + + + + + - + - - - + + + - + - - - - - - - + + + + + + + - - - + + + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/testInstanceCreationTest_staticMember_current0.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/testInstanceCreationTest_staticMember_current0.xml index 6210d7c870c..8673a3b0a10 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/testInstanceCreationTest_staticMember_current0.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/testInstanceCreationTest_staticMember_current0.xml @@ -8,13 +8,13 @@ - + - - + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/testInstanceCreationTest_staticMember_current1.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/testInstanceCreationTest_staticMember_current1.xml index 80a12f632b7..e767ff08acc 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/testInstanceCreationTest_staticMember_current1.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/testInstanceCreationTest_staticMember_current1.xml @@ -4,13 +4,13 @@ - + - - + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/testInstanceCreationTest_staticMember_initial0.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/testInstanceCreationTest_staticMember_initial0.xml index 547e99af391..824fd0833ac 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/testInstanceCreationTest_staticMember_initial0.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/testInstanceCreationTest_staticMember_initial0.xml @@ -6,13 +6,13 @@ - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/testInstanceCreationTest_staticMember_initial1.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/testInstanceCreationTest_staticMember_initial1.xml index ef143f3649b..a6a1b520413 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/testInstanceCreationTest_staticMember_initial1.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorStaticMember/oracle/testInstanceCreationTest_staticMember_initial1.xml @@ -2,13 +2,13 @@ - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorVariableArrayIndex/oracle/StaticMember.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorVariableArrayIndex/oracle/StaticMember.xml index 5ce709f9c99..0dfe0364128 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorVariableArrayIndex/oracle/StaticMember.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorVariableArrayIndex/oracle/StaticMember.xml @@ -2,10 +2,10 @@ - - - - + + + + @@ -16,9 +16,9 @@ - - - + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorVariableArrayIndex/oracle/testVariableArrayIndex_current0.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorVariableArrayIndex/oracle/testVariableArrayIndex_current0.xml index 0ca14550dca..63882fb7fc5 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorVariableArrayIndex/oracle/testVariableArrayIndex_current0.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorVariableArrayIndex/oracle/testVariableArrayIndex_current0.xml @@ -6,10 +6,10 @@ - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorVariableArrayIndex/oracle/testVariableArrayIndex_initial0.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorVariableArrayIndex/oracle/testVariableArrayIndex_initial0.xml index 87aed19e78f..8a719919300 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorVariableArrayIndex/oracle/testVariableArrayIndex_initial0.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorVariableArrayIndex/oracle/testVariableArrayIndex_initial0.xml @@ -6,10 +6,10 @@ - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorWithOperationContractsTest/oracle/testWithOperationContracts_initial0.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorWithOperationContractsTest/oracle/testWithOperationContracts_initial0.xml index 0579f4233b5..3fa06a969f6 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorWithOperationContractsTest/oracle/testWithOperationContracts_initial0.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorWithOperationContractsTest/oracle/testWithOperationContracts_initial0.xml @@ -10,6 +10,6 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorWithOperationContractsTest/oracle/testWithOperationContracts_initial1.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorWithOperationContractsTest/oracle/testWithOperationContracts_initial1.xml index c654e8880ae..9031b6ebe17 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorWithOperationContractsTest/oracle/testWithOperationContracts_initial1.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/configurationExtractorWithOperationContractsTest/oracle/testWithOperationContracts_initial1.xml @@ -12,6 +12,6 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/constraintsAfterUsedLoopInvariant/oracle/E_Loop.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/constraintsAfterUsedLoopInvariant/oracle/E_Loop.xml index 8be6ccca834..27ba842801f 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/constraintsAfterUsedLoopInvariant/oracle/E_Loop.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/constraintsAfterUsedLoopInvariant/oracle/E_Loop.xml @@ -6,7 +6,7 @@ - + @@ -15,20 +15,20 @@ - + - + - + - + @@ -39,16 +39,16 @@ - + - + - + @@ -65,16 +65,16 @@ variant: self.high - i + 1 mod: {(self, E_Loop::$low)}" pathCondition="true" pathConditionChanged="false" initiallyValid="false"> - + - + - + @@ -91,26 +91,26 @@ mod: {(self, E_Loop::$low)}" pathCondition="true" pathConditionChanged="false" i - + - + - + - + - + - - + + - + @@ -126,18 +126,18 @@ mod: {(self, E_Loop::$low)}" pathCondition="true" pathConditionChanged="false" i - + - + - + - + @@ -146,36 +146,36 @@ mod: {(self, E_Loop::$low)}" pathCondition="true" pathConditionChanged="false" i - - + + - - - + + + - + - + - - - + + + - + - - + + - - - + + + @@ -190,50 +190,50 @@ mod: {(self, E_Loop::$low)}" pathCondition="true" pathConditionChanged="false" i - - + + - + - + - - + + - - - + + + - + - + - - - + + + - + - - + + - - - + + + @@ -248,50 +248,50 @@ mod: {(self, E_Loop::$low)}" pathCondition="true" pathConditionChanged="false" i - - + + - + - + - - + + - - - + + + - + - + - - - + + + - + - - + + - - - + + + @@ -305,30 +305,30 @@ mod: {(self, E_Loop::$low)}" pathCondition="true" pathConditionChanged="false" i - - + + - - - + + + - + - + - - + + @@ -344,26 +344,26 @@ mod: {(self, E_Loop::$low)}" pathCondition="true" pathConditionChanged="false" i - + - + - + - + - + - - + + - + @@ -379,38 +379,38 @@ mod: {(self, E_Loop::$low)}" pathCondition="true" pathConditionChanged="false" i - + - + - - + + - + - - + + - - + + - - + + - - + + - - - + + + @@ -425,23 +425,23 @@ mod: {(self, E_Loop::$low)}" pathCondition="true" pathConditionChanged="false" i - + - + - - + + - - + + - + - - + + @@ -453,33 +453,33 @@ mod: {(self, E_Loop::$low)}" pathCondition="true" pathConditionChanged="false" i - + - + - - + + - - + + - - + + - + - - + + - + @@ -491,8 +491,8 @@ mod: {(self, E_Loop::$low)}" pathCondition="true" pathConditionChanged="false" i - - + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/constraintsOfAppliedMethodContract/oracle/MethodContract.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/constraintsOfAppliedMethodContract/oracle/MethodContract.xml index 93e8515564f..1065fb7d834 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/constraintsOfAppliedMethodContract/oracle/MethodContract.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/constraintsOfAppliedMethodContract/oracle/MethodContract.xml @@ -6,7 +6,7 @@ - + @@ -15,24 +15,24 @@ - + - + - + - + - + @@ -48,24 +48,24 @@ - + - + - + - + - + @@ -86,24 +86,24 @@ - + - + - + - + - + @@ -127,24 +127,24 @@ mod: allLocs termination: diamond" pathCondition="gt(m,Z(0(1(#))))" pathConditionChanged="false" resultTerm="result_mod" exceptionTerm="exc_0" selfTerm="self" contractParameters="var, var_1" preconditionComplied="false" hasNotNullCheck="false" notNullCheckComplied="false"> - + - + - + - + - + @@ -160,55 +160,55 @@ termination: diamond" pathCondition="gt(m,Z(0(1(#))))" pathConditionChanged="fal - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -224,32 +224,32 @@ termination: diamond" pathCondition="gt(m,Z(0(1(#))))" pathConditionChanged="fal - + - + - + - + - + - - + + - - + + @@ -263,30 +263,30 @@ termination: diamond" pathCondition="gt(m,Z(0(1(#))))" pathConditionChanged="fal - + - + - + - + - + - + - + @@ -303,12 +303,12 @@ termination: diamond" pathCondition="gt(m,Z(0(1(#))))" pathConditionChanged="fal - + - + @@ -317,22 +317,22 @@ termination: diamond" pathCondition="gt(m,Z(0(1(#))))" pathConditionChanged="fal - + - + - - + + - - + + - + @@ -349,9 +349,9 @@ termination: diamond" pathCondition="gt(m,Z(0(1(#))))" pathConditionChanged="fal - + - + @@ -367,24 +367,24 @@ termination: diamond" pathCondition="gt(m,Z(0(1(#))))" pathConditionChanged="fal - + - + - + - + - + @@ -405,24 +405,24 @@ termination: diamond" pathCondition="gt(m,Z(0(1(#))))" pathConditionChanged="fal - + - + - + - + - + @@ -439,20 +439,20 @@ termination: diamond" pathCondition="gt(m,Z(0(1(#))))" pathConditionChanged="fal - + - + - + - + @@ -473,7 +473,7 @@ termination: diamond" pathCondition="gt(m,Z(0(1(#))))" pathConditionChanged="fal - + @@ -483,19 +483,19 @@ termination: diamond" pathCondition="gt(m,Z(0(1(#))))" pathConditionChanged="fal - + - + - + - + @@ -512,7 +512,7 @@ termination: diamond" pathCondition="gt(m,Z(0(1(#))))" pathConditionChanged="fal - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsCaughtOrUncaught/oracle/ClassCastAndNullpointerExceptions_2.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsCaughtOrUncaught/oracle/ClassCastAndNullpointerExceptions_2.xml index cf069490de6..2f8c0c43b73 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsCaughtOrUncaught/oracle/ClassCastAndNullpointerExceptions_2.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsCaughtOrUncaught/oracle/ClassCastAndNullpointerExceptions_2.xml @@ -4,12 +4,12 @@ - - + + - - + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsCaughtOrUncaught/oracle/ClassCastAndNullpointerExceptions_3.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsCaughtOrUncaught/oracle/ClassCastAndNullpointerExceptions_3.xml index 376bdb62ced..ee980b3ad3a 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsCaughtOrUncaught/oracle/ClassCastAndNullpointerExceptions_3.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsCaughtOrUncaught/oracle/ClassCastAndNullpointerExceptions_3.xml @@ -4,47 +4,47 @@ - - - - - + + + + + - + - - - + + + - - - - - - - + + + + + + + - - + + - - - + + + - - - + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsCaughtOrUncaught/oracle/ClassCastAndNullpointerExceptions_4.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsCaughtOrUncaught/oracle/ClassCastAndNullpointerExceptions_4.xml index fcb3a0b78c8..053b36da43f 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsCaughtOrUncaught/oracle/ClassCastAndNullpointerExceptions_4.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsCaughtOrUncaught/oracle/ClassCastAndNullpointerExceptions_4.xml @@ -4,67 +4,67 @@ - - - - - - + + + + + + - + - - - - + + + + - + - - - - - - - - - - + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithHitCountTest/oracle/ClassCastAndNullpointerExceptions_2.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithHitCountTest/oracle/ClassCastAndNullpointerExceptions_2.xml index 3a0e75e0c66..f049a60d673 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithHitCountTest/oracle/ClassCastAndNullpointerExceptions_2.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithHitCountTest/oracle/ClassCastAndNullpointerExceptions_2.xml @@ -4,49 +4,49 @@ - - - - - + + + + + - + - - - + + + - + - - - - - - - + + + + + + + - - + + - - - + + + - - - + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithHitCountTest/oracle/ClassCastAndNullpointerExceptions_3.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithHitCountTest/oracle/ClassCastAndNullpointerExceptions_3.xml index 23e4252a456..a883889a2c4 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithHitCountTest/oracle/ClassCastAndNullpointerExceptions_3.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithHitCountTest/oracle/ClassCastAndNullpointerExceptions_3.xml @@ -4,61 +4,61 @@ - - - - - + + + + + - + - - - - + + + + - + - - - - - - - - - + + + + + + + + + - - + + - - - + + + - - - + + + - - - + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithHitCountTest/oracle/ClassCastAndNullpointerExceptions_4.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithHitCountTest/oracle/ClassCastAndNullpointerExceptions_4.xml index ff1c33ec6a9..87aa6d8c656 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithHitCountTest/oracle/ClassCastAndNullpointerExceptions_4.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithHitCountTest/oracle/ClassCastAndNullpointerExceptions_4.xml @@ -4,65 +4,65 @@ - - - - - + + + + + - + - - - - + + + + - + - - - - - - - - - - + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_2.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_2.xml index 47024a49a76..6d6fb281f8e 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_2.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_2.xml @@ -4,12 +4,12 @@ - - + + - - + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_3.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_3.xml index f5190383a65..576e7b198c8 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_3.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_3.xml @@ -4,34 +4,34 @@ - - - - + + + + - + - - - + + + - - - - - + + + + + - - + + - - + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_4.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_4.xml index a078e888b26..67fd9134451 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_4.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_4.xml @@ -4,49 +4,49 @@ - - - - - + + + + + - + - - - + + + - + - - - - - - - + + + + + + + - - + + - - - + + + - - - + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_5.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_5.xml index fc594380fef..a474f58f67d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_5.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_5.xml @@ -4,61 +4,61 @@ - - - - - + + + + + - + - - - - + + + + - + - - - - - - - - - + + + + + + + + + - - + + - - - + + + - - - + + + - - - + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_6.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_6.xml index b4777c14e43..a9bec01b99b 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_6.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_6.xml @@ -4,65 +4,65 @@ - - - - - + + + + + - + - - - - + + + + - + - - - - - - - - - - + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_7.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_7.xml index b4777c14e43..a9bec01b99b 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_7.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionBreakpointsWithSubclassesTest/oracle/ClassCastAndNullpointerExceptions_7.xml @@ -4,65 +4,65 @@ - - - - - + + + + + - + - - - - + + + + - + - - - - - - - - - - + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionalMethodReturnTest/oracle/ExceptionalMethodReturnTest.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionalMethodReturnTest/oracle/ExceptionalMethodReturnTest.xml index 92dc7682485..e38a9032087 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionalMethodReturnTest/oracle/ExceptionalMethodReturnTest.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionalMethodReturnTest/oracle/ExceptionalMethodReturnTest.xml @@ -19,19 +19,19 @@ - - + + - - + + - - + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionalMethodReturnTestWithLoop/oracle/Loop.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionalMethodReturnTestWithLoop/oracle/Loop.xml index 18ad00c2478..6b124798bd2 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionalMethodReturnTestWithLoop/oracle/Loop.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/exceptionalMethodReturnTestWithLoop/oracle/Loop.xml @@ -13,31 +13,31 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -52,27 +52,27 @@ - + - + - + - + - + - + - + - + - + - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/instanceOfNotInEndlessLoop/oracle/Number.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/instanceOfNotInEndlessLoop/oracle/Number.xml index 0eb7d692528..2bca5d4aa76 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/instanceOfNotInEndlessLoop/oracle/Number.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/instanceOfNotInEndlessLoop/oracle/Number.xml @@ -4,24 +4,24 @@ - - - - + + + + - - + + - - - - + + + + - - + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_3.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_3.xml index 92075805860..19e8ea7be3d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_3.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_3.xml @@ -2,12 +2,12 @@ - - + + - - + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_4.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_4.xml index 1a1eeab960b..01d6425635c 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_4.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_4.xml @@ -2,18 +2,18 @@ - - - - + + + + - - - - + + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_5.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_5.xml index 66500acffc3..6cd983eeb09 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_5.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_5.xml @@ -2,21 +2,21 @@ - - - - - + + + + + - - - - - + + + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_6.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_6.xml index 4963e684bc2..70246553c0f 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_6.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_6.xml @@ -2,15 +2,15 @@ - - - - - - - + + + + + + + - + @@ -20,15 +20,15 @@ - - - - - - - + + + + + + + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_7.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_7.xml index ed5470b97f9..6e93d3810e2 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_7.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointGlobalVariablesOnSatisfiable/oracle/GlobalVariablesOnSatisfiable_7.xml @@ -2,17 +2,17 @@ - - - - - - - - + + + + + + + + - + @@ -22,17 +22,17 @@ - - - - - - - - + + + + + + + + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_3.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_3.xml index 613415a8c25..48ff853ab7a 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_3.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_3.xml @@ -2,12 +2,12 @@ - - + + - - + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_4.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_4.xml index fd68c2f880d..fbcbb89656a 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_4.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_4.xml @@ -2,18 +2,18 @@ - - - - + + + + - - - - + + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_5.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_5.xml index 075baf8e830..ac3cd6ef698 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_5.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_5.xml @@ -2,21 +2,21 @@ - - - - - + + + + + - - - - - + + + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_6.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_6.xml index 3515a3f78f7..8003027d376 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_6.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_6.xml @@ -2,15 +2,15 @@ - - - - - - - + + + + + + + - + @@ -20,15 +20,15 @@ - - - - - - - + + + + + + + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_7.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_7.xml index 0724a811da3..c71f90ab492 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_7.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/keyWatchpointMethodsOnSatisfiable/oracle/MethodsOnSatisfiable_7.xml @@ -2,17 +2,17 @@ - - - - - - - - + + + + + + + + - + @@ -22,17 +22,17 @@ - - - - - - - - + + + + + + + + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/methodCallReturnTests/oracle/MethodCallReturnTests.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/methodCallReturnTests/oracle/MethodCallReturnTests.xml index c8d6d2617e0..6d7fa2b70d2 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/methodCallReturnTests/oracle/MethodCallReturnTests.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/methodCallReturnTests/oracle/MethodCallReturnTests.xml @@ -13,7 +13,7 @@ - + @@ -27,7 +27,7 @@ - + @@ -41,7 +41,7 @@ - + @@ -698,7 +698,7 @@ - + @@ -897,7 +897,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/nonExecutionBranchHidingQueryWithFields/oracle/QueryWithFields_hiding_off.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/nonExecutionBranchHidingQueryWithFields/oracle/QueryWithFields_hiding_off.xml index f77282ab701..eb347b80d84 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/nonExecutionBranchHidingQueryWithFields/oracle/QueryWithFields_hiding_off.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/nonExecutionBranchHidingQueryWithFields/oracle/QueryWithFields_hiding_off.xml @@ -10,33 +10,33 @@ post: (result_magic = self.subMagic(x) mod: {} termination: diamond" pathCondition="true" pathConditionChanged="false" resultTerm="result_magic" exceptionTerm="exc_0" selfTerm="self" contractParameters="x" preconditionComplied="true" hasNotNullCheck="false" notNullCheckComplied="false"> - - - + + + - + - - - - + + + + - + - - - + + + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/nonExecutionBranchHidingQueryWithFields/oracle/QueryWithFields_hiding_side_proof.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/nonExecutionBranchHidingQueryWithFields/oracle/QueryWithFields_hiding_side_proof.xml index 385773a50b2..602ef674b7d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/nonExecutionBranchHidingQueryWithFields/oracle/QueryWithFields_hiding_side_proof.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/nonExecutionBranchHidingQueryWithFields/oracle/QueryWithFields_hiding_side_proof.xml @@ -11,17 +11,17 @@ mod: {} termination: diamond" pathCondition="true" pathConditionChanged="false" resultTerm="result_magic" exceptionTerm="exc_0" selfTerm="self" contractParameters="x" preconditionComplied="true" hasNotNullCheck="false" notNullCheckComplied="false"> - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueAddingOfLabeledSubtree/oracle/ImmutableList.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueAddingOfLabeledSubtree/oracle/ImmutableList.xml index 1c6a3ae42b2..5e01f25b09d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueAddingOfLabeledSubtree/oracle/ImmutableList.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueAddingOfLabeledSubtree/oracle/ImmutableList.xml @@ -10,20 +10,20 @@ & !current = self)<<SC>>; variant: i mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="false"> - - - - - + + + + + - - - - + + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueBlockContractMagic42/oracle/BlockContractMagic42.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueBlockContractMagic42/oracle/BlockContractMagic42.xml index 8bc200a2341..d77e23f0770 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueBlockContractMagic42/oracle/BlockContractMagic42.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueBlockContractMagic42/oracle/BlockContractMagic42.xml @@ -15,10 +15,10 @@ mod {(null, BlockContractMagic42::$two)}termination diamond" pathCondition="true - - - - + + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueModifiableAndLoop/oracle/MagicProofNoOSS.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueModifiableAndLoop/oracle/MagicProofNoOSS.xml index 9d5d133114a..da53026f299 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueModifiableAndLoop/oracle/MagicProofNoOSS.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueModifiableAndLoop/oracle/MagicProofNoOSS.xml @@ -2,16 +2,16 @@ - - - - - - - - + + + + + + + + - + @@ -19,21 +19,21 @@ - + - - - - +mod: {(self, ExampleInstance::$x)}" pathCondition="gt(select<[int]>(heap,self,ExampleInstance::$x),Z(neglit(1(#))))" pathConditionChanged="false" initiallyValid="true"> + + + + - - +termination: diamond" pathCondition="imp(equals(select<[int]>(anon_heap_LOOP,self,ExampleInstance::$x),ExampleInstance_x_0<<selectSK>>),and(geq(select<[int]>(heap,self,ExampleInstance::$x),Z(0(#))),or(geq(ExampleInstance_x_0,Z(1(#))),not(equals(add(ExampleInstance_x_0,mul(ExampleInstance_x_0<<selectSK>>,Z(neglit(1(#))))),Z(0(#)))))))" pathConditionChanged="false" resultTerm="result_0" exceptionTerm="exc_0" contractParameters="var" preconditionComplied="true" hasNotNullCheck="false" notNullCheckComplied="false"> + + @@ -41,10 +41,10 @@ termination: diamond" pathCondition="imp(equals(int::select(anon_heap_LOOP,self, - - - - + + + + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueModifiableAndLoop/test/MagicProofNoOSS.proof b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueModifiableAndLoop/test/MagicProofNoOSS.proof index 5e7e40a8658..0867b5c85d7 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueModifiableAndLoop/test/MagicProofNoOSS.proof +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueModifiableAndLoop/test/MagicProofNoOSS.proof @@ -719,7 +719,7 @@ (rule "hideAuxiliaryEq" (formula "1")) (rule "commute_and" (formula "14")) (rule "ifthenelse_split" (formula "1") (term "0")) - (branch " !o_1 = null & !( boolean::select(heap, o_1, java.lang.Object::#$created) = TRUE | boolean::select(anon_heap_LOOP<>, o_1, java.lang.Object::#$created) = TRUE) TRUE" + (branch " !o_1 = null & !( select<[boolean]>(heap, o_1, java.lang.Object::#$created) = TRUE | select<[boolean]>(anon_heap_LOOP<>, o_1, java.lang.Object::#$created) = TRUE) TRUE" (rule "andLeft" (formula "1")) (rule "notLeft" (formula "1")) (rule "notLeft" (formula "1")) @@ -733,7 +733,7 @@ (rule "notRight" (formula "17")) (rule "close" (formula "15") (ifseqformula "1")) ) - (branch " !o_1 = null & !( boolean::select(heap, o_1, java.lang.Object::#$created) = TRUE | boolean::select(anon_heap_LOOP<>, o_1, java.lang.Object::#$created) = TRUE) FALSE" + (branch " !o_1 = null & !( select<[boolean]>(heap, o_1, java.lang.Object::#$created) = TRUE | select<[boolean]>(anon_heap_LOOP<>, o_1, java.lang.Object::#$created) = TRUE) FALSE" (rule "close" (formula "17") (ifseqformula "1")) ) ) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsArrayUtil/oracle/ArrayUtil.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsArrayUtil/oracle/ArrayUtil.xml index e6a344e8338..9f8e68e9e8f 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsArrayUtil/oracle/ArrayUtil.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/truthValueUnderstandingProofsArrayUtil/oracle/ArrayUtil.xml @@ -42,11 +42,11 @@ -> _array[minIndex] <= _array[j]))<<SC>>; variant: _array.length - i mod: {}" pathCondition="imp(geq(length(array),Z(0(#))),and(and(not(equals(array,null)),not(equals(length(array),Z(0(#))))),not(equals(length(array),Z(1(#))))))" pathConditionChanged="false" initiallyValid="true"> - - - - - + + + + + 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 81e77dd3dd9..4d56002be68 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 @@ -341,7 +341,7 @@ (builtin "One Step Simplification" (formula "10")) (rule "true_left" (formula "10")) (rule "cut_direct" (formula "14") (term "1,0")) - (branch "CUT: leq(int::select(heap, self, Calendar::$entrySize), add(Z(neglit(2(#))), length(Calendar.Entry[]::select(heap, self, Calendar::$entries)))) TRUE" + (branch "CUT: leq(select<[int]>(heap, self, Calendar::$entrySize), add(Z(neglit(2(#))), length(Calendar.Entry[]::select(heap, self, Calendar::$entries)))) TRUE" (builtin "One Step Simplification" (formula "15")) (rule "inEqSimp_subsumption0" (formula "11") (ifseqformula "1")) (rule "inEqSimp_homoInEq0" (formula "11") (term "0")) @@ -437,7 +437,7 @@ (rule "closeFalse" (formula "1")) ) ) - (branch "CUT: leq(int::select(heap, self, Calendar::$entrySize), add(Z(neglit(2(#))), length(Calendar.Entry[]::select(heap, self, Calendar::$entries)))) FALSE" + (branch "CUT: leq(select<[int]>(heap, self, Calendar::$entrySize), add(Z(neglit(2(#))), length(Calendar.Entry[]::select(heap, self, Calendar::$entries)))) FALSE" (builtin "One Step Simplification" (formula "15")) (rule "false_right" (formula "15")) (rule "inEqSimp_leqRight" (formula "14")) diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArrayAverage/oracle/ArrayAverage.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArrayAverage/oracle/ArrayAverage.xml index 4da1534b8db..be33b765ced 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArrayAverage/oracle/ArrayAverage.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArrayAverage/oracle/ArrayAverage.xml @@ -42,55 +42,55 @@ variant: array_1.length - i mod: false" pathCondition="not(equals(array,null))" pathConditionChanged="false" initiallyValid="true"> - + - + - + - + - + - + - + - + - + - - + + - + - - + +as result of ArrayAverage.average(array)>" isReturnValueComputed="true" methodReturnCondition="imp(geq(length(array),Z(0(#))),and(and(and(not(equals(array,null)),geq(i_0,Z(1(#)))),equals(length(array),i_0)),equals(bsum{j:int}(Z(0(#)),i_0,select<[int]>(heap,array,arr(j))),sum_2_0)))"> - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumFor/oracle/ArraySumFor.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumFor/oracle/ArraySumFor.xml index 3dbe6ca855d..0c04c855734 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumFor/oracle/ArraySumFor.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumFor/oracle/ArraySumFor.xml @@ -11,27 +11,27 @@ variant: array.length - i mod: false" pathCondition="true" pathConditionChanged="false" initiallyValid="true"> - + - + - + - + - + - + - + - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumForEach/oracle/ArraySumForEach.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumForEach/oracle/ArraySumForEach.xml index 5e52540def7..33f9123a58a 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumForEach/oracle/ArraySumForEach.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumForEach/oracle/ArraySumForEach.xml @@ -11,21 +11,21 @@ variant: array.length - idx mod: false" pathCondition="true" pathConditionChanged="false" initiallyValid="true"> - + - + - + - + - + - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumWhile/oracle/ArraySumWhile.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumWhile/oracle/ArraySumWhile.xml index a6d74345488..b9c6c5d9618 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumWhile/oracle/ArraySumWhile.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumWhile/oracle/ArraySumWhile.xml @@ -11,27 +11,27 @@ variant: array.length - i mod: false" pathCondition="true" pathConditionChanged="false" initiallyValid="true"> - + - + - + - + - + - + - + - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumWhileInitiallyInvalid/oracle/ArraySumWhileInitiallyInvalid.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumWhileInitiallyInvalid/oracle/ArraySumWhileInitiallyInvalid.xml index fab6b20f24c..92ee3e5d110 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumWhileInitiallyInvalid/oracle/ArraySumWhileInitiallyInvalid.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumWhileInitiallyInvalid/oracle/ArraySumWhileInitiallyInvalid.xml @@ -11,27 +11,27 @@ variant: array.length - i mod: false" pathCondition="true" pathConditionChanged="false" initiallyValid="false"> - + - + - + - + - + - + - + - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumWhileWithContinue/oracle/ArraySumWhileWithContinue.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumWhileWithContinue/oracle/ArraySumWhileWithContinue.xml index 1ad37c584c8..aad62e69424 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumWhileWithContinue/oracle/ArraySumWhileWithContinue.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumWhileWithContinue/oracle/ArraySumWhileWithContinue.xml @@ -11,18 +11,18 @@ variant: array.length - i mod: false" pathCondition="true" pathConditionChanged="false" initiallyValid="true"> - + - - + + - + - + - + - + @@ -44,13 +44,13 @@ mod: false" pathCondition="true" pathConditionChanged="false" initiallyValid="tr - + - + - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumWhileWithException/oracle/ArraySumWhileWithException.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumWhileWithException/oracle/ArraySumWhileWithException.xml index 8ec4cb4495b..5c65184f026 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumWhileWithException/oracle/ArraySumWhileWithException.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantArraySumWhileWithException/oracle/ArraySumWhileWithException.xml @@ -11,31 +11,31 @@ variant: array.length - i mod: false" pathCondition="true" pathConditionChanged="false" initiallyValid="true"> - + - + - + - + - + - + - + - + - + - + - + @@ -46,13 +46,13 @@ mod: false" pathCondition="true" pathConditionChanged="false" initiallyValid="tr - + - + - + - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantWithoutDecreasing/oracle/LoopInvArrayExample.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantWithoutDecreasing/oracle/LoopInvArrayExample.xml index 0e513f42d97..a4b3c36ea87 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantWithoutDecreasing/oracle/LoopInvArrayExample.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/useLoopInvariantWithoutDecreasing/oracle/LoopInvArrayExample.xml @@ -8,21 +8,21 @@ ( (x >= 0 & x < i)<<SC>> & inInt(x) -> self.a[x] = 1))<<SC>>; mod: allLocs" pathCondition="true" pathConditionChanged="false" initiallyValid="true"> - - - - - - + + + + + + - - - + + + 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 458af701a2f..18250e0095f 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 @@ -23,7 +23,7 @@ - + @@ -71,7 +71,7 @@ - + @@ -100,7 +100,7 @@ termination: diamond" pathCondition="not(equals(array,null))" pathConditionChang - + @@ -122,7 +122,7 @@ termination: diamond" pathCondition="not(equals(array,null))" pathConditionChang - + @@ -227,7 +227,7 @@ termination: diamond" pathCondition="not(equals(array,null))" pathConditionChang - + @@ -268,7 +268,7 @@ as result of self.average(array)>" isReturnValueComputed="true" methodReturnC - + @@ -303,7 +303,7 @@ as result of self.average(array)>" isReturnValueComputed="true" methodReturnC - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/variableVariableMethodContractTest/oracle/VariableMethodContractTest.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/variableVariableMethodContractTest/oracle/VariableMethodContractTest.xml index 739459b9673..51f824f002a 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/variableVariableMethodContractTest/oracle/VariableMethodContractTest.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/variableVariableMethodContractTest/oracle/VariableMethodContractTest.xml @@ -133,7 +133,7 @@ termination: diamond" pathCondition="true" pathConditionChanged="false" resultTe - + @@ -150,7 +150,7 @@ termination: diamond" pathCondition="true" pathConditionChanged="false" resultTe - + @@ -167,7 +167,7 @@ termination: diamond" pathCondition="true" pathConditionChanged="false" resultTe - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/variableVariablesArrayTest/oracle/VariablesArrayTest.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/variableVariablesArrayTest/oracle/VariablesArrayTest.xml index 431de330f81..70092c42b3b 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/variableVariablesArrayTest/oracle/VariablesArrayTest.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/variableVariablesArrayTest/oracle/VariablesArrayTest.xml @@ -72,7 +72,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesArrayAssignmentTest/oracle/ArrayAssignmentTest.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesArrayAssignmentTest/oracle/ArrayAssignmentTest.xml index 1b489e25ba1..80e2e2bb196 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesArrayAssignmentTest/oracle/ArrayAssignmentTest.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesArrayAssignmentTest/oracle/ArrayAssignmentTest.xml @@ -17,7 +17,7 @@ - + @@ -36,7 +36,7 @@ - + @@ -55,9 +55,9 @@ - + - + @@ -76,9 +76,9 @@ - + - + @@ -97,9 +97,9 @@ - + - + @@ -121,7 +121,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesArrayAssignmentTest/oracle/ArrayAssignmentTest_Sequent.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesArrayAssignmentTest/oracle/ArrayAssignmentTest_Sequent.xml index f22e5af0d0b..f9d929199d3 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesArrayAssignmentTest/oracle/ArrayAssignmentTest_Sequent.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesArrayAssignmentTest/oracle/ArrayAssignmentTest_Sequent.xml @@ -63,7 +63,7 @@ - + @@ -88,7 +88,7 @@ - + @@ -113,7 +113,7 @@ - + @@ -138,7 +138,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesConditionalCycle/oracle/VariablesConditionalCycle.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesConditionalCycle/oracle/VariablesConditionalCycle.xml index 24a813c1cd4..4348f14da11 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesConditionalCycle/oracle/VariablesConditionalCycle.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesConditionalCycle/oracle/VariablesConditionalCycle.xml @@ -76,7 +76,7 @@ - + @@ -101,7 +101,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesConditionalValuesTest/oracle/ConditionalValuesTest.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesConditionalValuesTest/oracle/ConditionalValuesTest.xml index 71457009356..67befc21641 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesConditionalValuesTest/oracle/ConditionalValuesTest.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesConditionalValuesTest/oracle/ConditionalValuesTest.xml @@ -90,7 +90,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesConditionalValuesTest/oracle/ConditionalValuesTest_next.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesConditionalValuesTest/oracle/ConditionalValuesTest_next.xml index 3b94e9ecf44..dfcda6310f6 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesConditionalValuesTest/oracle/ConditionalValuesTest_next.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesConditionalValuesTest/oracle/ConditionalValuesTest_next.xml @@ -91,7 +91,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesInstanceVariableTest/oracle/VariablesInstanceVariableTest.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesInstanceVariableTest/oracle/VariablesInstanceVariableTest.xml index fb6b095317a..afebcffb3d9 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesInstanceVariableTest/oracle/VariablesInstanceVariableTest.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesInstanceVariableTest/oracle/VariablesInstanceVariableTest.xml @@ -13,11 +13,11 @@ - + - + @@ -31,7 +31,7 @@ - + @@ -44,11 +44,11 @@ - + - + @@ -62,7 +62,7 @@ - + @@ -83,7 +83,7 @@ - + @@ -97,7 +97,7 @@ - + @@ -132,7 +132,7 @@ - + @@ -167,7 +167,7 @@ - + @@ -462,11 +462,11 @@ this.a + this.b + x + this.wrapper.value + param.value;" pathCondition="true" pa - + - + @@ -480,7 +480,7 @@ this.a + this.b + x + this.wrapper.value + param.value;" pathCondition="true" pa - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesNonSimpleArrayAssignmentTest/oracle/NonSimpleArrayAssignmentTest.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesNonSimpleArrayAssignmentTest/oracle/NonSimpleArrayAssignmentTest.xml index 40155f04570..3aace8b446d 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesNonSimpleArrayAssignmentTest/oracle/NonSimpleArrayAssignmentTest.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesNonSimpleArrayAssignmentTest/oracle/NonSimpleArrayAssignmentTest.xml @@ -19,7 +19,7 @@ - + @@ -44,7 +44,7 @@ - + @@ -77,7 +77,7 @@ - + @@ -102,7 +102,7 @@ - + @@ -122,7 +122,7 @@ - + @@ -132,7 +132,7 @@ - + @@ -140,7 +140,7 @@ - + @@ -155,9 +155,9 @@ - + - + @@ -175,7 +175,7 @@ - + @@ -183,7 +183,7 @@ - + @@ -198,9 +198,9 @@ - + - + @@ -225,9 +225,9 @@ - + - + @@ -245,7 +245,7 @@ - + @@ -253,7 +253,7 @@ - + @@ -268,9 +268,9 @@ - + - + @@ -295,9 +295,9 @@ - + - + @@ -325,7 +325,7 @@ - + @@ -361,9 +361,9 @@ - + - + @@ -383,7 +383,7 @@ - + @@ -398,9 +398,9 @@ - + - + @@ -432,7 +432,7 @@ - + @@ -469,7 +469,7 @@ - + @@ -489,7 +489,7 @@ - + @@ -504,7 +504,7 @@ - + @@ -536,7 +536,7 @@ - + @@ -572,7 +572,7 @@ - + @@ -592,7 +592,7 @@ - + @@ -613,7 +613,7 @@ - + @@ -633,7 +633,7 @@ - + @@ -657,7 +657,7 @@ - + @@ -692,7 +692,7 @@ - + @@ -719,7 +719,7 @@ - + @@ -751,7 +751,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesNonSimpleArrayAssignmentTest/oracle/NonSimpleArrayAssignmentTest_Sequent.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesNonSimpleArrayAssignmentTest/oracle/NonSimpleArrayAssignmentTest_Sequent.xml index a8c51a82490..f6837a9dba0 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesNonSimpleArrayAssignmentTest/oracle/NonSimpleArrayAssignmentTest_Sequent.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesNonSimpleArrayAssignmentTest/oracle/NonSimpleArrayAssignmentTest_Sequent.xml @@ -139,7 +139,7 @@ - + @@ -153,13 +153,13 @@ - + - + @@ -185,9 +185,9 @@ - + - + @@ -198,7 +198,7 @@ - + @@ -212,7 +212,7 @@ - + @@ -222,13 +222,13 @@ - + - + @@ -255,7 +255,7 @@ - + @@ -269,13 +269,13 @@ - + - + @@ -289,13 +289,13 @@ - + - + @@ -321,9 +321,9 @@ - + - + @@ -334,7 +334,7 @@ - + @@ -348,7 +348,7 @@ - + @@ -366,13 +366,13 @@ - + - + @@ -382,7 +382,7 @@ - + @@ -417,7 +417,7 @@ - + @@ -431,7 +431,7 @@ - + @@ -449,13 +449,13 @@ - + - + @@ -465,7 +465,7 @@ - + @@ -500,7 +500,7 @@ - + @@ -514,7 +514,7 @@ - + @@ -532,13 +532,13 @@ - + - + @@ -548,7 +548,7 @@ - + @@ -615,7 +615,7 @@ - + @@ -629,7 +629,7 @@ - + @@ -639,13 +639,13 @@ - + - + @@ -671,7 +671,7 @@ - + @@ -682,7 +682,7 @@ - + @@ -696,7 +696,7 @@ - + @@ -706,13 +706,13 @@ - + - + @@ -751,7 +751,7 @@ - + @@ -765,7 +765,7 @@ - + @@ -775,13 +775,13 @@ - + - + @@ -861,7 +861,7 @@ - + @@ -887,7 +887,7 @@ - + @@ -910,7 +910,7 @@ - + @@ -961,7 +961,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesNonSimpleArrayCreationTest/oracle/NonSimpleArrayCreationTest_Sequent.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesNonSimpleArrayCreationTest/oracle/NonSimpleArrayCreationTest_Sequent.xml index ca6ae472a7c..e3ee44cfb4e 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesNonSimpleArrayCreationTest/oracle/NonSimpleArrayCreationTest_Sequent.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesNonSimpleArrayCreationTest/oracle/NonSimpleArrayCreationTest_Sequent.xml @@ -7,7 +7,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesUpdateVariablesTest/oracle/UpdateVariablesTest.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesUpdateVariablesTest/oracle/UpdateVariablesTest.xml index 1785731f7d4..f7fdeb976a6 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesUpdateVariablesTest/oracle/UpdateVariablesTest.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesUpdateVariablesTest/oracle/UpdateVariablesTest.xml @@ -32,7 +32,7 @@ - + @@ -43,7 +43,7 @@ - + @@ -53,14 +53,14 @@ - + - + @@ -70,14 +70,14 @@ - + - + @@ -87,7 +87,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesVariableArrayIndex/oracle/VariableArrayIndex.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesVariableArrayIndex/oracle/VariableArrayIndex.xml index 845d0478169..52c64bf8d20 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesVariableArrayIndex/oracle/VariableArrayIndex.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesVariableArrayIndex/oracle/VariableArrayIndex.xml @@ -15,7 +15,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -57,7 +57,7 @@ - + @@ -74,17 +74,17 @@ - + - + - + - + @@ -98,19 +98,19 @@ - + - + - + - + @@ -124,13 +124,13 @@ - + - + @@ -147,7 +147,7 @@ - + @@ -156,14 +156,14 @@ - - + + - + @@ -171,7 +171,7 @@ - + @@ -188,7 +188,7 @@ - + @@ -197,14 +197,14 @@ - - + + - + @@ -212,7 +212,7 @@ - + @@ -229,7 +229,7 @@ - + @@ -238,14 +238,14 @@ - - + + - + @@ -253,7 +253,7 @@ - + @@ -282,7 +282,7 @@ - + @@ -290,7 +290,7 @@ - + @@ -318,7 +318,7 @@ - + @@ -330,7 +330,7 @@ - + @@ -348,7 +348,7 @@ - + @@ -363,7 +363,7 @@ - + @@ -404,7 +404,7 @@ - + @@ -441,7 +441,7 @@ - + @@ -460,7 +460,7 @@ - + @@ -472,7 +472,7 @@ - + @@ -486,13 +486,13 @@ - + - + @@ -509,7 +509,7 @@ - + @@ -521,7 +521,7 @@ - + @@ -529,7 +529,7 @@ - + @@ -558,7 +558,7 @@ - + @@ -570,7 +570,7 @@ - + @@ -578,7 +578,7 @@ - + @@ -615,7 +615,7 @@ - + @@ -623,7 +623,7 @@ - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesWithQuantifier/oracle/EnoughInfoReturn.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesWithQuantifier/oracle/EnoughInfoReturn.xml index bef607d47ca..38b76923ee1 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/variablesWithQuantifier/oracle/EnoughInfoReturn.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/variablesWithQuantifier/oracle/EnoughInfoReturn.xml @@ -76,7 +76,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -92,7 +92,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -131,7 +131,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -141,7 +141,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -161,23 +161,23 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + - + - + - + - + - + @@ -202,7 +202,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -212,7 +212,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -220,23 +220,23 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + - + - + - + - + - + @@ -261,7 +261,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -271,7 +271,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -279,23 +279,23 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + - + - + - + - + - + @@ -320,7 +320,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -330,7 +330,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -338,23 +338,23 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + - + - + - + - + - + @@ -405,23 +405,23 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + - + - + - + - + - + @@ -464,23 +464,23 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + - + - + - + - + - + @@ -505,7 +505,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -523,23 +523,23 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + - + - + - + - + - + @@ -594,23 +594,23 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + - + - + - + - + - + @@ -646,7 +646,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -658,7 +658,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -666,7 +666,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -693,13 +693,13 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + @@ -707,7 +707,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -738,13 +738,13 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + @@ -752,7 +752,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -760,23 +760,23 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + - + - + - + - + - + @@ -793,13 +793,13 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + @@ -807,7 +807,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -819,23 +819,23 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + - + - + - + - + - + @@ -848,13 +848,13 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + @@ -862,7 +862,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -874,23 +874,23 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + - + - + - + - + - + @@ -909,7 +909,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -919,9 +919,9 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + @@ -943,13 +943,13 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + @@ -957,7 +957,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -988,13 +988,13 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + @@ -1002,7 +1002,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -1010,23 +1010,23 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + - + - + - + - + - + @@ -1043,13 +1043,13 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + @@ -1057,7 +1057,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -1069,23 +1069,23 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + - + - + - + - + - + @@ -1098,13 +1098,13 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + @@ -1112,7 +1112,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -1124,23 +1124,23 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + - + - + - + - + - + - + @@ -1159,7 +1159,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + @@ -1167,7 +1167,7 @@ mod: {}" pathCondition="true" pathConditionChanged="false" initiallyValid="true" - + diff --git a/key.core.symbolic_execution/src/test/resources/testcase/set/verificationProofFile_VerifyNumber/oracle/VerifyNumberNormal.xml b/key.core.symbolic_execution/src/test/resources/testcase/set/verificationProofFile_VerifyNumber/oracle/VerifyNumberNormal.xml index 3ffd45e37ea..a099f1e71a5 100644 --- a/key.core.symbolic_execution/src/test/resources/testcase/set/verificationProofFile_VerifyNumber/oracle/VerifyNumberNormal.xml +++ b/key.core.symbolic_execution/src/test/resources/testcase/set/verificationProofFile_VerifyNumber/oracle/VerifyNumberNormal.xml @@ -3,22 +3,22 @@ - - - - + + + + - + - - - - + + + + - + 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 b3275566e2d..fd19a167ee4 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 @@ -182,7 +182,7 @@ (builtin "One Step Simplification" (formula "1")) (rule "true_left" (formula "1")) (rule "onlyCreatedObjectsAreReferenced" (formula "12") (term "0,1,0") (ifseqformula "1")) - (rule "allLeft" (formula "10") (inst "t=int::select(heap, + (rule "allLeft" (formula "10") (inst "t=select<[int]>(heap, index, ArrayIndexAsVariableFieldTest.Index::$value)")) (rule "inEqSimp_contradInEq0" (formula "10") (term "1,0") (ifseqformula "9")) @@ -273,7 +273,7 @@ (rule "true_left" (formula "1")) (rule "onlyCreatedObjectsAreReferenced" (formula "14") (term "0,1,0") (ifseqformula "2")) (rule "allLeft" (formula "11") (inst "t=add(Z(1(#)), - int::select(heap, + select<[int]>(heap, index, ArrayIndexAsVariableFieldTest.Index::$value))")) (rule "inEqSimp_homoInEq1" (formula "11") (term "1,0")) @@ -476,7 +476,7 @@ (rule "emptyModality" (formula "17") (term "1")) (builtin "One Step Simplification" (formula "17")) (rule "ifthenelse_split" (formula "1") (term "0")) - (branch " ArrayIndexAsVariableFieldTest::select(heap, array, arr(add(Z(1(#)), int::select(heap, index, ArrayIndexAsVariableFieldTest.Index::$value)))) = ArrayIndexAsVariableFieldTest::select(heap, array, arr(int::select(heap, index, ArrayIndexAsVariableFieldTest.Index::$value))) TRUE" + (branch " ArrayIndexAsVariableFieldTest::select(heap, array, arr(add(Z(1(#)), select<[int]>(heap, index, ArrayIndexAsVariableFieldTest.Index::$value)))) = ArrayIndexAsVariableFieldTest::select(heap, array, arr(select<[int]>(heap, index, ArrayIndexAsVariableFieldTest.Index::$value))) TRUE" (rule "hideAuxiliaryEq" (formula "2")) (rule "applyEq" (formula "2") (term "1,0") (ifseqformula "1")) (rule "applyEq" (formula "12") (term "0") (ifseqformula "1")) @@ -484,7 +484,7 @@ (builtin "One Step Simplification" (formula "15")) (opengoal " ") ) - (branch " ArrayIndexAsVariableFieldTest::select(heap, array, arr(add(Z(1(#)), int::select(heap, index, ArrayIndexAsVariableFieldTest.Index::$value)))) = ArrayIndexAsVariableFieldTest::select(heap, array, arr(int::select(heap, index, ArrayIndexAsVariableFieldTest.Index::$value))) FALSE" + (branch " ArrayIndexAsVariableFieldTest::select(heap, array, arr(add(Z(1(#)), select<[int]>(heap, index, ArrayIndexAsVariableFieldTest.Index::$value)))) = ArrayIndexAsVariableFieldTest::select(heap, array, arr(select<[int]>(heap, index, ArrayIndexAsVariableFieldTest.Index::$value))) FALSE" (rule "hideAuxiliaryEq" (formula "1")) (opengoal " ") ) diff --git a/key.core.testgen/src/main/java/de/uka/ilkd/key/testgen/oracle/OracleGenerator.java b/key.core.testgen/src/main/java/de/uka/ilkd/key/testgen/oracle/OracleGenerator.java index 912c58b7063..beecc5d1ca8 100644 --- a/key.core.testgen/src/main/java/de/uka/ilkd/key/testgen/oracle/OracleGenerator.java +++ b/key.core.testgen/src/main/java/de/uka/ilkd/key/testgen/oracle/OracleGenerator.java @@ -320,7 +320,8 @@ private OracleTerm translateFunction(Term term, boolean initialSelect) { return OracleConstant.FALSE; } else if (term.arity() == 0) { return new OracleConstant(name, term.sort()); - } else if (name.endsWith("select")) { + } else if (op instanceof ParametricFunctionInstance pfi + && pfi.getBase() == services.getTypeConverter().getHeapLDT().getSelect()) { return translateSelect(term, initialSelect); } else if (name.equals("arr")) { OracleTerm index = generateOracle(term.sub(0), initialSelect); @@ -364,21 +365,14 @@ private OracleTerm translateFunction(Term term, boolean initialSelect) { return new OracleMethodCall(m, args); } - } else if (name.endsWith("::instance")) { - - if (fun instanceof SortDependingFunction sdf) { - Sort s = sdf.getSortDependingOn(); - - - OracleTerm arg = generateOracle(term.sub(0), initialSelect); - OracleType type = new OracleType(s); - - return new OracleBinTerm("instanceof", arg, type); - - - } + } else if (fun instanceof ParametricFunctionInstance pfi + && pfi.getBase() == services.getJavaDLTheory().getInstanceofSymbol(services)) { + Sort s = pfi.getArgs().head().sort(); + OracleTerm arg = generateOracle(term.sub(0), initialSelect); + OracleType type = new OracleType(s); + return new OracleBinTerm("instanceof", arg, type); } else if (op instanceof ProgramMethod) { return translateQuery(term, initialSelect, op); diff --git a/key.core.testgen/src/test/resources/testcase/smt/ce/types1.key b/key.core.testgen/src/test/resources/testcase/smt/ce/types1.key index 45cca4fa967..1848bb32ef8 100644 --- a/key.core.testgen/src/test/resources/testcase/smt/ce/types1.key +++ b/key.core.testgen/src/test/resources/testcase/smt/ce/types1.key @@ -6,5 +6,5 @@ } \problem { -a != null -> (I3::instance(a) = TRUE -> I1::instance(a) = TRUE) +a != null -> (instance<[I3]>(a) = TRUE -> instance<[I1]>(a) = TRUE) } diff --git a/key.core.testgen/src/test/resources/testcase/smt/ce/types2.key b/key.core.testgen/src/test/resources/testcase/smt/ce/types2.key index 5049aa5f758..8602c0d80de 100644 --- a/key.core.testgen/src/test/resources/testcase/smt/ce/types2.key +++ b/key.core.testgen/src/test/resources/testcase/smt/ce/types2.key @@ -6,5 +6,5 @@ } \problem { -a != null -> (C1::instance(a) = TRUE -> C2::instance(a) = FALSE) +a != null -> (instance<[C1]>(a) = TRUE -> instance<[C2]>(a) = FALSE) } diff --git a/key.core.testgen/src/test/resources/testcase/smt/ce/types3.key b/key.core.testgen/src/test/resources/testcase/smt/ce/types3.key index 7d9fd927f86..bb49799d2f6 100644 --- a/key.core.testgen/src/test/resources/testcase/smt/ce/types3.key +++ b/key.core.testgen/src/test/resources/testcase/smt/ce/types3.key @@ -6,5 +6,5 @@ } \problem { -a != null -> (C1::instance(a) = TRUE -> I2::instance(a) = FALSE) +a != null -> (instance<[C1]>(a) = TRUE -> instance<[I2]>(a) = FALSE) } diff --git a/key.core.testgen/src/test/resources/testcase/smt/ce/types4.key b/key.core.testgen/src/test/resources/testcase/smt/ce/types4.key index 7002f1df164..296a6372fa9 100644 --- a/key.core.testgen/src/test/resources/testcase/smt/ce/types4.key +++ b/key.core.testgen/src/test/resources/testcase/smt/ce/types4.key @@ -6,5 +6,5 @@ } \problem { -a != null -> (C2::instance(a) = TRUE -> (I2::instance(a) = TRUE & I1::instance(a) = TRUE & I4::instance(a) = TRUE)) +a != null -> (instance<[C2]>(a) = TRUE -> (instance<[I2]>(a) = TRUE & instance<[I1]>(a) = TRUE & instance<[I4]>(a) = TRUE)) } diff --git a/key.core.testgen/src/test/resources/testcase/smt/ce/types5.key b/key.core.testgen/src/test/resources/testcase/smt/ce/types5.key index 98a55ffc7b4..c82969d9ec9 100644 --- a/key.core.testgen/src/test/resources/testcase/smt/ce/types5.key +++ b/key.core.testgen/src/test/resources/testcase/smt/ce/types5.key @@ -6,5 +6,5 @@ } \problem { -a != null -> (A::instance(a) = TRUE -> (C2::instance(a) = TRUE | C3::instance(a) = TRUE)) +a != null -> (instance<[A]>(a) = TRUE -> (instance<[C2]>(a) = TRUE | instance<[C3]>(a) = TRUE)) } diff --git a/key.core.testgen/src/test/resources/testcase/smt/ce/types6.key b/key.core.testgen/src/test/resources/testcase/smt/ce/types6.key index eeea799a303..d92695c2057 100644 --- a/key.core.testgen/src/test/resources/testcase/smt/ce/types6.key +++ b/key.core.testgen/src/test/resources/testcase/smt/ce/types6.key @@ -6,5 +6,5 @@ } \problem { -a != null -> (C3::instance(a) = TRUE -> I3::instance(a) = FALSE) +a != null -> (instance<[C3]>(a) = TRUE -> instance<[I3]>(a) = FALSE) } diff --git a/key.core.testgen/src/test/resources/testcase/smt/ce/types7.key b/key.core.testgen/src/test/resources/testcase/smt/ce/types7.key index 187237cf975..b0ba57dd5a3 100644 --- a/key.core.testgen/src/test/resources/testcase/smt/ce/types7.key +++ b/key.core.testgen/src/test/resources/testcase/smt/ce/types7.key @@ -6,5 +6,5 @@ } \problem { -I3::exactInstance(a) = FALSE +exactInstance<[I3]>(a) = FALSE } diff --git a/key.core.testgen/src/test/resources/testcase/smt/ce/types8.key b/key.core.testgen/src/test/resources/testcase/smt/ce/types8.key index dad195e2ab0..ae2a8b351ec 100644 --- a/key.core.testgen/src/test/resources/testcase/smt/ce/types8.key +++ b/key.core.testgen/src/test/resources/testcase/smt/ce/types8.key @@ -6,5 +6,5 @@ } \problem { -(C4::exactInstance(a) = TRUE -> C2::exactInstance(a) = FALSE) +(exactInstance<[C4]>(a) = TRUE -> exactInstance<[C2]>(a) = FALSE) } diff --git a/key.core.testgen/src/test/resources/testcase/smt/ce/types9.key b/key.core.testgen/src/test/resources/testcase/smt/ce/types9.key index 6a09ce33b51..922a2f3a84b 100644 --- a/key.core.testgen/src/test/resources/testcase/smt/ce/types9.key +++ b/key.core.testgen/src/test/resources/testcase/smt/ce/types9.key @@ -6,5 +6,5 @@ } \problem { -(C2::exactInstance(a) = TRUE -> C4::exactInstance(a) = FALSE) +(exactInstance<[C2]>(a) = TRUE -> exactInstance<[C4]>(a) = FALSE) } diff --git a/key.core.testgen/testcases/binarysearch/attempt.proof b/key.core.testgen/testcases/binarysearch/attempt.proof index 80d6e2d08fc..6bb396f60cd 100644 --- a/key.core.testgen/testcases/binarysearch/attempt.proof +++ b/key.core.testgen/testcases/binarysearch/attempt.proof @@ -611,7 +611,7 @@ name=BinarySearch[BinarySearch\\:\\:search([I,int)].JML normal_behavior operatio (rule "methodCallEmpty" (formula "17") (term "1")) (rule "tryEmpty" (formula "17") (term "1")) (rule "emptyModality" (formula "17") (term "1")) - (opengoal " ( int::select(heap, a, arr(jdiv(add(l_0, r_0), Z(2(#))))) = v)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, gt(r_0, add(Z(1(#)), l_0))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, geq(l_0, Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(l_0, r_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(r_0, length(a))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(x, l_0) & geq(x, Z(0(#))) -> lt(int::select(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)), v)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(r_0, x) & lt(x, length(a)) -> lt(v, int::select(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)))))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(anon_heap_LOOP_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(heap)<>, ( boolean::select(heap, a, java.lang.Object::) = TRUE)<>, measuredByEmpty<>, geq(length(a), Z(0(#))), (\\forall int x; \\forall int y; ( lt(x, y) & lt(y, length(a)) & geq(x, Z(0(#))) -> geq(int::select(heap, a, arr(y)), int::select(heap, a, arr(x)))))<> ==> (length(a) = Z(1(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (length(a) = Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (a = null)<>, ({heapAtPre:=heap || _a:=a || _v:=v || exc:=null || (h:=heap || (l:=l_0 || r:=r_0) || heap:=anon(heap, empty, anon_heap_LOOP_0<>) || a_1:=add(mul(l_0, Z(neglit(1(#)))), r_0)) || b_2:=TRUE || result_search:=jdiv(add(l_0, r_0), Z(2(#)))} (( (( b_2<> = TRUE -> ( (\\if (\\exists int x; (( (geq(x, Z(0(#))) & lt(x, length(a)))<> & int::select(heap, a, arr(x)) = v)<>)) \\then ( int::select(heap, a, arr(result_search)) = v) \\else ( result_search = Z(neglit(1(#))))<> & ( exc<> = null)<>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit)]\")>> & (\\forall Field f; (\\forall java.lang.Object o; (( ( (!(o = null)<>)<> & (!( boolean::select(heapAtPre, o, java.lang.Object::) = TRUE)<>)<>)<> | ( any::select(heapAtPre, o, f) = any::select(heap, o, f))<>)<>))<>)<>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>) & (( !b_2<> = TRUE -> ( (((((geq(l, Z(0(#))) & lt(l, r))<> & lt(r, length(_a)))<> & \\forall int x; ( (geq(x, Z(0(#))) & lt(x, l))<> -> lt(int::select(heap, _a, arr(x)), _v)))<> & \\forall int x; ( (lt(r, x) & lt(x, length(_a)))<> -> lt(_v, int::select(heap, _a, arr(x)))))<> & \\forall Field f; \\forall java.lang.Object o; ( !o = null & ! boolean::select(h, o, java.lang.Object::) = TRUE | any::select(h, o, f) = any::select(heap, o, f)))< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>> & prec(add(mul(l, Z(neglit(1(#)))), r), a_1))< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>") + (opengoal " ( select<[int]>(heap, a, arr(jdiv(add(l_0, r_0), Z(2(#))))) = v)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, gt(r_0, add(Z(1(#)), l_0))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, geq(l_0, Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(l_0, r_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(r_0, length(a))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(x, l_0) & geq(x, Z(0(#))) -> lt(select<[int]>(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)), v)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(r_0, x) & lt(x, length(a)) -> lt(v, select<[int]>(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)))))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(anon_heap_LOOP_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(heap)<>, ( select<[boolean]>(heap, a, java.lang.Object::#$created) = TRUE)<>, measuredByEmpty<>, geq(length(a), Z(0(#))), (\\forall int x; \\forall int y; ( lt(x, y) & lt(y, length(a)) & geq(x, Z(0(#))) -> geq(select<[int]>(heap, a, arr(y)), select<[int]>(heap, a, arr(x)))))<> ==> (length(a) = Z(1(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (length(a) = Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (a = null)<>, ({heapAtPre:=heap || _a:=a || _v:=v || exc:=null || (h:=heap || (l:=l_0 || r:=r_0) || heap:=anon(heap, empty, anon_heap_LOOP_0<>) || a_1:=add(mul(l_0, Z(neglit(1(#)))), r_0)) || b_2:=TRUE || result_search:=jdiv(add(l_0, r_0), Z(2(#)))} (( (( b_2<> = TRUE -> ( (\\if (\\exists int x; (( (geq(x, Z(0(#))) & lt(x, length(a)))<> & select<[int]>(heap, a, arr(x)) = v)<>)) \\then ( select<[int]>(heap, a, arr(result_search)) = v) \\else ( result_search = Z(neglit(1(#))))<> & ( exc<> = null)<>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit)]\")>> & (\\forall Field f; (\\forall java.lang.Object o; (( ( (!(o = null)<>)<> & (!( select<[boolean]>(heapAtPre, o, java.lang.Object::#$created) = TRUE)<>)<>)<> | ( any::select(heapAtPre, o, f) = any::select(heap, o, f))<>)<>))<>)<>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>) & (( !b_2<> = TRUE -> ( (((((geq(l, Z(0(#))) & lt(l, r))<> & lt(r, length(_a)))<> & \\forall int x; ( (geq(x, Z(0(#))) & lt(x, l))<> -> lt(select<[int]>(heap, _a, arr(x)), _v)))<> & \\forall int x; ( (lt(r, x) & lt(x, length(_a)))<> -> lt(_v, select<[int]>(heap, _a, arr(x)))))<> & \\forall Field f; \\forall java.lang.Object o; ( !o = null & ! select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE | any::select(h, o, f) = any::select(heap, o, f)))< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>> & prec(add(mul(l, Z(neglit(1(#)))), r), a_1))< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>") ) (branch "if _a[mid] == _v false" (builtin "One Step Simplification" (formula "17")) @@ -638,7 +638,7 @@ name=BinarySearch[BinarySearch\\:\\:search([I,int)].JML normal_behavior operatio (builtin "One Step Simplification" (formula "18")) (rule "blockEmpty" (formula "18") (term "1")) (rule "lsContinue" (formula "18") (term "1")) - (opengoal " gt(int::select(heap, a, arr(jdiv(add(l_0, r_0), Z(2(#))))), v)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, gt(r_0, add(Z(1(#)), l_0))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, geq(l_0, Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(l_0, r_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(r_0, length(a))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(x, l_0) & geq(x, Z(0(#))) -> lt(int::select(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)), v)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(r_0, x) & lt(x, length(a)) -> lt(v, int::select(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)))))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(anon_heap_LOOP_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(heap)<>, ( boolean::select(heap, a, java.lang.Object::) = TRUE)<>, measuredByEmpty<>, geq(length(a), Z(0(#))), (\\forall int x; \\forall int y; ( lt(x, y) & lt(y, length(a)) & geq(x, Z(0(#))) -> geq(int::select(heap, a, arr(y)), int::select(heap, a, arr(x)))))<> ==> ( int::select(heap, a, arr(jdiv(add(l_0, r_0), Z(2(#))))) = v)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, (length(a) = Z(1(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (length(a) = Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (a = null)<>, ({heapAtPre:=heap || _a:=a || _v:=v || exc:=null || (h:=heap || l:=l_0 || heap:=anon(heap, empty, anon_heap_LOOP_0<>) || a_1:=add(mul(l_0, Z(neglit(1(#)))), r_0)) || r:=jdiv(add(l_0, r_0), Z(2(#)))} ({b_2:=FALSE} (( (( b_2<> = TRUE -> ( (\\if (\\exists int x; (( (geq(x, Z(0(#))) & lt(x, length(a)))<> & int::select(heap, a, arr(x)) = v)<>)) \\then ( int::select(heap, a, arr(result_search)) = v) \\else ( result_search = Z(neglit(1(#))))<> & ( exc<> = null)<>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit)]\")>> & (\\forall Field f; (\\forall java.lang.Object o; (( ( (!(o = null)<>)<> & (!( boolean::select(heapAtPre, o, java.lang.Object::) = TRUE)<>)<>)<> | ( any::select(heapAtPre, o, f) = any::select(heap, o, f))<>)<>))<>)<>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>) & (( !b_2<> = TRUE -> ( (((((geq(l, Z(0(#))) & lt(l, r))<> & lt(r, length(_a)))<> & \\forall int x; ( (geq(x, Z(0(#))) & lt(x, l))<> -> lt(int::select(heap, _a, arr(x)), _v)))<> & \\forall int x; ( (lt(r, x) & lt(x, length(_a)))<> -> lt(_v, int::select(heap, _a, arr(x)))))<> & \\forall Field f; \\forall java.lang.Object o; ( !o = null & ! boolean::select(h, o, java.lang.Object::) = TRUE | any::select(h, o, f) = any::select(heap, o, f)))< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>> & prec(add(mul(l, Z(neglit(1(#)))), r), a_1))< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>") + (opengoal " gt(select<[int]>(heap, a, arr(jdiv(add(l_0, r_0), Z(2(#))))), v)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, gt(r_0, add(Z(1(#)), l_0))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, geq(l_0, Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(l_0, r_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(r_0, length(a))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(x, l_0) & geq(x, Z(0(#))) -> lt(select<[int]>(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)), v)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(r_0, x) & lt(x, length(a)) -> lt(v, select<[int]>(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)))))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(anon_heap_LOOP_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(heap)<>, ( select<[boolean]>(heap, a, java.lang.Object::#$created) = TRUE)<>, measuredByEmpty<>, geq(length(a), Z(0(#))), (\\forall int x; \\forall int y; ( lt(x, y) & lt(y, length(a)) & geq(x, Z(0(#))) -> geq(select<[int]>(heap, a, arr(y)), select<[int]>(heap, a, arr(x)))))<> ==> ( select<[int]>(heap, a, arr(jdiv(add(l_0, r_0), Z(2(#))))) = v)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, (length(a) = Z(1(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (length(a) = Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (a = null)<>, ({heapAtPre:=heap || _a:=a || _v:=v || exc:=null || (h:=heap || l:=l_0 || heap:=anon(heap, empty, anon_heap_LOOP_0<>) || a_1:=add(mul(l_0, Z(neglit(1(#)))), r_0)) || r:=jdiv(add(l_0, r_0), Z(2(#)))} ({b_2:=FALSE} (( (( b_2<> = TRUE -> ( (\\if (\\exists int x; (( (geq(x, Z(0(#))) & lt(x, length(a)))<> & select<[int]>(heap, a, arr(x)) = v)<>)) \\then ( select<[int]>(heap, a, arr(result_search)) = v) \\else ( result_search = Z(neglit(1(#))))<> & ( exc<> = null)<>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit)]\")>> & (\\forall Field f; (\\forall java.lang.Object o; (( ( (!(o = null)<>)<> & (!( select<[boolean]>(heapAtPre, o, java.lang.Object::#$created) = TRUE)<>)<>)<> | ( any::select(heapAtPre, o, f) = any::select(heap, o, f))<>)<>))<>)<>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>) & (( !b_2<> = TRUE -> ( (((((geq(l, Z(0(#))) & lt(l, r))<> & lt(r, length(_a)))<> & \\forall int x; ( (geq(x, Z(0(#))) & lt(x, l))<> -> lt(select<[int]>(heap, _a, arr(x)), _v)))<> & \\forall int x; ( (lt(r, x) & lt(x, length(_a)))<> -> lt(_v, select<[int]>(heap, _a, arr(x)))))<> & \\forall Field f; \\forall java.lang.Object o; ( !o = null & ! select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE | any::select(h, o, f) = any::select(heap, o, f)))< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>> & prec(add(mul(l, Z(neglit(1(#)))), r), a_1))< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>") ) (branch "if _a[mid] > _v false" (builtin "One Step Simplification" (formula "18")) @@ -648,7 +648,7 @@ name=BinarySearch[BinarySearch\\:\\:search([I,int)].JML normal_behavior operatio (builtin "One Step Simplification" (formula "18")) (rule "blockEmpty" (formula "18") (term "1")) (rule "lsContinue" (formula "18") (term "1")) - (opengoal " gt(r_0, add(Z(1(#)), l_0))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, geq(l_0, Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(l_0, r_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(r_0, length(a))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(x, l_0) & geq(x, Z(0(#))) -> lt(int::select(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)), v)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(r_0, x) & lt(x, length(a)) -> lt(v, int::select(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)))))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(anon_heap_LOOP_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(heap)<>, ( boolean::select(heap, a, java.lang.Object::) = TRUE)<>, measuredByEmpty<>, geq(length(a), Z(0(#))), (\\forall int x; \\forall int y; ( lt(x, y) & lt(y, length(a)) & geq(x, Z(0(#))) -> geq(int::select(heap, a, arr(y)), int::select(heap, a, arr(x)))))<> ==> gt(int::select(heap, a, arr(jdiv(add(l_0, r_0), Z(2(#))))), v)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, ( int::select(heap, a, arr(jdiv(add(l_0, r_0), Z(2(#))))) = v)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, (length(a) = Z(1(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (length(a) = Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (a = null)<>, ({heapAtPre:=heap || _a:=a || _v:=v || exc:=null || (h:=heap || r:=r_0 || heap:=anon(heap, empty, anon_heap_LOOP_0<>) || a_1:=add(mul(l_0, Z(neglit(1(#)))), r_0)) || l:=jdiv(add(l_0, r_0), Z(2(#)))} ({b_2:=FALSE} (( (( b_2<> = TRUE -> ( (\\if (\\exists int x; (( (geq(x, Z(0(#))) & lt(x, length(a)))<> & int::select(heap, a, arr(x)) = v)<>)) \\then ( int::select(heap, a, arr(result_search)) = v) \\else ( result_search = Z(neglit(1(#))))<> & ( exc<> = null)<>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit)]\")>> & (\\forall Field f; (\\forall java.lang.Object o; (( ( (!(o = null)<>)<> & (!( boolean::select(heapAtPre, o, java.lang.Object::) = TRUE)<>)<>)<> | ( any::select(heapAtPre, o, f) = any::select(heap, o, f))<>)<>))<>)<>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>) & (( !b_2<> = TRUE -> ( (((((geq(l, Z(0(#))) & lt(l, r))<> & lt(r, length(_a)))<> & \\forall int x; ( (geq(x, Z(0(#))) & lt(x, l))<> -> lt(int::select(heap, _a, arr(x)), _v)))<> & \\forall int x; ( (lt(r, x) & lt(x, length(_a)))<> -> lt(_v, int::select(heap, _a, arr(x)))))<> & \\forall Field f; \\forall java.lang.Object o; ( !o = null & ! boolean::select(h, o, java.lang.Object::) = TRUE | any::select(h, o, f) = any::select(heap, o, f)))< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>> & prec(add(mul(l, Z(neglit(1(#)))), r), a_1))< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>") + (opengoal " gt(r_0, add(Z(1(#)), l_0))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, geq(l_0, Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(l_0, r_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(r_0, length(a))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(x, l_0) & geq(x, Z(0(#))) -> lt(select<[int]>(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)), v)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(r_0, x) & lt(x, length(a)) -> lt(v, select<[int]>(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)))))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(anon_heap_LOOP_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(heap)<>, ( select<[boolean]>(heap, a, java.lang.Object::#$created) = TRUE)<>, measuredByEmpty<>, geq(length(a), Z(0(#))), (\\forall int x; \\forall int y; ( lt(x, y) & lt(y, length(a)) & geq(x, Z(0(#))) -> geq(select<[int]>(heap, a, arr(y)), select<[int]>(heap, a, arr(x)))))<> ==> gt(select<[int]>(heap, a, arr(jdiv(add(l_0, r_0), Z(2(#))))), v)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, ( select<[int]>(heap, a, arr(jdiv(add(l_0, r_0), Z(2(#))))) = v)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, (length(a) = Z(1(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (length(a) = Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (a = null)<>, ({heapAtPre:=heap || _a:=a || _v:=v || exc:=null || (h:=heap || r:=r_0 || heap:=anon(heap, empty, anon_heap_LOOP_0<>) || a_1:=add(mul(l_0, Z(neglit(1(#)))), r_0)) || l:=jdiv(add(l_0, r_0), Z(2(#)))} ({b_2:=FALSE} (( (( b_2<> = TRUE -> ( (\\if (\\exists int x; (( (geq(x, Z(0(#))) & lt(x, length(a)))<> & select<[int]>(heap, a, arr(x)) = v)<>)) \\then ( select<[int]>(heap, a, arr(result_search)) = v) \\else ( result_search = Z(neglit(1(#))))<> & ( exc<> = null)<>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit)]\")>> & (\\forall Field f; (\\forall java.lang.Object o; (( ( (!(o = null)<>)<> & (!( select<[boolean]>(heapAtPre, o, java.lang.Object::#$created) = TRUE)<>)<>)<> | ( any::select(heapAtPre, o, f) = any::select(heap, o, f))<>)<>))<>)<>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>) & (( !b_2<> = TRUE -> ( (((((geq(l, Z(0(#))) & lt(l, r))<> & lt(r, length(_a)))<> & \\forall int x; ( (geq(x, Z(0(#))) & lt(x, l))<> -> lt(select<[int]>(heap, _a, arr(x)), _v)))<> & \\forall int x; ( (lt(r, x) & lt(x, length(_a)))<> -> lt(_v, select<[int]>(heap, _a, arr(x)))))<> & \\forall Field f; \\forall java.lang.Object o; ( !o = null & ! select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE | any::select(h, o, f) = any::select(heap, o, f)))< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>> & prec(add(mul(l, Z(neglit(1(#)))), r), a_1))< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>") ) ) (branch "Null Reference (_a.length == 0 = null)" @@ -657,7 +657,7 @@ name=BinarySearch[BinarySearch\\:\\:search([I,int)].JML normal_behavior operatio (rule "closeFalse" (formula "1")) ) (branch "Index Out of Bounds (_a.length == 0 != null, but _a.length == 0 Out of Bounds!)" - (opengoal " ({heapAtPre:=heap || _a:=a || _v:=v || exc:=null || (h:=heap || (l:=l_0 || r:=r_0) || heap:=anon(heap, empty, anon_heap_LOOP_0<>) || a_1:=add(mul(l_0, Z(neglit(1(#)))), r_0)) || mid:=jdiv(add(l_0, r_0), Z(2(#)))} (( (!( _a< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>> = null)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>> & (( leq(length(_a< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>), mid< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>> | lt(mid< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, gt(r_0, add(Z(1(#)), l_0))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, geq(l_0, Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(l_0, r_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(r_0, length(a))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(x, l_0) & geq(x, Z(0(#))) -> lt(int::select(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)), v)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(r_0, x) & lt(x, length(a)) -> lt(v, int::select(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)))))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(anon_heap_LOOP_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(heap)<>, ( boolean::select(heap, a, java.lang.Object::) = TRUE)<>, measuredByEmpty<>, geq(length(a), Z(0(#))), (\\forall int x; \\forall int y; ( lt(x, y) & lt(y, length(a)) & geq(x, Z(0(#))) -> geq(int::select(heap, a, arr(y)), int::select(heap, a, arr(x)))))<> ==> ( int::select(heap, a, arr(jdiv(add(l_0, r_0), Z(2(#))))) = v)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, (length(a) = Z(1(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (length(a) = Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (a = null)<>, ({heapAtPre:=heap || _a:=a || _v:=v || exc:=null || (h:=heap || (l:=l_0 || r:=r_0) || heap:=anon(heap, empty, anon_heap_LOOP_0<>) || a_1:=add(mul(l_0, Z(neglit(1(#)))), r_0)) || mid:=jdiv(add(l_0, r_0), Z(2(#)))} false< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>") + (opengoal " ({heapAtPre:=heap || _a:=a || _v:=v || exc:=null || (h:=heap || (l:=l_0 || r:=r_0) || heap:=anon(heap, empty, anon_heap_LOOP_0<>) || a_1:=add(mul(l_0, Z(neglit(1(#)))), r_0)) || mid:=jdiv(add(l_0, r_0), Z(2(#)))} (( (!( _a< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>> = null)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>> & (( leq(length(_a< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>), mid< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>> | lt(mid< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, gt(r_0, add(Z(1(#)), l_0))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, geq(l_0, Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(l_0, r_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(r_0, length(a))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(x, l_0) & geq(x, Z(0(#))) -> lt(select<[int]>(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)), v)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(r_0, x) & lt(x, length(a)) -> lt(v, select<[int]>(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)))))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(anon_heap_LOOP_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(heap)<>, ( select<[boolean]>(heap, a, java.lang.Object::#$created) = TRUE)<>, measuredByEmpty<>, geq(length(a), Z(0(#))), (\\forall int x; \\forall int y; ( lt(x, y) & lt(y, length(a)) & geq(x, Z(0(#))) -> geq(select<[int]>(heap, a, arr(y)), select<[int]>(heap, a, arr(x)))))<> ==> ( select<[int]>(heap, a, arr(jdiv(add(l_0, r_0), Z(2(#))))) = v)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, (length(a) = Z(1(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (length(a) = Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (a = null)<>, ({heapAtPre:=heap || _a:=a || _v:=v || exc:=null || (h:=heap || (l:=l_0 || r:=r_0) || heap:=anon(heap, empty, anon_heap_LOOP_0<>) || a_1:=add(mul(l_0, Z(neglit(1(#)))), r_0)) || mid:=jdiv(add(l_0, r_0), Z(2(#)))} false< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>") ) ) ) @@ -667,7 +667,7 @@ name=BinarySearch[BinarySearch\\:\\:search([I,int)].JML normal_behavior operatio (rule "closeFalse" (formula "1")) ) (branch "Index Out of Bounds (_a.length == 0 != null, but _a.length == 0 Out of Bounds!)" - (opengoal " ({heapAtPre:=heap || _a:=a || _v:=v || exc:=null || (h:=heap || (l:=l_0 || r:=r_0) || heap:=anon(heap, empty, anon_heap_LOOP_0<>) || a_1:=add(mul(l_0, Z(neglit(1(#)))), r_0)) || mid:=jdiv(add(l_0, r_0), Z(2(#)))} (( (!( _a< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>> = null)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>> & (( leq(length(_a< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>), mid< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>> | lt(mid< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, gt(r_0, add(Z(1(#)), l_0))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, geq(l_0, Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(l_0, r_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(r_0, length(a))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(x, l_0) & geq(x, Z(0(#))) -> lt(int::select(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)), v)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(r_0, x) & lt(x, length(a)) -> lt(v, int::select(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)))))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(anon_heap_LOOP_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(heap)<>, ( boolean::select(heap, a, java.lang.Object::) = TRUE)<>, measuredByEmpty<>, geq(length(a), Z(0(#))), (\\forall int x; \\forall int y; ( lt(x, y) & lt(y, length(a)) & geq(x, Z(0(#))) -> geq(int::select(heap, a, arr(y)), int::select(heap, a, arr(x)))))<> ==> (length(a) = Z(1(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (length(a) = Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (a = null)<>, ({heapAtPre:=heap || _a:=a || _v:=v || exc:=null || (h:=heap || (l:=l_0 || r:=r_0) || heap:=anon(heap, empty, anon_heap_LOOP_0<>) || a_1:=add(mul(l_0, Z(neglit(1(#)))), r_0)) || mid:=jdiv(add(l_0, r_0), Z(2(#)))} false< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>") + (opengoal " ({heapAtPre:=heap || _a:=a || _v:=v || exc:=null || (h:=heap || (l:=l_0 || r:=r_0) || heap:=anon(heap, empty, anon_heap_LOOP_0<>) || a_1:=add(mul(l_0, Z(neglit(1(#)))), r_0)) || mid:=jdiv(add(l_0, r_0), Z(2(#)))} (( (!( _a< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>> = null)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>> & (( leq(length(_a< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>), mid< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>> | lt(mid< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, gt(r_0, add(Z(1(#)), l_0))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>, geq(l_0, Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(l_0, r_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, lt(r_0, length(a))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(x, l_0) & geq(x, Z(0(#))) -> lt(select<[int]>(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)), v)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (\\forall int x; ( lt(r_0, x) & lt(x, length(a)) -> lt(v, select<[int]>(anon(heap, empty, anon_heap_LOOP_0<>), a, arr(x)))))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(anon_heap_LOOP_0)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, wellFormed(heap)<>, ( select<[boolean]>(heap, a, java.lang.Object::#$created) = TRUE)<>, measuredByEmpty<>, geq(length(a), Z(0(#))), (\\forall int x; \\forall int y; ( lt(x, y) & lt(y, length(a)) & geq(x, Z(0(#))) -> geq(select<[int]>(heap, a, arr(y)), select<[int]>(heap, a, arr(x)))))<> ==> (length(a) = Z(1(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (length(a) = Z(0(#)))< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit)]\")>>, (a = null)<>, ({heapAtPre:=heap || _a:=a || _v:=v || exc:=null || (h:=heap || (l:=l_0 || r:=r_0) || heap:=anon(heap, empty, anon_heap_LOOP_0<>) || a_1:=add(mul(l_0, Z(neglit(1(#)))), r_0)) || mid:=jdiv(add(l_0, r_0), Z(2(#)))} false< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>)< (implicit)\",\"[ensures @ file BinarySearch.java @ line 5, ensures (implicit), assignable (implicit), loop_invariant @ file BinarySearch.java @ line 14]\")>>") ) ) (branch "Case 2" diff --git a/key.core.wd/src/main/resources/de/uka/ilkd/key/proof/rules/wdGeneralRules.key b/key.core.wd/src/main/resources/de/uka/ilkd/key/proof/rules/wdGeneralRules.key index ca57ca75441..276dbd2998c 100644 --- a/key.core.wd/src/main/resources/de/uka/ilkd/key/proof/rules/wdGeneralRules.key +++ b/key.core.wd/src/main/resources/de/uka/ilkd/key/proof/rules/wdGeneralRules.key @@ -118,10 +118,10 @@ wd_Type_Cast { \find( - wd(alpha::cast(t)) + wd(cast<[alpha]>(t)) ) \replacewith( - wd(t) & (alpha::instance(t) = TRUE) + wd(t) & (instance<[alpha]>(t) = TRUE) ) \heuristics(simplify) }; @@ -129,7 +129,7 @@ wd_Type_ExactInstance { \find( - wd(alpha::exactInstance(t)) + wd(exactInstance<[alpha]>(t)) ) \replacewith( wd(t) @@ -140,7 +140,7 @@ wd_Type_Instance { \find( - wd(alpha::instance(t)) + wd(instance<[alpha]>(t)) ) \replacewith( wd(t) diff --git a/key.core.wd/src/main/resources/de/uka/ilkd/key/proof/rules/wdHeapRules.key b/key.core.wd/src/main/resources/de/uka/ilkd/key/proof/rules/wdHeapRules.key index 8d3de457397..94d7a3148a0 100644 --- a/key.core.wd/src/main/resources/de/uka/ilkd/key/proof/rules/wdHeapRules.key +++ b/key.core.wd/src/main/resources/de/uka/ilkd/key/proof/rules/wdHeapRules.key @@ -40,7 +40,7 @@ wd_Heap_Reference_Created { \find( - wd(alpha::select(h, o, java.lang.Object::#$created)) + wd(select<[alpha]>(h, o, java.lang.Object::#$created)) ) \replacewith( wd(h) & wd(o) & wellFormed(h) & o != null @@ -51,7 +51,7 @@ wd_Heap_Reference { \find( - wd(alpha::select(h, o, f)) + wd(select<[alpha]>(h, o, f)) ) \varcond( \not \isArray(o), @@ -59,7 +59,7 @@ ) \replacewith( wd(h) & wd(o) & wd(f) & wellFormed(h) & o != null - & (f = java.lang.Object::#$created | boolean::select(h, o, java.lang.Object::#$created) = TRUE) + & (f = java.lang.Object::#$created | select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE) ) \heuristics(simplify) }; @@ -67,7 +67,7 @@ wd_Heap_Reference_Static { \find( - wd(alpha::select(h, o, f)) + wd(select<[alpha]>(h, o, f)) ) \varcond( \not \isArray(o), @@ -82,14 +82,14 @@ wd_Heap_Reference_Array { \find( - wd(alpha::select(h, o, arr(i))) + wd(select<[alpha]>(h, o, arr(i))) ) \varcond( \isArray(o) ) \replacewith( wd(h) & wd(o) & wd(i) & wellFormed(h) & o != null - & boolean::select(h, o, java.lang.Object::#$created) = TRUE + & select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE & leq(0, i) & lt(i, length(o)) ) \heuristics(simplify) @@ -124,7 +124,7 @@ ) \replacewith( wd(h) & wd(o) & wd(f) & wd(a) & wellFormed(h) & o != null - & boolean::select(h, o, java.lang.Object::#$created) = TRUE + & select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE ) \heuristics(simplify) }; diff --git a/key.core.wd/src/main/resources/de/uka/ilkd/key/proof/rules/wdLocSetRules.key b/key.core.wd/src/main/resources/de/uka/ilkd/key/proof/rules/wdLocSetRules.key index d144d6110df..a067cd5007c 100644 --- a/key.core.wd/src/main/resources/de/uka/ilkd/key/proof/rules/wdLocSetRules.key +++ b/key.core.wd/src/main/resources/de/uka/ilkd/key/proof/rules/wdLocSetRules.key @@ -178,7 +178,7 @@ ) \replacewith( wd(h) & wd(o) & wd(l) & wellFormed(h) & o != null - & boolean::select(h, o, java.lang.Object::#$created) = TRUE + & select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE ) \heuristics(simplify) }; @@ -193,7 +193,7 @@ ) \replacewith( wd(h) & wd(o) & wd(l) & wellFormed(h) & o != null - & boolean::select(h, o, java.lang.Object::#$created) = TRUE + & select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE ) \heuristics(simplify) }; diff --git a/key.core.wd/src/main/resources/de/uka/ilkd/key/proof/rules/wdSeqRules.key b/key.core.wd/src/main/resources/de/uka/ilkd/key/proof/rules/wdSeqRules.key index b741ab67dad..dfd4429c191 100644 --- a/key.core.wd/src/main/resources/de/uka/ilkd/key/proof/rules/wdSeqRules.key +++ b/key.core.wd/src/main/resources/de/uka/ilkd/key/proof/rules/wdSeqRules.key @@ -57,7 +57,7 @@ wd_Seq_Get { \find( - wd(alpha::seqGet(s, n)) + wd(seqGet<[alpha]>(s, n)) ) \replacewith( wd(s) & wd(n) & leq(0, n) & lt(n, seqLen(s)) diff --git a/key.core/src/main/antlr4/KeYLexer.g4 b/key.core/src/main/antlr4/KeYLexer.g4 index 60113499f8f..3b2dd941696 100644 --- a/key.core/src/main/antlr4/KeYLexer.g4 +++ b/key.core/src/main/antlr4/KeYLexer.g4 @@ -382,8 +382,8 @@ GREATEREQUAL : '>' '=' | '\u2265' ; -OPENTYPEPARAMS : '<['; -CLOSETYPEPARAMS : ']>'; +OPENTYPEPARAMS : '<' '['; +CLOSETYPEPARAMS : ']' '>'; WS: [ \t\n\r\u00a0]+ -> channel(HIDDEN); //U+00A0 = non breakable whitespace STRING_LITERAL:'"' ('\\' . | ~( '"' | '\\') )* '"' ; @@ -391,7 +391,6 @@ LESS: '<'; LESSEQUAL: '<' '=' | '\u2264'; LGUILLEMETS: '<' '<' | '«' | '‹'; RGUILLEMETS: '>''>' | '»' | '›'; -IMPLICIT_IDENT: '<' '$'? (LETTER)+ '>' ('$lmtd')? -> type(IDENT); EQV: '<->' | '\u2194'; CHAR_LITERAL 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 e7c27041e8e..6dfc71cd6e1 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 @@ -570,11 +570,11 @@ public Expression convertToProgramElement(JTerm term) { private Expression translateJavaCast(JTerm term, ExtList children) { if (term.op() instanceof Function function) { - if (function instanceof SortDependingFunction sdf) { - SortDependingFunction castFunction = - SortDependingFunction.getFirstInstance(JavaDLTheory.CAST_NAME, services); - if (sdf.isSimilar(castFunction)) { - Sort s = sdf.getSortDependingOn(); + if (function instanceof ParametricFunctionInstance pfi) { + ParametricFunctionDecl castFunction = + services.getJavaDLTheory().getCastSymbol(services); + if (pfi.getBase() == (castFunction)) { + Sort s = pfi.getArgs().head().sort(); KeYJavaType kjt = services.getJavaInfo().getKeYJavaType(s); if (kjt != null) { children.add(new TypeRef(kjt)); 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 138a9ca44fe..8c9a339c4f4 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 @@ -16,6 +16,7 @@ import de.uka.ilkd.key.java.ast.reference.FieldReference; import de.uka.ilkd.key.java.ast.reference.ReferencePrefix; import de.uka.ilkd.key.java.transformations.pipeline.PipelineConstants; +import de.uka.ilkd.key.logic.GenericArgument; import de.uka.ilkd.key.logic.JTerm; import de.uka.ilkd.key.logic.JavaDLFieldNames; import de.uka.ilkd.key.logic.TermServices; @@ -61,8 +62,8 @@ public final class HeapLDT extends LDT { private final Sort fieldSort; // select/store - private final SortDependingFunction select; - private final SortDependingFunction finalFunction; + private final ParametricFunctionDecl select; + private final ParametricFunctionDecl finalFunction; private final Function store; private final Function create; private final Function anon; @@ -72,10 +73,10 @@ public final class HeapLDT extends LDT { private final Function arr; private final Function created; private final Function initialized; - private final SortDependingFunction classPrepared; - private final SortDependingFunction classInitialized; - private final SortDependingFunction classInitializationInProgress; - private final SortDependingFunction classErroneous; + private final ParametricFunctionDecl classPrepared; + private final ParametricFunctionDecl classInitialized; + private final ParametricFunctionDecl classInitializationInProgress; + private final ParametricFunctionDecl classErroneous; // length private final Function length; @@ -105,8 +106,8 @@ public HeapLDT(TermServices services) { services.getNamespaces().programVariables(); fieldSort = sorts.lookup(new Name("Field")); - select = addSortDependingFunction(services, SELECT_NAME.toString()); - finalFunction = addSortDependingFunction(services, FINAL_NAME.toString()); + select = addParametricFunction(services, SELECT_NAME.toString()); + finalFunction = addParametricFunction(services, FINAL_NAME.toString()); store = addFunction(services, STORE_NAME.toString()); create = addFunction(services, "create"); anon = addFunction(services, "anon"); @@ -114,11 +115,11 @@ public HeapLDT(TermServices services) { arr = addFunction(services, "arr"); created = addFunction(services, "java.lang.Object::#$created"); initialized = addFunction(services, "java.lang.Object::#$initialized"); - classPrepared = addSortDependingFunction(services, "#$classPrepared"); - classInitialized = addSortDependingFunction(services, "#$classInitialized"); + classPrepared = addParametricFunction(services, "$classPrepared"); + classInitialized = addParametricFunction(services, "$classInitialized"); classInitializationInProgress = - addSortDependingFunction(services, "#$classInitializationInProgress"); - classErroneous = addSortDependingFunction(services, "#$classErroneous"); + addParametricFunction(services, "$classInitializationInProgress"); + classErroneous = addParametricFunction(services, "$classErroneous"); length = addFunction(services, "length"); nullFunc = addFunction(services, "null"); acc = addFunction(services, "acc"); @@ -178,6 +179,11 @@ public record SplitFieldName(String className, String attributeName) { * @return the split field name */ public static @Nullable SplitFieldName trySplitFieldName(Named symbol) { + if (symbol instanceof ParametricFunctionInstance pfi) { + // e.g., $classErroneous<[A]> + return new SplitFieldName(pfi.getArgs().head().sort().toString(), + pfi.getBase().name().toString()); + } var name = symbol.name().toString(); int endOfClassName = name.indexOf(JavaDLFieldNames.FIELD_INFIX); @@ -231,11 +237,20 @@ public Sort getFieldSort() { } + public ParametricFunctionDecl getSelect() { + return select; + } + /** * Returns the select function for the given sort. */ - public SortDependingFunction getSelect(Sort instanceSort, TermServices services) { - return select.getInstanceFor(instanceSort, services); + public ParametricFunctionInstance getSelect(Sort instanceSort, TermServices services) { + return ParametricFunctionInstance.get(select, + ImmutableList.of(new GenericArgument(instanceSort)), (Services) services); + } + + public @NonNull ParametricFunctionDecl getFinal() { + return finalFunction; } /** @@ -245,20 +260,21 @@ public SortDependingFunction getSelect(Sort instanceSort, TermServices services) * @param services the services to find/create the sort-depending function * @return the function symbol to access final fields for the given instance sort */ - public @NonNull SortDependingFunction getFinal(@NonNull Sort instanceSort, + public @NonNull ParametricFunctionInstance getFinal(@NonNull Sort instanceSort, @NonNull Services services) { - return finalFunction.getInstanceFor(instanceSort, services); + return ParametricFunctionInstance.get(finalFunction, + ImmutableList.of(new GenericArgument(instanceSort)), (Services) services); } /** * Check if the given operator is an instance of the "final" function to access final fields. * * @param op the operator to check - * @return true if the operator is an instance of the "X::final" srot-depending function + * @return true if the operator is an instance of the {@code final<[X]>} parametric function */ public boolean isFinalOp(org.key_project.logic.op.Operator op) { - return op instanceof SortDependingFunction - && ((SortDependingFunction) op).isSimilar(finalFunction); + return op instanceof ParametricFunctionInstance pfi + && pfi.getBase() == finalFunction; } @@ -268,15 +284,15 @@ public boolean isFinalOp(org.key_project.logic.op.Operator op) { */ public Sort getSortOfSelect(org.key_project.logic.op.Operator op) { if (isSelectOp(op)) { - return ((SortDependingFunction) op).getSortDependingOn(); + return ((ParametricFunctionInstance) op).getArgs().head().sort(); } else { return null; } } public boolean isSelectOp(org.key_project.logic.op.Operator op) { - return op instanceof SortDependingFunction - && ((SortDependingFunction) op).isSimilar(select); + return op instanceof ParametricFunctionInstance pfi + && pfi.getBase() == (select); } @@ -316,23 +332,27 @@ public Function getInitialized() { public Function getClassPrepared(Sort instanceSort, TermServices services) { - return classPrepared.getInstanceFor(instanceSort, services); + return ParametricFunctionInstance.get(classPrepared, + ImmutableList.of(new GenericArgument(instanceSort)), (Services) services); } public Function getClassInitialized(Sort instanceSort, TermServices services) { - return classInitialized.getInstanceFor(instanceSort, services); + return ParametricFunctionInstance.get(classInitialized, + ImmutableList.of(new GenericArgument(instanceSort)), (Services) services); } public Function getClassInitializationInProgress(Sort instanceSort, TermServices services) { - return classInitializationInProgress.getInstanceFor(instanceSort, services); + return ParametricFunctionInstance.get(classInitializationInProgress, + ImmutableList.of(new GenericArgument(instanceSort)), (Services) services); } public Function getClassErroneous(Sort instanceSort, TermServices services) { - return classErroneous.getInstanceFor(instanceSort, services); + return ParametricFunctionInstance.get(classErroneous, + ImmutableList.of(new GenericArgument(instanceSort)), (Services) services); } @@ -428,11 +448,13 @@ public Function getFieldSymbolForPV(LocationVariable fieldPV, Services services) } final Name kind = new Name(name.toString().substring(index + 2)); - SortDependingFunction firstInstance = - SortDependingFunction.getFirstInstance(kind, services); - if (firstInstance != null) { + final String nameWithoutFieldPrefix = kind.toString().substring(1); // '#' + var firstInstance = + services.getNamespaces().parametricFunctions().lookup(nameWithoutFieldPrefix); + if (firstInstance != null && firstInstance.sort().extendsTrans(fieldSort)) { Sort sortDependingOn = fieldPV.getContainerType().getSort(); - result = firstInstance.getInstanceFor(sortDependingOn, services); + result = ParametricFunctionInstance.get(firstInstance, + ImmutableList.of(new GenericArgument(sortDependingOn)), services); } else { if (fieldPV.isModel()) { int heapCount = 0; @@ -485,8 +507,8 @@ public boolean containsFunction(Function op) { if (super.containsFunction(op)) { return true; } - if (op instanceof SortDependingFunction) { - return ((SortDependingFunction) op).isSimilar(select); + if (op instanceof ParametricFunctionInstance pfi) { + return pfi.getBase() == (select); } return op.isUnique() && op.sort() == getFieldSort(); } @@ -536,8 +558,8 @@ public boolean hasLiteralFunction(Function f) { @Override public Expression translateTerm(JTerm t, ExtList children, Services services) { - if (t.op() instanceof SortDependingFunction - && ((SortDependingFunction) t.op()).isSimilar(select)) { + if (t.op() instanceof ParametricFunctionInstance pfi + && pfi.getBase() == (select)) { ProgramVariable heap = (ProgramVariable) children.removeFirst(); if (heap != getHeap()) { throw new IllegalArgumentException("Can only translate field access to base heap."); @@ -564,6 +586,4 @@ public Type getType(JTerm t) { assert false; return null; } - - } diff --git a/key.core/src/main/java/de/uka/ilkd/key/ldt/JavaDLTheory.java b/key.core/src/main/java/de/uka/ilkd/key/ldt/JavaDLTheory.java index 8100098a4f2..3f841bfd2a5 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/ldt/JavaDLTheory.java +++ b/key.core/src/main/java/de/uka/ilkd/key/ldt/JavaDLTheory.java @@ -9,15 +9,18 @@ import de.uka.ilkd.key.java.ast.expression.Operator; import de.uka.ilkd.key.java.ast.expression.literal.Literal; import de.uka.ilkd.key.java.ast.reference.ExecutionContext; +import de.uka.ilkd.key.logic.GenericArgument; import de.uka.ilkd.key.logic.JTerm; import de.uka.ilkd.key.logic.TermServices; -import de.uka.ilkd.key.logic.op.SortDependingFunction; +import de.uka.ilkd.key.logic.op.ParametricFunctionDecl; +import de.uka.ilkd.key.logic.op.ParametricFunctionInstance; import de.uka.ilkd.key.logic.sort.SortImpl; import org.key_project.logic.Name; import org.key_project.logic.op.Function; import org.key_project.logic.sort.Sort; import org.key_project.util.ExtList; +import org.key_project.util.collection.ImmutableList; /** * The JavaDL theory class provides access to function symvols, sorts that are part of the core @@ -27,16 +30,16 @@ public class JavaDLTheory extends LDT { /** - * Name of {@link #getExactInstanceofSymbol(Sort,TermServices)}. + * Name of {@link #getExactInstanceofSymbol(Services)}. */ public static final Name EXACT_INSTANCE_NAME = new Name("exactInstance"); /** - * Name of {@link #getCastSymbol(Sort,TermServices)}. + * Name of {@link #getCastSymbol(Sort,Services)}. */ public static final Name CAST_NAME = new Name("cast"); /** - * Name of {@link #getInstanceofSymbol(Sort,TermServices)}. + * Name of {@link #getInstanceofSymbol(Sort,Services)}. */ public static final Name INSTANCE_NAME = new Name("instance"); @@ -98,6 +101,10 @@ protected JavaDLTheory(TermServices services) { * } */ + public final ParametricFunctionDecl getCastSymbol(Services services) { + return services.getNamespaces().parametricFunctions().lookup(CAST_NAME); + } + /** * retrieves the cast function for the given sort * @@ -105,15 +112,18 @@ protected JavaDLTheory(TermServices services) { * @param services the TermServices for lookup * @return the found cast function */ - public final SortDependingFunction getCastSymbol(Sort sort, TermServices services) { - SortDependingFunction castFunction = - SortDependingFunction.getFirstInstance(CAST_NAME, services); + public final ParametricFunctionInstance getCastSymbol(Sort sort, Services services) { + ParametricFunctionDecl castFunction = + services.getNamespaces().parametricFunctions().lookup(CAST_NAME); if (castFunction == null) { throw new IllegalStateException("No 'cast' function found for any type."); } - SortDependingFunction result = castFunction.getInstanceFor(sort, services); - assert result.getSortDependingOn() == sort && result.sort() == sort; - return result; + return ParametricFunctionInstance.get(castFunction, + ImmutableList.of(new GenericArgument(sort)), services); + } + + public final ParametricFunctionDecl getInstanceofSymbol(Services services) { + return services.getNamespaces().parametricFunctions().lookup(INSTANCE_NAME); } /** @@ -123,14 +133,19 @@ public final SortDependingFunction getCastSymbol(Sort sort, TermServices service * @param services the TermServices for lookup * @return the found instanceof function */ - public final SortDependingFunction getInstanceofSymbol(Sort sort, TermServices services) { - SortDependingFunction result = SortDependingFunction - .getFirstInstance(INSTANCE_NAME, services) - .getInstanceFor(sort, services); - assert result.getSortDependingOn() == sort; - return result; + public final ParametricFunctionInstance getInstanceofSymbol(Sort sort, Services services) { + ParametricFunctionDecl instanceOfFunction = + services.getNamespaces().parametricFunctions().lookup(INSTANCE_NAME); + if (instanceOfFunction == null) { + throw new IllegalStateException("No 'instance' function found for any type."); + } + return ParametricFunctionInstance.get(instanceOfFunction, + ImmutableList.of(new GenericArgument(sort)), services); } + public final ParametricFunctionDecl getExactInstanceofSymbol(Services services) { + return services.getNamespaces().parametricFunctions().lookup(EXACT_INSTANCE_NAME); + } /** * retrieves the exactInstance function for the given sort @@ -139,12 +154,14 @@ public final SortDependingFunction getInstanceofSymbol(Sort sort, TermServices s * @param services the TermServices for lookup * @return the found exactInstance function */ - public final SortDependingFunction getExactInstanceofSymbol(Sort sort, TermServices services) { - SortDependingFunction result = SortDependingFunction - .getFirstInstance(EXACT_INSTANCE_NAME, services) - .getInstanceFor(sort, services); - assert result.getSortDependingOn() == sort; - return result; + public final ParametricFunctionInstance getExactInstanceofSymbol(Sort sort, Services services) { + ParametricFunctionDecl exactInstanceFn = + services.getNamespaces().parametricFunctions().lookup(EXACT_INSTANCE_NAME); + if (exactInstanceFn == null) { + throw new IllegalStateException("No 'exactInstance' function found for any type."); + } + return ParametricFunctionInstance.get(exactInstanceFn, + ImmutableList.of(new GenericArgument(sort)), services); } 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 ba54bcb054b..fe11de64b3b 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 @@ -14,7 +14,7 @@ import de.uka.ilkd.key.java.ast.reference.ExecutionContext; import de.uka.ilkd.key.logic.JTerm; import de.uka.ilkd.key.logic.TermServices; -import de.uka.ilkd.key.logic.op.SortDependingFunction; +import de.uka.ilkd.key.logic.op.ParametricFunctionDecl; import org.key_project.logic.Name; import org.key_project.logic.Named; @@ -42,6 +42,8 @@ public abstract class LDT implements Named { /** the namespace of functions this LDT feels responsible for */ private final Namespace functions = new Namespace<>(); + /// the namespace of parametric functions this LDT feels responsible for + private final Namespace parametricFunctions = new Namespace<>(); // ------------------------------------------------------------------------- // constructors @@ -80,6 +82,16 @@ protected final Function addFunction(Function f) { return f; } + /** + * adds a parametric function to the LDT + * + * @return the added parametric function (for convenience reasons) + */ + protected final ParametricFunctionDecl addParametricFunction(ParametricFunctionDecl f) { + parametricFunctions.addSafely(f); + return f; + } + /** * looks up a function in the namespace and adds it to the LDT * @@ -96,13 +108,12 @@ protected final F addFunction(TermServices services, String return (F) addFunction(f); } - protected final SortDependingFunction addSortDependingFunction(TermServices services, - String kind) { - final SortDependingFunction f = - SortDependingFunction.getFirstInstance(new Name(kind), services); - assert f != null : "LDT: Sort depending function " + kind + " not found"; - addFunction(f); - return f; + protected final ParametricFunctionDecl addParametricFunction(TermServices services, + String name) { + final ParametricFunctionDecl f = + services.getNamespaces().parametricFunctions().lookup(name); + assert f != null : "LDT: Parametric function " + name + " not found"; + return addParametricFunction(f); } /** 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 765044080a2..c020d260515 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 @@ -11,14 +11,17 @@ import de.uka.ilkd.key.java.ast.expression.literal.Literal; import de.uka.ilkd.key.java.ast.expression.operator.adt.*; import de.uka.ilkd.key.java.ast.reference.ExecutionContext; +import de.uka.ilkd.key.logic.GenericArgument; import de.uka.ilkd.key.logic.JTerm; import de.uka.ilkd.key.logic.TermServices; -import de.uka.ilkd.key.logic.op.SortDependingFunction; +import de.uka.ilkd.key.logic.op.ParametricFunctionDecl; +import de.uka.ilkd.key.logic.op.ParametricFunctionInstance; import org.key_project.logic.Name; import org.key_project.logic.op.Function; import org.key_project.logic.sort.Sort; import org.key_project.util.ExtList; +import org.key_project.util.collection.ImmutableList; import org.jspecify.annotations.Nullable; @@ -29,7 +32,7 @@ public final class SeqLDT extends LDT { public static final Name SEQGET_NAME = new Name("seqGet"); // getters - private final SortDependingFunction seqGet; + private final ParametricFunctionDecl seqGet; private final Function seqLen; private final Function seqIndexOf; @@ -45,7 +48,7 @@ public final class SeqLDT extends LDT { public SeqLDT(TermServices services) { super(NAME, services); - seqGet = addSortDependingFunction(services, "seqGet"); + seqGet = addParametricFunction((Services) services, "seqGet"); seqLen = addFunction(services, "seqLen"); seqEmpty = addFunction(services, "seqEmpty"); seqSingleton = addFunction(services, "seqSingleton"); @@ -58,9 +61,13 @@ public SeqLDT(TermServices services) { values = addFunction(services, "values"); } + public ParametricFunctionDecl getSeqGet() { + return seqGet; + } - public SortDependingFunction getSeqGet(Sort instanceSort, TermServices services) { - return seqGet.getInstanceFor(instanceSort, services); + public ParametricFunctionInstance getSeqGet(Sort instanceSort, TermServices services) { + return ParametricFunctionInstance.get(seqGet, + ImmutableList.of(new GenericArgument(instanceSort)), (Services) services); } @@ -149,7 +156,7 @@ public Function getFunctionFor(Operator op, Services serv, ExecutionContext ec) case SeqReverse ignored -> seqReverse; case SeqPut ignored -> seqUpd; case SeqIndexOf ignored -> seqIndexOf; - case SeqGet ignored -> seqGet; + case SeqGet ignored -> getSeqGet(op.getKeYJavaType(serv, ec).getSort(), serv); case SeqLength ignored -> seqLen; default -> throw new AssertionError(); }; 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 index 36a3614ea5e..633293f600d 100644 --- 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 @@ -10,32 +10,36 @@ import de.uka.ilkd.key.java.ast.expression.literal.Literal; import de.uka.ilkd.key.java.ast.expression.operator.Subtype; import de.uka.ilkd.key.java.ast.reference.ExecutionContext; +import de.uka.ilkd.key.logic.GenericArgument; import de.uka.ilkd.key.logic.JTerm; import de.uka.ilkd.key.logic.TermServices; -import de.uka.ilkd.key.logic.op.SortDependingFunction; +import de.uka.ilkd.key.logic.op.ParametricFunctionDecl; +import de.uka.ilkd.key.logic.op.ParametricFunctionInstance; import de.uka.ilkd.key.proof.io.ProofSaver; import org.key_project.logic.Name; import org.key_project.logic.op.Function; import org.key_project.logic.sort.Sort; import org.key_project.util.ExtList; +import org.key_project.util.collection.ImmutableList; public final class SortLDT extends LDT { public static final Name NAME = new Name("SORT"); - private final SortDependingFunction ssort; + private final ParametricFunctionDecl ssort; private final Function ssubsort; public SortLDT(TermServices services) { super(NAME, services); - ssort = addSortDependingFunction(services, "ssort"); + ssort = addParametricFunction((Services) services, "ssort"); ssubsort = addFunction(services, "ssubsort"); } - public SortDependingFunction getSsort(Sort instanceSort, TermServices services) { - return ssort.getInstanceFor(instanceSort, services); + public ParametricFunctionInstance getSsort(Sort instanceSort, TermServices services) { + return ParametricFunctionInstance.get(ssort, + ImmutableList.of(new GenericArgument(instanceSort)), (Services) services); } public Function getSsubsort() { @@ -82,12 +86,12 @@ public Function getFunctionFor(Operator op, Services services, @Override public boolean hasLiteralFunction(Function f) { - return f instanceof SortDependingFunction sf && sf.isSimilar(ssort); + return f instanceof ParametricFunctionInstance sf && sf.getBase() == ssort; } @Override public Expression translateTerm(JTerm t, ExtList children, Services services) { - if (t.op() instanceof SortDependingFunction sf && sf.isSimilar(ssort)) { + if (t.op() instanceof ParametricFunctionInstance sf && sf.getBase() == ssort) { // TODO } diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/op/ParametricFunctionDecl.java b/key.core/src/main/java/de/uka/ilkd/key/logic/op/ParametricFunctionDecl.java index 78b7a6a1c49..4b35f043001 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/op/ParametricFunctionDecl.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/op/ParametricFunctionDecl.java @@ -76,4 +76,9 @@ public ImmutableList getParameters() { public @NonNull Name name() { return name; } + + @Override + public String toString() { + return name().toString(); + } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/op/SortDependingFunction.java b/key.core/src/main/java/de/uka/ilkd/key/logic/op/SortDependingFunction.java deleted file mode 100644 index 0fcae3becb2..00000000000 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/op/SortDependingFunction.java +++ /dev/null @@ -1,211 +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.logic.op; - -import de.uka.ilkd.key.java.Services; -import de.uka.ilkd.key.ldt.JavaDLTheory; -import de.uka.ilkd.key.logic.NamespaceSet; -import de.uka.ilkd.key.logic.TermServices; -import de.uka.ilkd.key.logic.sort.GenericSort; -import de.uka.ilkd.key.logic.sort.ParametricSortInstance; -import de.uka.ilkd.key.logic.sort.ProgramSVSort; - -import org.key_project.logic.Name; -import org.key_project.logic.Namespace; -import org.key_project.logic.SyntaxElement; -import org.key_project.logic.op.Function; -import org.key_project.logic.sort.Sort; -import org.key_project.util.collection.ImmutableArray; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - - -/** - * The objects of this class represent families of function symbols, where each family contains an - * instantiation of a template symbol for a particular sort. The following invariant has to hold: - * Given two sort-depending functions f1 and f2 then from f1.isSimilar(f2) and - * f1.getSortDependingOn() == f2.getSortDependingOn() follows f1 == f2 - */ -public final class SortDependingFunction extends JFunction { - private static final Logger LOGGER = LoggerFactory.getLogger(SortDependingFunction.class); - - private final SortDependingFunctionTemplate template; - private final Sort sortDependingOn; - - // ------------------------------------------------------------------------- - // constructors - // ------------------------------------------------------------------------- - - private SortDependingFunction(SortDependingFunctionTemplate template, Sort sortDependingOn, - Services services) { - super(instantiateName(template.kind, sortDependingOn), - ParametricSortInstance.instantiate(template.sortDependingOn, sortDependingOn, - template.sort, services), - instantiateArgSorts(template, sortDependingOn, services), null, template.unique, false); - this.template = template; - this.sortDependingOn = sortDependingOn; - } - - - // ------------------------------------------------------------------------- - // internal methods - // ------------------------------------------------------------------------- - - private static Name instantiateName(Name kind, Sort sortDependingOn) { - return new Name(sortDependingOn + "::" + kind); - } - - - private static Sort instantiateSort(SortDependingFunctionTemplate template, - Sort sortDependingOn) { - return template.sort == template.sortDependingOn ? sortDependingOn : template.sort; - } - - - private static ImmutableArray instantiateArgSorts(SortDependingFunctionTemplate template, - Sort sortDependingOn, Services services) { - Sort[] result = new Sort[template.argSorts.size()]; - for (int i = 0; i < result.length; i++) { - result[i] = ParametricSortInstance.instantiate(template.sortDependingOn, - sortDependingOn, template.argSorts.get(i), services); - } - return new ImmutableArray<>(result); - } - - - // ------------------------------------------------------------------------- - // public interface - // ------------------------------------------------------------------------- - - @Override - public int hashCode() { - return name().hashCode(); - } - - public static SortDependingFunction createFirstInstance(GenericSort sortDependingOn, Name kind, - Sort sort, Sort[] argSorts, boolean unique, Services services) { - SortDependingFunctionTemplate template = new SortDependingFunctionTemplate(sortDependingOn, - kind, sort, new ImmutableArray<>(argSorts), unique); - return new SortDependingFunction(template, JavaDLTheory.ANY, services); - } - - - public static SortDependingFunction getFirstInstance(Name kind, TermServices services) { - return (SortDependingFunction) services.getNamespaces().functions() - .lookup(instantiateName(kind, JavaDLTheory.ANY)); - } - - /** - * returns the variant for the given sort - * - * @param sort - * the {@link Sort} for which to retrieve the corresponding variant of this function - * @param services - * the {@link Services} - * @return the variant for the given sort - */ - public synchronized SortDependingFunction getInstanceFor(Sort sort, TermServices services) { - if (sort == this.sortDependingOn) { - return this; - } - - SortDependingFunction n = (SortDependingFunction) services.getNamespaces() - .lookup(instantiateName(getKind(), sort)); - - if (sort instanceof ProgramSVSort) { - throw new AssertionError(); - } - if (sort == AbstractTermTransformer.METASORT) { - throw new AssertionError(); - } - - final NamespaceSet namespaces = services.getNamespaces(); - Namespace functions = namespaces.functions(); - - SortDependingFunction result; - synchronized (namespaces) { - result = (SortDependingFunction) namespaces.lookup(instantiateName(getKind(), sort)); - // ugly: multiple generic sorts with the same name may exist over time - - if (result != null && sort instanceof GenericSort - && result.getSortDependingOn() != sort) { - result = new SortDependingFunction(template, sort, (Services) services); - synchronized (functions) { - functions.add(result); - if (instantiateName(getKind(), sort).toString().contains("String") - && instantiateName(getKind(), sort).toString().contains("seqGet") - && (n == null || n.getSortDependingOn() != sort)) { - LOGGER.debug("Hash code: {}", result.hashCode()); - } - } - } else if (result == null) { - result = new SortDependingFunction(template, sort, (Services) services); - // The namespaces may be wrapped for local symbols - // Sort depending on functions are to be added to the "root" namespace, however. - // Therefore, let's rewind to the root (MU, 2017-03) - synchronized (functions) { - while (functions.parent() != null) { - functions = functions.parent(); - } - synchronized (functions) { - functions.addSafely(result); - } - } - } - } - - if (result.getSortDependingOn() != sort) { - throw new AssertionError( - String.format("%s depends on %s (hash %d) but should depend on %s (hash %d)", - result, result.getSortDependingOn(), result.hashCode(), sort, sort.hashCode())); - } - if (!isSimilar(result)) { - throw new AssertionError(result + " should be similar to " + this); - } - if (namespaces.lookup(instantiateName(getKind(), sort)) != result) { - throw new AssertionError(); - } - - return result; - } - - - public Sort getSortDependingOn() { - return sortDependingOn; - } - - - public boolean isSimilar(SortDependingFunction p) { - return getKind().equals(p.getKind()); - } - - - public Name getKind() { - return template.kind; - } - - // ------------------------------------------------------------------------- - // inner classes - // ------------------------------------------------------------------------- - - private record SortDependingFunctionTemplate( - GenericSort sortDependingOn, Name kind, Sort sort, - ImmutableArray argSorts, boolean unique) { - } - - @Override - public int getChildCount() { - return 1; - } - - @Override - public SyntaxElement getChild(int n) { - if (n == 0) { - return QualifierWrapper.get(sortDependingOn); - } - throw new IndexOutOfBoundsException( - "SortDependingFunction " + name() + " has only one child"); - } -} 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 4ecd37159ca..edeffedf972 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 @@ -143,8 +143,8 @@ public Sort visitArg_sorts_or_formula_helper(KeYParser.Arg_sorts_or_formula_help * @param varfuncName * the String with the symbols name */ - protected Operator lookupVarfuncId(ParserRuleContext ctx, String varfuncName, String sortName, - Sort sort, KeYParser.Formal_sort_argsContext genericArgsCtxt) { + protected Operator lookupVarfuncId(ParserRuleContext ctx, String varfuncName, + KeYParser.Formal_sort_argsContext genericArgsCtxt) { Name name = new Name(varfuncName); Operator[] operators = { schemaVariables().lookup(name), variables().lookup(name), @@ -160,36 +160,6 @@ protected Operator lookupVarfuncId(ParserRuleContext ctx, String varfuncName, St } } - if (sort != null || sortName != null) { - Name fqName = - new Name((sort != null ? sort.toString() : sortName) + "::" + varfuncName); - operators = - new Operator[] { schemaVariables().lookup(fqName), - variables().lookup(fqName), - programVariables().lookup(new ProgramElementName(fqName.toString())), - functions().lookup(fqName), - AbstractTermTransformer.name2metaop(fqName.toString()) }; - - for (Operator op : operators) { - if (op != null) { - return op; - } - } - - 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) { - return v; - } - } - semanticError(ctx, "Could not find (program) variable or constant %s", - fqName.toString()); - return null; - } if (genericArgsCtxt != null) { var d = nss.parametricFunctions().lookup(name); if (d == 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 278dd95c5a2..b5b27874d6d 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 @@ -176,7 +176,8 @@ public static String operatorOfJavaBlock(String raw) { } private static boolean isSelectTerm(JTerm term) { - return term.op().name().toString().endsWith("::select") && term.arity() == 3; + return term.op() instanceof ParametricFunctionInstance pfi + && pfi.getBase().name().toString().equals("select") && term.arity() == 3; } @Override @@ -783,7 +784,7 @@ public Object visitCast_term(KeYParser.Cast_termContext ctx) { * } */ assert s != null; - SortDependingFunction castSymbol = + ParametricFunctionInstance castSymbol = getServices().getJavaDLTheory().getCastSymbol(s, services); return getTermFactory().createTerm(castSymbol, result); } @@ -1164,7 +1165,6 @@ public boolean isClass(String p) { */ @Override public Object visitFuncpred_name(KeYParser.Funcpred_nameContext ctx) { - Sort sortId = accept(ctx.sortId()); List parts = mapOf(ctx.name.simple_ident()); String varfuncid = ctx.name.getText(); @@ -1189,7 +1189,7 @@ public Object visitFuncpred_name(KeYParser.Funcpred_nameContext ctx) { if (varfuncid.endsWith(LIMIT_SUFFIX)) { varfuncid = varfuncid.substring(0, varfuncid.length() - 5); op = lookupVarfuncId(ctx, varfuncid, - ctx.sortId() != null ? ctx.sortId().getText() : null, sortId, null); + null); if (ObserverFunction.class.isAssignableFrom(op.getClass())) { op = getServices().getSpecificationRepository() .limitObs((ObserverFunction) op).first; @@ -1201,7 +1201,7 @@ public Object visitFuncpred_name(KeYParser.Funcpred_nameContext ctx) { ctx.name == null ? ctx.INT_LITERAL().getText() : ctx.name.simple_ident(0).getText(); op = lookupVarfuncId(ctx, firstName, - ctx.sortId() != null ? ctx.sortId().getText() : null, sortId, null); + null); if (op instanceof ProgramVariable v && ctx.name.simple_ident().size() > 1) { List otherParts = ctx.name.simple_ident().subList(1, ctx.name.simple_ident().size()); @@ -1463,8 +1463,8 @@ public JTerm visitAccessterm(KeYParser.AccesstermContext ctx) { op = UpdateJunctor.SKIP; } else if (firstName.endsWith(LIMIT_SUFFIX)) { firstName = firstName.substring(0, firstName.length() - 5); - op = lookupVarfuncId(ctx, firstName, - ctx.sortId() != null ? ctx.sortId().getText() : null, sortId, null); + op = lookupVarfuncId(ctx, sortId.name().toString() + "::" + firstName, + null); if (ObserverFunction.class.isAssignableFrom(op.getClass())) { op = getServices().getSpecificationRepository() .limitObs((ObserverFunction) op).first; @@ -1472,8 +1472,11 @@ public JTerm visitAccessterm(KeYParser.AccesstermContext ctx) { semanticError(ctx, "Cannot can be limited: " + op); } } else { + if (ctx.sortId() != null) { + firstName = ctx.sortId().getText() + "::" + firstName; + } op = lookupVarfuncId(ctx, firstName, - ctx.sortId() != null ? ctx.sortId().getText() : null, sortId, genericArgsCtxt); + genericArgsCtxt); } JTerm current; diff --git a/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/FunctionPredicateBuilder.java b/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/FunctionPredicateBuilder.java index 344ab2ef9be..9e84343c123 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/FunctionPredicateBuilder.java +++ b/key.core/src/main/java/de/uka/ilkd/key/nparser/builder/FunctionPredicateBuilder.java @@ -11,7 +11,6 @@ import de.uka.ilkd.key.logic.GenericParameter; import de.uka.ilkd.key.logic.NamespaceSet; import de.uka.ilkd.key.logic.op.*; -import de.uka.ilkd.key.logic.sort.GenericSort; import de.uka.ilkd.key.logic.sort.ParametricSortInstance; import de.uka.ilkd.key.nparser.KeYParser; @@ -153,47 +152,32 @@ public Object visitPred_decl(KeYParser.Pred_declContext ctx) { semanticError(ctx, "Where-to-bind list must have same length as argument list"); } - Function p = null; + Function p; - int separatorIndex = pred_name.indexOf("::"); - if (separatorIndex > 0) { - String sortName = pred_name.substring(0, separatorIndex); - String baseName = pred_name.substring(separatorIndex + 2); - Sort genSort = lookupSort(sortName); - if (genSort instanceof GenericSort) { - assert argSorts != null; - p = SortDependingFunction.createFirstInstance((GenericSort) genSort, - new Name(baseName), JavaDLTheory.FORMULA, argSorts.toArray(new Sort[0]), false, - services); + assert argSorts != null; + Name name = new Name(pred_name); + Boolean[] whereToBind1 = + whereToBind == null ? null : whereToBind.toArray(new Boolean[0]); + if (params == null) { + if (nss.parametricFunctions().lookup(name) != null) { + semanticError(ctx, + "Cannot declare predicate %s: Parametric predicate already exists", name); } - } - - if (p == null) { - assert argSorts != null; - Name name = new Name(pred_name); - Boolean[] whereToBind1 = - whereToBind == null ? null : whereToBind.toArray(new Boolean[0]); - if (params == null) { - if (nss.parametricFunctions().lookup(name) != null) { - semanticError(ctx, - "Cannot declare predicate %s: Parametric predicate already exists", name); - } - p = new JFunction(name, JavaDLTheory.FORMULA, - argSorts.toArray(new Sort[0]), - whereToBind1, false); - } else { - if (functions().lookup(name) != null) { - semanticError(ctx, - "Cannot declare parametric predicate %s: Predicate already exists", name); - } - var d = new ParametricFunctionDecl(name, ImmutableList.fromList(params), - new ImmutableArray<>(argSorts), - JavaDLTheory.FORMULA, - whereToBind == null ? null : new ImmutableArray<>(whereToBind1), false, true, - false); - nss.parametricFunctions().addSafely(d); - return null; + p = new JFunction(name, JavaDLTheory.FORMULA, + argSorts.toArray(new Sort[0]), + whereToBind1, false); + } else { + if (functions().lookup(name) != null) { + semanticError(ctx, + "Cannot declare parametric predicate %s: Predicate already exists", name); } + var d = new ParametricFunctionDecl(name, ImmutableList.fromList(params), + new ImmutableArray<>(argSorts), + JavaDLTheory.FORMULA, + whereToBind == null ? null : new ImmutableArray<>(whereToBind1), false, true, + false); + nss.parametricFunctions().addSafely(d); + return null; } if (lookup(p.name()) == null) { @@ -220,42 +204,30 @@ public Object visitFunc_decl(KeYParser.Func_declContext ctx) { semanticError(ctx, "Where-to-bind list must have same length as argument list"); } - Function f = null; + Function f; assert funcName != null; - int separatorIndex = funcName.indexOf("::"); - if (separatorIndex > 0) { - String sortName = funcName.substring(0, separatorIndex); - String baseName = funcName.substring(separatorIndex + 2); - Sort genSort = lookupSort(sortName); - if (genSort instanceof GenericSort) { - f = SortDependingFunction.createFirstInstance((GenericSort) genSort, - new Name(baseName), retSort, argSorts.toArray(new Sort[0]), unique, services); - } - } - if (f == null) { - Name name = new Name(funcName); - Boolean[] whereToBind1 = - whereToBind == null ? null : whereToBind.toArray(new Boolean[0]); - if (params == null) { - if (nss.parametricFunctions().lookup(name) != null) { - semanticError(ctx, - "Cannot declare function %s: Parametric function already exists", name); - } - f = new JFunction(name, retSort, argSorts.toArray(new Sort[0]), - whereToBind1, unique); - } else { - if (functions().lookup(name) != null) { - semanticError(ctx, - "Cannot declare parametric function %s: Function already exists", name); - } - var d = new ParametricFunctionDecl(name, ImmutableList.fromList(params), - new ImmutableArray<>(argSorts), - retSort, whereToBind == null ? null : new ImmutableArray<>(whereToBind1), - unique, true, false); - nss.parametricFunctions().add(d); - return null; + Name name = new Name(funcName); + Boolean[] whereToBind1 = + whereToBind == null ? null : whereToBind.toArray(new Boolean[0]); + if (params == null) { + if (nss.parametricFunctions().lookup(name) != null) { + semanticError(ctx, + "Cannot declare function %s: Parametric function already exists", name); + } + f = new JFunction(name, retSort, argSorts.toArray(new Sort[0]), + whereToBind1, unique); + } else { + if (functions().lookup(name) != null) { + semanticError(ctx, + "Cannot declare parametric function %s: Function already exists", name); } + var d = new ParametricFunctionDecl(name, ImmutableList.fromList(params), + new ImmutableArray<>(argSorts), + retSort, whereToBind == null ? null : new ImmutableArray<>(whereToBind1), + unique, true, false); + nss.parametricFunctions().add(d); + return null; } if (lookup(f.name()) == null) { diff --git a/key.core/src/main/java/de/uka/ilkd/key/pp/FieldPrinter.java b/key.core/src/main/java/de/uka/ilkd/key/pp/FieldPrinter.java index 3291924fa8a..4d4eb9869ba 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/pp/FieldPrinter.java +++ b/key.core/src/main/java/de/uka/ilkd/key/pp/FieldPrinter.java @@ -149,8 +149,9 @@ protected boolean isJavaFieldConstant(JTerm fieldTerm) { } /* - * Determine whether the field constant is a generic object property. Those are surrounded by - * angle brackets, e.g. o.$created + * Determine whether the field constant is a generic object property. Those are prefixed by the + * separator `::`, the field prefix `#`, and the marker for implicit symbols `$`, e.g. + * `java.lang.Object::#$created` */ protected boolean isBuiltinObjectProperty(JTerm fieldTerm) { final String implicitFieldMarker = JavaDLFieldNames.SEPARATOR + 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 c4d4e5f6bd1..1b7b97bb105 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 @@ -941,25 +941,12 @@ && getNotationInfo().isHidePackagePrefix()) { } else { String name = t.op().name().toString(); layouter.startTerm(t.arity()); - - if (t.op() instanceof SortDependingFunction op) { - - // remove package prefix from SortDependingFunction - if (notationInfo.isHidePackagePrefix()) { - String sort = op.getSortDependingOn().declarationString(); - int index = sort.lastIndexOf('.'); - sort = sort.substring(index + 1); - layouter.print(sort); - layouter.print("::"); - - name = op.getKind().toString(); - } - - // mark instance and exactInstance as keywords - if (op.getKind().compareTo(JavaDLTheory.EXACT_INSTANCE_NAME) == 0 - || op.getKind().compareTo(JavaDLTheory.INSTANCE_NAME) == 0) { + if (t.op() instanceof ParametricFunctionInstance op) { + if (op.getBase().name().compareTo(JavaDLTheory.EXACT_INSTANCE_NAME) == 0 + || op.getBase().name().compareTo(JavaDLTheory.INSTANCE_NAME) == 0) { isKeyword = true; } + name = op.getBase().name().toString(); } if (isKeyword) { layouter.markStartKeyword(); @@ -972,6 +959,16 @@ && getNotationInfo().isHidePackagePrefix()) { if (isKeyword) { layouter.markEndKeyword(); } + if (t.op() instanceof ParametricFunctionInstance pfi) { + layouter.print("<["); + for (int i = 0; i < pfi.getArgs().size(); ++i) { + var arg = pfi.getArgs().get(i); + if (i > 0) + layouter.print(", "); + printSort(arg.sort()); + } + layouter.print("]>"); + } if (!t.boundVars().isEmpty()) { layouter.print("{").beginC(0); printVariables(t.boundVars(), quantifiableVariablePrintMode); @@ -993,12 +990,21 @@ && getNotationInfo().isHidePackagePrefix()) { } } + private void printSort(Sort s) { + String sort = s.declarationString(); + if (notationInfo.isHidePackagePrefix()) { + int index = sort.lastIndexOf('.'); + sort = sort.substring(index + 1); + } + layouter.print(sort); + } + public void printCast(String pre, String post, JTerm t, int ass) { - final SortDependingFunction cast = (SortDependingFunction) t.op(); + final var cast = (ParametricFunctionInstance) t.op(); layouter.startTerm(t.arity()); layouter.print(pre); - String sort = cast.getSortDependingOn().toString(); + String sort = cast.getArgs().head().sort().toString(); // remove package prefix from sort name if (notationInfo.isHidePackagePrefix()) { int index = sort.lastIndexOf('.'); @@ -1116,7 +1122,7 @@ public void printStore(JTerm t, boolean closingBrace) { } /* - * Print a term of the form: T::seqGet(Seq, int). + * Print a term of the form: seqGet<[T]>(Seq, int). */ public void printSeqGet(JTerm t) { if (notationInfo.isPrettySyntax()) { diff --git a/key.core/src/main/java/de/uka/ilkd/key/pp/NotationInfo.java b/key.core/src/main/java/de/uka/ilkd/key/pp/NotationInfo.java index dc32ebbe886..ce47c69aa32 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/pp/NotationInfo.java +++ b/key.core/src/main/java/de/uka/ilkd/key/pp/NotationInfo.java @@ -300,8 +300,8 @@ private HashMap createPrettyNotation(Services services) { // heap operators final HeapLDT heapLDT = services.getTypeConverter().getHeapLDT(); - tbl.put(HeapLDT.SELECT_NAME, new Notation.SelectNotation()); - tbl.put(HeapLDT.FINAL_NAME, new Notation.FinalNotation()); + tbl.put(heapLDT.getSelect(), new Notation.SelectNotation()); + tbl.put(heapLDT.getFinal(), new Notation.FinalNotation()); tbl.put(heapLDT.getStore(), new Notation.StoreNotation()); tbl.put(heapLDT.getAnon(), new Notation.HeapConstructorNotation()); tbl.put(heapLDT.getCreate(), new Notation.HeapConstructorNotation()); @@ -313,7 +313,7 @@ private HashMap createPrettyNotation(Services services) { // sequence operators final SeqLDT seqLDT = services.getTypeConverter().getSeqLDT(); tbl.put(seqLDT.getSeqLen(), new Notation.Postfix(".length")); - tbl.put(SeqLDT.SEQGET_NAME, new Notation.SeqGetNotation()); + tbl.put(seqLDT.getSeqGet(), new Notation.SeqGetNotation()); tbl.put(seqLDT.getSeqConcat(), new Notation.SeqConcatNotation(seqLDT.getSeqConcat(), seqLDT.getSeqSingleton(), integerLDT.getCharSymbol())); @@ -498,13 +498,6 @@ Notation getNotation(Operator op) { } } - if (op instanceof SortDependingFunction) { - result = notationTable.get(((SortDependingFunction) op).getKind()); - if (result != null) { - return result; - } - } - if (op instanceof ParametricFunctionInstance pfi) { result = notationTable.get(pfi.getBase()); if (result != null) { diff --git a/key.core/src/main/java/de/uka/ilkd/key/pp/SelectPrinter.java b/key.core/src/main/java/de/uka/ilkd/key/pp/SelectPrinter.java index a0883006a76..a77da0fd98e 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/pp/SelectPrinter.java +++ b/key.core/src/main/java/de/uka/ilkd/key/pp/SelectPrinter.java @@ -237,8 +237,8 @@ private void printArraySelect(LogicPrinter lp, JTerm heapTerm, JTerm objectTerm, } /* - * Print a select-term of the following form: T::select( ... , ... , java.lang.Object::<...>) - * For example: boolean::select(heap, object, java.lang.Object::#$created) + * Print a select-term of the following form: select<[T]>( ... , ... , Classname::#fieldname) + * For example: select<[boolean]>(heap, object, java.lang.Object::#$created) */ private void printBuiltinObjectProperty(LogicPrinter lp, JTerm t, JTerm heapTerm, JTerm objectTerm, diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/TacletIndex.java b/key.core/src/main/java/de/uka/ilkd/key/proof/TacletIndex.java index 2e2124aa46e..06acc82b424 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/TacletIndex.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/TacletIndex.java @@ -109,9 +109,6 @@ private static Object getIndexObj(FindTaclet tac) { if (indexTerm.javaBlock().isEmpty()) { indexObj = indexTerm.op(); switch (indexObj) { - case SortDependingFunction sortDependingFunction -> - // indexed independently of sort - indexObj = sortDependingFunction.getKind(); case ParametricFunctionInstance pfi -> indexObj = pfi.getBase(); case ElementaryUpdate ignored -> indexObj = ElementaryUpdate.class; case JModality ignored -> indexObj = JModality.class; @@ -354,8 +351,6 @@ private ImmutableList getListHelp( } final ImmutableList inMap = switch (op) { - case SortDependingFunction sortDependingFunction -> - map.get(sortDependingFunction.getKind()); case ParametricFunctionInstance pfi -> map.get(pfi.getBase()); case ElementaryUpdate ignored -> map.get(ElementaryUpdate.class); case JModality ignored -> map.get(JModality.class); diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/ProblemInitializer.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/ProblemInitializer.java index cdd3c8653d4..ecc34773649 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/init/ProblemInitializer.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/ProblemInitializer.java @@ -296,8 +296,8 @@ private void cleanupNamespaces(InitConfig initConfig) { } } for (Function n : initConfig.funcNS().allElements()) { - if (!(n instanceof SortDependingFunction - && ((SortDependingFunction) n).getSortDependingOn() instanceof GenericSort)) { + if (!(n instanceof ParametricFunctionInstance pfi + && pfi.getArgs().stream().anyMatch(a -> a.sort() instanceof GenericSort))) { newFuncNS.addSafely(n); } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/LightweightSyntacticalReplaceVisitor.java b/key.core/src/main/java/de/uka/ilkd/key/rule/LightweightSyntacticalReplaceVisitor.java index 244e6ad2046..89bd3118b25 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/LightweightSyntacticalReplaceVisitor.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/LightweightSyntacticalReplaceVisitor.java @@ -20,7 +20,6 @@ import org.key_project.logic.op.QuantifiableVariable; import org.key_project.logic.op.UpdateableOperator; import org.key_project.logic.op.sv.SchemaVariable; -import org.key_project.logic.sort.Sort; import org.key_project.prover.rules.RuleApp; import org.key_project.util.collection.ImmutableArray; @@ -160,10 +159,7 @@ private Operator instantiateModality(JModality op, JavaBlock jb) { private Operator instantiateOperator(Operator p_operatorToBeInstantiated, JavaBlock jb) { Operator instantiatedOp = p_operatorToBeInstantiated; - if (p_operatorToBeInstantiated instanceof SortDependingFunction sortDependingFunction) { - instantiatedOp = - handleSortDependingSymbol(sortDependingFunction); - } else if (p_operatorToBeInstantiated instanceof ElementaryUpdate elementaryUpdate) { + if (p_operatorToBeInstantiated instanceof ElementaryUpdate elementaryUpdate) { instantiatedOp = instantiateElementaryUpdate(elementaryUpdate); } else if (p_operatorToBeInstantiated instanceof JModality mod) { instantiatedOp = instantiateModality(mod, jb); @@ -254,18 +250,6 @@ public void visit(final Term p_visited) { } } - private Operator handleSortDependingSymbol(SortDependingFunction depOp) { - final Sort depSort = depOp.getSortDependingOn(); - - final Sort realDepSort = - svInst.getGenericSortInstantiations().getRealSort(depSort, services); - - final Operator res = depOp.getInstanceFor(realDepSort, services); - assert res != null - : "Did not find instance of symbol " + depOp + " for sort " + realDepSort; - return res; - } - private JTerm resolveSubst(JTerm t) { if (t.op() instanceof SubstOp substOp) { final JTerm resolved = substOp.apply(t, tb); diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/SyntacticalReplaceVisitor.java b/key.core/src/main/java/de/uka/ilkd/key/rule/SyntacticalReplaceVisitor.java index 08519ae108d..cb2e99a268b 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/SyntacticalReplaceVisitor.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/SyntacticalReplaceVisitor.java @@ -27,7 +27,6 @@ import org.key_project.logic.op.QuantifiableVariable; import org.key_project.logic.op.UpdateableOperator; import org.key_project.logic.op.sv.SchemaVariable; -import org.key_project.logic.sort.Sort; import org.key_project.prover.rules.Rule; import org.key_project.prover.rules.RuleApp; import org.key_project.prover.sequent.PosInOccurrence; @@ -282,9 +281,7 @@ private Operator instantiateModality(JModality op, JavaBlock jb) { private Operator instantiateOperator(Operator p_operatorToBeInstantiated, JavaBlock jb) { Operator instantiatedOp = p_operatorToBeInstantiated; - if (p_operatorToBeInstantiated instanceof SortDependingFunction sortDependingFunction) { - instantiatedOp = handleSortDependingSymbol(sortDependingFunction); - } else if (p_operatorToBeInstantiated instanceof ParametricFunctionInstance pfi) { + if (p_operatorToBeInstantiated instanceof ParametricFunctionInstance pfi) { instantiatedOp = handleParametricFunction(pfi); } else if (p_operatorToBeInstantiated instanceof ElementaryUpdate elementaryUpdate) { instantiatedOp = instantiateElementaryUpdate(elementaryUpdate); @@ -398,19 +395,6 @@ private ImmutableArray instantiateLabels(JTerm tacletTerm, Operator n tb.tf().createTerm(newTermOp, newTermSubs, newTermBoundVars, newTermOriginalLabels)); } - private Operator handleSortDependingSymbol(SortDependingFunction depOp) { - final Sort depSort = depOp.getSortDependingOn(); - - final Sort realDepSort = - svInst.getGenericSortInstantiations().getRealSort(depSort, services); - - - final Operator res = depOp.getInstanceFor(realDepSort, services); - assert res != null - : "Did not find instance of symbol " + depOp + " for sort " + realDepSort; - return res; - } - private Operator handleParametricFunction(ParametricFunctionInstance pfi) { ImmutableList args = ImmutableSLList.nil(); diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/SyntaxElementMatchProgramGenerator.java b/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/SyntaxElementMatchProgramGenerator.java index a53c10c720d..b62cff84d0b 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/SyntaxElementMatchProgramGenerator.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/SyntaxElementMatchProgramGenerator.java @@ -86,17 +86,6 @@ private static void createProgram(JTerm pattern, ArrayList progra program.add(gotoNextInstruction()); } } - case final SortDependingFunction sortDependingFunction -> { - program.add(getCheckNodeKindInstruction(SortDependingFunction.class)); - program.add(getSimilarSortDependingFunctionInstruction(sortDependingFunction)); - program.add(gotoNextInstruction()); - if (sortDependingFunction.getSortDependingOn() instanceof GenericSort gs) { - program.add(getMatchGenericSortInstruction(gs)); - } else { - program.add(getMatchIdentityInstruction(sortDependingFunction.getChild(0))); - } - program.add(gotoNextInstruction()); - } case ElementaryUpdate elUp -> { program.add(getCheckNodeKindInstruction(ElementaryUpdate.class)); program.add(gotoNextInstruction()); diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/JavaDLMatchVMInstructionSet.java b/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/JavaDLMatchVMInstructionSet.java index c13f3fbb536..3cadec0af63 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/JavaDLMatchVMInstructionSet.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/JavaDLMatchVMInstructionSet.java @@ -89,11 +89,6 @@ public static MatchSchemaVariableInstruction getMatchInstructionForSV( return instruction; } - public static SimilarSortDependingFunctionInstruction getSimilarSortDependingFunctionInstruction( - SortDependingFunction sortDependingFunction) { - return new SimilarSortDependingFunctionInstruction(sortDependingFunction); - } - public static SimilarParametricFunctionInstruction getSimilarParametricFunctionInstruction( ParametricFunctionInstance psi) { return new SimilarParametricFunctionInstruction(psi); diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/SimilarSortDependingFunctionInstruction.java b/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/SimilarSortDependingFunctionInstruction.java deleted file mode 100644 index 6c22e4bb3ea..00000000000 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/SimilarSortDependingFunctionInstruction.java +++ /dev/null @@ -1,28 +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.rule.match.vm.instructions; - -import de.uka.ilkd.key.logic.op.SortDependingFunction; - -import org.key_project.logic.LogicServices; -import org.key_project.logic.SyntaxElement; -import org.key_project.prover.rules.instantiation.MatchResultInfo; -import org.key_project.prover.rules.matcher.vm.instruction.MatchInstruction; - -public final class SimilarSortDependingFunctionInstruction implements MatchInstruction { - private final SortDependingFunction sortDependingFunction; - - public SimilarSortDependingFunctionInstruction(SortDependingFunction sortDependingFunction) { - this.sortDependingFunction = sortDependingFunction; - } - - @Override - public MatchResultInfo match(SyntaxElement actualElement, MatchResultInfo matchConditions, - LogicServices services) { - if (((SortDependingFunction) actualElement).isSimilar(sortDependingFunction)) { - return matchConditions; - } - return null; - } -} diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/metaconstruct/ArrayBaseInstanceOf.java b/key.core/src/main/java/de/uka/ilkd/key/rule/metaconstruct/ArrayBaseInstanceOf.java index e72449fa471..fe430fb8fe4 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/metaconstruct/ArrayBaseInstanceOf.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/metaconstruct/ArrayBaseInstanceOf.java @@ -4,10 +4,9 @@ package de.uka.ilkd.key.rule.metaconstruct; import de.uka.ilkd.key.java.Services; -import de.uka.ilkd.key.ldt.JavaDLTheory; import de.uka.ilkd.key.logic.JTerm; import de.uka.ilkd.key.logic.op.AbstractTermTransformer; -import de.uka.ilkd.key.logic.op.SortDependingFunction; +import de.uka.ilkd.key.logic.op.ParametricFunctionInstance; import de.uka.ilkd.key.logic.sort.ArraySort; import de.uka.ilkd.key.rule.inst.SVInstantiations; import de.uka.ilkd.key.util.Debug; @@ -17,7 +16,7 @@ import org.key_project.logic.sort.Sort; /** - * Creates an Type::instance(..) term for the component type of the array. The component + * Creates an instance<[Type]>(..) term for the component type of the array. The component * type has to be a reference type. */ public final class ArrayBaseInstanceOf extends AbstractTermTransformer { @@ -27,7 +26,7 @@ public ArrayBaseInstanceOf() { } /** - * returns an G::instance(term.sub(1)) term for the element sort of the given array . + * returns an instance<[G]>(term.sub(1)) term for the element sort of the given array . * It is assumed that term.sub(0) is either a term of reference array sort or a term * with an exactInstance symbol as top level depending on a reference array sort. */ @@ -36,9 +35,9 @@ public JTerm transform(JTerm term, SVInstantiations svInst, Services services) { final JTerm element = term.sub(1); final Sort arraySort; - if (array.op() instanceof SortDependingFunction && ((SortDependingFunction) array.op()) - .getKind().equals(JavaDLTheory.EXACT_INSTANCE_NAME)) { - arraySort = ((SortDependingFunction) array.op()).getSortDependingOn(); + if (array.op() instanceof ParametricFunctionInstance pfi && pfi.getBase() + .equals(services.getJavaDLTheory().getExactInstanceofSymbol(services))) { + arraySort = pfi.getArgs().head().sort(); } else { arraySort = array.sort(); } 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 718b06f6413..487bf2d7ef0 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 @@ -2510,9 +2510,10 @@ public ArrayList translateTaclets(Services services, SMTSettings for (Operator op : usedFunctionNames.keySet()) { - if (op instanceof SortDependingFunction) { - Sort s = ((SortDependingFunction) op).getSortDependingOn(); - tempSorts.add(s); + if (op instanceof ParametricFunctionInstance pfi) { + for (GenericArgument a : pfi.getArgs()) { + tempSorts.add(a.sort()); + } } if (op instanceof LocationVariable lv) { if (lv.getContainerType() != null) { diff --git a/key.core/src/main/java/de/uka/ilkd/key/smt/SMTObjTranslator.java b/key.core/src/main/java/de/uka/ilkd/key/smt/SMTObjTranslator.java index 8bb410d796b..c11cc53586f 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/smt/SMTObjTranslator.java +++ b/key.core/src/main/java/de/uka/ilkd/key/smt/SMTObjTranslator.java @@ -12,6 +12,7 @@ import de.uka.ilkd.key.java.ast.declaration.InterfaceDeclaration; import de.uka.ilkd.key.java.transformations.pipeline.PipelineConstants; import de.uka.ilkd.key.ldt.JavaDLTheory; +import de.uka.ilkd.key.logic.GenericArgument; import de.uka.ilkd.key.logic.JavaDLFieldNames; import de.uka.ilkd.key.logic.op.*; import de.uka.ilkd.key.smt.hierarchy.SortNode; @@ -904,8 +905,10 @@ private void addCastAssertions(SMTSort source, SMTSort target, String id) { */ private void findSorts(Set sorts, Term term) { addSingleSort(sorts, term.sort()); - if (term.op() instanceof SortDependingFunction sdf) { - addSingleSort(sorts, sdf.getSortDependingOn()); + if (term.op() instanceof ParametricFunctionInstance pfi) { + for (GenericArgument a : pfi.getArgs()) { + addSingleSort(sorts, a.sort()); + } } for (Term sub : term.subs()) { findSorts(sorts, sub); @@ -1453,20 +1456,22 @@ private SMTTerm translateCall(Function fun, ImmutableArray subs) function = wellformedFunction; } else if (name.equals(ELEMENTOF)) { function = elementOfFunction; - } else if (name.endsWith("::exactInstance")) { - SortDependingFunction sdf = (SortDependingFunction) fun; - Sort depSort = sdf.getSortDependingOn(); + } else if (fun instanceof ParametricFunctionInstance pfi + && pfi.getBase() == services.getJavaDLTheory().getExactInstanceofSymbol(services)) { + Sort depSort = pfi.getArgs().head().sort(); function = getExactInstanceFunction(depSort); - } else if (name.endsWith("::instance")) { - SortDependingFunction sdf = (SortDependingFunction) fun; - Sort depSort = sdf.getSortDependingOn(); + } else if (fun instanceof ParametricFunctionInstance pfi + && pfi.getBase() == services.getJavaDLTheory().getInstanceofSymbol(services)) { + Sort sort = pfi.getArgs().head().sort(); + Sort depSort = sort; addTypePredicate(depSort); - function = getTypePredicate(sdf.getSortDependingOn().name().toString()); - } else if (name.endsWith("::cast")) { - SortDependingFunction sdf = (SortDependingFunction) fun; - SMTSort target = translateSort(sdf.getSortDependingOn()); + function = getTypePredicate(sort.name().toString()); + } else if (fun instanceof ParametricFunctionInstance pfi + && pfi.getBase() == services.getJavaDLTheory().getCastSymbol(services)) { + Sort sort = pfi.getArgs().head().sort(); + SMTSort target = translateSort(sort); if (target.getId().equals(OBJECT_SORT)) { - function = getCastFunction(sdf.getSortDependingOn()); + function = getCastFunction(sort); } else { Sort s = subs.get(0).sort(); SMTSort source = translateSort(s); diff --git a/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/CastHandler.java b/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/CastHandler.java index 1e0ef6445f5..d5e9d20c4de 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/CastHandler.java +++ b/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/CastHandler.java @@ -7,8 +7,8 @@ import java.util.Properties; import de.uka.ilkd.key.java.Services; -import de.uka.ilkd.key.ldt.JavaDLTheory; -import de.uka.ilkd.key.logic.op.SortDependingFunction; +import de.uka.ilkd.key.logic.op.ParametricFunctionDecl; +import de.uka.ilkd.key.logic.op.ParametricFunctionInstance; import de.uka.ilkd.key.smt.SMTTranslationException; import org.key_project.logic.Term; @@ -23,26 +23,26 @@ */ public class CastHandler implements SMTHandler { - private SortDependingFunction anyCast; + private ParametricFunctionDecl anyCast; @Override public void init(MasterHandler masterHandler, Services services, Properties handlerSnippets, String[] handlerOptions) throws IOException { - this.anyCast = services.getJavaDLTheory().getCastSymbol(JavaDLTheory.ANY, services); + this.anyCast = services.getJavaDLTheory().getCastSymbol(services); masterHandler.addDeclarationsAndAxioms(handlerSnippets); } @Override public boolean canHandle(Operator op) { - return op instanceof SortDependingFunction - && ((SortDependingFunction) op).isSimilar(anyCast); + return op instanceof ParametricFunctionInstance pfi + && pfi.getBase() == (anyCast); } @Override public SExpr handle(MasterHandler trans, Term term) throws SMTTranslationException { - SortDependingFunction op = (SortDependingFunction) term.op(); + var op = (ParametricFunctionInstance) term.op(); SExpr inner = trans.translate(term.sub(0)); - Sort depSort = op.getSortDependingOn(); + Sort depSort = op.getArgs().head().sort(); trans.addSort(depSort); trans.introduceSymbol("cast"); return SExprs.castExpr(SExprs.sortExpr(depSort), inner); diff --git a/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/CastingFunctionsHandler.java b/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/CastingFunctionsHandler.java index 065890887b6..3eaf2129ece 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/CastingFunctionsHandler.java +++ b/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/CastingFunctionsHandler.java @@ -7,7 +7,8 @@ import de.uka.ilkd.key.java.Services; import de.uka.ilkd.key.ldt.JavaDLTheory; -import de.uka.ilkd.key.logic.op.SortDependingFunction; +import de.uka.ilkd.key.logic.op.ParametricFunctionDecl; +import de.uka.ilkd.key.logic.op.ParametricFunctionInstance; import de.uka.ilkd.key.smt.SMTTranslationException; import org.key_project.logic.Term; @@ -15,11 +16,11 @@ import org.key_project.logic.sort.Sort; /** - * This SMT translation handler takes care of those sort-depending functions f whose return type is + * This SMT translation handler takes care of those parametric functions f whose return type is * coerced, i.e. * *
- *     T::f(params) = T::cast(any::f(params))
+ *     f<[T]>(params) = cast<[T]>(f<[any]>(params))
  * 
* * Currently these are: seqGet and (heap-) select. @@ -29,22 +30,22 @@ */ public class CastingFunctionsHandler implements SMTHandler { - private SortDependingFunction seqGet; - private SortDependingFunction select; + private ParametricFunctionDecl seqGet; + private ParametricFunctionDecl select; @Override public void init(MasterHandler masterHandler, Services services, Properties handlerSnippets, String[] handlerOptions) { - this.seqGet = services.getTypeConverter().getSeqLDT().getSeqGet(JavaDLTheory.ANY, services); + this.seqGet = services.getTypeConverter().getSeqLDT().getSeqGet(); this.select = - services.getTypeConverter().getHeapLDT().getSelect(JavaDLTheory.ANY, services); + services.getTypeConverter().getHeapLDT().getSelect(); masterHandler.addDeclarationsAndAxioms(handlerSnippets); } @Override public boolean canHandle(Operator op) { - if (op instanceof SortDependingFunction sdf) { - return seqGet.isSimilar(sdf) || select.isSimilar(sdf); + if (op instanceof ParametricFunctionInstance pfi) { + return seqGet == (pfi.getBase()) || select == (pfi.getBase()); } return false; } @@ -52,12 +53,12 @@ public boolean canHandle(Operator op) { @Override public SExpr handle(MasterHandler trans, Term term) throws SMTTranslationException { Operator op = term.op(); - SortDependingFunction sdf = (SortDependingFunction) op; - String name = sdf.getKind().toString(); + var sdf = (ParametricFunctionInstance) op; + String name = sdf.getBase().name().toString(); String prefixedName = DefinedSymbolsHandler.PREFIX + name; trans.introduceSymbol(name); SExpr result = trans.handleAsFunctionCall(prefixedName, term); - Sort dep = sdf.getSortDependingOn(); + Sort dep = sdf.getArgs().head().sort(); if (dep == JavaDLTheory.ANY) { return result; } else { diff --git a/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/InstanceOfHandler.java b/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/InstanceOfHandler.java index 80709e77fc3..728ef52fca0 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/InstanceOfHandler.java +++ b/key.core/src/main/java/de/uka/ilkd/key/smt/newsmt2/InstanceOfHandler.java @@ -6,13 +6,14 @@ import java.util.Properties; import de.uka.ilkd.key.java.Services; -import de.uka.ilkd.key.ldt.JavaDLTheory; -import de.uka.ilkd.key.logic.op.SortDependingFunction; +import de.uka.ilkd.key.logic.op.ParametricFunctionDecl; +import de.uka.ilkd.key.logic.op.ParametricFunctionInstance; import de.uka.ilkd.key.smt.SMTTranslationException; import de.uka.ilkd.key.smt.newsmt2.SExpr.Type; import org.key_project.logic.Term; import org.key_project.logic.op.Operator; +import org.key_project.logic.sort.Sort; /** * This SMT translation handler takes care of instanceof and exactinstanceof functions. @@ -22,37 +23,38 @@ */ public class InstanceOfHandler implements SMTHandler { - private SortDependingFunction exactInstanceOfOp; - private SortDependingFunction instanceOfOp; + private ParametricFunctionDecl exactInstanceOfOp; + private ParametricFunctionDecl instanceOfOp; @Override public void init(MasterHandler masterHandler, Services services, Properties handlerSnippets, String[] handlerOptions) { this.instanceOfOp = - services.getJavaDLTheory().getInstanceofSymbol(JavaDLTheory.ANY, services); + services.getJavaDLTheory().getInstanceofSymbol(services); this.exactInstanceOfOp = - services.getJavaDLTheory().getExactInstanceofSymbol(JavaDLTheory.ANY, services); + services.getJavaDLTheory().getExactInstanceofSymbol(services); } @Override public boolean canHandle(Operator op) { - if (op instanceof SortDependingFunction sdf) { - return exactInstanceOfOp.isSimilar(sdf) || instanceOfOp.isSimilar(sdf); + if (op instanceof ParametricFunctionInstance pfi) { + return exactInstanceOfOp == (pfi.getBase()) || instanceOfOp == (pfi.getBase()); } return false; } @Override public SExpr handle(MasterHandler trans, Term term) throws SMTTranslationException { - SortDependingFunction op = (SortDependingFunction) term.op(); + var op = (ParametricFunctionInstance) term.op(); SExpr inner = trans.translate(term.sub(0), Type.UNIVERSE); - if (exactInstanceOfOp.isSimilar(op)) { - trans.addSort(op.getSortDependingOn()); + Sort sort = op.getArgs().head().sort(); + if (exactInstanceOfOp == (op.getBase())) { + trans.addSort(sort); return new SExpr("exactinstanceof", Type.BOOL, inner, - SExprs.sortExpr(op.getSortDependingOn())); - } else if (instanceOfOp.isSimilar(op)) { - trans.addSort(op.getSortDependingOn()); - return SExprs.instanceOf(inner, SExprs.sortExpr(op.getSortDependingOn())); + SExprs.sortExpr(sort)); + } else if (instanceOfOp == (op.getBase())) { + trans.addSort(sort); + return SExprs.instanceOf(inner, SExprs.sortExpr(sort)); } else { throw new SMTTranslationException("unexpected case in instanceof-handling: " + term); } 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 03bd1d3cafa..d51b8123339 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 @@ -1606,7 +1606,7 @@ public void translateSetStatement(final SetStatement statement, final IProgramMe */ private JTerm resolveFinalAssignee(JTerm assignee) { if (services.getTypeConverter().getHeapLDT().isFinalOp(assignee.op())) { - SortDependingFunction finalOp = assignee.op(SortDependingFunction.class); + ParametricFunctionInstance finalOp = assignee.op(ParametricFunctionInstance.class); return tb.select( finalOp.sort(), tb.getBaseHeap(), 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 4b72d147392..0d9efce1764 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 @@ -229,7 +229,8 @@ private JTerm convertToPermission(JTerm term, ParserRuleContext ctx) { + " context and permissions not enabled.", ctx); } - if (!term.op().name().toString().endsWith("::select")) { + if (!(term.op() instanceof ParametricFunctionInstance pfi) + || pfi.getBase() != services.getTypeConverter().getHeapLDT().getSelect()) { raiseError("\\permission expression used with non store-ref" + " expression.", ctx); } return tb.select(services.getTypeConverter().getPermissionLDT().targetSort(), @@ -631,7 +632,7 @@ public SLExpression visitInstance_of(JmlParser.Instance_ofContext ctx) { SLExpression result = accept(ctx.shiftexpr()); KeYJavaType rtype = accept(ctx.typespec()); assert rtype != null; - final SortDependingFunction f = + final ParametricFunctionInstance f = services.getJavaDLTheory().getInstanceofSymbol(rtype.getSort(), services); // instanceof-expression assert result != null; diff --git a/key.core/src/main/java/de/uka/ilkd/key/strategy/StringStrategy.java b/key.core/src/main/java/de/uka/ilkd/key/strategy/StringStrategy.java index 06600a5cdbb..1f8270ac099 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/strategy/StringStrategy.java +++ b/key.core/src/main/java/de/uka/ilkd/key/strategy/StringStrategy.java @@ -9,7 +9,7 @@ import de.uka.ilkd.key.ldt.BooleanLDT; import de.uka.ilkd.key.ldt.CharListLDT; import de.uka.ilkd.key.ldt.SeqLDT; -import de.uka.ilkd.key.logic.op.SortDependingFunction; +import de.uka.ilkd.key.logic.op.ParametricFunctionInstance; import de.uka.ilkd.key.proof.Goal; import de.uka.ilkd.key.proof.Proof; import de.uka.ilkd.key.rule.BuiltInRule; @@ -116,7 +116,7 @@ private void setUpStringNormalisation(RuleSetDispatchFeature d) { bindRuleSet(d, "stringsSimplify", longConst(-5000)); final TermFeature charOrIntLiteral = or(tf.charLiteral, tf.literal, - or(add(OperatorClassTF.create(SortDependingFunction.class), // XXX: + or(add(OperatorClassTF.create(ParametricFunctionInstance.class), // XXX: // was CastFunctionSymbol.class sub(tf.literal)), inftyTermConst())); diff --git a/key.core/src/main/java/de/uka/ilkd/key/strategy/quantifierHeuristics/Instantiation.java b/key.core/src/main/java/de/uka/ilkd/key/strategy/quantifierHeuristics/Instantiation.java index 1009f9f8787..9aab846d447 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/strategy/quantifierHeuristics/Instantiation.java +++ b/key.core/src/main/java/de/uka/ilkd/key/strategy/quantifierHeuristics/Instantiation.java @@ -10,8 +10,8 @@ import de.uka.ilkd.key.ldt.JavaDLTheory; import de.uka.ilkd.key.logic.JTerm; import de.uka.ilkd.key.logic.TermServices; +import de.uka.ilkd.key.logic.op.ParametricFunctionInstance; import de.uka.ilkd.key.logic.op.Quantifier; -import de.uka.ilkd.key.logic.op.SortDependingFunction; import org.key_project.logic.Term; import org.key_project.logic.op.QuantifiableVariable; @@ -178,8 +178,8 @@ static RuleAppCost computeCost(Term inst, Term form, Sequent seq, Services servi private RuleAppCost computeCostHelp(Term inst) { Long cost = instancesWithCosts.get(inst); - if (cost == null && (inst.op() instanceof SortDependingFunction - && ((SortDependingFunction) inst.op()).getKind().equals(JavaDLTheory.CAST_NAME))) { + if (cost == null && (inst.op() instanceof ParametricFunctionInstance pfi + && pfi.getBase().name().equals(JavaDLTheory.CAST_NAME))) { cost = instancesWithCosts.get(inst.sub(0)); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/assumptions/AssumptionGenerator.java b/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/assumptions/AssumptionGenerator.java index 0a19f20f80f..e6518bb2346 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/assumptions/AssumptionGenerator.java +++ b/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/assumptions/AssumptionGenerator.java @@ -11,6 +11,7 @@ import de.uka.ilkd.key.logic.op.*; import de.uka.ilkd.key.logic.sort.GenericSort; import de.uka.ilkd.key.logic.sort.NullSort; +import de.uka.ilkd.key.logic.sort.ParametricSortInstance; import de.uka.ilkd.key.rule.Taclet; import de.uka.ilkd.key.rule.conditions.TypeComparisonCondition.Mode; import de.uka.ilkd.key.taclettranslation.IllegalTacletException; @@ -151,10 +152,13 @@ public static Set collectGenerics(JTerm term) { } private static void collectGenerics(JTerm term, HashSet genericSorts) { - - if (term.op() instanceof SortDependingFunction func) { - if (func.getSortDependingOn() instanceof GenericSort) { - genericSorts.add((GenericSort) func.getSortDependingOn()); + if (term.op() instanceof ParametricFunctionInstance func) { + for (GenericArgument a : func.getArgs()) { + if (a.sort() instanceof GenericSort s) { + genericSorts.add(s); + } else if (a.sort() instanceof ParametricSortInstance psi) { + collectGenerics(psi, genericSorts); + } } } @@ -167,6 +171,16 @@ private static void collectGenerics(JTerm term, HashSet genericSort } + private static void collectGenerics(ParametricSortInstance psi, Set genericSorts) { + for (GenericArgument a : psi.getArgs()) { + if (a.sort() instanceof GenericSort gs) { + genericSorts.add(gs); + } else if (a.sort() instanceof ParametricSortInstance p) { + collectGenerics(p, genericSorts); + } + } + } + /** * Creates an array containing objectCount^bucketCount rows. Each of this rows has bucketCount * columns. The method enumerates all possible variations of putting objectCount diff --git a/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/assumptions/GenericTranslator.java b/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/assumptions/GenericTranslator.java index 0fdd0a056f5..92f4e36ff3d 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/assumptions/GenericTranslator.java +++ b/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/assumptions/GenericTranslator.java @@ -10,6 +10,7 @@ import de.uka.ilkd.key.java.Services; import de.uka.ilkd.key.ldt.JavaDLTheory; +import de.uka.ilkd.key.logic.GenericArgument; import de.uka.ilkd.key.logic.JTerm; import de.uka.ilkd.key.logic.TermBuilder; import de.uka.ilkd.key.logic.op.*; @@ -81,7 +82,7 @@ private boolean sameHierachyBranch(Sort sort1, Sort sort2) { * @param instantiation the instantiation sort. * @return returns the new term with instantiated variables. If term can not be * instantiated the method returns null, e.g. this can occur, when - * term is of type {@link SortDependingFunction} and + * term is of type {@link ParametricFunctionInstance} and * instantiation is of type {PrimitiveSort}. */ @@ -116,24 +117,26 @@ private JTerm instantiateGeneric(JTerm term, GenericSort generic, Sort instantia } - if (term.op() instanceof SortDependingFunction func) { - + if (term.op() instanceof ParametricFunctionInstance func) { try { // Try block is necessary because there are some // taclets // that should have isReference-Condition, but // they don't // have the condition. - if (func.getSortDependingOn().equals(generic)) { + // TODO(DD): Extend to more complex parametric functions; ask RB what is expected + // here + if (func.getArgs().size() == 1 && func.getArgs().head().sort().equals(generic)) { if (instantiation.extendsTrans(services.getJavaInfo().nullSort())) { return null; } - func = func.getInstanceFor(instantiation, services); + func = ParametricFunctionInstance.get(func.getBase(), + ImmutableList.of(new GenericArgument(instantiation)), services); - if (func.getKind().equals(JavaDLTheory.CAST_NAME)) { + if (func.getBase() == services.getJavaDLTheory().getCastSymbol(services)) { for (int i = 0; i < term.arity(); i++) { - if (!sameHierachyBranch(func.getSortDependingOn(), + if (!sameHierachyBranch(func.getArgs().head().sort(), subTerms[i].sort())) { // don't // instantiate @@ -146,7 +149,6 @@ private JTerm instantiateGeneric(JTerm term, GenericSort generic, Sort instantia } term = services.getTermFactory().createTerm(func, subTerms); - } } catch (IllegalArgumentException e) { for (TranslationListener l : listener) { diff --git a/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/lemma/GenericRemovingLemmaGenerator.java b/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/lemma/GenericRemovingLemmaGenerator.java index 778914c8cdc..2e02bf311fc 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/lemma/GenericRemovingLemmaGenerator.java +++ b/key.core/src/main/java/de/uka/ilkd/key/taclettranslation/lemma/GenericRemovingLemmaGenerator.java @@ -6,14 +6,17 @@ import java.util.HashMap; import java.util.Map; +import de.uka.ilkd.key.java.Services; +import de.uka.ilkd.key.logic.GenericArgument; import de.uka.ilkd.key.logic.TermServices; -import de.uka.ilkd.key.logic.op.SortDependingFunction; +import de.uka.ilkd.key.logic.op.ParametricFunctionInstance; import de.uka.ilkd.key.logic.sort.GenericSort; import de.uka.ilkd.key.logic.sort.ProxySort; import org.key_project.logic.op.Operator; 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.ImmutableSet; /** @@ -42,12 +45,12 @@ public class GenericRemovingLemmaGenerator extends DefaultLemmaGenerator { */ @Override protected Operator replaceOp(Operator op, TermServices services) { - - if (op instanceof SortDependingFunction sdf) { - Sort sort = sdf.getSortDependingOn(); + if (op instanceof ParametricFunctionInstance pfi && pfi.getArgs().size() == 1) { + Sort sort = pfi.getArgs().head().sort(); Sort repSort = replaceSort(sort, services); if (sort != repSort) { - op = sdf.getInstanceFor(repSort, services); + op = ParametricFunctionInstance.get(pfi.getBase(), + ImmutableList.of(new GenericArgument(repSort)), (Services) services); } } diff --git a/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/String.java b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/String.java index 7c89c63a51a..582b2f1bc1e 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/String.java +++ b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/String.java @@ -299,7 +299,7 @@ public final class String extends java.lang.Object implements java.io.Serializab /*@ public normal_behavior requires startIdx >= 0 && startIdx < \dl_seqLen(\dl_strContent(this)); - //boolean::select(heapAtPre, \result, java.lang.Object::#$created)==FALSE + //select<[boolean]>(heapAtPre, \result, java.lang.Object::#$created)==FALSE ensures \result != null; ensures \dl_strContent(\result)==\dl_seqSub(\dl_strContent(this), startIdx, \dl_seqLen(\dl_strContent(this))); assignable \nothing; @@ -316,7 +316,7 @@ public final class String extends java.lang.Object implements java.io.Serializab public normal_behavior requires endIdx >= startIdx && startIdx >= 0 && endIdx <= \dl_seqLen(\dl_strContent(this)); - //boolean::select(heapAtPre, result, java.lang.Object::#$created)==FALSE + //select<[boolean]>(heapAtPre, result, java.lang.Object::#$created)==FALSE ensures \result != null; ensures \dl_strContent(\result)==\dl_seqSub(\dl_strContent(this), startIdx, endIdx); assignable \nothing; @@ -333,7 +333,7 @@ public final class String extends java.lang.Object implements java.io.Serializab public normal_behavior requires other != null; requires \dl_seqLen(\dl_strContent(other)) > 0; - //ensures boolean::select(heapAtPre, result, java.lang.Object::#$created)==FALSE + //ensures select<[boolean]>(heapAtPre, result, java.lang.Object::#$created)==FALSE ensures \result != null; ensures \dl_strContent(\result)==\dl_seqConcat(\dl_strContent(this), \dl_strContent(other)); assignable \nothing; @@ -433,7 +433,7 @@ public final class String extends java.lang.Object implements java.io.Serializab requires obj == null; ensures \dl_strContent(\result) == "null"; ensures \result != null; - // && boolean::select(heapAtPre, \result, java.lang.Object::#$created)==FALSE + // && select<[boolean]>(heapAtPre, \result, java.lang.Object::#$created)==FALSE assignable \nothing; also public normal_behavior @@ -514,7 +514,7 @@ public final class String extends java.lang.Object implements java.io.Serializab ensures \dl_seqLen(\dl_strContent(\result)) == count; ensures (\forall int i; 0 <= i < count; (int) \dl_strContent(\result)[i] == data[i+offset]); - // && boolean::select(heapAtPre, \result, java.lang.Object::#$created)==FALSE + // && select<[boolean]>(heapAtPre, \result, java.lang.Object::#$created)==FALSE ensures \result != null; assignable \nothing; also @@ -538,7 +538,7 @@ public final class String extends java.lang.Object implements java.io.Serializab ensures (\forall int i; 0 <= i < data.length; (int) \dl_strContent(\result)[i] == data[i]); ensures \result != null; - // && boolean::select(heapAtPre, \result, java.lang.Object::#$created)==FALSE + // && select<[boolean]>(heapAtPre, \result, java.lang.Object::#$created)==FALSE assignable \nothing; also exceptional_behavior requires data == null; diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/String.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/String.key index b932ea76874..821764b7648 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/String.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/String.key @@ -27,7 +27,7 @@ \replacewith(\if (#constantvalue(#csv) = null) \then (null) \else (strPool((Seq)#constantvalue(#csv))) ) \add(#constantvalue(#csv) = null | ( strPool((Seq)#constantvalue(#csv) ) != null & - boolean::select(heap, strPool((Seq)#constantvalue(#csv)), java.lang.Object::#$created) = TRUE) ==>) + select<[boolean]>(heap, strPool((Seq)#constantvalue(#csv)), java.lang.Object::#$created) = TRUE) ==>) \heuristics(concrete) }; @@ -53,7 +53,7 @@ \replacewith ({ #v := strPool(#slit) } \modality{#normalassign}{.. ...}\endmodality(post)) - \add(strPool(#slit) != null, boolean::select(heap, strPool(#slit), java.lang.Object::#$created) = TRUE ==>) + \add(strPool(#slit) != null, select<[boolean]>(heap, strPool(#slit), java.lang.Object::#$created) = TRUE ==>) \heuristics (simplify_prog, simplify_prog_subset) }; diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/assertions.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/assertions.key index d7d6ade0ec9..456b897cecd 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/assertions.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/assertions.key @@ -126,7 +126,7 @@ \replacewith( ==> \[{ method-frame(#ex):{ #typeof(#e1) #condition = #e1 ; } - }\] (\forall f; \forall o; ((o != null & boolean::select(oldHeap, o, java.lang.Object::#$created) = FALSE) | any::select(oldHeap, o, f) = any::select(heap, o, f)))) + }\] (\forall f; \forall o; ((o != null & select<[boolean]>(oldHeap, o, java.lang.Object::#$created) = FALSE) | select<[any]>(oldHeap, o, f) = select<[any]>(heap, o, f)))) \add(oldHeap = heap ==>) \heuristics(simplify_prog) \displayname "assert" @@ -154,7 +154,7 @@ #typeof(#e1) #condition = #e1; #typeof(#e2) #message = #e2; } - }\] (\forall f; \forall o; ((o != null & boolean::select(oldHeap, o, java.lang.Object::#$created) = FALSE) | any::select(oldHeap, o, f) = any::select(heap, o, f)))) + }\] (\forall f; \forall o; ((o != null & select<[boolean]>(oldHeap, o, java.lang.Object::#$created) = FALSE) | select<[any]>(oldHeap, o, f) = select<[any]>(heap, o, f)))) \add(oldHeap = heap ==>) \heuristics(simplify_prog) \displayname "assert" diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/classicalLogic/formulaNormalisationRules.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/classicalLogic/formulaNormalisationRules.key index 8624ad85b3f..7065806912c 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/classicalLogic/formulaNormalisationRules.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/classicalLogic/formulaNormalisationRules.key @@ -355,14 +355,14 @@ elim_forall2 { \find(\forall Gvar; (Gvar != Hterm)) \varcond(\notFreeIn(Gvar, Hterm)) - \replacewith(G::instance(Hterm) = FALSE) + \replacewith(instance<[G]>(Hterm) = FALSE) \heuristics(elimQuantifier, elimQuantifierWithCast) }; elim_forall3 { \find(\forall Gvar; (Hterm != Gvar)) \varcond(\notFreeIn(Gvar, Hterm)) - \replacewith(G::instance(Hterm) = FALSE) + \replacewith(instance<[G]>(Hterm) = FALSE) \heuristics(elimQuantifier, elimQuantifierWithCast) }; @@ -384,7 +384,7 @@ \find(\forall Gvar; (phi | Gvar != Hterm)) \varcond(\notFreeIn(Gvar, Hterm)) \replacewith(({\subst Gvar; (G)Hterm}phi) - | G::instance(Hterm) = FALSE) + | instance<[G]>(Hterm) = FALSE) \heuristics(elimQuantifier, elimQuantifierWithCast) }; @@ -392,7 +392,7 @@ \find(\forall Gvar; (phi | Hterm != Gvar)) \varcond(\notFreeIn(Gvar, Hterm)) \replacewith(({\subst Gvar; (G)Hterm}phi) - | G::instance(Hterm) = FALSE) + | instance<[G]>(Hterm) = FALSE) \heuristics(elimQuantifier, elimQuantifierWithCast) }; @@ -416,7 +416,7 @@ \find(\forall Gvar; (Gvar = Hterm -> phi)) \varcond(\notFreeIn(Gvar, Hterm)) \replacewith(({\subst Gvar; (G)Hterm}phi) - | G::instance(Hterm) = FALSE) + | instance<[G]>(Hterm) = FALSE) \heuristics(elimQuantifier, elimQuantifierWithCast) }; @@ -424,7 +424,7 @@ \find(\forall Gvar; (Hterm = Gvar -> phi)) \varcond(\notFreeIn(Gvar, Hterm)) \replacewith(({\subst Gvar; (G)Hterm}phi) - | G::instance(Hterm) = FALSE) + | instance<[G]>(Hterm) = FALSE) \heuristics(elimQuantifier, elimQuantifierWithCast) }; @@ -446,7 +446,7 @@ \find(\forall Gvar; ((psi & Gvar = Hterm) -> phi)) \varcond(\notFreeIn(Gvar, Hterm)) \replacewith(({\subst Gvar; (G)Hterm}(psi -> phi)) - | G::instance(Hterm) = FALSE) + | instance<[G]>(Hterm) = FALSE) \heuristics(elimQuantifier, elimQuantifierWithCast) }; @@ -454,7 +454,7 @@ \find(\forall Gvar; ((psi & Hterm = Gvar) -> phi)) \varcond(\notFreeIn(Gvar, Hterm)) \replacewith(({\subst Gvar; (G)Hterm}(psi -> phi)) - | G::instance(Hterm) = FALSE) + | instance<[G]>(Hterm) = FALSE) \heuristics(elimQuantifier, elimQuantifierWithCast) }; @@ -476,7 +476,7 @@ \find(\forall Gvar; ((Gvar = Hterm & psi) -> phi)) \varcond(\notFreeIn(Gvar, Hterm)) \replacewith(({\subst Gvar; (G)Hterm}(psi -> phi)) - | G::instance(Hterm) = FALSE) + | instance<[G]>(Hterm) = FALSE) \heuristics(elimQuantifier, elimQuantifierWithCast) }; @@ -484,7 +484,7 @@ \find(\forall Gvar; ((Hterm = Gvar & psi) -> phi)) \varcond(\notFreeIn(Gvar, Hterm)) \replacewith(({\subst Gvar; (G)Hterm}(psi -> phi)) - | G::instance(Hterm) = FALSE) + | instance<[G]>(Hterm) = FALSE) \heuristics(elimQuantifier, elimQuantifierWithCast) }; @@ -505,14 +505,14 @@ elim_exists2 { \find(\exists Gvar; (Gvar = Hterm)) \varcond(\notFreeIn(Gvar, Hterm)) - \replacewith(G::instance(Hterm) = TRUE) + \replacewith(instance<[G]>(Hterm) = TRUE) \heuristics(elimQuantifier, elimQuantifierWithCast) }; elim_exists3 { \find(\exists Gvar; (Hterm = Gvar)) \varcond(\notFreeIn(Gvar, Hterm)) - \replacewith(G::instance(Hterm) = TRUE) + \replacewith(instance<[G]>(Hterm) = TRUE) \heuristics(elimQuantifier, elimQuantifierWithCast) }; @@ -534,7 +534,7 @@ \find(\exists Gvar; (phi & Gvar = Hterm)) \varcond(\notFreeIn(Gvar, Hterm)) \replacewith(({\subst Gvar; (G)Hterm}phi) - & G::instance(Hterm) = TRUE) + & instance<[G]>(Hterm) = TRUE) \heuristics(elimQuantifier, elimQuantifierWithCast) }; @@ -542,7 +542,7 @@ \find(\exists Gvar; (phi & Hterm = Gvar)) \varcond(\notFreeIn(Gvar, Hterm)) \replacewith(({\subst Gvar; (G)Hterm}phi) - & G::instance(Hterm) = TRUE) + & instance<[G]>(Hterm) = TRUE) \heuristics(elimQuantifier, elimQuantifierWithCast) }; diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/genericRules.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/genericRules.key index 5c721112e8c..c550670c498 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/genericRules.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/genericRules.key @@ -60,7 +60,7 @@ instanceof_static_type { \schemaVar \term any a; - \find(G::instance(a)) + \find(instance<[G]>(a)) \varcond(\sub(\typeof(a), G)) \replacewith(TRUE) \displayname "instanceof static supertype" @@ -70,7 +70,7 @@ instanceof_static_type_2 { \schemaVar \term any a, a2; \assumes(a2 = a ==>) - \find(G::instance(a)) + \find(instance<[G]>(a)) \sameUpdateLevel \varcond(\sub(\typeof(a2), G)) \replacewith(TRUE) @@ -80,7 +80,7 @@ instanceof_not_compatible { \schemaVar \term any a; - \find(G::instance(a) = TRUE) + \find(instance<[G]>(a) = TRUE) \varcond(\sub(Null, G), \disjointModuloNull(G, \typeof(a))) \replacewith(a = null) \displayname "instanceof disjoint type" @@ -89,7 +89,7 @@ instanceof_not_compatible_2 { \schemaVar \term any a; - \find(G::instance(a) = FALSE) + \find(instance<[G]>(a) = FALSE) \varcond(\sub(Null, G), \disjointModuloNull(G, \typeof(a))) \replacewith(!(a = null)) \displayname "instanceof disjoint type" @@ -98,7 +98,7 @@ instanceof_not_compatible_3 { \schemaVar \term any a; - \find(G::instance(a) = TRUE) + \find(instance<[G]>(a) = TRUE) \varcond(\not \sub(Null, G), \disjointModuloNull(G, \typeof(a))) \replacewith(false) \displayname "instanceof disjoint type" @@ -107,7 +107,7 @@ instanceof_not_compatible_4 { \schemaVar \term any a; - \find(G::instance(a) = FALSE) + \find(instance<[G]>(a) = FALSE) \varcond(\not \sub(Null, G), \disjointModuloNull(G, \typeof(a))) \replacewith(true) \displayname "instanceof disjoint type" @@ -119,8 +119,8 @@ // See issue #1501. Rule added by MU 31/10/2014 instanceof_not_compatible_5 { \schemaVar \term any a; - \assumes(H::instance(a) = TRUE ==>) - \find(G::instance(a) = TRUE) + \assumes(instance<[H]>(a) = TRUE ==>) + \find(instance<[G]>(a) = TRUE) \varcond(\sub(Null, G), \disjointModuloNull(G, H)) \replacewith(a = null) \displayname "instanceof disjoint type" @@ -129,8 +129,8 @@ instanceof_known_dynamic_type { \schemaVar \term any a; - \assumes(G::exactInstance(a) = TRUE ==>) - \find(H::instance(a)) + \assumes(exactInstance<[G]>(a) = TRUE ==>) + \find(instance<[H]>(a)) \sameUpdateLevel \varcond(\sub(G, H)) \replacewith(TRUE) @@ -139,8 +139,8 @@ instanceof_known_dynamic_type_2 { \schemaVar \term any a; - \assumes(G::exactInstance(a) = TRUE ==>) - \find(H::instance(a)) + \assumes(exactInstance<[G]>(a) = TRUE ==>) + \find(instance<[H]>(a)) \sameUpdateLevel \varcond(\not \sub(G, H)) \replacewith(FALSE) @@ -149,8 +149,8 @@ exact_instance_known_dynamic_type { \schemaVar \term any a; - \assumes(G::exactInstance(a) = TRUE ==>) - \find(H::exactInstance(a)) + \assumes(exactInstance<[G]>(a) = TRUE ==>) + \find(exactInstance<[H]>(a)) \sameUpdateLevel \varcond(\not \same(G, H)) \replacewith(FALSE) @@ -161,13 +161,13 @@ typeEq { \find(s = t1 ==>) - \add(H::instance(s) = TRUE, G::instance(t1) = TRUE ==>) + \add(instance<[H]>(s) = TRUE, instance<[G]>(t1) = TRUE ==>) \displayname "typeEq" }; typeEqDerived { \assumes(s = t1 ==>) - \find(H::instance(s)) + \find(instance<[H]>(s)) \sameUpdateLevel \replacewith(TRUE) \heuristics(simplify, concrete) @@ -176,7 +176,7 @@ typeEqDerived2 { \assumes(s = t1 ==>) - \find(G::instance(t1)) + \find(instance<[G]>(t1)) \sameUpdateLevel \replacewith(TRUE) \heuristics(simplify, concrete) @@ -187,13 +187,13 @@ // is sameUpdateLevel neccessary? Don't think so as static type cannot be changed \find(s) \sameUpdateLevel - \add(G::instance(s) = TRUE ==>) + \add(instance<[G]>(s) = TRUE ==>) }; castAdd { \schemaVar \term [strict] C strictCTerm2; - \assumes(CSub::instance(strictCTerm2) = TRUE ==>) + \assumes(instance<[CSub]>(strictCTerm2) = TRUE ==>) \find(strictCTerm2) \sameUpdateLevel \replacewith((CSub)strictCTerm2) @@ -234,38 +234,38 @@ }; castType { - \assumes(H::instance((C)s) = TRUE ==>) - \find(CSub::instance(s) = TRUE ==>) - \replacewith(H::instance(s) = TRUE ==>) + \assumes(instance<[H]>((C)s) = TRUE ==>) + \find(instance<[CSub]>(s) = TRUE ==>) + \replacewith(instance<[H]>(s) = TRUE ==>) \heuristics(simplify) \displayname "castType" }; castType2 { - \assumes( ==> H::instance((C)s) = TRUE) - \find(CSub::instance(s) = TRUE ==>) - \replacewith( ==> H::instance(s) = TRUE) + \assumes( ==> instance<[H]>((C)s) = TRUE) + \find(instance<[CSub]>(s) = TRUE ==>) + \replacewith( ==> instance<[H]>(s) = TRUE) \heuristics(simplify) \displayname "castType" }; closeType { - \assumes( ==> G::instance(t1) = TRUE) - \find(GSub::instance(t1) = TRUE ==>) \closegoal + \assumes( ==> instance<[G]>(t1) = TRUE) + \find(instance<[GSub]>(t1) = TRUE ==>) \closegoal \displayname "closeType" \heuristics(closure) }; closeTypeSwitched { - \assumes(GSub::instance(t1) = TRUE ==>) - \find( ==> G::instance(t1) = TRUE) \closegoal + \assumes(instance<[GSub]>(t1) = TRUE ==>) + \find( ==> instance<[G]>(t1) = TRUE) \closegoal \displayname "closeType" \heuristics(closure) }; ineffectiveCast { - \assumes(H::instance(t) = TRUE ==>) + \assumes(instance<[H]>(t) = TRUE ==>) \find((H)t) \sameUpdateLevel \add((H)t = t ==>) @@ -281,7 +281,7 @@ // castDel3{ // \schemaVar \term any st; // - // \assumes( H::instance(st) = TRUE ==> ) + // \assumes( instance<[H]>(st) = TRUE ==> ) // \find ((H)st) \sameUpdateLevel // \replacewith (st) // \heuristics (simplify) @@ -290,7 +290,7 @@ // there was a completeness hole w/o this rule ineffectiveCast3 { - \assumes(H::exactInstance(t) = TRUE ==>) + \assumes(exactInstance<[H]>(t) = TRUE ==>) \find((H)t) \sameUpdateLevel \add((H)t = t ==>) diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/heap.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/heap.key index 1cf51d30c4b..ce3223dd896 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/heap.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/heap.key @@ -13,17 +13,17 @@ \functions { // select/store - alpha alpha::select(Heap, Object, Field); + alpha select<[alpha]>(Heap, Object, Field); Heap store(Heap, Object, Field, any); Heap create(Heap, Object); Heap anon(Heap, LocSet, Heap); Heap memset(Heap, LocSet, any); // default value for a field - alpha alpha::defaultValue; + alpha defaultValue<[alpha]>; // reading from final attributes (corresponds to select for non-final fields) - alpha alpha::final(Object, Field); + alpha final<[alpha]>(Object, Field); // fields \unique Field arr(int); @@ -31,10 +31,10 @@ \unique Field java.lang.Object::#$transactionConditionallyUpdated; \unique Field java.lang.Object::#$created; \unique Field java.lang.Object::#$initialized; - \unique Field alpha::#$classPrepared; // static - \unique Field alpha::#$classInitialized; // static - \unique Field alpha::#$classInitializationInProgress; // static - \unique Field alpha::#$classErroneous; // static + \unique Field $classPrepared<[alpha]>; // static + \unique Field $classInitialized<[alpha]>; // static + \unique Field $classInitializationInProgress<[alpha]>; // static + \unique Field $classErroneous<[alpha]>; // static // array length int length(Object); diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/heapRules.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/heapRules.key index fb8c83ac77a..94fea66bded 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/heapRules.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/heapRules.key @@ -25,8 +25,8 @@ (\forall o; ( elementOf(o, f, locs) | !o = null - & !boolean::select(heapOld, o, java.lang.Object::#$created) = TRUE - | any::select(heapNew, o, f) = any::select(heapOld, o, f)))) + & !select<[boolean]>(heapOld, o, java.lang.Object::#$created) = TRUE + | select<[any]>(heapNew, o, f) = select<[any]>(heapOld, o, f)))) \heuristics(delayedExpansion) }; @@ -40,11 +40,11 @@ \schemaVar \term Field f, f2; \schemaVar \term alpha x; - \find(beta::select(store(h, o, f, x), o2, f2)) + \find(select<[beta]>(store(h, o, f, x), o2, f2)) \replacewith(\if(o = o2 & f = f2 & f != java.lang.Object::#$created) \then((beta)x) - \else(beta::select(h, o2, f2))) + \else(select<[beta]>(h, o2, f2))) \heuristics(semantics_blasting) }; @@ -53,20 +53,20 @@ \schemaVar \term Object o, o2; \schemaVar \term Field f; - \find(beta::select(create(h, o), o2, f)) + \find(select<[beta]>(create(h, o), o2, f)) (permissions:off) { \replacewith(\if(o = o2 & o != null & f = java.lang.Object::#$created) \then((beta)TRUE) - \else(beta::select(h, o2, f))) + \else(select<[beta]>(h, o2, f))) }; (permissions:on) { // Permissions are not initialised by Java code when objects are constructed // so it is necessary to know the default value for permissions on freshly created objects // (applies to all selectOfCreate rules) \replacewith(\if(o = o2 & o != null) - \then(\if(f = java.lang.Object::#$created) \then((beta)TRUE) \else(beta::defaultValue)) - \else(beta::select(h, o2, f))) + \then(\if(f = java.lang.Object::#$created) \then((beta)TRUE) \else(defaultValue<[beta]>)) + \else(select<[beta]>(h, o2, f))) } \heuristics(semantics_blasting) }; @@ -77,12 +77,12 @@ \schemaVar \term Object o; \schemaVar \term Field f; - \find(beta::select(anon(h, s, h2), o, f)) + \find(select<[beta]>(anon(h, s, h2), o, f)) \replacewith(\if(elementOf(o, f, s) & f != java.lang.Object::#$created | elementOf(o, f, freshLocs(h))) - \then(beta::select(h2, o, f)) - \else(beta::select(h, o, f))) + \then(select<[beta]>(h2, o, f)) + \else(select<[beta]>(h, o, f))) \heuristics(semantics_blasting) }; @@ -93,11 +93,11 @@ \schemaVar \term Object o; \schemaVar \term Field f; - \find(beta::select(memset(h, s, x), o, f)) + \find(select<[beta]>(memset(h, s, x), o, f)) \replacewith(\if(elementOf(o, f, s) & f != java.lang.Object::#$created) \then((beta)x) - \else(beta::select(h, o, f))) + \else(select<[beta]>(h, o, f))) \heuristics(semantics_blasting) }; @@ -106,14 +106,14 @@ // rule. The rule is proven correct within KeY using the rules // selectCreatedOfAnon and selectOfAnon on the cut-formula // \forall Heap h2; - // ( boolean::select(anon(v_h_0, empty, h2), null, java.lang.Object::#$created) = - // boolean::select(anon(v_h_0, empty, h2), null, java.lang.Object::#$created) ) . + // ( select<[boolean]>(anon(v_h_0, empty, h2), null, java.lang.Object::#$created) = + // select<[boolean]>(anon(v_h_0, empty, h2), null, java.lang.Object::#$created) ) . // See comment on selectCreatedOfAnon. nullCreated { \schemaVar \variables Heap h; - \add((\forall h; boolean::select(h, null, java.lang.Object::#$created) = TRUE) | - (\forall h; boolean::select(h, null, java.lang.Object::#$created) = FALSE) ==>) + \add((\forall h; select<[boolean]>(h, null, java.lang.Object::#$created) = TRUE) | + (\forall h; select<[boolean]>(h, null, java.lang.Object::#$created) = FALSE) ==>) }; // -------------------------------------------------------------------------- @@ -129,12 +129,12 @@ \schemaVar \term Heap EQ; \assumes(store(h, o, f, x) = EQ ==>) - \find(beta::select(EQ, o2, f2)) + \find(select<[beta]>(EQ, o2, f2)) \sameUpdateLevel \replacewith(\if(o = o2 & f = f2 & f != java.lang.Object::#$created) \then((beta)x) - \else(beta::select(h, o2, f2))) + \else(select<[beta]>(h, o2, f2))) \heuristics(simplify_heap_high_costs) }; @@ -146,18 +146,18 @@ \schemaVar \term Heap EQ; \assumes(create(h, o) = EQ ==>) - \find(beta::select(EQ, o2, f)) + \find(select<[beta]>(EQ, o2, f)) \sameUpdateLevel (permissions:off) { \replacewith(\if(o = o2 & o != null & f = java.lang.Object::#$created) \then((beta)TRUE) - \else(beta::select(h, o2, f))) + \else(select<[beta]>(h, o2, f))) }; (permissions:on) { \replacewith(\if(o = o2 & o != null) - \then(\if(f = java.lang.Object::#$created) \then((beta)TRUE) \else(beta::defaultValue)) - \else(beta::select(h, o2, f))) + \then(\if(f = java.lang.Object::#$created) \then((beta)TRUE) \else(defaultValue<[beta]>)) + \else(select<[beta]>(h, o2, f))) } \heuristics(simplify_heap_high_costs) }; @@ -171,13 +171,13 @@ \schemaVar \term Heap EQ; \assumes(anon(h, s, h2) = EQ ==>) - \find(beta::select(EQ, o, f)) + \find(select<[beta]>(EQ, o, f)) \sameUpdateLevel \replacewith(\if(elementOf(o, f, s) & f != java.lang.Object::#$created | elementOf(o, f, freshLocs(h))) - \then(beta::select(h2, o, f)) - \else(beta::select(h, o, f))) + \then(select<[beta]>(h2, o, f)) + \else(select<[beta]>(h, o, f))) \heuristics(simplify_heap_high_costs) }; @@ -191,12 +191,12 @@ \schemaVar \term Heap EQ; \assumes(memset(h, s, x) = EQ ==>) - \find(beta::select(EQ, o, f)) + \find(select<[beta]>(EQ, o, f)) \sameUpdateLevel \replacewith(\if(elementOf(o, f, s) & f != java.lang.Object::#$created) \then((beta)x) - \else(beta::select(h, o, f))) + \else(select<[beta]>(h, o, f))) \heuristics(simplify_heap_high_costs) }; @@ -337,11 +337,11 @@ \schemaVar \term Field f; \schemaVar \skolemTerm beta selectSK; - \find(beta::select(h, o, f)) + \find(select<[beta]>(h, o, f)) \sameUpdateLevel \replacewith(selectSK<>) - \add(beta::select(h, o, f) = selectSK<> ==>) + \add(select<[beta]>(h, o, f) = selectSK<> ==>) \heuristics(pull_out_select) }; @@ -352,18 +352,18 @@ \schemaVar \term alpha x; \schemaVar \term beta sk; - \find(beta::select(store(h, o, f, x), o2, f2) = sk ==>) + \find(select<[beta]>(store(h, o, f, x), o2, f2) = sk ==>) \inSequentState \replacewith( \if(o = o2 & f = f2 & f != java.lang.Object::#$created) \then((beta)x) - \else(beta::select(h, o2, f2)) + \else(select<[beta]>(h, o2, f2)) = sk ==>) \addrules( replaceKnownSelect { - \find(beta::select(store(h, o, f, x), o2, f2)) + \find(select<[beta]>(store(h, o, f, x), o2, f2)) \inSequentState \replacewith(sk) \heuristics(concrete) @@ -380,18 +380,18 @@ \schemaVar \term beta sk; \assumes(store(h, o, f, x) = EQ ==>) - \find(beta::select(EQ, o2, f2) = sk ==>) + \find(select<[beta]>(EQ, o2, f2) = sk ==>) \inSequentState \replacewith( \if(o = o2 & f = f2 & f != java.lang.Object::#$created) \then((beta)x) - \else(beta::select(h, o2, f2)) + \else(select<[beta]>(h, o2, f2)) = sk ==>) \addrules( replaceKnownSelect { - \find(beta::select(EQ, o2, f2)) + \find(select<[beta]>(EQ, o2, f2)) \inSequentState \replacewith(sk) \heuristics(concrete) @@ -406,18 +406,18 @@ \schemaVar \term Field f; \schemaVar \term beta sk; - \find(beta::select(create(h, o), o2, f) = sk ==>) + \find(select<[beta]>(create(h, o), o2, f) = sk ==>) \inSequentState (permissions:off) { \replacewith( \if(o = o2 & o != null & f = java.lang.Object::#$created) \then((beta)TRUE) - \else(beta::select(h, o2, f)) + \else(select<[beta]>(h, o2, f)) = sk ==>) \addrules( replaceKnownSelect { - \find(beta::select(create(h, o), o2, f)) + \find(select<[beta]>(create(h, o), o2, f)) \inSequentState \replacewith(sk) \heuristics(concrete) @@ -426,12 +426,12 @@ (permissions:on) { \replacewith( \if(o = o2 & o != null) - \then(\if(f = java.lang.Object::#$created) \then((beta)TRUE) \else(beta::defaultValue)) - \else(beta::select(h, o2, f)) + \then(\if(f = java.lang.Object::#$created) \then((beta)TRUE) \else(defaultValue<[beta]>)) + \else(select<[beta]>(h, o2, f)) = sk ==>) \addrules( replaceKnownSelect { - \find(beta::select(create(h, o), o2, f)) + \find(select<[beta]>(create(h, o), o2, f)) \inSequentState \replacewith(sk) \heuristics(concrete) @@ -448,18 +448,18 @@ \schemaVar \term beta sk; \assumes(create(h, o) = EQ ==>) - \find(beta::select(EQ, o2, f) = sk ==>) + \find(select<[beta]>(EQ, o2, f) = sk ==>) \inSequentState (permissions:off) { \replacewith( \if(o = o2 & o != null & f = java.lang.Object::#$created) \then((beta)TRUE) - \else(beta::select(h, o2, f)) + \else(select<[beta]>(h, o2, f)) = sk ==>) \addrules( replaceKnownSelect { - \find(beta::select(EQ, o2, f)) + \find(select<[beta]>(EQ, o2, f)) \inSequentState \replacewith(sk) \heuristics(concrete) @@ -469,12 +469,12 @@ (permissions:on) { \replacewith( \if(o = o2 & o != null) - \then(\if(f = java.lang.Object::#$created) \then((beta)TRUE) \else(beta::defaultValue)) - \else(beta::select(h, o2, f)) + \then(\if(f = java.lang.Object::#$created) \then((beta)TRUE) \else(defaultValue<[beta]>)) + \else(select<[beta]>(h, o2, f)) = sk ==>) \addrules( replaceKnownSelect { - \find(beta::select(EQ, o2, f)) + \find(select<[beta]>(EQ, o2, f)) \inSequentState \replacewith(sk) \heuristics(concrete) @@ -490,19 +490,19 @@ \schemaVar \term Field f; \schemaVar \term beta sk; - \find(beta::select(anon(h, s, h2), o, f) = sk ==>) + \find(select<[beta]>(anon(h, s, h2), o, f) = sk ==>) \inSequentState \replacewith( \if(elementOf(o, f, s) & f != java.lang.Object::#$created | elementOf(o, f, freshLocs(h))) - \then(beta::select(h2, o, f)) - \else(beta::select(h, o, f)) + \then(select<[beta]>(h2, o, f)) + \else(select<[beta]>(h, o, f)) = sk ==>) \addrules( replaceKnownSelect { - \find(beta::select(anon(h, s, h2), o, f)) + \find(select<[beta]>(anon(h, s, h2), o, f)) \inSequentState \replacewith(sk) \heuristics(concrete) @@ -519,19 +519,19 @@ \schemaVar \term beta sk; \assumes(anon(h, s, h2) = EQ ==>) - \find(beta::select(EQ, o, f) = sk ==>) + \find(select<[beta]>(EQ, o, f) = sk ==>) \inSequentState \replacewith( \if(elementOf(o, f, s) & f != java.lang.Object::#$created | elementOf(o, f, freshLocs(h))) - \then(beta::select(h2, o, f)) - \else(beta::select(h, o, f)) + \then(select<[beta]>(h2, o, f)) + \else(select<[beta]>(h, o, f)) = sk ==>) \addrules( replaceKnownSelect { - \find(beta::select(EQ, o, f)) + \find(select<[beta]>(EQ, o, f)) \inSequentState \replacewith(sk) \heuristics(concrete) @@ -548,18 +548,18 @@ \schemaVar \term Field f; \schemaVar \term beta sk; - \find(beta::select(memset(h, s, x), o, f) = sk ==>) + \find(select<[beta]>(memset(h, s, x), o, f) = sk ==>) \inSequentState \replacewith( \if(elementOf(o, f, s) & f != java.lang.Object::#$created) \then(x) - \else(beta::select(h, o, f)) + \else(select<[beta]>(h, o, f)) = sk ==>) \addrules( replaceKnownSelect { - \find(beta::select(memset(h, s, x), o, f)) + \find(select<[beta]>(memset(h, s, x), o, f)) \inSequentState \replacewith(sk) \heuristics(concrete) @@ -577,18 +577,18 @@ \schemaVar \term beta sk; \assumes(memset(h, s, x) = EQ ==>) - \find(beta::select(EQ, o, f) = sk ==>) + \find(select<[beta]>(EQ, o, f) = sk ==>) \inSequentState \replacewith( \if(elementOf(o, f, s) & f != java.lang.Object::#$created) \then(x) - \else(beta::select(h, o, f)) + \else(select<[beta]>(h, o, f)) = sk ==>) \addrules( replaceKnownSelect { - \find(beta::select(EQ, o, f)) + \find(select<[beta]>(EQ, o, f)) \inSequentState \replacewith(sk) \heuristics(concrete) @@ -660,11 +660,11 @@ \schemaVar \term Field f1, f2; \schemaVar \term any x; - \find(alpha::select(store(h, o, f1, x), u, f2)) + \find(select<[alpha]>(store(h, o, f1, x), u, f2)) \varcond(\differentFields(f1, f2)) - \replacewith(alpha::select(h, u, f2)) + \replacewith(select<[alpha]>(h, u, f2)) \heuristics(simplify) }; @@ -676,11 +676,11 @@ \schemaVar \term any x; \assumes(store(h, o, f1, x) = EQ ==>) - \find(alpha::select(EQ, u, f2)) + \find(select<[alpha]>(EQ, u, f2)) \sameUpdateLevel \varcond(\differentFields(f1, f2)) - \replacewith(alpha::select(h, u, f2)) + \replacewith(select<[alpha]>(h, u, f2)) \heuristics(simplify) }; @@ -712,19 +712,19 @@ // CS: This taclet is not a lemma. It does not follow from the axiom // selectOfAnon. The term - // boolean::select(anon(h, s, h2), null, java.lang.Object::#$created) - // equals beta::select(h, null, java.lang.Object::#$created) by the + // select<[boolean]>(anon(h, s, h2), null, java.lang.Object::#$created) + // equals select<[beta]>(h, null, java.lang.Object::#$created) by the // definition selectOfAnon and freshLocs. This taclet replaces - // boolean::select(anon(h, s, h2), null, java.lang.Object::#$created) - // by beta::select(h, null, java.lang.Object::#$created) | - // beta::select(h2, null, java.lang.Object::#$created) . + // select<[boolean]>(anon(h, s, h2), null, java.lang.Object::#$created) + // by select<[beta]>(h, null, java.lang.Object::#$created) | + // select<[beta]>(h2, null, java.lang.Object::#$created) . // As a consequence we have forall heaps h, h2 - // beta::select(h, null, java.lang.Object::#$created) <-> - // ( beta::select(h, null, java.lang.Object::#$created) | - // beta::select(h2, null, java.lang.Object::#$created) ) + // select<[beta]>(h, null, java.lang.Object::#$created) <-> + // ( select<[beta]>(h, null, java.lang.Object::#$created) | + // select<[beta]>(h2, null, java.lang.Object::#$created) ) // which is equivalent to - // beta::select(h2, null, java.lang.Object::#$created) -> - // beta::select(h, null, java.lang.Object::#$created) forall h, h2. + // select<[beta]>(h2, null, java.lang.Object::#$created) -> + // select<[beta]>(h, null, java.lang.Object::#$created) forall h, h2. // Hence we only consider interpretations where (the underspecified) // location (null, java.lang.Object::#$created) equals TRUE on all heaps // or where it equals FALSE on all heaps. Since we "only" overspecify the @@ -737,11 +737,11 @@ \schemaVar \term LocSet s; \schemaVar \term Object o; - \find(boolean::select(anon(h, s, h2), o, java.lang.Object::#$created)) + \find(select<[boolean]>(anon(h, s, h2), o, java.lang.Object::#$created)) - \replacewith(\if(boolean::select(h, o, java.lang.Object::#$created) = TRUE) + \replacewith(\if(select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE) \then(TRUE) - \else(boolean::select(h2, o, java.lang.Object::#$created))) + \else(select<[boolean]>(h2, o, java.lang.Object::#$created))) \heuristics(simplify_heap_high_costs) }; @@ -752,10 +752,10 @@ \schemaVar \term LocSet s; \schemaVar \term Object o; - \find(boolean::select(anon(h, s, h2), o, java.lang.Object::#$created) = TRUE) + \find(select<[boolean]>(anon(h, s, h2), o, java.lang.Object::#$created) = TRUE) - \replacewith(boolean::select(h, o, java.lang.Object::#$created) = TRUE | - boolean::select(h2, o, java.lang.Object::#$created) = TRUE) + \replacewith(select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE | + select<[boolean]>(h2, o, java.lang.Object::#$created) = TRUE) \heuristics(simplify_ENLARGING) }; @@ -768,12 +768,12 @@ \schemaVar \term Heap EQ; \assumes(anon(h, s, h2) = EQ ==>) - \find(boolean::select(EQ, o, java.lang.Object::#$created)) + \find(select<[boolean]>(EQ, o, java.lang.Object::#$created)) \sameUpdateLevel - \replacewith(\if(boolean::select(h, o, java.lang.Object::#$created) = TRUE) + \replacewith(\if(select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE) \then(TRUE) - \else(boolean::select(h2, o, java.lang.Object::#$created))) + \else(select<[boolean]>(h2, o, java.lang.Object::#$created))) \heuristics(simplify_heap_high_costs) }; @@ -786,11 +786,11 @@ \schemaVar \term Heap EQ; \assumes(anon(h, s, h2) = EQ ==>) - \find(boolean::select(EQ, o, java.lang.Object::#$created) = TRUE) + \find(select<[boolean]>(EQ, o, java.lang.Object::#$created) = TRUE) \sameUpdateLevel - \replacewith(boolean::select(h, o, java.lang.Object::#$created) = TRUE | - boolean::select(h2, o, java.lang.Object::#$created) = TRUE) + \replacewith(select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE | + select<[boolean]>(h2, o, java.lang.Object::#$created) = TRUE) \heuristics(simplify_ENLARGING) }; @@ -803,7 +803,7 @@ \find(h = h2) \varcond(\notFreeIn(ov, h, h2), \notFreeIn(fv, h, h2)) - \replacewith(\forall ov; \forall fv; (any::select(h, ov, fv) = any::select(h2, ov, fv))) + \replacewith(\forall ov; \forall fv; (select<[any]>(h, ov, fv) = select<[any]>(h2, ov, fv))) \heuristics(semantics_blasting) @@ -819,12 +819,12 @@ \schemaVar \term Field f; \assumes(wellFormed(h) ==>) - \find(deltaObject::select(h, o, f)) + \find(select<[deltaObject]>(h, o, f)) \sameUpdateLevel - \add(deltaObject::select(h, o, f) = null - | boolean::select(h, - deltaObject::select(h, o, f), + \add(select<[deltaObject]>(h, o, f) = null + | select<[boolean]>(h, + select<[deltaObject]>(h, o, f), java.lang.Object::#$created) = TRUE ==>) \heuristics(inReachableStateImplication) @@ -837,13 +837,13 @@ // Without that created-check, it is not consistent. \assumes(wellFormed(h), - boolean::select(h, o, java.lang.Object::#$created) = TRUE ==>) - \find(deltaObject::final(o, f)) + select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE ==>) + \find(final<[deltaObject]>(o, f)) \sameUpdateLevel - \add(deltaObject::final(o, f) = null - | boolean::select(h, - deltaObject::final(o, f), + \add(final<[deltaObject]>(o, f) = null + | select<[boolean]>(h, + final<[deltaObject]>(o, f), java.lang.Object::#$created) = TRUE ==>) \heuristics(inReachableStateImplication) @@ -855,10 +855,10 @@ \schemaVar \term Field f, f2; \assumes(wellFormed(h) ==>) - \find(elementOf(o2, f2, LocSet::select(h, o, f)) ==>) + \find(elementOf(o2, f2, select<[LocSet]>(h, o, f)) ==>) \add(o2 = null - | boolean::select(h, + | select<[boolean]>(h, o2, java.lang.Object::#$created) = TRUE ==>) @@ -871,10 +871,10 @@ \schemaVar \term Field f, f2; \assumes(wellFormed(h) ==>) - \find(elementOf(o2, f2, LocSet::final(o, f)) ==>) + \find(elementOf(o2, f2, final<[LocSet]>(o, f)) ==>) \add(o2 = null - | boolean::select(h, + | select<[boolean]>(h, o2, java.lang.Object::#$created) = TRUE ==>) @@ -888,11 +888,11 @@ \schemaVar \term Field f, f2; \schemaVar \term LocSet EQ; - \assumes(wellFormed(h), LocSet::select(h, o, f) = EQ ==>) + \assumes(wellFormed(h), select<[LocSet]>(h, o, f) = EQ ==>) \find(elementOf(o2, f2, EQ) ==>) \add(o2 = null - | boolean::select(h, + | select<[boolean]>(h, o2, java.lang.Object::#$created) = TRUE ==>) @@ -905,11 +905,11 @@ \schemaVar \term Field f, f2; \schemaVar \term LocSet EQ; - \assumes(wellFormed(h), LocSet::final(o, f) = EQ ==>) + \assumes(wellFormed(h), final<[LocSet]>(o, f) = EQ ==>) \find(elementOf(o2, f2, EQ) ==>) \add(o2 = null - | boolean::select(h, + | select<[boolean]>(h, o2, java.lang.Object::#$created) = TRUE ==>) @@ -957,7 +957,7 @@ \varcond(\fieldType(f, alpha)) - \replacewith(wellFormed(h) & (x = null | boolean::select(h, x, java.lang.Object::#$created) = TRUE & alpha::instance(x) = TRUE)) + \replacewith(wellFormed(h) & (x = null | select<[boolean]>(h, x, java.lang.Object::#$created) = TRUE & instance<[alpha]>(x) = TRUE)) \heuristics(simplify_enlarging) }; @@ -973,7 +973,7 @@ \varcond(\hasElementarySort(o, alpha)) - \replacewith(wellFormed(h) & (x = null | boolean::select(h, x, java.lang.Object::#$created) = TRUE & arrayStoreValid(o, x))) + \replacewith(wellFormed(h) & (x = null | select<[boolean]>(h, x, java.lang.Object::#$created) = TRUE & arrayStoreValid(o, x))) \heuristics(simplify_enlarging) }; @@ -1069,7 +1069,7 @@ \varcond(\hasElementarySort(ar, alpha)) \replacewith(wellFormed(h) & - (x = null | boolean::select(h, x, java.lang.Object::#$created) = TRUE & arrayStoreValid(ar, x))) + (x = null | select<[boolean]>(h, x, java.lang.Object::#$created) = TRUE & arrayStoreValid(ar, x))) \heuristics(simplify_enlarging) }; @@ -1103,7 +1103,7 @@ In pseudo-notation, the condition is something like this: - forall (o, f) in s: fieldtype(f)::instance(x) = TRUE + forall (o, f) in s: instance<[fieldtype(f)]> = TRUE Since this can not be encoded currently, we uncommented these rules as well as their corresponding EQ versions below (see wellFormedMemsetObjectEQ). @@ -1120,7 +1120,7 @@ \find(wellFormed(memset(h, s, x))) \succedentPolarity - \replacewith(wellFormed(h) & (x = null | boolean::select(h, x, java.lang.Object::#$created) = TRUE)) + \replacewith(wellFormed(h) & (x = null | select<[boolean]>(h, x, java.lang.Object::#$created) = TRUE)) \heuristics(simplify_enlarging) }; @@ -1172,7 +1172,7 @@ \varcond(\fieldType(f, alpha)) - \replacewith(wellFormed(h) & (x = null | boolean::select(h, x, java.lang.Object::#$created) = TRUE & alpha::instance(x) = TRUE)) + \replacewith(wellFormed(h) & (x = null | select<[boolean]>(h, x, java.lang.Object::#$created) = TRUE & instance<[alpha]>(x) = TRUE)) \heuristics(simplify_enlarging) }; @@ -1243,7 +1243,7 @@ \sameUpdateLevel \succedentPolarity - \replacewith(wellFormed(h) & (x = null | boolean::select(h, x, java.lang.Object::#$created) = TRUE)) + \replacewith(wellFormed(h) & (x = null | select<[boolean]>(h, x, java.lang.Object::#$created) = TRUE)) \heuristics(simplify_enlarging) }; @@ -1298,7 +1298,7 @@ \varcond(\isObserver(obs, h)) \add(obs = null - | boolean::select(h, obs, java.lang.Object::#$created) = TRUE ==>) + | select<[boolean]>(h, obs, java.lang.Object::#$created) = TRUE ==>) \heuristics(inReachableStateImplication) }; @@ -1313,7 +1313,7 @@ \varcond(\isObserver(obs, h)) \add(o = null - | boolean::select(h, o, java.lang.Object::#$created) = TRUE ==>) + | select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE ==>) \heuristics(inReachableStateImplication) }; @@ -1329,7 +1329,7 @@ \varcond(\isObserver(obs, h)) \add(o = null - | boolean::select(h, o, java.lang.Object::#$created) = TRUE ==>) + | select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE ==>) \heuristics(inReachableStateImplication) }; @@ -1345,12 +1345,12 @@ \assumes(wellFormed(h) ==>) - \find(beta::select(h, o, f)) + \find(select<[beta]>(h, o, f)) \varcond(\fieldType(f, alpha), \strict \sub(alpha, beta)) - \replacewith(alpha::select(h, o, f)) + \replacewith(select<[alpha]>(h, o, f)) \heuristics(simplify) }; @@ -1359,12 +1359,12 @@ \schemaVar \term Object o; \schemaVar \term Field f; - \find(beta::final(o,f)) + \find(final<[beta]>(o,f)) \varcond(\fieldType(f, alpha), \strict\sub(alpha, beta)) - \replacewith(alpha::final(o,f)) + \replacewith(final<[alpha]>(o,f)) \heuristics(simplify) }; @@ -1377,13 +1377,13 @@ \assumes(wellFormed(h) ==> o = null) - \find(beta::select(h, o, arr(idx))) + \find(select<[beta]>(h, o, arr(idx))) \sameUpdateLevel \varcond(\hasElementarySort(o, alpha), \strict \sub(alpha, beta)) - \replacewith(alpha::select(h, o, arr(idx))) + \replacewith(select<[alpha]>(h, o, arr(idx))) \heuristics(simplify) }; @@ -1393,12 +1393,12 @@ \assumes( ==> o = null ) - \find(beta::final(o,arr(idx))) \sameUpdateLevel + \find(final<[beta]>(o,arr(idx))) \sameUpdateLevel \varcond(\hasElementarySort(o, alpha), \strict\sub(alpha, beta)) - \replacewith(alpha::final(o,arr(idx))) + \replacewith(final<[alpha]>(o,arr(idx))) \heuristics(simplify) }; @@ -1413,8 +1413,8 @@ \schemaVar \term Object o; \schemaVar \term Field f; - \assumes(boolean::select(h, o, f) = TRUE ==>) - \find( ==> any::select(h, o, f) = TRUE) + \assumes(select<[boolean]>(h, o, f) = TRUE ==>) + \find( ==> select<[any]>(h, o, f) = TRUE) \replacewith( ==> true) @@ -1513,7 +1513,7 @@ \replacewith(( o != null & (depth > 0 -> \forall i; (0 <= i & i < length(o) -> - nonNull(heapSV, Object::select(heapSV, o, arr(i)), depth - 1)) + nonNull(heapSV, select<[Object]>(heapSV, o, arr(i)), depth - 1)) )) ) \heuristics(simplify_enlarging) diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/infFlow.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/infFlow.key index b955c4792e3..979013f3a0c 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/infFlow.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/infFlow.key @@ -50,10 +50,10 @@ \replacewith( ==> \forall i; ((0 <= i & i < seqLen(s)) - -> ((java.lang.Object::instance(any::seqGet(s, i)) = TRUE - -> boolean::select(h, java.lang.Object::seqGet(s, i), java.lang.Object::#$created) = FALSE) - & (Seq::instance(any::seqGet(s, i)) = TRUE - -> newOnHeap(h, Seq::seqGet(s, i)))))) + -> ((instance<[java.lang.Object]>(seqGet<[any]>(s, i)) = TRUE + -> select<[boolean]>(h, seqGet<[java.lang.Object]>(s, i), java.lang.Object::#$created) = FALSE) + & (instance<[Seq]>(seqGet<[any]>(s, i)) = TRUE + -> newOnHeap(h, seqGet<[Seq]>(s, i)))))) \heuristics(comprehensions) }; @@ -69,9 +69,9 @@ seqLen(s1) = seqLen(s2) & \forall i; ((0 <= i & i < seqLen(s1)) - -> ((sameType(any::seqGet(s1, i), any::seqGet(s2, i))) - & (Seq::instance(any::seqGet(s1, i)) = TRUE - -> sameTypes(Seq::seqGet(s1, i), Seq::seqGet(s2, i)))))) + -> ((sameType(seqGet<[any]>(s1, i), seqGet<[any]>(s2, i))) + & (instance<[Seq]>(seqGet<[any]>(s1, i)) = TRUE + -> sameTypes(seqGet<[Seq]>(s1, i), seqGet<[Seq]>(s2, i)))))) \heuristics(comprehensions) }; @@ -90,16 +90,16 @@ \replacewith( ==> \forall i; ((0 <= i & i < seqLen(t1)) - -> ((java.lang.Object::instance(any::seqGet(t1, i)) = TRUE + -> ((instance<[java.lang.Object]>(seqGet<[any]>(t1, i)) = TRUE -> objectIsomorphic(s1, - java.lang.Object::seqGet(t1, i), + seqGet<[java.lang.Object]>(t1, i), s2, - java.lang.Object::seqGet(t2, i))) - & (Seq::instance(any::seqGet(t1, i)) = TRUE + seqGet<[java.lang.Object]>(t2, i))) + & (instance<[Seq]>(seqGet<[any]>(t1, i)) = TRUE -> objectsIsomorphic(s1, - Seq::seqGet(t1, i), + seqGet<[Seq]>(t1, i), s2, - Seq::seqGet(t2, i)))))) + seqGet<[Seq]>(t2, i)))))) \heuristics(comprehensions) }; @@ -119,13 +119,13 @@ \replacewith( ==> \forall i; ((0 <= i & i < seqLen(s1)) - -> ((java.lang.Object::instance(any::seqGet(s1, i)) = TRUE - -> (java.lang.Object::seqGet(s1, i) = o1 - <-> java.lang.Object::seqGet(s2, i) = o2)) - & (Seq::instance(any::seqGet(s1, i)) = TRUE - -> objectIsomorphic(Seq::seqGet(s1, i), + -> ((instance<[java.lang.Object]>(seqGet<[any]>(s1, i)) = TRUE + -> (seqGet<[java.lang.Object]>(s1, i) = o1 + <-> seqGet<[java.lang.Object]>(s2, i) = o2)) + & (instance<[Seq]>(seqGet<[any]>(s1, i)) = TRUE + -> objectIsomorphic(seqGet<[Seq]>(s1, i), o1, - Seq::seqGet(s2, i), + seqGet<[Seq]>(s2, i), o2))))) \heuristics(comprehensions) @@ -134,7 +134,7 @@ sameTypeTrue { \schemaVar \term any x1, x2; - \assumes(G::exactInstance(x1) = TRUE, G::exactInstance(x2) = TRUE ==>) + \assumes(exactInstance<[G]>(x1) = TRUE, exactInstance<[G]>(x2) = TRUE ==>) \find(sameType(x1, x2)) \replacewith(true) @@ -145,7 +145,7 @@ sameTypeFalse { \schemaVar \term any x1, x2; - \assumes(G::exactInstance(x1) = TRUE, H::exactInstance(x2) = TRUE ==>) + \assumes(exactInstance<[G]>(x1) = TRUE, exactInstance<[H]>(x2) = TRUE ==>) \find(sameType(x1, x2)) \varcond(\not \same(G, H)) diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/instanceAllocation.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/instanceAllocation.key index 20307fc6266..df0a5140d73 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/instanceAllocation.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/instanceAllocation.key @@ -105,9 +105,9 @@ } \modality{#allmodal}{.. ...}\endmodality (post)) \add(#lhs != null - & (wellFormed(heap) -> boolean::select(heap, #lhs, java.lang.Object::#$created) = FALSE) - & (wellFormed(permissions) -> boolean::select(permissions, #lhs, java.lang.Object::#$created) = FALSE) - & alphaObj::exactInstance(#lhs) = TRUE ==>) + & (wellFormed(heap) -> select<[boolean]>(heap, #lhs, java.lang.Object::#$created) = FALSE) + & (wellFormed(permissions) -> select<[boolean]>(permissions, #lhs, java.lang.Object::#$created) = FALSE) + & exactInstance<[alphaObj]>(#lhs) = TRUE ==>) \heuristics(method_expand) }; @@ -124,10 +124,10 @@ || permissions := create(permissions, #lhs)} \modality{#allmodal}{.. ...}\endmodality (post)) \add(#lhs != null - & (wellFormed(heap) -> (boolean::select(heap, #lhs, java.lang.Object::#$created) = FALSE + & (wellFormed(heap) -> (select<[boolean]>(heap, #lhs, java.lang.Object::#$created) = FALSE & length(#lhs) = #len)) - & (wellFormed(permissions) -> boolean::select(permissions, #lhs, java.lang.Object::#$created) = FALSE) - & alphaObj::exactInstance(#lhs) = TRUE ==>) + & (wellFormed(permissions) -> select<[boolean]>(permissions, #lhs, java.lang.Object::#$created) = FALSE) + & exactInstance<[alphaObj]>(#lhs) = TRUE ==>) \heuristics(method_expand) }; @@ -141,8 +141,8 @@ \replacewith( ==> {heap := create(heap, #lhs)} \modality{#allmodal}{.. ...}\endmodality (post)) \add(#lhs != null - & (wellFormed(heap) -> boolean::select(heap, #lhs, java.lang.Object::#$created) = FALSE) - & alphaObj::exactInstance(#lhs) = TRUE ==>) + & (wellFormed(heap) -> select<[boolean]>(heap, #lhs, java.lang.Object::#$created) = FALSE) + & exactInstance<[alphaObj]>(#lhs) = TRUE ==>) \heuristics(method_expand) }; @@ -158,9 +158,9 @@ #lhs, java.lang.Object::#$transactionConditionallyUpdated, FALSE)} \modality{#allmodal}{.. ...}\endmodality (post)) \add(#lhs != null - & (wellFormed(heap) -> (boolean::select(heap, #lhs, java.lang.Object::#$created) = FALSE + & (wellFormed(heap) -> (select<[boolean]>(heap, #lhs, java.lang.Object::#$created) = FALSE & length(#lhs) = #len)) - & alphaObj::exactInstance(#lhs) = TRUE ==>) + & exactInstance<[alphaObj]>(#lhs) = TRUE ==>) \heuristics(method_expand) }; @@ -205,34 +205,34 @@ // ---------------------------------------------------------------------------- /* exact_instance_implies_instance_reference { - \find (alphaObj::exactInstance(obj) = TRUE ==>) - \add (alphaObj::instance(obj) = TRUE ==>) + \find (exactInstance<[alphaObj]>(obj) = TRUE ==>) + \add (instance<[alphaObj]>(obj) = TRUE ==>) \heuristics (type_hierarchy_def) }; */ exact_instance_definition_int { - \find(int::exactInstance(idx0) = TRUE) + \find(exactInstance<[int]>(idx0) = TRUE) \varcond(\notFreeIn(iv, idx0)) \replacewith(\exists iv; (idx0 = iv)) \heuristics(simplify) }; exact_instance_definition_boolean { - \find(boolean::exactInstance(bool) = TRUE) + \find(exactInstance<[boolean]>(bool) = TRUE) \varcond(\notFreeIn(bv, bool)) \replacewith(\exists bv; (bool = bv)) \heuristics(simplify) }; exact_instance_definition_null { - \find(Null::exactInstance(obj) = TRUE) + \find(exactInstance<[Null]>(obj) = TRUE) \varcond(\notFreeIn(bv, bool)) \replacewith(obj = null) \heuristics(simplify) }; exact_instance_for_interfaces_or_abstract_classes { - \find(G::exactInstance(obj)) + \find(exactInstance<[G]>(obj)) \varcond(\isAbstractOrInterface(G)) \replacewith(FALSE) \heuristics(simplify) @@ -241,8 +241,8 @@ instance_for_final_types { \schemaVar \term any a; - \assumes(==> J::exactInstance(a) = TRUE) - \find(J::instance(a) = TRUE ==>) + \assumes(==> exactInstance<[J]>(a) = TRUE) + \find(instance<[J]>(a) = TRUE ==>) \varcond(\isFinal(J)) \replacewith(a = null ==>) \heuristics(simplify) 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 index 810c4692342..fc62abff04b 100644 --- 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 @@ -25,7 +25,7 @@ \functions { - alpha alpha::cast(any); - boolean alpha::exactInstance(any); - boolean alpha::instance(any); + alpha cast<[alpha]>(any); + boolean exactInstance<[alpha]>(any); + boolean instance<[alpha]>(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 92f0af37bda..915ecc598ce 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 @@ -103,7 +103,7 @@ ...}\endmodality post) "Normal Execution" [main]: \replacewith( ==> - {#lhs := int::select(heap, #se, java.lang.Object::#$transient)} + {#lhs := select<[int]>(heap, #se, java.lang.Object::#$transient)} \modality{#allmodal}{.. ...}\endmodality post); "#se is not null": \replacewith( ==> #se != null) @@ -311,7 +311,7 @@ assignment_write_array_this_access_normalassign { \find(\modality{#allmodal}{.#pm@#t(#v).. this[#se]=#se0; ...}\endmodality (post)) \replacewith((lt(#se, length(#v)) & lt(-1, #se) & - writePermission(Permission::select(permissions, #v, arr(#se)))) -> + writePermission(select<[Permission]>(permissions, #v, arr(#se)))) -> {heap := store(heap, #v, arr(#se), #se0)}\modality{#allmodal}{.. ...}\endmodality (post)) \heuristics(simplify_prog, simplify_prog_subset) \displayname "assignment" @@ -333,7 +333,7 @@ array_self_reference { \schemaVar \term Heap heapSV; \assumes(wellFormed(heapSV) ==> array = null) - \find(arrayStoreValid(array, G::select(heapSV, array, arr(idx)))) + \find(arrayStoreValid(array, select<[G]>(heapSV, array, arr(idx)))) \sameUpdateLevel \replacewith(true) \heuristics(simplify_java) @@ -343,7 +343,7 @@ array_self_reference_eq { \schemaVar \term Heap heapSV; \schemaVar \term G EQ; - \assumes(wellFormed(heapSV), G::select(heapSV, array, arr(idx)) = EQ ==> array = null) + \assumes(wellFormed(heapSV), select<[G]>(heapSV, array, arr(idx)) = EQ ==> array = null) \find(arrayStoreValid(array, EQ)) \sameUpdateLevel \replacewith(true) @@ -369,12 +369,12 @@ */ array_store_known_dynamic_array_type { - \assumes(J::exactInstance(array) = TRUE ==>) + \assumes(exactInstance<[J]>(array) = TRUE ==>) \find(arrayStoreValid(array, obj)) \sameUpdateLevel \varcond(\isReference [non_null](J)) \replacewith(obj = null | - #arrayBaseInstanceOf(J::exactInstance(array), obj) = TRUE) + #arrayBaseInstanceOf(exactInstance<[J]>(array), obj) = TRUE) \heuristics(simplify_java) \displayname "known dynamic array type" }; @@ -385,7 +385,7 @@ // will be uncommented soon // MU: ... uncommented more than 18 years later dynamic_type_for_null { - \find (G::exactInstance(null)) + \find (exactInstance<[G]>(null)) \varcond(\not\same(G,Null)) \replacewith(FALSE) \heuristics(concrete) @@ -943,7 +943,7 @@ \varcond(\hasSort(#npit, G), \sub(\typeof(#se), G)) "Normal Execution (#se instanceof #npit)" [main]: \replacewith({#lhs := #addCast(#se, #lhs)}\modality{#allmodal}{.. ...}\endmodality (post)) - \add(#se = null | G::instance(#se) = TRUE ==>) + \add(#se = null | instance<[G]>(#se) = TRUE ==>) \heuristics(simplify_prog) }; @@ -957,11 +957,11 @@ \varcond(\hasSort(#npit, G), \not \sub(\typeof(#se), G)) "Normal Execution (#se instanceof #npit)" [main]: \replacewith({#lhs := #addCast(#se, #lhs)}\modality{#allmodal}{.. ...}\endmodality (post)) - \add(#se = null | G::instance(#se) = TRUE ==>); + \add(#se = null | instance<[G]>(#se) = TRUE ==>); "ClassCastException (!(#se instanceof #npit))": \replacewith(\modality{#allmodal}{.. throw new java.lang.ClassCastException(); ...}\endmodality (post)) - \add( ==> #se = null | G::instance(#se) = TRUE) + \add( ==> #se = null | instance<[G]>(#se) = TRUE) \heuristics(simplify_prog) }; } @@ -972,11 +972,11 @@ \varcond(\hasSort(#npit, G), \not \sub(\typeof(#se), G)) "Normal Execution (#se instanceof #npit)" [main]: \replacewith( ==> {#lhs := #addCast(#se, #lhs)}\modality{#allmodal}{.. ...}\endmodality (post)) - // \add(#se = null | G::instance(#se) = TRUE ==>) + // \add(#se = null | instance<[G]>(#se) = TRUE ==>) ; "ClassCastException (!(#se instanceof #npit))": \replacewith( ==> false) - \add( ==> #se = null | G::instance(#se) = TRUE) + \add( ==> #se = null | instance<[G]>(#se) = TRUE) \heuristics(simplify_prog) }; } @@ -2906,7 +2906,7 @@ (permissions:on) { "Write Permission to #v[#se]": \replacewith(\modality{#normal}{.. assert false : "Access permission check-point (write)."; ...}\endmodality (post)) - \add( ==> writePermission(Permission::select(permissions, #v, arr(#se)))) + \add( ==> writePermission(select<[Permission]>(permissions, #v, arr(#se)))) }; "Null Reference (#v = null)": \replacewith(\modality{#normal}{.. throw new java.lang.NullPointerException(); ...}\endmodality (post)) @@ -2931,9 +2931,9 @@ "Normal Execution (#v != null)" [main]: \replacewith( {heap := store(heap, #v, arr(#se), #se0)} - {savedHeap := \if(int::select(heap, #v, java.lang.Object::#$transient) = 0) + {savedHeap := \if(select<[int]>(heap, #v, java.lang.Object::#$transient) = 0) \then(store(savedHeap, #v, java.lang.Object::#$transactionConditionallyUpdated, TRUE)) - \else(\if(boolean::select(savedHeap, #v, + \else(\if(select<[boolean]>(savedHeap, #v, java.lang.Object::#$transactionConditionallyUpdated) = FALSE) \then(store(savedHeap, #v, arr(#se), #se0)) \else(savedHeap))} @@ -2964,7 +2964,7 @@ ; (permissions:on) { "Write Permission to #v[#se]": - \replacewith( ==> writePermission(Permission::select(permissions, #v, arr(#se)))) + \replacewith( ==> writePermission(select<[Permission]>(permissions, #v, arr(#se)))) }; "Null Reference (#v = null)": \replacewith( ==> false) @@ -2997,9 +2997,9 @@ "Normal Execution (#v != null)" [main]: \replacewith( ==> {heap := store(heap, #v, arr(#se), #se0)} - {savedHeap := \if(int::select(heap, #v, java.lang.Object::#$transient) = 0) + {savedHeap := \if(select<[int]>(heap, #v, java.lang.Object::#$transient) = 0) \then(store(savedHeap, #v, java.lang.Object::#$transactionConditionallyUpdated, TRUE)) - \else(\if(boolean::select(savedHeap, #v, + \else(\if(select<[boolean]>(savedHeap, #v, java.lang.Object::#$transactionConditionallyUpdated) = FALSE) \then(store(savedHeap, #v, arr(#se), #se0)) \else(savedHeap))} @@ -3027,9 +3027,9 @@ \varcond(\isReferenceArray(#v)) \replacewith( {heap := store(heap, #v, arr(#se), #se0)} - {savedHeap := \if(int::select(heap, #v, java.lang.Object::#$transient) = 0) + {savedHeap := \if(select<[int]>(heap, #v, java.lang.Object::#$transient) = 0) \then(store(savedHeap, #v, java.lang.Object::#$transactionConditionallyUpdated, TRUE)) - \else(\if(boolean::select(savedHeap, #v, + \else(\if(select<[boolean]>(savedHeap, #v, java.lang.Object::#$transactionConditionallyUpdated) = FALSE) \then(store(savedHeap, #v, arr(#se), #se0)) \else(savedHeap))} @@ -3051,7 +3051,7 @@ (permissions:on) { "Write Permission to #v[#se]": \replacewith(\modality{#normal}{.. assert false : "Access permission check-point (write)."; ...}\endmodality (post)) - \add( ==> writePermission(Permission::select(permissions, #v, arr(#se)))) + \add( ==> writePermission(select<[Permission]>(permissions, #v, arr(#se)))) }; "Null Reference (#v = null)": \replacewith(\modality{#normal}{.. @@ -3074,9 +3074,9 @@ "Normal Execution (#v != null)" [main]: \replacewith( {heap := store(heap, #v, arr(#se), #se0)} - {savedHeap := \if(int::select(heap, #v, java.lang.Object::#$transient) = 0) + {savedHeap := \if(select<[int]>(heap, #v, java.lang.Object::#$transient) = 0) \then(store(savedHeap, #v, java.lang.Object::#$transactionConditionallyUpdated, TRUE)) - \else(\if(boolean::select(savedHeap, #v, + \else(\if(select<[boolean]>(savedHeap, #v, java.lang.Object::#$transactionConditionallyUpdated) = FALSE) \then(store(savedHeap, #v, arr(#se), #se0)) \else(savedHeap))} @@ -3106,7 +3106,7 @@ ; (permissions:on) { "Write Permission to #v[#se]": - \replacewith( ==> writePermission(Permission::select(permissions, #v, arr(#se)))) + \replacewith( ==> writePermission(select<[Permission]>(permissions, #v, arr(#se)))) }; "Null Reference (#v = null)": \replacewith( ==> false) @@ -3136,9 +3136,9 @@ "Normal Execution (#v != null)" [main]: \replacewith( ==> {heap := store(heap, #v, arr(#se), #se0)} - {savedHeap := \if(int::select(heap, #v, java.lang.Object::#$transient) = 0) + {savedHeap := \if(select<[int]>(heap, #v, java.lang.Object::#$transient) = 0) \then(store(savedHeap, #v, java.lang.Object::#$transactionConditionallyUpdated, TRUE)) - \else(\if(boolean::select(savedHeap, #v, + \else(\if(select<[boolean]>(savedHeap, #v, java.lang.Object::#$transactionConditionallyUpdated) = FALSE) \then(store(savedHeap, #v, arr(#se), #se0)) \else(savedHeap))} @@ -3164,9 +3164,9 @@ \varcond(\not \isReferenceArray(#v)) \replacewith( {heap := store(heap, #v, arr(#se), #se0)} - {savedHeap := \if(int::select(heap, #v, java.lang.Object::#$transient) = 0) + {savedHeap := \if(select<[int]>(heap, #v, java.lang.Object::#$transient) = 0) \then(store(savedHeap, #v, java.lang.Object::#$transactionConditionallyUpdated, TRUE)) - \else(\if(boolean::select(savedHeap, #v, + \else(\if(select<[boolean]>(savedHeap, #v, java.lang.Object::#$transactionConditionallyUpdated) = FALSE) \then(store(savedHeap, #v, arr(#se), #se0)) \else(savedHeap))} @@ -3183,12 +3183,12 @@ \sameUpdateLevel \varcond(\hasElementarySort(#v0, G)) "Normal Execution (#v0 != null)" [main]: - \replacewith({#v := G::select(heap, #v0, arr(#se))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith({#v := select<[G]>(heap, #v0, arr(#se))}\modality{#allmodal}{.. ...}\endmodality (post)) \add( ==> (#v0 = null) | leq(length(#v0), #se) | lt(#se, 0)); (permissions:on) { "Read Permission to #v0[#se]": \replacewith(\modality{#allmodal}{.. assert false : "Access permission check-point (read)."; ...}\endmodality (post)) - \add( ==> readPermission(Permission::select(permissions, #v0, arr(#se)))) + \add( ==> readPermission(select<[Permission]>(permissions, #v0, arr(#se)))) }; "Null Reference (#v0 = null)": \replacewith(\modality{#allmodal}{.. @@ -3209,12 +3209,12 @@ \find( ==> \modality{#allmodal}{.. #v = #v0[#se]; ...}\endmodality (post)) \varcond(\hasElementarySort(#v0, G)) "Normal Execution (#v0 != null)" [main]: - \replacewith( ==> {#v := G::select(heap, #v0, arr(#se))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith( ==> {#v := select<[G]>(heap, #v0, arr(#se))}\modality{#allmodal}{.. ...}\endmodality (post)) // \add (==>(#v0=null) | leq(length(#v0), #se) | lt(#se,0)) ; (permissions:on) { "Read Permission to #v0[#se]": - \replacewith( ==> readPermission(Permission::select(permissions, #v0, arr(#se)))) + \replacewith( ==> readPermission(select<[Permission]>(permissions, #v0, arr(#se)))) }; "Null Reference (#v0 = null)": \replacewith( ==> false) @@ -3230,7 +3230,7 @@ assignment_array2 { \find(\modality{#allmodal}{.. #v = #v0[#se]; ...}\endmodality (post)) \varcond(\hasElementarySort(#v0, G)) - \replacewith({#v := G::select(heap, #v0, arr(#se))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith({#v := select<[G]>(heap, #v0, arr(#se))}\modality{#allmodal}{.. ...}\endmodality (post)) \heuristics(simplify_prog, simplify_prog_subset) }; } @@ -3245,12 +3245,12 @@ \hasSort(#a, G), \not \isThisReference(#v)) "Normal Execution (#v != null)" [main]: - \replacewith({#v0 := G::select(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith({#v0 := select<[G]>(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) \add( ==> (#v = null)); (permissions:on) { "Read Permission to #v.#a": \replacewith(\modality{#allmodal}{.. assert false : "Access permission check-point (read)."; ...}\endmodality (post)) - \add( ==> readPermission(Permission::select(permissions, #v, #memberPVToField(#a)))) + \add( ==> readPermission(select<[Permission]>(permissions, #v, #memberPVToField(#a)))) }; "Null Reference (#v = null)": \replacewith(\modality{#allmodal}{..throw new java.lang.NullPointerException();...}\endmodality (post)) @@ -3267,12 +3267,12 @@ \hasSort(#a, G), \isThisReference(#v)) "Normal Execution" [main]: - \replacewith({#v0 := G::select(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith({#v0 := select<[G]>(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) ; (permissions:on) { "Read Permission to #v.#a": \replacewith(\modality{#allmodal}{.. assert false : "Access permission check-point (read)."; ...}\endmodality (post)) - \add( ==> readPermission(Permission::select(permissions, #v, #memberPVToField(#a)))) + \add( ==> readPermission(select<[Permission]>(permissions, #v, #memberPVToField(#a)))) } \heuristics(simplify_prog, simplify_prog_subset) }; @@ -3289,12 +3289,12 @@ \not \isThisReference(#v), \not \final(#a)) "Normal Execution (#v != null)" [main]: - \replacewith({#v0 := G::select(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith({#v0 := select<[G]>(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) \add( ==> (#v = null)); (permissions:on) { "Read Permission to #v.#a": \replacewith(\modality{#allmodal}{.. assert false : "Access permission check-point (read)."; ...}\endmodality (post)) - \add( ==> readPermission(Permission::select(permissions, #v, #memberPVToField(#a)))) + \add( ==> readPermission(select<[Permission]>(permissions, #v, #memberPVToField(#a)))) }; "Null Reference (#v = null)": \replacewith(\modality{#allmodal}{..throw new java.lang.NullPointerException();...}\endmodality (post)) @@ -3312,12 +3312,12 @@ \not \isThisReference(#v), \final(#a)) "Normal Execution (#v != null)" [main]: - \replacewith({#v0 := G::final(#v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith({#v0 := final<[G]>(#v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) \add( ==> (#v = null)); (permissions:on) { "Read Permission to #v.#a": \replacewith(\modality{#allmodal}{.. assert false : "Access permission check-point (read)."; ...}\endmodality (post)) - \add( ==> readPermission(Permission::select(permissions, #v, #memberPVToField(#a)))) + \add( ==> readPermission(select<[Permission]>(permissions, #v, #memberPVToField(#a)))) }; "Null Reference (#v = null)": \replacewith(\modality{#allmodal}{..throw new java.lang.NullPointerException();...}\endmodality (post)) @@ -3336,12 +3336,12 @@ \isThisReference(#v), \not \final(#a)) "Normal Execution" [main]: - \replacewith({#v0 := G::select(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith({#v0 := select<[G]>(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) ; (permissions:on) { "Read Permission to #v.#a": \replacewith(\modality{#allmodal}{.. assert false : "Access permission check-point (read)."; ...}\endmodality (post)) - \add( ==> readPermission(Permission::select(permissions, #v, #memberPVToField(#a)))) + \add( ==> readPermission(select<[Permission]>(permissions, #v, #memberPVToField(#a)))) } \heuristics(simplify_prog, simplify_prog_subset) }; @@ -3356,12 +3356,12 @@ \isThisReference(#v), \final(#a)) "Normal Execution" [main]: - \replacewith({#v0 := G::final(#v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith({#v0 := final<[G]>(#v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) ; (permissions:on) { "Read Permission to #v.#a": \replacewith(\modality{#allmodal}{.. assert false : "Access permission check-point (read)."; ...}\endmodality (post)) - \add( ==> readPermission(Permission::select(permissions, #v, #memberPVToField(#a)))) + \add( ==> readPermission(select<[Permission]>(permissions, #v, #memberPVToField(#a)))) } \heuristics(simplify_prog, simplify_prog_subset) }; @@ -3403,12 +3403,12 @@ \hasSort(#a, G), \not \isThisReference(#v)) "Normal Execution (#v != null)" [main]: - \replacewith( ==> {#v0 := G::select(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith( ==> {#v0 := select<[G]>(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) // \add (==>(#v=null)) ; (permissions:on) { "Read Permission to #v.#a": - \replacewith( ==> readPermission(Permission::select(permissions, #v, #memberPVToField(#a)))) + \replacewith( ==> readPermission(select<[Permission]>(permissions, #v, #memberPVToField(#a)))) }; "Null Reference (#v = null)": \replacewith( ==> false) @@ -3424,11 +3424,11 @@ \hasSort(#a, G), \isThisReference(#v)) "Normal Execution" [main]: - \replacewith( ==> {#v0 := G::select(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith( ==> {#v0 := select<[G]>(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) ; (permissions:on) { "Read Permission to #v.#a": - \replacewith( ==> readPermission(Permission::select(permissions, #v, #memberPVToField(#a)))) + \replacewith( ==> readPermission(select<[Permission]>(permissions, #v, #memberPVToField(#a)))) } \heuristics(simplify_prog, simplify_prog_subset) }; @@ -3445,12 +3445,12 @@ \not \isThisReference(#v), \not \final(#a)) "Normal Execution (#v != null)" [main]: - \replacewith( ==> {#v0 := G::select(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith( ==> {#v0 := select<[G]>(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) // \add (==>(#v=null)) ; (permissions:on) { "Read Permission to #v.#a": - \replacewith( ==> readPermission(Permission::select(permissions, #v, #memberPVToField(#a)))) + \replacewith( ==> readPermission(select<[Permission]>(permissions, #v, #memberPVToField(#a)))) }; "Null Reference (#v = null)": \replacewith( ==> false) @@ -3467,12 +3467,12 @@ \not \isThisReference(#v), \final(#a)) "Normal Execution (#v != null)" [main]: - \replacewith( ==> {#v0 := G::final(#v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith( ==> {#v0 := final<[G]>(#v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) // \add (==>(#v=null)) ; (permissions:on) { "Read Permission to #v.#a": - \replacewith( ==> readPermission(Permission::select(permissions, #v, #memberPVToField(#a)))) + \replacewith( ==> readPermission(select<[Permission]>(permissions, #v, #memberPVToField(#a)))) }; "Null Reference (#v = null)": \replacewith( ==> false) @@ -3490,11 +3490,11 @@ \isThisReference(#v), \not \final(#a)) "Normal Execution" [main]: - \replacewith( ==> {#v0 := G::select(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith( ==> {#v0 := select<[G]>(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) ; (permissions:on) { "Read Permission to #v.#a": - \replacewith( ==> readPermission(Permission::select(permissions, #v, #memberPVToField(#a)))) + \replacewith( ==> readPermission(select<[Permission]>(permissions, #v, #memberPVToField(#a)))) } \heuristics(simplify_prog, simplify_prog_subset) }; @@ -3508,11 +3508,11 @@ \isThisReference(#v), \final(#a)) "Normal Execution" [main]: - \replacewith( ==> {#v0 := G::final(#v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith( ==> {#v0 := final<[G]>(#v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) ; (permissions:on) { "Read Permission to #v.#a": - \replacewith( ==> readPermission(Permission::select(permissions, #v, #memberPVToField(#a)))) + \replacewith( ==> readPermission(select<[Permission]>(permissions, #v, #memberPVToField(#a)))) } \heuristics(simplify_prog, simplify_prog_subset) }; @@ -3543,7 +3543,7 @@ \not \isModelField(#a), \hasSort(#a, G), \not \isThisReference(#v)) - \replacewith({#v0 := G::select(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith({#v0 := select<[G]>(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) \heuristics(simplify_prog, simplify_prog_subset) }; @@ -3555,7 +3555,7 @@ \not \isModelField(#a), \hasSort(#a, G), \isThisReference(#v)) - \replacewith({#v0 := G::select(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith({#v0 := select<[G]>(heap, #v, #memberPVToField(#a))}\modality{#allmodal}{.. ...}\endmodality (post)) \heuristics(simplify_prog, simplify_prog_subset) }; @@ -3579,7 +3579,7 @@ (permissions:on) { "Write Permission to #v.#a": \replacewith(\modality{#allmodal}{.. assert false : "Access permission check-point (write)."; ...}\endmodality (post)) - \add( ==> writePermission(Permission::select(permissions, #v, #memberPVToField(#a)))) + \add( ==> writePermission(select<[Permission]>(permissions, #v, #memberPVToField(#a)))) }; "Null Reference (#v = null)": \replacewith(\modality{#allmodal}{..throw new java.lang.NullPointerException();...}\endmodality (post)) @@ -3598,7 +3598,7 @@ (permissions:on) { "Write Permission to #v.#a": \replacewith(\modality{#allmodal}{.. assert false : "Access permission check-point (write)."; ...}\endmodality (post)) - \add( ==> writePermission(Permission::select(permissions, #v, #memberPVToField(#a)))) + \add( ==> writePermission(select<[Permission]>(permissions, #v, #memberPVToField(#a)))) } \heuristics(simplify_prog, simplify_prog_subset) \displayname "assignmentThis" @@ -3617,7 +3617,7 @@ ; (permissions:on) { "Write Permission to #v.#a": - \replacewith( ==> writePermission(Permission::select(permissions, #v, #memberPVToField(#a)))) + \replacewith( ==> writePermission(select<[Permission]>(permissions, #v, #memberPVToField(#a)))) }; "Null Reference (#v = null)": \replacewith( ==> false) @@ -3634,7 +3634,7 @@ ; (permissions:on) { "Write Permission to #v.#a": - \replacewith( ==> writePermission(Permission::select(permissions, #v, #memberPVToField(#a)))) + \replacewith( ==> writePermission(select<[Permission]>(permissions, #v, #memberPVToField(#a)))) } \heuristics(simplify_prog, simplify_prog_subset) \displayname "assignmentThis" @@ -3786,7 +3786,7 @@ (permissions:on) { "Write Permission to #sv": \replacewith(\modality{#allmodal}{.. assert false : "Access permission check-point (static write)."; ...}\endmodality (post)) - \add( ==> writePermission(Permission::select(permissions, null, #memberPVToField(#sv)))) + \add( ==> writePermission(select<[Permission]>(permissions, null, #memberPVToField(#sv)))) } \heuristics(simplify_prog, simplify_prog_subset) \displayname "assignment" @@ -3800,7 +3800,7 @@ (permissions:on) { "Write Permission to #v.#sv": \replacewith(\modality{#allmodal}{.. assert false : "Access permission check-point (static write)."; ...}\endmodality (post)) - \add( ==> writePermission(Permission::select(permissions, #v, #memberPVToField(#sv)))) + \add( ==> writePermission(select<[Permission]>(permissions, #v, #memberPVToField(#sv)))) } \heuristics(simplify_prog, simplify_prog_subset) \displayname "active_attribute_access" @@ -3812,12 +3812,12 @@ \find(\modality{#allmodal}{.. #v0 = @(#sv); ...}\endmodality (post)) \sameUpdateLevel \varcond(\hasSort(#sv, G)) - \replacewith({#v0 := G::select(heap, null, #memberPVToField(#sv))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith({#v0 := select<[G]>(heap, null, #memberPVToField(#sv))}\modality{#allmodal}{.. ...}\endmodality (post)) ; (permissions:on) { "Read Permission to #sv": \replacewith(\modality{#allmodal}{.. assert false : "Access permission check-point (static read)."; ...}\endmodality (post)) - \add( ==> readPermission(Permission::select(permissions, null, #memberPVToField(#sv)))) + \add( ==> readPermission(select<[Permission]>(permissions, null, #memberPVToField(#sv)))) } \heuristics(simplify_prog, simplify_prog_subset) }; @@ -3828,12 +3828,12 @@ \find(\modality{#allmodal}{.. #v0 = @(#sv); ...}\endmodality (post)) \sameUpdateLevel \varcond(\hasSort(#sv, G), \not\final(#sv)) - \replacewith({#v0 := G::select(heap, null, #memberPVToField(#sv))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith({#v0 := select<[G]>(heap, null, #memberPVToField(#sv))}\modality{#allmodal}{.. ...}\endmodality (post)) ; (permissions:on) { "Read Permission to #sv": \replacewith(\modality{#allmodal}{.. assert false : "Access permission check-point (static read)."; ...}\endmodality (post)) - \add( ==> readPermission(Permission::select(permissions, null, #memberPVToField(#sv)))) + \add( ==> readPermission(select<[Permission]>(permissions, null, #memberPVToField(#sv)))) } \heuristics(simplify_prog, simplify_prog_subset) }; @@ -3842,12 +3842,12 @@ \find(\modality{#allmodal}{.. #v0 = @(#sv); ...}\endmodality (post)) \sameUpdateLevel \varcond(\hasSort(#sv, G), \final(#sv)) - \replacewith({#v0 := G::final(null, #memberPVToField(#sv))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith({#v0 := final<[G]>(null, #memberPVToField(#sv))}\modality{#allmodal}{.. ...}\endmodality (post)) ; (permissions:on) { "Read Permission to #sv": \replacewith(\modality{#allmodal}{.. assert false : "Access permission check-point (static read)."; ...}\endmodality (post)) - \add( ==> readPermission(Permission::select(permissions, null, #memberPVToField(#sv)))) + \add( ==> readPermission(select<[Permission]>(permissions, null, #memberPVToField(#sv)))) } \heuristics(simplify_prog, simplify_prog_subset) }; @@ -3858,12 +3858,12 @@ assignment_read_static_attribute_with_variable_prefix { \find(\modality{#allmodal}{.. #loc = @(#v.#sv); ...}\endmodality (post)) \varcond(\hasSort(#sv, G)) - \replacewith({#loc := G::select(heap, #v, #memberPVToField(#sv))}\modality{#allmodal}{.. ...}\endmodality (post)) + \replacewith({#loc := select<[G]>(heap, #v, #memberPVToField(#sv))}\modality{#allmodal}{.. ...}\endmodality (post)) ; (permissions:on) { "Read Permission to #v.#sv": \replacewith(\modality{#allmodal}{.. assert false : "Access permission check-point (static read)."; ...}\endmodality (post)) - \add( ==> readPermission(Permission::select(permissions, #v, #memberPVToField(#sv)))) + \add( ==> readPermission(select<[Permission]>(permissions, #v, #memberPVToField(#sv)))) } \heuristics(simplify_prog) \displayname "assignment" @@ -4052,8 +4052,8 @@ \rules(programRules:Java, initialisation:enableStaticInitialisation) { class_being_initialized_is_prepared { - \assumes(boolean::select(heap, null, alphaObj::#$classInitializationInProgress) = TRUE, wellFormed(heap) ==>) - \find(boolean::select(heap, null, alphaObj::#$classPrepared)) + \assumes(select<[boolean]>(heap, null, $classInitializationInProgress<[alphaObj]>) = TRUE, wellFormed(heap) ==>) + \find(select<[boolean]>(heap, null, $classPrepared<[alphaObj]>)) \sameUpdateLevel \replacewith(TRUE) \heuristics(confluence_restricted, simplify_java) @@ -4061,8 +4061,8 @@ }; initialized_class_is_prepared { - \assumes(boolean::select(heap, null, alphaObj::#$classInitialized) = TRUE, wellFormed(heap) ==>) - \find(boolean::select(heap, null, alphaObj::#$classPrepared)) + \assumes(select<[boolean]>(heap, null, $classInitialized<[alphaObj]>) = TRUE, wellFormed(heap) ==>) + \find(select<[boolean]>(heap, null, $classPrepared<[alphaObj]>)) \sameUpdateLevel \replacewith(TRUE) \heuristics(confluence_restricted, simplify_java) @@ -4070,8 +4070,8 @@ }; initialized_class_is_not_erroneous { - \assumes(boolean::select(heap, null, alphaObj::#$classInitialized) = TRUE, wellFormed(heap) ==>) - \find(boolean::select(heap, null, alphaObj::#$classErroneous)) + \assumes(select<[boolean]>(heap, null, $classInitialized<[alphaObj]>) = TRUE, wellFormed(heap) ==>) + \find(select<[boolean]>(heap, null, $classErroneous<[alphaObj]>)) \sameUpdateLevel \replacewith(FALSE) \heuristics(confluence_restricted, simplify_java) @@ -4079,8 +4079,8 @@ }; class_initialized_excludes_class_init_in_progress { - \assumes(boolean::select(heap, null, alphaObj::#$classInitialized) = TRUE, wellFormed(heap) ==>) - \find(boolean::select(heap, null, alphaObj::#$classInitializationInProgress)) + \assumes(select<[boolean]>(heap, null, $classInitialized<[alphaObj]>) = TRUE, wellFormed(heap) ==>) + \find(select<[boolean]>(heap, null, $classInitializationInProgress<[alphaObj]>)) \sameUpdateLevel \replacewith(FALSE) \heuristics(confluence_restricted, simplify_java) @@ -4088,8 +4088,8 @@ }; class_erroneous_excludes_class_in_init { - \assumes(boolean::select(heap, null, alphaObj::#$classErroneous) = TRUE, wellFormed(heap) ==>) - \find(boolean::select(heap, null, alphaObj::#$classInitializationInProgress)) + \assumes(select<[boolean]>(heap, null, $classErroneous<[alphaObj]>) = TRUE, wellFormed(heap) ==>) + \find(select<[boolean]>(heap, null, $classInitializationInProgress<[alphaObj]>)) \sameUpdateLevel \replacewith(FALSE) \heuristics(confluence_restricted, simplify_java) @@ -4097,8 +4097,8 @@ }; erroneous_class_has_no_initialized_sub_class { - \assumes(boolean::select(heap, null, alphaObj::#$classErroneous) = TRUE, wellFormed(heap) ==>) - \find(boolean::select(heap, null, betaObj::#$classInitialized)) + \assumes(select<[boolean]>(heap, null, $classErroneous<[alphaObj]>) = TRUE, wellFormed(heap) ==>) + \find(select<[boolean]>(heap, null, $classInitialized<[betaObj]>)) \sameUpdateLevel \varcond(\sub(betaObj, alphaObj)) \replacewith(FALSE) @@ -4107,8 +4107,8 @@ }; superclasses_of_initialized_classes_are_initialized { - \assumes(boolean::select(heap, null, betaObj::#$classInitialized) = TRUE, wellFormed(heap) ==>) - \find(boolean::select(heap, null, alphaObj::#$classInitialized)) + \assumes(select<[boolean]>(heap, null, $classInitialized<[betaObj]>) = TRUE, wellFormed(heap) ==>) + \find(select<[boolean]>(heap, null, $classInitialized<[alphaObj]>)) \sameUpdateLevel \varcond(\isReference [non_null](betaObj), \strict \sub(betaObj, alphaObj)) \replacewith(TRUE) @@ -4116,8 +4116,8 @@ }; superclasses_of_initialized_classes_are_prepared { - \assumes(boolean::select(heap, null, betaObj::#$classInitialized) = TRUE, wellFormed(heap) ==>) - \find(boolean::select(heap, null, alphaObj::#$classPrepared)) + \assumes(select<[boolean]>(heap, null, $classInitialized<[betaObj]>) = TRUE, wellFormed(heap) ==>) + \find(select<[boolean]>(heap, null, $classPrepared<[alphaObj]>)) \sameUpdateLevel \varcond(\sub(betaObj, alphaObj)) \replacewith(TRUE) diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/locset/locSetsRules.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/locset/locSetsRules.key index 7831c86fda7..00096f66340 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/locset/locSetsRules.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/locset/locSetsRules.key @@ -172,7 +172,7 @@ \find(elementOf(o, f, freshLocs(h))) - \replacewith(o != null & !boolean::select(h, o, java.lang.Object::#$created) = TRUE) + \replacewith(o != null & !select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE) \heuristics(concrete) }; @@ -795,7 +795,7 @@ \schemaVar \term Heap h; \find(intersect(allFields(o), freshLocs(h)) = empty) - \replacewith(o = null | boolean::select(h, o, java.lang.Object::#$created) = TRUE) + \replacewith(o = null | select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE) \heuristics(simplify) }; @@ -850,7 +850,7 @@ \replacewith(\forall ov; \forall fv; (elementOf(ov, fv, s) -> ov = null - | boolean::select(h, ov, java.lang.Object::#$created) = TRUE)) + | select<[boolean]>(h, ov, java.lang.Object::#$created) = TRUE)) \heuristics(classAxiom) }; @@ -1131,7 +1131,7 @@ \find(createdInHeap(singleton(o, f), h)) - \replacewith(o = null | boolean::select(h, o, java.lang.Object::#$created) = TRUE) + \replacewith(o = null | select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE) \heuristics(simplify_enlarging) }; @@ -1165,7 +1165,7 @@ \find(createdInHeap(allFields(o), h)) - \replacewith(o = null | boolean::select(h, o, java.lang.Object::#$created) = TRUE) + \replacewith(o = null | select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE) \heuristics(simplify_enlarging) }; @@ -1177,7 +1177,7 @@ \find(createdInHeap(arrayRange(o, lower, upper), h)) - \replacewith(o = null | boolean::select(h, o, java.lang.Object::#$created) = TRUE | upper < lower) + \replacewith(o = null | select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE | upper < lower) \heuristics(simplify_enlarging) }; @@ -1187,7 +1187,7 @@ \schemaVar \term Field f; \schemaVar \term Heap h; - \find( ==> createdInHeap(LocSet::select(h, o, f), h)) + \find( ==> createdInHeap(select<[LocSet]>(h, o, f), h)) \replacewith( ==> wellFormed(h)) @@ -1221,7 +1221,7 @@ \find(createdInHeap(EQ, h)) \sameUpdateLevel - \replacewith(o = null | boolean::select(h, o, java.lang.Object::#$created) = TRUE) + \replacewith(o = null | select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE) \heuristics(simplify_enlarging) }; @@ -1263,7 +1263,7 @@ \find(createdInHeap(EQ, h)) \sameUpdateLevel - \replacewith(o = null | boolean::select(h, o, java.lang.Object::#$created) = TRUE) + \replacewith(o = null | select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE) \heuristics(simplify_enlarging) }; @@ -1278,7 +1278,7 @@ \find(createdInHeap(EQ, h)) \sameUpdateLevel - \replacewith(o = null | boolean::select(h, o, java.lang.Object::#$created) = TRUE | upper < lower) + \replacewith(o = null | select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE | upper < lower) \heuristics(simplify_enlarging) }; @@ -1289,7 +1289,7 @@ \schemaVar \term Heap h; \schemaVar \term LocSet EQ; - \assumes(LocSet::select(h, o, f) = EQ ==>) + \assumes(select<[LocSet]>(h, o, f) = EQ ==>) \find( ==> createdInHeap(EQ, h)) \replacewith( ==> wellFormed(h)) @@ -1320,9 +1320,9 @@ \schemaVar \term Object o; \schemaVar \term Field f; - \assumes( ==> deltaObject::select(h, o, f) = null) - \find( ==> boolean::select(h, - deltaObject::select(h, o, f), + \assumes( ==> select<[deltaObject]>(h, o, f) = null) + \find( ==> select<[boolean]>(h, + select<[deltaObject]>(h, o, f), java.lang.Object::#$created) = TRUE) \replacewith( ==> wellFormed(h)) @@ -1336,8 +1336,8 @@ \schemaVar \term Field f; \schemaVar \term Object EQ; - \assumes(deltaObject::select(h, o, f) = EQ ==> EQ = null) - \find( ==> boolean::select(h, + \assumes(select<[deltaObject]>(h, o, f) = EQ ==> EQ = null) + \find( ==> select<[boolean]>(h, EQ, java.lang.Object::#$created) = TRUE) @@ -1351,12 +1351,12 @@ \schemaVar \term Object o; \schemaVar \term Field f; - \assumes( ==> deltaObject::final(o, f) = null) - \find( ==> boolean::select(h, - deltaObject::final(o, f), + \assumes( ==> final<[deltaObject]>(o, f) = null) + \find( ==> select<[boolean]>(h, + final<[deltaObject]>(o, f), java.lang.Object::#$created) = TRUE ) - \replacewith( ==> boolean::select(h, o, java.lang.Object::#$created) = TRUE | o = null ) + \replacewith( ==> select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE | o = null ) \heuristics(simplify_enlarging) }; @@ -1367,12 +1367,12 @@ \schemaVar \term Field f; \schemaVar \term Object EQ; - \assumes(deltaObject::final(o, f) = EQ ==> EQ = null) - \find( ==> boolean::select(h, + \assumes(final<[deltaObject]>(o, f) = EQ ==> EQ = null) + \find( ==> select<[boolean]>(h, EQ, java.lang.Object::#$created) = TRUE) - \add( ==> boolean::select(h, o, java.lang.Object::#$created) = TRUE | o = null ) + \add( ==> select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE | o = null ) \heuristics(concrete) }; @@ -1733,7 +1733,7 @@ \varcond(\notFreeIn(j, h), \notFreeIn(j, array), \notFreeIn(j, o, f)) \replacewith(infiniteUnion{j;}(\if(0 <= j & j < length(array)) - \then(singleton(Object::select(h, array, arr(j)), f)) + \then(singleton(select<[Object]>(h, array, arr(j)), f)) \else(empty))) \heuristics(simplify) }; @@ -1749,7 +1749,7 @@ \varcond(\notFreeIn(j, h), \notFreeIn(j, array)) \replacewith(infiniteUnion{j;}(\if(0 <= j & j < length(array)) - \then(allFields(Object::select(h, array, arr(j)))) + \then(allFields(select<[Object]>(h, array, arr(j)))) \else(empty))) \heuristics(simplify) }; @@ -1765,7 +1765,7 @@ \varcond(\notFreeIn(j, h), \notFreeIn(j, array), \notFreeIn(j, o, f)) \replacewith(infiniteUnion{j;}(\if(0 <= j & j < length(array)) - \then(LocSet::select(h, Object::select(h, array, arr(j)), f)) + \then(select<[LocSet]>(h, select<[Object]>(h, array, arr(j)), f)) \else(empty))) \heuristics(simplify) }; diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/map.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/map.key index 903b3fde087..c2be32a7d9a 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/map.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/map.key @@ -66,8 +66,8 @@ Abstract datatype of (untyped) partial maps. inDomainOfMapForeach { \find(inDomain(mapForeach{v;}(b, y), x)) - \replacewith({\subst v; alpha::cast(x)}b = TRUE - & alpha::instance(x) = TRUE) + \replacewith({\subst v; cast<[alpha]>(x)}b = TRUE + & instance<[alpha]>(x) = TRUE) \heuristics(simplify) }; @@ -75,7 +75,7 @@ Abstract datatype of (untyped) partial maps. \find(mapGet(mapForeach{v;}(b, y), x)) \sameUpdateLevel \replacewith(\if(inDomain(mapForeach{v;}(b, y), x)) - \then({\subst v; alpha::cast(x)}y) + \then({\subst v; cast<[alpha]>(x)}y) \else(mapUndef)) \heuristics(simplify_enlarging) }; @@ -93,7 +93,7 @@ Abstract datatype of (untyped) partial maps. \find(mapSingleton(xa, y)) \varcond(\notFreeIn(vy, xa, y)) \replacewith(mapForeach{vy;}( - \if(vy = any::cast(xa)) \then(TRUE) \else(FALSE), y) + \if(vy = cast<[any]>(xa)) \then(TRUE) \else(FALSE), y) ) }; @@ -114,7 +114,7 @@ Abstract datatype of (untyped) partial maps. \varcond(\notFreeIn(ix, s)) \replacewith(mapForeach{ix;}( \if(0 <= ix & ix < seqLen(s)) \then(TRUE) \else(FALSE), - any::seqGet(s, ix) + seqGet<[any]>(s, ix) )) }; @@ -150,7 +150,7 @@ Abstract datatype of (untyped) partial maps. \find(inDomainImpliesCreated(m)) \varcond(\notFreeIn(o, m)) \replacewith(\forall o; (inDomain(m, o) -> - boolean::select(heap, o, java.lang.Object::#$created) = TRUE)) + select<[boolean]>(heap, o, java.lang.Object::#$created) = TRUE)) \heuristics(simplify_enlarging) }; @@ -220,8 +220,8 @@ Abstract datatype of (untyped) partial maps. inDomainOfSeq2Map { \schemaVar \term Seq s; \find(inDomain(seq2map(s), x)) - \replacewith(int::instance(x) = TRUE & - 0 <= int::cast(x) & int::cast(x) < seqLen(s)) + \replacewith(instance<[int]>(x) = TRUE & + 0 <= cast<[int]>(x) & cast<[int]>(x) < seqLen(s)) \heuristics(simplify) }; @@ -284,8 +284,8 @@ Abstract datatype of (untyped) partial maps. \schemaVar \term Seq s; \find(mapGet(seq2map(s), x)) \sameUpdateLevel - \replacewith(\if(int::instance(x) = TRUE & 0 <= int::cast(x) & int::cast(x) < seqLen(s)) - \then(any::seqGet(s, int::cast(x))) \else(mapUndef)) + \replacewith(\if(instance<[int]>(x) = TRUE & 0 <= cast<[int]>(x) & cast<[int]>(x) < seqLen(s)) + \then(seqGet<[any]>(s, cast<[int]>(x))) \else(mapUndef)) \heuristics(simplify_enlarging) }; diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/mapSize.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/mapSize.key index dd54b430705..3ce1a3721f0 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/mapSize.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/mapSize.key @@ -34,7 +34,7 @@ \varcond(\notFreeIn(vx, m), \notFreeIn(s, m)) \replacewith(\exists s; (\forall vx; - (inDomain(m, vx) <-> (\exists ix; (0 <= ix & ix < seqLen(s) & any::seqGet(s, ix) = vx))) + (inDomain(m, vx) <-> (\exists ix; (0 <= ix & ix < seqLen(s) & seqGet<[any]>(s, ix) = vx))) )) }; diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/permission/permissionRules.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/permission/permissionRules.key index 5999bd29683..e00aac370df 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/permission/permissionRules.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/permission/permissionRules.key @@ -19,7 +19,7 @@ }; permissionDefaultValue { - \find(Permission::defaultValue) + \find(defaultValue<[Permission]>) \replacewith(initFullPermission) \heuristics(simplify) }; @@ -507,8 +507,8 @@ \schemaVar \term Object o; \schemaVar \term Heap h, p; - \assumes(wellFormed(h), wellFormed(p), permissionsFor(p, h), boolean::select(h, o, java.lang.Object::#$created) = TRUE ==>) - \find(boolean::select(p, o, java.lang.Object::#$created)) + \assumes(wellFormed(h), wellFormed(p), permissionsFor(p, h), select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE ==>) + \find(select<[boolean]>(p, o, java.lang.Object::#$created)) \sameUpdateLevel \replacewith(TRUE) diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/precRules.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/precRules.key index a26bd05829f..32dc7a82011 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/precRules.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/precRules.key @@ -66,9 +66,9 @@ \replacewith( seqLen(s1) = seqLen(s2) & \exists iv; (0 <= iv & iv < seqLen(s1) & - prec(any::seqGet(s1, iv), any::seqGet(s2, iv)) & + prec(seqGet<[any]>(s1, iv), seqGet<[any]>(s2, iv)) & \forall jv; (0 <= jv & jv < iv -> - any::seqGet(s1, jv) = any::seqGet(s2, jv))) + seqGet<[any]>(s1, jv) = seqGet<[any]>(s2, jv))) | seqLen(s1) < seqLen(s2) ) }; diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/reachRules.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/reachRules.key index fd3e41d4339..e9411747fbe 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/reachRules.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/reachRules.key @@ -22,7 +22,7 @@ \notFreeIn(fv, o), \notFreeIn(fv, o2)) - \replacewith(o != null & o2 != null & \exists fv; (elementOf(o, fv, s) & deltaObject::select(h, o, fv) = o2)) + \replacewith(o != null & o2 != null & \exists fv; (elementOf(o, fv, s) & select<[deltaObject]>(h, o, fv) = o2)) \heuristics(simplify) }; @@ -176,8 +176,8 @@ \schemaVar \term Field f; \assumes(reach(h, allObjects(f), o, o2, n), - alpha::select(h, o2, f) = null, - alpha::select(h, o3, f) = null ==>) + select<[alpha]>(h, o2, f) = null, + select<[alpha]>(h, o3, f) = null ==>) \find(reach(h, allObjects(f), o, o3, n2) ==>) \varcond(\different(n, n2)) @@ -194,7 +194,7 @@ \schemaVar \term Field f; \assumes(reach(h, allObjects(f), o, o2, n), - alpha::select(h, o2, f) = null ==>) + select<[alpha]>(h, o2, f) = null ==>) \find(reach(h, allObjects(f), o, o3, n2) ==>) \varcond(\different(o, o2), \different(n, n2)) @@ -397,8 +397,8 @@ \assumes(wellFormed(h) ==> o = null) \find(reach(h, s, o, o2, n) ==>) - \add(!boolean::select(h, o, java.lang.Object::#$created) = TRUE - | boolean::select(h, o2, java.lang.Object::#$created) = TRUE ==>) + \add(!select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE + | select<[boolean]>(h, o2, java.lang.Object::#$created) = TRUE ==>) \heuristics(inReachableStateImplication) }; @@ -412,7 +412,7 @@ \find(reach(anon(h, empty, h2), s, o, o2, n)) \replacewith(reach(h, s, o, o2, n)); - \add( ==> wellFormed(h) & boolean::select(h, o, java.lang.Object::#$created) = TRUE) + \add( ==> wellFormed(h) & select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE) \heuristics(simplify) }; @@ -428,7 +428,7 @@ \find(reach(EQ, s, o, o2, n)) \replacewith(reach(h, s, o, o2, n)); - \add( ==> wellFormed(h) & boolean::select(h, o, java.lang.Object::#$created) = TRUE) + \add( ==> wellFormed(h) & select<[boolean]>(h, o, java.lang.Object::#$created) = TRUE) \heuristics(simplify) }; diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seq.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seq.key index e9fa73b1381..35d08d4a191 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seq.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seq.key @@ -19,7 +19,7 @@ \functions { // getters - alpha alpha::seqGet(Seq, int); + alpha seqGet<[alpha]>(Seq, int); int seqLen(Seq); int seqIndexOf(Seq, any); any seqGetOutside; diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqCoreRules.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqCoreRules.key index 9dc47adbf67..470178845ae 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqCoreRules.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqCoreRules.key @@ -44,7 +44,7 @@ \replacewith(seqLen(left) = seqLen(right) & \forall iv; (0 <= iv & iv < seqLen(left) - -> any::seqGet(left, iv) = any::seqGet(right, iv))) + -> seqGet<[any]>(left, iv) = seqGet<[any]>(right, iv))) \heuristics(defOpsSeqEquality) }; @@ -57,7 +57,7 @@ \schemaVar \term any t; \schemaVar \variables int uSub, uSub1, uSub2; - \find(alpha::seqGet(seqDef{uSub;}(from, to, t), idx)) + \find(seqGet<[alpha]>(seqDef{uSub;}(from, to, t), idx)) \varcond(\notFreeIn(uSub, from), \notFreeIn(uSub, to)) \replacewith(\if(0 <= idx & idx < (to - from)) diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqEq.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqEq.key index 08e9e778709..edb1091744a 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqEq.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqEq.key @@ -21,7 +21,7 @@ \schemaVar \term any x; \find(s = seqSingleton(x)) - \replacewith(seqLen(s) = 1 & any::seqGet(s, 0) = x) + \replacewith(seqLen(s) = 1 & seqGet<[any]>(s, 0) = x) \heuristics(simplify) }; @@ -31,7 +31,7 @@ \assumes(seqSingleton(x) = s2 ==>) \find(s = s2) - \replacewith(seqLen(s) = 1 & any::seqGet(s, 0) = x) + \replacewith(seqLen(s) = 1 & seqGet<[any]>(s, 0) = x) \heuristics(simplify) }; @@ -152,7 +152,7 @@ \replacewith( seqLen(s) = seqLen(seqReverse(s2)) & \forall iv; (0 <= iv & iv < seqLen(s) - -> any::seqGet(s, iv) = any::seqGet(seqReverse(s2), iv) + -> seqGet<[any]>(s, iv) = seqGet<[any]>(seqReverse(s2), iv) ) ) \heuristics(simplify_enlarging) @@ -169,7 +169,7 @@ \replacewith( seqLen(s) = seqLen(seqReverse(s2)) & \forall iv; (0 <= iv & iv < seqLen(s) - -> any::seqGet(s, iv) = any::seqGet(seqReverse(s2), iv) + -> seqGet<[any]>(s, iv) = seqGet<[any]>(seqReverse(s2), iv) ) ) \heuristics(simplify_enlarging, no_self_application) @@ -191,7 +191,7 @@ \replacewith( seqLen(s) = seqLen(seqDef{i;}(l, u, a)) & \forall iv; (0 <= iv & iv < seqLen(s) - -> any::seqGet(s, iv) = any::seqGet(seqDef{i;}(l, u, a), iv) + -> seqGet<[any]>(s, iv) = seqGet<[any]>(seqDef{i;}(l, u, a), iv) ) ) \heuristics(simplify_enlarging) @@ -215,7 +215,7 @@ \replacewith( seqLen(s) = seqLen(seqDef{i;}(l, u, a)) & \forall iv; (0 <= iv & iv < seqLen(s) - -> any::seqGet(s, iv) = any::seqGet(seqDef{i;}(l, u, a), iv) + -> seqGet<[any]>(s, iv) = seqGet<[any]>(seqDef{i;}(l, u, a), iv) ) ) \heuristics(simplify_enlarging) @@ -236,7 +236,7 @@ | (seqLen(seq) = to - from & \forall iv; ( 0 <= iv & iv < seqLen(seq) - -> any::seqGet(seq, iv) = any::seqGet(seq, iv + from))) + -> seqGet<[any]>(seq, iv) = seqGet<[any]>(seq, iv + from))) ) \heuristics(simplify) }; diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqPerm.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqPerm.key index cdae1369ebb..f061cfbe3da 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqPerm.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqPerm.key @@ -38,7 +38,7 @@ \replacewith( (\forall iv; (0 <= iv & iv < seqLen(s1) -> - \exists jv; (0 <= jv & jv < seqLen(s1) & any::seqGet(s1, jv) = iv)))) + \exists jv; (0 <= jv & jv < seqLen(s1) & seqGet<[any]>(s1, jv) = iv)))) }; seqNPermDefLeft { @@ -50,7 +50,7 @@ \add( (\forall iv; (0 <= iv & iv < seqLen(s1) -> - \exists jv; (0 <= jv & jv < seqLen(s1) & any::seqGet(s1, jv) = iv))) ==>) + \exists jv; (0 <= jv & jv < seqLen(s1) & seqGet<[any]>(s1, jv) = iv))) ==>) }; seqPermDefLeft { @@ -68,7 +68,7 @@ (\exists s; (seqLen(s) = seqLen(s1) & seqNPerm(s) & (\forall iv; (0 <= iv & iv < seqLen(s) -> - any::seqGet(s1, iv) = any::seqGet(s2, int::seqGet(s, iv)))))) + seqGet<[any]>(s1, iv) = seqGet<[any]>(s2, seqGet<[int]>(s, iv)))))) ==>) }; @@ -87,7 +87,7 @@ (\exists s; (seqLen(s) = seqLen(s1) & seqNPerm(s) & (\forall iv; (0 <= iv & iv < seqLen(s) -> - any::seqGet(s1, iv) = any::seqGet(s2, int::seqGet(s, iv)))))) + seqGet<[any]>(s1, iv) = seqGet<[any]>(s2, seqGet<[int]>(s, iv)))))) ) }; @@ -103,12 +103,12 @@ \notFreeIn(uSub, jv)) \replacewith(seqDef{uSub;}(0, seqLen(s), \if(!(0 <= iv & 0 <= jv & iv < seqLen(s) & jv < seqLen(s))) - \then(any::seqGet(s, uSub)) + \then(seqGet<[any]>(s, uSub)) \else(\if(uSub = iv) - \then(any::seqGet(s, jv)) + \then(seqGet<[any]>(s, jv)) \else(\if(uSub = jv) - \then(any::seqGet(s, iv)) - \else(any::seqGet(s, uSub)))))) + \then(seqGet<[any]>(s, iv)) + \else(seqGet<[any]>(s, uSub)))))) }; @@ -126,8 +126,8 @@ \then(s) \else(seqDef{uSub;}(0, seqLen(s) - 1, \if(uSub < iv) - \then(any::seqGet(s, uSub)) - \else(any::seqGet(s, uSub + 1))))) + \then(seqGet<[any]>(s, uSub)) + \else(seqGet<[any]>(s, uSub + 1))))) }; // -------------------------------------------------------------------- @@ -166,8 +166,8 @@ \schemaVar \term Seq s1; \schemaVar \term int i3; - \find(any::seqGet(seqNPermInv(s1), i3)) - \replacewith(int::seqGet(seqNPermInv(s1), i3)); + \find(seqGet<[any]>(seqNPermInv(s1), i3)) + \replacewith(seqGet<[int]>(seqNPermInv(s1), i3)); \add( ==> 0 <= i3 & i3 < seqLen(s1)) \heuristics(simplify) }; @@ -177,10 +177,10 @@ \schemaVar \term int i3; \schemaVar \skolemTerm int jsk; - \find(int::seqGet(seqNPermInv(s1), i3)) + \find(seqGet<[int]>(seqNPermInv(s1), i3)) \varcond(\newDependingOn(jsk, i3)) \replacewith(jsk) - \add(int::seqGet(s1, jsk) = i3 & 0 <= jsk & jsk < seqLen(s1) ==>); + \add(seqGet<[int]>(s1, jsk) = i3 & 0 <= jsk & jsk < seqLen(s1) ==>); \add( ==> 0 <= i3 & i3 < seqLen(s1) & seqNPerm(s1)) \heuristics(simplify) @@ -204,14 +204,14 @@ // Differs from seqOutsideValue in seqStandard-new-verify.key // - \find(alpha::seqGet(seqSwap(s1, iv, jv), idx)) + \find(seqGet<[alpha]>(seqSwap(s1, iv, jv), idx)) \replacewith(\if(!(0 <= iv & 0 <= jv & iv < seqLen(s1) & jv < seqLen(s1))) - \then(alpha::seqGet(s1, idx)) + \then(seqGet<[alpha]>(s1, idx)) \else(\if(idx = iv) - \then(alpha::seqGet(s1, jv)) + \then(seqGet<[alpha]>(s1, jv)) \else(\if(idx = jv) - \then(alpha::seqGet(s1, iv)) - \else(alpha::seqGet(s1, idx))))) + \then(seqGet<[alpha]>(s1, iv)) + \else(seqGet<[alpha]>(s1, idx))))) \heuristics(simplify_enlarging) }; @@ -236,13 +236,13 @@ \schemaVar \term Seq s1; \schemaVar \term int i3, i2; - \find(alpha::seqGet(seqRemove(s1, i2), i3)) + \find(seqGet<[alpha]>(seqRemove(s1, i2), i3)) \replacewith(\if(i2 < 0 | seqLen(s1) <= i2) - \then(alpha::seqGet(s1, i3)) + \then(seqGet<[alpha]>(s1, i3)) \else(\if(i3 < i2) - \then(alpha::seqGet(s1, i3)) + \then(seqGet<[alpha]>(s1, i3)) \else(\if(i2 <= i3 & i3 < seqLen(s1) - 1) - \then(alpha::seqGet(s1, i3 + 1)) + \then(seqGet<[alpha]>(s1, i3 + 1)) \else((alpha)seqGetOutside)))) \heuristics(simplify_enlarging) @@ -252,13 +252,13 @@ \schemaVar \term Seq s1; \schemaVar \term int i3, i2; - \find(int::seqGet(seqRemove(s1, i2), i3)) + \find(seqGet<[int]>(seqRemove(s1, i2), i3)) \replacewith(\if(i2 < 0 | seqLen(s1) <= i2) - \then(int::seqGet(s1, i3)) + \then(seqGet<[int]>(s1, i3)) \else(\if(i3 < i2) - \then(int::seqGet(s1, i3)) + \then(seqGet<[int]>(s1, i3)) \else(\if(i2 <= i3 & i3 < seqLen(s1) - 1) - \then(int::seqGet(s1, i3 + 1)) + \then(seqGet<[int]>(s1, i3 + 1)) \else((int)seqGetOutside)))) \heuristics(simplify_enlarging) @@ -291,9 +291,9 @@ \schemaVar \term Seq s1; \schemaVar \term int i3, i2; \assumes(seqLen(s1) >= 1 ==>) - \find(alpha::seqGet(seqRemove(s1, seqLen(s1) - 1), i3)) + \find(seqGet<[alpha]>(seqRemove(s1, seqLen(s1) - 1), i3)) \replacewith(\if(i3 < seqLen(s1) - 1) - \then(alpha::seqGet(s1, i3)) + \then(seqGet<[alpha]>(s1, i3)) \else((alpha)seqGetOutside)) \heuristics(simplify_enlarging) @@ -306,9 +306,9 @@ \schemaVar \term Seq s1; \schemaVar \term int i3, i2; \assumes(seqLen(s1) >= 1 ==>) - \find(alpha::seqGet(seqRemove(s1, 0), i3)) + \find(seqGet<[alpha]>(seqRemove(s1, 0), i3)) \replacewith(\if(0 <= i3 & i3 < seqLen(s1) - 1) - \then(alpha::seqGet(s1, i3 + 1)) + \then(seqGet<[alpha]>(s1, i3 + 1)) \else((alpha)seqGetOutside)) \heuristics(simplify_enlarging) @@ -332,7 +332,7 @@ // \find(seqNPerm(s) ==> ) // \varcond( \notFreeIn (iv,s) ) // \add(\forall iv;((0 <= iv & iv < seqLen(s)) - // -> (0 <= int::seqGet(s,iv) & int::seqGet(s,iv) < seqLen(s))) ==>) + // -> (0 <= seqGet<[int]>(s,iv) & seqGet<[int]>(s,iv) < seqLen(s))) ==>) // }; // Improved version by PHS, correctness proof from Oct.19.2016 @@ -343,8 +343,8 @@ \find(seqNPerm(s) ==>) \varcond(\notFreeIn(iv, s)) \add(\forall iv; ((0 <= iv & iv < seqLen(s)) - -> (0 <= int::seqGet(s, iv) & int::seqGet(s, iv) < seqLen(s) & - int::instance(any::seqGet(s, iv)) = TRUE)) ==>) + -> (0 <= seqGet<[int]>(s, iv) & seqGet<[int]>(s, iv) < seqLen(s) & + instance<[int]>(seqGet<[any]>(s, iv)) = TRUE)) ==>) }; @@ -362,7 +362,7 @@ \varcond(\notFreeIn(iv, s), \notFreeIn(jv, s)) \add(\forall iv; (\forall jv; ( (0 <= iv & iv < seqLen(s) & 0 <= jv & jv < seqLen(s) - & int::seqGet(s, iv) = int::seqGet(s, jv)) + & seqGet<[int]>(s, iv) = seqGet<[int]>(s, jv)) -> iv = jv)) ==>) }; @@ -446,7 +446,7 @@ \varcond(\notFreeIn(u, s1), \notFreeIn(u, s2)) \add(seqNPerm(seqDef{u;}(0, seqLen(s1), - int::seqGet(s1, int::seqGet(s2, u)))) ==>) + seqGet<[int]>(s1, seqGet<[int]>(s2, u)))) ==>) }; @@ -454,7 +454,7 @@ \schemaVar \term Seq s; \schemaVar \term int t; - \find(int::seqGet(s, int::seqGet(seqNPermInv(s), t))) + \find(seqGet<[int]>(s, seqGet<[int]>(seqNPermInv(s), t))) \replacewith(t); \add( ==> seqNPerm(s) & 0 <= t & t < seqLen(s)) @@ -531,10 +531,10 @@ \varcond(\notFreeIn(iv, s), \notFreeIn(jv, s)) \add( ==> \forall iv; (\forall jv; ( (0 <= iv & iv < seqLen(s) & 0 <= jv & jv < seqLen(s) - & int::seqGet(s, iv) = int::seqGet(s, jv)) + & seqGet<[int]>(s, iv) = seqGet<[int]>(s, jv)) -> iv = jv)) - & \forall iv; (0 <= iv & iv < seqLen(s) -> 0 <= int::seqGet(s, iv) & int::seqGet(s, iv) < seqLen(s)) - & \forall iv; (0 <= iv & iv < seqLen(s) -> int::instance(any::seqGet(s, iv)) = TRUE)) + & \forall iv; (0 <= iv & iv < seqLen(s) -> 0 <= seqGet<[int]>(s, iv) & seqGet<[int]>(s, iv) < seqLen(s)) + & \forall iv; (0 <= iv & iv < seqLen(s) -> instance<[int]>(seqGet<[any]>(s, iv)) = TRUE)) }; \lemma @@ -651,8 +651,8 @@ \replacewith( (\forall element; - bsum{iv;}(0, s1.length, \if(any::seqGet(s1, iv) = element) \then(1) \else(0)) = - bsum{iv;}(0, s2.length, \if(any::seqGet(s2, iv) = element) \then(1) \else(0)) + bsum{iv;}(0, s1.length, \if(seqGet<[any]>(s1, iv) = element) \then(1) \else(0)) = + bsum{iv;}(0, s2.length, \if(seqGet<[any]>(s2, iv) = element) \then(1) \else(0)) ) ) }; @@ -666,9 +666,9 @@ \schemaVar \variable any x; \assumes(seqPerm(s1, s2) ==>) \varcond(\notFreeIn(iv, phi), \notFreeIn(iv, s1), \notFreeIn(iv, s2)) - \add(\forall iv; (0 <= iv & iv < seqLen(s1) -> {\subst x; any::seqGet(s1, iv)}phi) + \add(\forall iv; (0 <= iv & iv < seqLen(s1) -> {\subst x; seqGet<[any]>(s1, iv)}phi) <-> - \forall iv; (0 <= iv & iv < seqLen(s1) -> {\subst x; any::seqGet(s2, iv)}phi) ==>) + \forall iv; (0 <= iv & iv < seqLen(s1) -> {\subst x; seqGet<[any]>(s2, iv)}phi) ==>) }; \lemma @@ -680,8 +680,8 @@ \schemaVar \variable any x; \assumes(seqPerm(s1, s2) ==>) \varcond(\notFreeIn(iv, phi), \notFreeIn(iv, s1), \notFreeIn(iv, s2)) - \add(\exists iv; (0 <= iv & iv < seqLen(s1) & {\subst x; any::seqGet(s1, iv)}phi) + \add(\exists iv; (0 <= iv & iv < seqLen(s1) & {\subst x; seqGet<[any]>(s1, iv)}phi) <-> - \exists iv; (0 <= iv & iv < seqLen(s1) & {\subst x; any::seqGet(s2, iv)}phi) ==>) + \exists iv; (0 <= iv & iv < seqLen(s1) & {\subst x; seqGet<[any]>(s2, iv)}phi) ==>) }; } diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqPerm2.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqPerm2.key index 03a0b07b8d9..e20560c35b7 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqPerm2.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqPerm2.key @@ -27,13 +27,13 @@ \notFreeIn(y, s, t)) \add(\forall x; \forall y; ( - any::seqGet(s, x) = any::seqGet(t, x) & - any::seqGet(s, y) = any::seqGet(t, y) & 0 <= x & x < seqLen(s) & + seqGet<[any]>(s, x) = seqGet<[any]>(t, x) & + seqGet<[any]>(s, y) = seqGet<[any]>(t, y) & 0 <= x & x < seqLen(s) & 0 <= y & y < seqLen(s) -> \exists r; (seqLen(r) = seqLen(s) & seqNPerm(r) & (\forall iv; (0 <= iv & iv < seqLen(s) -> - any::seqGet(s, iv) = any::seqGet(t, int::seqGet(r, iv)))) & - int::seqGet(r, x) = x & int::seqGet(r, y) = y)) + seqGet<[any]>(s, iv) = seqGet<[any]>(t, seqGet<[int]>(r, iv)))) & + seqGet<[int]>(r, x) = x & seqGet<[int]>(r, y) = y)) ==>) }; @@ -53,23 +53,23 @@ \notFreeIn(idx, s), \notFreeIn(idx, t)) - \add(seqPerm(s, t) & any::seqGet(s, x) = any::seqGet(t, x) & - any::seqGet(s, y) = any::seqGet(t, y) & 0 <= x & x < seqLen(s) & + \add(seqPerm(s, t) & seqGet<[any]>(s, x) = seqGet<[any]>(t, x) & + seqGet<[any]>(s, y) = seqGet<[any]>(t, y) & 0 <= x & x < seqLen(s) & 0 <= y & y < seqLen(s) - -> seqPerm(seqDef{idx;}(0, s.length, \if(idx = y) \then(b) \else(\if(idx = x) \then(a) \else(any::seqGet(s, idx)))) - , seqDef{idx;}(0, s.length, \if(idx = y) \then(b) \else(\if(idx = x) \then(a) \else(any::seqGet(t, idx))))) + -> seqPerm(seqDef{idx;}(0, s.length, \if(idx = y) \then(b) \else(\if(idx = x) \then(a) \else(seqGet<[any]>(s, idx)))) + , seqDef{idx;}(0, s.length, \if(idx = y) \then(b) \else(\if(idx = x) \then(a) \else(seqGet<[any]>(t, idx))))) ==>) }; // seqUpd(seqUpd(s,x,a),y,b) = // seqDef{idx;}(0, s.length, // \if(idx=y)\then(b)\else(\if(idx=x)\then(a) - // \else(int::seqGet(s, idx)))) + // \else(seqGet<[int]>(s, idx)))) // seqUpd(seqUpd(t,x,a),y,b) = // seqDef{idx;}(0, s.length, // \if(idx=y)\then(b)\else(\if(idx=x)\then(a) - // \else(int::seqGet(t, idx)))) + // \else(seqGet<[int]>(t, idx)))) } diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqRules.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqRules.key index 6feb4890641..859e9bf83db 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqRules.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/sequence/seqRules.key @@ -53,8 +53,8 @@ \notFreeIn(uSub, seq2)) \replacewith(seqDef{uSub;}(0, seqLen(seq1) + seqLen(seq2), \if(uSub < seqLen(seq1)) - \then(any::seqGet(seq1, uSub)) - \else(any::seqGet(seq2, uSub - seqLen(seq1))))) + \then(seqGet<[any]>(seq1, uSub)) + \else(seqGet<[any]>(seq2, uSub - seqLen(seq1))))) }; @@ -76,7 +76,7 @@ \varcond(\notFreeIn(uSub, seq), \notFreeIn(uSub, from), \notFreeIn(uSub, to)) - \replacewith(seqDef{uSub;}(from, to, any::seqGet(seq, uSub))) + \replacewith(seqDef{uSub;}(from, to, seqGet<[any]>(seq, uSub))) }; @@ -87,7 +87,7 @@ \find(seqReverse(seq)) \varcond(\notFreeIn(uSub, seq)) - \replacewith(seqDef{uSub;}(0, seqLen(seq), any::seqGet(seq, seqLen(seq) - uSub - 1))) + \replacewith(seqDef{uSub;}(0, seqLen(seq), seqGet<[any]>(seq, seqLen(seq) - uSub - 1))) }; @@ -100,7 +100,7 @@ \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)))) + \replacewith(seqDef{uSub;}(0, seqLen(seq), \if(uSub=idx) \then(value) \else(seqGet<[any]>(seq,uSub)))) }; // -------------------------------------------------------------------- @@ -123,11 +123,11 @@ \notFreeIn(n, t), \notFreeIn(m, s), \notFreeIn(m, t)) - \add((\exists n; (0 <= n & n < seqLen(s) & any::seqGet(s, n) = t)) + \add((\exists n; (0 <= n & n < seqLen(s) & seqGet<[any]>(s, n) = t)) -> (0 <= seqIndexOf(s, t) & seqIndexOf(s, t) < seqLen(s) & - any::seqGet(s, seqIndexOf(s, t)) = t & - \forall m; ((0 <= m & m < seqIndexOf(s, t)) -> any::seqGet(s, m) != t)) ==>) + seqGet<[any]>(s, seqIndexOf(s, t)) = t & + \forall m; ((0 <= m & m < seqIndexOf(s, t)) -> seqGet<[any]>(s, m) != t)) ==>) }; // ==================================================================== @@ -138,7 +138,7 @@ // The taclets differ from the original axiomatization by // (1) the right hand bound in seqDef is now strict // (2) the default value is explicitely given by seqGetOutside - // instead of any::seqGet(seqEmpty, 0) + // instead of seqGet<[any]>(seqEmpty, 0) // // ==================================================================== @@ -149,7 +149,7 @@ \schemaVar \variables Seq s; \schemaVar \variables int u; \find(seq) - \add(\forall s; (s = seqDef{u;}(0, seqLen(s), any::seqGet(s, u))) ==>) + \add(\forall s; (s = seqDef{u;}(0, seqLen(s), seqGet<[any]>(s, u))) ==>) }; \lemma @@ -158,7 +158,7 @@ \schemaVar \variables int iv; \find(seqGetOutside) \add(\forall s; (\forall iv; ((iv < 0 | seqLen(s) <= iv) - -> any::seqGet(s, iv) = seqGetOutside)) ==>) + -> seqGet<[any]>(s, iv) = seqGetOutside)) ==>) }; // -------------------------------------------------------------------- @@ -170,9 +170,9 @@ \schemaVar \term Seq seq; \schemaVar \term int idx; - \find((beta)any::seqGet(seq, idx)) + \find((beta)seqGet<[any]>(seq, idx)) - \replacewith(beta::seqGet(seq, idx)) + \replacewith(seqGet<[beta]>(seq, idx)) \heuristics(simplify) }; @@ -182,8 +182,8 @@ \schemaVar \term Seq seq; \schemaVar \term int at; - \find(alpha::seqGet(seq, at)) - \add((alpha)any::seqGet(seq, at) = alpha::seqGet(seq, at) ==>) + \find(seqGet<[alpha]>(seq, at)) + \add((alpha)seqGet<[any]>(seq, at) = seqGet<[alpha]>(seq, at) ==>) \heuristics(inReachableStateImplication) }; @@ -196,7 +196,7 @@ \schemaVar \term any x; \schemaVar \term int idx; - \find(alpha::seqGet(seqSingleton(x), idx)) + \find(seqGet<[alpha]>(seqSingleton(x), idx)) \replacewith(\if(idx = 0) \then((alpha)x) @@ -208,7 +208,7 @@ \lemma getOfSeqSingletonConcrete { \schemaVar \term any x; - \find(alpha::seqGet(seqSingleton(x), 0)) + \find(seqGet<[alpha]>(seqSingleton(x), 0)) \replacewith((alpha)x) \heuristics(concrete) }; @@ -218,11 +218,11 @@ \schemaVar \term Seq seq, seq2; \schemaVar \term int idx; - \find(alpha::seqGet(seqConcat(seq, seq2), idx)) + \find(seqGet<[alpha]>(seqConcat(seq, seq2), idx)) \replacewith(\if(idx < seqLen(seq)) - \then(alpha::seqGet(seq, idx)) - \else(alpha::seqGet(seq2, idx - seqLen(seq)))) + \then(seqGet<[alpha]>(seq, idx)) + \else(seqGet<[alpha]>(seq2, idx - seqLen(seq)))) \heuristics(simplify_enlarging) }; @@ -232,10 +232,10 @@ \schemaVar \term Seq seq; \schemaVar \term int idx, from, to; - \find(alpha::seqGet(seqSub(seq, from, to), idx)) + \find(seqGet<[alpha]>(seqSub(seq, from, to), idx)) \replacewith(\if(0 <= idx & idx < (to - from)) - \then(alpha::seqGet(seq, idx + from)) + \then(seqGet<[alpha]>(seq, idx + from)) \else((alpha)seqGetOutside)) \heuristics(simplify_enlarging) @@ -246,9 +246,9 @@ \schemaVar \term Seq seq; \schemaVar \term int idx; - \find(alpha::seqGet(seqReverse(seq), idx)) + \find(seqGet<[alpha]>(seqReverse(seq), idx)) - \replacewith(alpha::seqGet(seq, seqLen(seq) - 1 - idx)) + \replacewith(seqGet<[alpha]>(seq, seqLen(seq) - 1 - idx)) \heuristics(simplify_enlarging) }; @@ -259,8 +259,8 @@ \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))) + \find(seqGet<[alpha]>(seqUpd(seq, idx, value), jdx)) + \replacewith(\if(0<=jdx & jdx < seqLen(seq) & idx=jdx) \then((alpha)value) \else(seqGet<[alpha]>(seq, jdx))) \heuristics(simplify_enlarging) }; @@ -348,7 +348,7 @@ \add(seqLen(s) = seqLen(s2) & \forall iv; (0 <= iv & iv < seqLen(s) - -> any::seqGet(s, iv) = any::seqGet(s2, iv)) ==>) + -> seqGet<[any]>(s, iv) = seqGet<[any]>(s2, iv)) ==>) \heuristics(inReachableStateImplication) // uncertain about heuristics?? @@ -364,7 +364,7 @@ \replacewith( ==> seqLen(s) = seqLen(s2) & \forall iv; (0 <= iv & iv < seqLen(s) - -> any::seqGet(s, iv) = any::seqGet(s2, iv))) + -> seqGet<[any]>(s, iv) = seqGet<[any]>(s2, iv))) \heuristics(simplify_enlarging) }; @@ -376,7 +376,7 @@ \schemaVar \term Seq EQ; \assumes(seqSingleton(x) = EQ ==>) - \find(alpha::seqGet(EQ, idx)) + \find(seqGet<[alpha]>(EQ, idx)) \sameUpdateLevel \replacewith(\if(idx = 0) @@ -394,12 +394,12 @@ \schemaVar \term Seq EQ; \assumes(seqConcat(seq, seq2) = EQ ==>) - \find(alpha::seqGet(EQ, idx)) + \find(seqGet<[alpha]>(EQ, idx)) \sameUpdateLevel \replacewith(\if(idx < seqLen(seq)) - \then(alpha::seqGet(seq, idx)) - \else(alpha::seqGet(seq2, idx - seqLen(seq)))) + \then(seqGet<[alpha]>(seq, idx)) + \else(seqGet<[alpha]>(seq2, idx - seqLen(seq)))) \heuristics(no_self_application, simplify_enlarging) \displayname "getOfSeqConcat" @@ -412,11 +412,11 @@ \schemaVar \term Seq EQ; \assumes(seqSub(seq, from, to) = EQ ==>) - \find(alpha::seqGet(EQ, idx)) + \find(seqGet<[alpha]>(EQ, idx)) \sameUpdateLevel \replacewith(\if(0 <= idx & idx < (to - from)) - \then(alpha::seqGet(seq, idx + from)) + \then(seqGet<[alpha]>(seq, idx + from)) \else((alpha)seqGetOutside)) \heuristics(no_self_application, simplify_enlarging) @@ -430,10 +430,10 @@ \schemaVar \term Seq EQ; \assumes(seqReverse(seq) = EQ ==>) - \find(alpha::seqGet(EQ, idx)) + \find(seqGet<[alpha]>(EQ, idx)) \sameUpdateLevel - \replacewith(alpha::seqGet(seq, seqLen(seq) - 1 - idx)) + \replacewith(seqGet<[alpha]>(seq, seqLen(seq) - 1 - idx)) \heuristics(no_self_application, simplify_enlarging) \displayname "getOfSeqReverse" @@ -521,7 +521,7 @@ \schemaVar \variables int uSub, uSub1, uSub2; \assumes(seqDef{uSub;}(from, to, t) = EQ ==>) - \find(alpha::seqGet(EQ, idx)) + \find(seqGet<[alpha]>(EQ, idx)) \sameUpdateLevel \varcond(\notFreeIn(uSub, from), \notFreeIn(uSub, to)) @@ -675,7 +675,7 @@ \assumes(seqSingleton(x) = EQ ==>) \find(seqSub(EQ, 0, 1)) - + \sameUpdateLevel \replacewith(seqSingleton(x)) \heuristics(concrete) @@ -741,7 +741,7 @@ \assumes(seqSingleton(x) = EQ ==>) \find(seqSub(EQ, l, u)) - + \sameUpdateLevel \replacewith(seqConcat(seqSub(seqEmpty, \if(l < 0) \then(l) \else(0), \if(u < 0) \then(u) \else(0)), @@ -775,7 +775,7 @@ \assumes(seqConcat(s1, s2) = EQ ==>) \find(seqSub(EQ, l, u)) - + \sameUpdateLevel \replacewith(seqConcat(seqSub(s1, l, \if(seqLen(s1) < u) \then(seqLen(s1)) \else(u)), seqSub(s2, \if(l < seqLen(s1)) \then(0) \else(l - seqLen(s1)), u - seqLen(s1)))) @@ -802,7 +802,7 @@ \assumes(seqDef{i;}(0, u, a) = EQ ==>) \find(seqSub(seqConcat(EQ, seq), 0, u)) - + \sameUpdateLevel \replacewith(seqDef{i;}(0, u, a)) \heuristics(concrete) @@ -942,7 +942,6 @@ \schemaVar \variables int uSub, uSub1, uSub2; \find(seqDef{uSub;}(from, idx, t)) - \sameUpdateLevel \varcond(\notFreeIn(uSub, from), \notFreeIn(uSub, idx)) \replacewith(\if(from + 1 = idx) @@ -968,13 +967,13 @@ \schemaVar \term int x; \schemaVar \term Seq s; \schemaVar \variables int u, v; - // \find(seqDef{u;}(0,x,alpha::seqGet(s,u))) + // \find(seqDef{u;}(0,x,seqGet<[alpha]>(s,u))) // changed by PHS 17.12.2013 // original version caused inconsistency // proof by DB 29.10.2013 was based on // another incorrect taclet that has in the // meantime been removed. - \find(seqDef{u;}(0, x, any::seqGet(s, u))) + \find(seqDef{u;}(0, x, seqGet<[any]>(s, u))) \varcond(\notFreeIn(u, x, s), \notFreeIn(v, x, s)) \replacewith(\if(seqLen(s) = x) \then(s) @@ -992,7 +991,7 @@ \schemaVar \term int x; \schemaVar \variables int u; \assumes(seqLen(s) = x ==>) - \find(seqDef{u;}(0, x, any::seqGet(s, u))) + \find(seqDef{u;}(0, x, seqGet<[any]>(s, u))) \sameUpdateLevel \varcond(\notFreeIn(u, x, s)) \replacewith(s) @@ -1015,7 +1014,7 @@ // \find( seqIndexOf(s,t) ) // \varcond ( \notFreeIn(n, s), \notFreeIn(n, t) ) // \replacewith( \ifEx n; - // (0 <= n & n < seqLen(s) & any::seqGet(s,n)=t) + // (0 <= n & n < seqLen(s) & seqGet<[any]>(s,n)=t) // \then (n) // \else (seqIndexOf(s,t)) ) // }; @@ -1039,7 +1038,7 @@ \varcond(\notFreeIn(idx, s1, s2, x)) \replacewith(seqIndexOf(s1, x)); \add( ==> \exists idx; (0 <= idx & idx < seqLen(s1) & - any::seqGet(s1, idx) = x)) + seqGet<[any]>(s1, idx) = x)) }; \lemma @@ -1052,9 +1051,9 @@ \varcond(\notFreeIn(idx, s1, s2, x)) \replacewith(add(seqIndexOf(s2, x), seqLen(s1))); \add( ==> (!\exists idx; - (0 <= idx & idx < seqLen(s1) & any::seqGet(s1, idx) = x) + (0 <= idx & idx < seqLen(s1) & seqGet<[any]>(s1, idx) = x) & \exists idx; - (0 <= idx & idx < seqLen(s2) & any::seqGet(s2, idx) = x))) + (0 <= idx & idx < seqLen(s2) & seqGet<[any]>(s2, idx) = x))) }; \lemma @@ -1073,7 +1072,7 @@ \notFreeIn(nx, to)) \replacewith(sub(seqIndexOf(s, x), from)); \add( ==> from <= seqIndexOf(s, x) & seqIndexOf(s, x) < to & 0 <= from & - \exists nx; ((0 <= nx & nx < seqLen(s) & any::seqGet(s, nx) = x))) + \exists nx; ((0 <= nx & nx < seqLen(s) & seqGet<[any]>(s, nx) = x))) }; // -------------------------------------------------------------------------- @@ -1101,7 +1100,7 @@ \replacewith(seqDef{j;}(lower, upper, - any::select(h, array, arr(j)) + select<[any]>(h, array, arr(j)) ) ) \heuristics(concrete) @@ -1131,8 +1130,8 @@ \replacewith(seqDef{j;}(lower, upper, - any::select(h, - Object::select(h, array, arr(j)), + select<[any]>(h, + select<[Object]>(h, array, arr(j)), f ) ) @@ -1150,7 +1149,7 @@ \schemaVar \variables int u; \find(array2seq(h, a)) \varcond(\notFreeIn(u, a, h)) - \replacewith(seqDef{u;}(0, length(a), any::select(h, a, arr(u)))) + \replacewith(seqDef{u;}(0, length(a), select<[any]>(h, a, arr(u)))) \heuristics(simplify_enlarging) }; @@ -1171,8 +1170,9 @@ \schemaVar \term Object a; \schemaVar \term int idx; \schemaVar \term Heap h; - \find(any::seqGet(array2seq(h, a), idx)) - \replacewith(any::select(h, a, arr(idx))); + \find(seqGet<[any]>(array2seq(h, a), idx)) + \sameUpdateLevel + \replacewith(select<[any]>(h, a, arr(idx))); \add( ==> 0 <= idx & idx < length(a)) }; @@ -1181,8 +1181,9 @@ \schemaVar \term Object a; \schemaVar \term int idx; \schemaVar \term Heap h; - \find(alpha::seqGet(array2seq(h, a), idx)) - \replacewith(alpha::select(h, a, arr(idx))); + \find(seqGet<[alpha]>(array2seq(h, a), idx)) + \sameUpdateLevel + \replacewith(select<[alpha]>(h, a, arr(idx))); \add( ==> 0 <= idx & idx < length(a)) }; diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/string/charListRules.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/string/charListRules.key index 9d5ed85b0d6..0d1e38f4b0a 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/string/charListRules.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/string/charListRules.key @@ -100,7 +100,7 @@ removeZeros { \schemaVar \term Seq l; \find(clRemoveZeros(l)) - \replacewith(\if(l = seqEmpty | int::seqGet(l, 0) = '0') \then(l) \else(clRemoveZeros(seqSub(l, 1, seqLen(l))))) + \replacewith(\if(l = seqEmpty | seqGet<[int]>(l, 0) = '0') \then(l) \else(clRemoveZeros(seqSub(l, 1, seqLen(l))))) \heuristics(integerToString) }; @@ -171,7 +171,7 @@ \replacewith(\ifEx iv; (i >= 0 & iv >= i & iv < seqLen(l) - & int::seqGet(l, iv) = c) + & seqGet<[int]>(l, iv) = c) \then(iv) \else(-1)) \heuristics(stringsExpandDefNormalOp) @@ -228,7 +228,7 @@ \newDependingOn(newSym, replChar), \newDependingOn(newSym, str)) \add(clReplace(str, searchChar, replChar) = newSym & - seqDef{pos;}(0, seqLen(str), \if(int::seqGet(str, pos) = searchChar) \then(replChar) \else(int::seqGet(str, pos))) = newSym + seqDef{pos;}(0, seqLen(str), \if(seqGet<[int]>(str, pos) = searchChar) \then(replChar) \else(seqGet<[int]>(str, pos))) = newSym ==>) \heuristics(defOpsReplace, stringsIntroduceNewSym) @@ -297,7 +297,7 @@ \replacewith(\ifEx iv; (iv > 0 & i >= iv & i - iv < seqLen(sourceStr) - & int::seqGet(sourceStr, i - iv) = c) + & seqGet<[int]>(sourceStr, i - iv) = c) \then(i - iv) \else(-1)) \heuristics(stringsExpandDefNormalOp) 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 index 38a875cb9b1..33a2c30df19 100644 --- 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 @@ -7,7 +7,7 @@ \functions { SORT anySORT; - SORT alph::ssort; + SORT ssort<[alph]>; } \predicates { @@ -16,7 +16,7 @@ \rules { ssubsortDirect { - \find(ssubsort(alphSub::ssort, alph::ssort)) + \find(ssubsort(ssort<[alphSub]>, ssort<[alph]>)) \replacewith(true) \heuristics(simplify) }; @@ -36,7 +36,7 @@ }; ssubsortSup { - \find(ssubsort(alph::ssort, alphSub::ssort)) + \find(ssubsort(ssort<[alph]>, ssort<[alphSub]>)) \varcond(\not \same(alphSub, alph)) \replacewith(false) \heuristics(simplify) diff --git a/key.core/src/main/resources/de/uka/ilkd/key/smt/newsmt2/Heap.DefinedSymbolsHandler.preamble.xml b/key.core/src/main/resources/de/uka/ilkd/key/smt/newsmt2/Heap.DefinedSymbolsHandler.preamble.xml index dcd66085427..4976f1bd94f 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/smt/newsmt2/Heap.DefinedSymbolsHandler.preamble.xml +++ b/key.core/src/main/resources/de/uka/ilkd/key/smt/newsmt2/Heap.DefinedSymbolsHandler.preamble.xml @@ -1,9 +1,9 @@ > = + select<[any]>(store(h,o,f,v), o2, f2)<> = \if(o = o2 & f = f2 & f != java.lang.Object::#$created) \then(v) - \else(any::select(h, o2, f2)) + \else(select<[any]>(h, o2, f2)) ]]> > = + select<[any]>(anon(h, ls, h2), o, f)<> = \if(elementOf(o, f, ls) & f != java.lang.Object::#$created | elementOf(o, f, freshLocs(h))) - \then(any::select(h2, o, f)) - \else(any::select(h, o, f)) + \then(select<[any]>(h2, o, f)) + \else(select<[any]>(h, o, f)) ]]> > = + select<[any]>(memset(h, s, x), o, f)<> = \if(elementOf(o, f, s) & f != java.lang.Object::#$created) \then(x) - \else(any::select(h, o, f)) + \else(select<[any]>(h, o, f)) ]]> > = + select<[any]>(create(h, o), o2, f)<> = \if(o = o2 & o != null & f = java.lang.Object::#$created) \then(TRUE) - \else(any::select(h, o2, f)) + \else(select<[any]>(h, o2, f)) ]]> - boolean::select(h, (java.lang.Object::select(h, o, f))<>, java.lang.Object::#$created) = TRUE - | (java.lang.Object::select(h, o, f)) = null) + select<[boolean]>(h, (select<[java.lang.Object]>(h, o, f))<>, java.lang.Object::#$created) = TRUE + | (select<[java.lang.Object]>(h, o, f)) = null) ]]> \ No newline at end of file diff --git a/key.core/src/main/resources/de/uka/ilkd/key/smt/newsmt2/Java.DefinedSymbolsHandler.preamble.xml b/key.core/src/main/resources/de/uka/ilkd/key/smt/newsmt2/Java.DefinedSymbolsHandler.preamble.xml index 8f6884382c7..39e2e5e2c84 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/smt/newsmt2/Java.DefinedSymbolsHandler.preamble.xml +++ b/key.core/src/main/resources/de/uka/ilkd/key/smt/newsmt2/Java.DefinedSymbolsHandler.preamble.xml @@ -1,6 +1,6 @@ - > = TRUE -> x = null) ]]> + (x))<> = TRUE -> x = null) ]]> diff --git a/key.core/src/main/resources/de/uka/ilkd/key/smt/newsmt2/LocSet.DefinedSymbolsHandler.preamble.xml b/key.core/src/main/resources/de/uka/ilkd/key/smt/newsmt2/LocSet.DefinedSymbolsHandler.preamble.xml index 79af4924c97..0cf6ff149e8 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/smt/newsmt2/LocSet.DefinedSymbolsHandler.preamble.xml +++ b/key.core/src/main/resources/de/uka/ilkd/key/smt/newsmt2/LocSet.DefinedSymbolsHandler.preamble.xml @@ -11,11 +11,11 @@ \forall Object o; \forall Field f; ( elementOf(o,f,allLocs)<<Trigger>> <-> true ) - + + ( elementOf(o,f,freshLocs(h))<> <-> + o != null & !select<[boolean]>(h,o,java.lang.Object::#$created)=TRUE ) +]]> \forall Object o; \forall Field f; \forall Object o2; \forall Field f2; diff --git a/key.core/src/main/resources/de/uka/ilkd/key/smt/newsmt2/Seq.DefinedSymbolsHandler.preamble.xml b/key.core/src/main/resources/de/uka/ilkd/key/smt/newsmt2/Seq.DefinedSymbolsHandler.preamble.xml index 807ea5a17ad..0865c9015d6 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/smt/newsmt2/Seq.DefinedSymbolsHandler.preamble.xml +++ b/key.core/src/main/resources/de/uka/ilkd/key/smt/newsmt2/Seq.DefinedSymbolsHandler.preamble.xml @@ -1,5 +1,5 @@ = seqLen(s) -> any::seqGet(s, i)<> = seqGetOutside ) + \forall int i; \forall Seq s; ( i < 0 | i >= seqLen(s) -> seqGet<[any]>(s, i)<> = seqGetOutside ) ]]> - any::seqGet(seqConcat(s1, s2), i) = - \if (i < seqLen(s1)) \then (any::seqGet(s1, i)) \else (any::seqGet(s2, i-seqLen(s1)))) + seqGet<[any]>(seqConcat(s1, s2), i) = + \if (i < seqLen(s1)) \then (seqGet<[any]>(s1, i)) \else (seqGet<[any]>(s2, i-seqLen(s1)))) ]]> @@ -24,7 +24,7 @@ >, 0) = x + \forall any x; seqGet<[any]>(seqSingleton(x)<>, 0) = x ]]> @@ -38,9 +38,9 @@ \forall int from; \forall int to; \forall int idx; - any::seqGet(seqSub(seq, from, to)<>, idx) + seqGet<[any]>(seqSub(seq, from, to)<>, idx) = \if(0 <= idx & idx < (to - from)) - \then(any::seqGet(seq, idx + from)) + \then(seqGet<[any]>(seq, idx + from)) \else(seqGetOutside) ]]> diff --git a/key.core/src/test/java/de/uka/ilkd/key/logic/sort/TestParametricSorts.java b/key.core/src/test/java/de/uka/ilkd/key/logic/sort/TestParametricSorts.java index e6f2e32576b..05279220f36 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/logic/sort/TestParametricSorts.java +++ b/key.core/src/test/java/de/uka/ilkd/key/logic/sort/TestParametricSorts.java @@ -10,7 +10,6 @@ import de.uka.ilkd.key.logic.op.JFunction; import de.uka.ilkd.key.logic.op.ParametricFunctionDecl; import de.uka.ilkd.key.logic.op.ParametricFunctionInstance; -import de.uka.ilkd.key.logic.op.SortDependingFunction; import de.uka.ilkd.key.nparser.KeyIO; import de.uka.ilkd.key.nparser.NamespaceBuilder; import de.uka.ilkd.key.rule.TacletForTests; @@ -68,48 +67,6 @@ private ParametricSortDecl addParametricSort(String name, return psd; } - - @Test - public void testParametricSortIdentical() { - ParametricSortDecl psd = addParametricSort("List", GenericParameter.Variance.COVARIANT); - var sdf = SortDependingFunction.createFirstInstance(g1, new Name("someConst"), g1, - new Sort[0], false, services); - nss.functions().add(sdf); - - var term = io.parseExpression("List<[int]>::someConst = List<[int]>::someConst"); - assertEquals(term.sub(0), term.sub(1)); - assertSame(term.sub(0).sort(), term.sub(1).sort()); - } - - @Test - public void testParametricSortDependentFunctionInstantiation() { - ParametricSortDecl psd = addParametricSort("List", GenericParameter.Variance.COVARIANT); - Sort intSort = nss.sorts().lookup("int"); - - var someConst = SortDependingFunction.createFirstInstance(g1, new Name("someConst"), g1, - new Sort[0], false, services); - nss.functions().add(someConst); - - var listOfInt = - ParametricSortInstance.get(psd, ImmutableList.of(new GenericArgument(intSort)), - services); - var listOfG1 = - ParametricSortInstance.get(psd, ImmutableList.of(new GenericArgument(g1)), services); - var sdf = SortDependingFunction.createFirstInstance(g1, new Name("head"), g1, - new Sort[] { listOfG1 }, false, services); - nss.functions().add(sdf); - - SortDependingFunction sdfInst = sdf.getInstanceFor(intSort, services); - assertEquals(intSort, sdfInst.sort()); - assertEquals(listOfInt, sdfInst.argSort(0)); - - var term = io.parseExpression("int::head(List<[int]>::someConst) = int::someConst"); - assertEquals("List<[int]>", term.sub(0).sub(0).sort().toString()); - assertEquals("List<[int]>", ((JFunction) term.sub(0).op()).argSorts().get(0).toString()); - assertEquals("int", term.sub(0).op().sort(new Sort[0]).toString()); - assertSame(term.sub(0).sort(), term.sub(1).sort()); - } - @Test public void testParametricFunctionInstantiation() { ParametricSortDecl psd = addParametricSort("List", GenericParameter.Variance.COVARIANT); diff --git a/key.core/src/test/java/de/uka/ilkd/key/parser/TestParser.java b/key.core/src/test/java/de/uka/ilkd/key/parser/TestParser.java index 35c90abddd8..d42a1d2eed4 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/parser/TestParser.java +++ b/key.core/src/test/java/de/uka/ilkd/key/parser/TestParser.java @@ -63,7 +63,7 @@ public void testGenericSort() throws IOException { String content = """ \\sorts { \\generic gen; }\s - \\rules { SomeRule { \\find(gen::instance(0)) \\replacewith(false) }; } + \\rules { SomeRule { \\find(instance<[gen]>(0)) \\replacewith(false) }; } \\problem { true }"""; Services services = TacletForTests.services(); diff --git a/key.core/src/test/java/de/uka/ilkd/key/parser/TestTermParserHeap.java b/key.core/src/test/java/de/uka/ilkd/key/parser/TestTermParserHeap.java index ae54dc07e19..56480dad7a1 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/parser/TestTermParserHeap.java +++ b/key.core/src/test/java/de/uka/ilkd/key/parser/TestTermParserHeap.java @@ -8,6 +8,7 @@ import de.uka.ilkd.key.logic.JTerm; import org.key_project.logic.op.Operator; +import org.key_project.logic.sort.Sort; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -46,7 +47,8 @@ public void setUp() throws Exception { } private JTerm getSelectTerm(String sort, JTerm heap, JTerm object, JTerm field) { - Operator op = lookup_func(sort + "::select"); + Sort s = services.getNamespaces().sorts().lookup(sort); + Operator op = services.getTypeConverter().getHeapLDT().getSelect(s, services); JTerm[] params = { heap, object, field }; return tf.createTerm(op, params); } @@ -73,15 +75,15 @@ public void testLocationSets() throws Exception { @Test public void testParsePrettyPrintedSelect() throws Exception { String prettySyntax = "a.f"; - String verboseSyntax = "int::select(heap, a, testTermParserHeap.A::#f)"; + String verboseSyntax = "select<[int]>(heap, a, testTermParserHeap.A::#f)"; comparePrettySyntaxAgainstVerboseSyntax(prettySyntax, verboseSyntax); prettySyntax = "a1.f"; - verboseSyntax = "int::select(heap, a1, testTermParserHeap.A1::#f)"; + verboseSyntax = "select<[int]>(heap, a1, testTermParserHeap.A1::#f)"; comparePrettySyntaxAgainstVerboseSyntax(prettySyntax, verboseSyntax); prettySyntax = "a1.(testTermParserHeap.A::f)"; - verboseSyntax = "int::select(heap, a1, testTermParserHeap.A::#f)"; + verboseSyntax = "select<[int]>(heap, a1, testTermParserHeap.A::#f)"; comparePrettySyntaxAgainstVerboseSyntax(prettySyntax, verboseSyntax); } @@ -94,7 +96,7 @@ public void testBracketHeapUpdate() throws Exception { comparePrettySyntaxAgainstVerboseSyntax(complicatedHeapPretty, complicatedHeapVerbose); String prettySyntax = "a.f@h[anon({}, h2)]"; - String verboseSyntax = "int::select(anon(h, empty, h2), a, testTermParserHeap.A::#f)"; + String verboseSyntax = "select<[int]>(anon(h, empty, h2), a, testTermParserHeap.A::#f)"; comparePrettySyntaxAgainstVerboseSyntax(prettySyntax, verboseSyntax); /* @@ -102,9 +104,9 @@ public void testBracketHeapUpdate() throws Exception { * after @-Operator. */ prettySyntax = "a.next.next.array[i]@" + complicatedHeapPretty; - verboseSyntax = "int::select(" + complicatedHeapVerbose + ", " + "int[]::select(" - + complicatedHeapVerbose + ", " + "testTermParserHeap.A::select(" - + complicatedHeapVerbose + ", " + "testTermParserHeap.A::select(" + verboseSyntax = "select<[int]>(" + complicatedHeapVerbose + ", " + "select<[int[]]>(" + + complicatedHeapVerbose + ", " + "select<[testTermParserHeap.A]>(" + + complicatedHeapVerbose + ", " + "select<[testTermParserHeap.A]>(" + complicatedHeapVerbose + ", " + " a, testTermParserHeap.A::#next)" + ", testTermParserHeap.A::#next)" + ", testTermParserHeap.A::#array)" + ", arr(i))"; comparePrettySyntaxAgainstVerboseSyntax(prettySyntax, verboseSyntax); @@ -119,21 +121,21 @@ public void testAtOperator_1() throws Exception { String prettySyntax, verboseSyntax; prettySyntax = "a.f@h"; - verboseSyntax = "int::select(h, a, testTermParserHeap.A::#f)"; + verboseSyntax = "select<[int]>(h, a, testTermParserHeap.A::#f)"; comparePrettySyntaxAgainstVerboseSyntax(prettySyntax, verboseSyntax); } @Test public void testAtOperator_2() throws Exception { String prettySyntax = "a1.f@h"; - String verboseSyntax = "int::select(h, a1, testTermParserHeap.A1::#f)"; + String verboseSyntax = "select<[int]>(h, a1, testTermParserHeap.A1::#f)"; comparePrettySyntaxAgainstVerboseSyntax(prettySyntax, verboseSyntax); } @Test public void testAtOperator_3() throws Exception { String prettySyntax = "a1.(testTermParserHeap.A::f)@h"; - String verboseSyntax = "int::select(h, a1, testTermParserHeap.A::#f)"; + String verboseSyntax = "select<[int]>(h, a1, testTermParserHeap.A::#f)"; comparePrettySyntaxAgainstVerboseSyntax(prettySyntax, verboseSyntax); } @@ -192,7 +194,7 @@ public void testAtOperator_8() throws Exception { public void testBugResettingCounter() throws Exception { String prettySyntax = "a.f = a.f@h"; String verboseSyntax = - "int::select(heap, a, testTermParserHeap.A::#f) = int::select(h, a, testTermParserHeap.A::#f)"; + "select<[int]>(heap, a, testTermParserHeap.A::#f) = select<[int]>(h, a, testTermParserHeap.A::#f)"; comparePrettySyntaxAgainstVerboseSyntax(prettySyntax, verboseSyntax); } @@ -216,7 +218,7 @@ public void testVerifyExceptionIfAtOperatorNotPreceededBySelectTerm() { // @Ignore(value="weigl: This test is not comprehensible anymore.") public void testUnknownConstant() throws Exception { parseDecls("\\functions { \\unique Field unknown.Clazz::#unknownField; }"); - String string = "int::select(heap,a,unknown.Clazz::#unknownField)"; + String string = "select<[int]>(heap,a,unknown.Clazz::#unknownField)"; comparePrettyPrintAgainstToString(string, string); } @@ -224,12 +226,12 @@ public void testUnknownConstant() throws Exception { public void testQuantifiedSelect() throws Exception { String quantification = "\\forall java.lang.Object o; \\forall Field f; o.f = 1"; String expectedToString = - "all{o:java.lang.Object}(all{f:Field}(equals(any::select(heap,o,f),Z(1(#)))))"; + "all{o:java.lang.Object}(all{f:Field}(equals(select<[any]>(heap,o,f),Z(1(#)))))"; comparePrettyPrintAgainstToString(quantification, expectedToString); - quantification = "\\forall Field f; a.f = any::select(heap, a, f)"; + quantification = "\\forall Field f; a.f = select<[any]>(heap, a, f)"; expectedToString = - "all{f:Field}(equals(int::select(heap,a,testTermParserHeap.A::#f),any::select(heap,a,f)))"; + "all{f:Field}(equals(select<[int]>(heap,a,testTermParserHeap.A::#f),select<[any]>(heap,a,f)))"; comparePrettyPrintAgainstToString(quantification, expectedToString); } @@ -245,14 +247,14 @@ private void comparePrettyPrintAgainstToString(String quantification, String exp public void testGenericObjectProperties() throws Exception { // test pretty syntax comparePrettySyntaxAgainstVerboseSyntax("a.$created", - "boolean::select(heap,a,java.lang.Object::#$created)"); + "select<[boolean]>(heap,a,java.lang.Object::#$created)"); comparePrettySyntaxAgainstVerboseSyntax("a.$initialized", - "boolean::select(heap,a,java.lang.Object::#$initialized)"); + "select<[boolean]>(heap,a,java.lang.Object::#$initialized)"); comparePrettySyntaxAgainstVerboseSyntax("a.$transient", - "int::select(heap,a,java.lang.Object::#$transient)"); + "select<[int]>(heap,a,java.lang.Object::#$transient)"); // test fallback mode in case non-default select-type is used - parseAndPrint("int::select(heap,a,java.lang.Object::#$created)"); + parseAndPrint("select<[int]>(heap,a,java.lang.Object::#$created)"); } @@ -272,7 +274,7 @@ public void testQueryBasic_2() throws Exception { public void testQueryBasic_3() throws Exception { comparePrettySyntaxAgainstVerboseSyntax("a.query(a.f)@h", "testTermParserHeap.A::query(h, a, " - + "int::select(heap, a, testTermParserHeap.A::#f))"); + + "select<[int]>(heap, a, testTermParserHeap.A::#f))"); } @@ -280,8 +282,8 @@ public void testQueryBasic_3() throws Exception { public void testQueryBasic_4() throws Exception { comparePrettySyntaxAgainstVerboseSyntax("a.next.query(a.f)@h", "testTermParserHeap.A::query(h, " - + "testTermParserHeap.A::select(h, a, testTermParserHeap.A::#next), " - + "int::select(heap, a, testTermParserHeap.A::#f))"); + + "select<[testTermParserHeap.A]>(h, a, testTermParserHeap.A::#next), " + + "select<[int]>(heap, a, testTermParserHeap.A::#f))"); } @@ -295,7 +297,7 @@ public void testQueryBasic_5() throws Exception { @Test public void testQueryBasic_6() throws Exception { comparePrettySyntaxAgainstVerboseSyntax("a.getNext().next@h", - "testTermParserHeap.A::select(h, " + "select<[testTermParserHeap.A]>(h, " + "testTermParserHeap.A::getNext(h, a), testTermParserHeap.A::#next)"); } @@ -303,14 +305,14 @@ public void testQueryBasic_6() throws Exception { @Test public void testQueryBasic_7() throws Exception { comparePrettySyntaxAgainstVerboseSyntax("(a.getNext()@h2).next@h", - "testTermParserHeap.A::select(h, testTermParserHeap.A::getNext(h2, a), testTermParserHeap.A::#next)"); + "select<[testTermParserHeap.A]>(h, testTermParserHeap.A::getNext(h2, a), testTermParserHeap.A::#next)"); } @Test public void testQueryBasic_8() throws Exception { comparePrettySyntaxAgainstVerboseSyntax("(a.getNext()@heap).next@h", - "testTermParserHeap.A::select(h, " + "select<[testTermParserHeap.A]>(h, " + "testTermParserHeap.A::getNext(heap, a), testTermParserHeap.A::#next)"); } @@ -319,7 +321,7 @@ public void testQueryBasic_8() throws Exception { public void testQueryBasic_9() throws Exception { comparePrettySyntaxAgainstVerboseSyntax("(a.next@heap).getNext()@h", "testTermParserHeap.A::getNext(h, " - + "testTermParserHeap.A::select(heap, a, testTermParserHeap.A::#next))"); + + "select<[testTermParserHeap.A]>(heap, a, testTermParserHeap.A::#next))"); } @@ -335,7 +337,7 @@ public void testQueryBasic_10() throws Exception { public void testQueryBasic_11() throws Exception { // test a query on an array element comparePrettySyntaxAgainstVerboseSyntax("array[i].arrayQuery(array)", - "testTermParserHeap.A::arrayQuery(heap,testTermParserHeap.A::select(heap,array,arr(i)),array)"); + "testTermParserHeap.A::arrayQuery(heap,select<[testTermParserHeap.A]>(heap,array,arr(i)),array)"); } @Test @@ -417,7 +419,7 @@ public void testQueryInheritance_9() throws Exception { public void testAccessStaticMembers() throws Exception { // static field access comparePrettySyntaxAgainstVerboseSyntax("testTermParserHeap.A.staticField", - "int::select(heap, null, testTermParserHeap.A::#staticField)"); + "select<[int]>(heap, null, testTermParserHeap.A::#staticField)"); // static method access comparePrettySyntaxAgainstVerboseSyntax("testTermParserHeap.A.staticMethod()", @@ -425,7 +427,7 @@ public void testAccessStaticMembers() throws Exception { // static array access comparePrettySyntaxAgainstVerboseSyntax("testTermParserHeap.A.staticArray[0]", - "int::select(heap,int[]::select(heap,null,testTermParserHeap.A::#staticArray),arr(Z(0(#))))"); + "select<[int]>(heap,select<[int[]]>(heap,null,testTermParserHeap.A::#staticArray),arr(Z(0(#))))"); } /* @@ -453,7 +455,7 @@ public void testStore() throws Exception { // element of static array pretty = "heap[testTermParserHeap.A.staticArray[i] := i]"; verbose = - "store(heap, int[]::select(heap,null,testTermParserHeap.A::#staticArray), arr(i), i)"; + "store(heap, select<[int[]]>(heap,null,testTermParserHeap.A::#staticArray), arr(i), i)"; comparePrettySyntaxAgainstVerboseSyntax(pretty, verbose); // object property diff --git a/key.core/src/test/java/de/uka/ilkd/key/parser/TestTermParserSorts.java b/key.core/src/test/java/de/uka/ilkd/key/parser/TestTermParserSorts.java index 4d3939604ea..d9708ce026d 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/parser/TestTermParserSorts.java +++ b/key.core/src/test/java/de/uka/ilkd/key/parser/TestTermParserSorts.java @@ -32,24 +32,24 @@ public void setUp() throws IOException { @Test public void testParseSequencePrettySyntax() throws Exception { /* - * Test any::seqGet(s,i) + * Test seqGet<[any]>(s,i) */ String pp = "s[i]"; - JTerm expected = parseTerm("any::seqGet(s,i)"); + JTerm expected = parseTerm("seqGet<[any]>(s,i)"); JTerm actual = parseTerm(pp); assertEquals(expected, actual); // test parsing - assertEqualsIgnoreWhitespaces(printTerm(expected), pp); // test pretty-printing + assertEqualsIgnoreWhitespaces(pp, printTerm(expected)); // test pretty-printing /* - * Test int::seqGet(s,i) Notice that pretty-printing of int::seqGet(s,i) results in: - * (int)s[i] But parsing of (int)s[i] results in: int::cast(any::seqGet(s,i) + * Test seqGet<[int]>(s,i) Notice that pretty-printing of seqGet<[int]>(s,i) results in: + * (int)s[i] But parsing of (int)s[i] results in: cast<[int]>(seqGet<[any]>(s,i) */ pp = "(int)s[i]"; - expected = parseTerm("int::cast(any::seqGet(s,i))"); + expected = parseTerm("cast<[int]>(seqGet<[any]>(s,i))"); actual = parseTerm(pp); assertEquals(expected, actual); // test parsing // test pretty-printing - assertEqualsIgnoreWhitespaces(printTerm(parseTerm("int::seqGet(s,i)")), pp); + assertEqualsIgnoreWhitespaces(printTerm(parseTerm("seqGet<[int]>(s,i)")), pp); // test parsing of pretty-printed seqLen comparePrettySyntaxAgainstVerboseSyntax("s.length", "seqLen(s)"); diff --git a/key.core/src/test/java/de/uka/ilkd/key/pp/FinalPrinterTest.java b/key.core/src/test/java/de/uka/ilkd/key/pp/FinalPrinterTest.java index e126ab726f5..d04d00cff83 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/pp/FinalPrinterTest.java +++ b/key.core/src/test/java/de/uka/ilkd/key/pp/FinalPrinterTest.java @@ -43,12 +43,12 @@ public static void tearDown() { @ParameterizedTest(name = "{0} => {1}") @CsvSource(delimiter = ';', textBlock = """ - int::select(heap, self, C::#f); self.f - int::select(heap, self, C::#finf); int::select(heap, self, C::#finf) - int::final(sub, Csub::#finf); sub.finf - int::final(sub, C::#finf); sub.(C::finf) - int::final(self, C::#finf); self.finf - int::final(sub, C::#finf); sub.(C::finf) + select<[int]>(heap, self, C::#f); self.f + select<[int]>(heap, self, C::#finf); select<[int]>(heap, self, C::#finf) + final<[int]>(sub, Csub::#finf); sub.finf + final<[int]>(sub, C::#finf); sub.(C::finf) + final<[int]>(self, C::#finf); self.finf + final<[int]>(sub, C::#finf); sub.(C::finf) """) public void testPPWithFinal(String termString, String expected) throws Exception { services.getProof().getSettings().getChoiceSettings() @@ -63,11 +63,11 @@ public void testPPWithFinal(String termString, String expected) throws Exception @ParameterizedTest(name = "{0} => {1}") @CsvSource(delimiter = ';', textBlock = """ - int::final(sub, Csub::#finf); sub.finf - int::final(sub, C::#finf); sub.(C::finf) - int::final(self, C::#finf); self.finf - int::select(heap, self, C::#f); self.f - int::select(heap, self, C::#finf); self.finf + final<[int]>(sub, Csub::#finf); sub.finf + final<[int]>(sub, C::#finf); sub.(C::finf) + final<[int]>(self, C::#finf); self.finf + select<[int]>(heap, self, C::#f); self.f + select<[int]>(heap, self, C::#finf); self.finf """) public void testPPWithoutFinal(String termString, String expected) throws Exception { services.getProof().getSettings().getChoiceSettings() diff --git a/key.core/src/test/java/de/uka/ilkd/key/pp/PrettyPrinterRoundtripTest.java b/key.core/src/test/java/de/uka/ilkd/key/pp/PrettyPrinterRoundtripTest.java index 323d8310a54..8822dc89315 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/pp/PrettyPrinterRoundtripTest.java +++ b/key.core/src/test/java/de/uka/ilkd/key/pp/PrettyPrinterRoundtripTest.java @@ -68,11 +68,11 @@ public static void tearDown() { private static final String[] HEAP_CASES = { "self.f", "sub.f", - "int::select(heap, sub, C::#f)", - "int::final(self, C::#f)", - "\\forall Field f; int::select(heap, self, C::#f) = 0", + "select<[int]>(heap, sub, C::#f)", + "final<[int]>(self, C::#f)", + "\\forall Field f; select<[int]>(heap, self, C::#f) = 0", "\\forall Field fvar; self.fvar = 0", - "\\forall Field fvar; any::final(self, fvar) = 0", + "\\forall Field fvar; final<[any]>(self, fvar) = 0", "self.finf" }; 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 f46b1133ff9..7fc5873766e 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 @@ -136,7 +136,7 @@ public Stream data() throws ProblemLoaderException, IOException { } /* - * Create list of constructor parameters containig one entry for each taclet name. (that + * Create list of constructor parameters containing one entry for each taclet name. (that * means there will be one test case for each taclet) */ return tacletNames.stream() diff --git a/key.core/src/test/java/de/uka/ilkd/key/taclettranslation/lemma/TestGenericRemovingLemmaGenerator.java b/key.core/src/test/java/de/uka/ilkd/key/taclettranslation/lemma/TestGenericRemovingLemmaGenerator.java index e425c83802c..3ea1fda04e4 100644 --- a/key.core/src/test/java/de/uka/ilkd/key/taclettranslation/lemma/TestGenericRemovingLemmaGenerator.java +++ b/key.core/src/test/java/de/uka/ilkd/key/taclettranslation/lemma/TestGenericRemovingLemmaGenerator.java @@ -6,8 +6,9 @@ import java.util.HashSet; import java.util.Set; +import de.uka.ilkd.key.logic.GenericArgument; import de.uka.ilkd.key.logic.JTerm; -import de.uka.ilkd.key.logic.op.SortDependingFunction; +import de.uka.ilkd.key.logic.op.ParametricFunctionInstance; import de.uka.ilkd.key.logic.sort.GenericSort; import de.uka.ilkd.key.logic.sort.ProxySort; import de.uka.ilkd.key.rule.NoPosTacletApp; @@ -52,8 +53,8 @@ private void collectSorts(JTerm term, Set sorts) { sorts.add(term.sort()); - if (term.op() instanceof SortDependingFunction sdf) { - sorts.add(sdf.getSortDependingOn()); + if (term.op() instanceof ParametricFunctionInstance pfi) { + sorts.addAll(pfi.getArgs().stream().map(GenericArgument::sort).toList()); } for (QuantifiableVariable v : term.boundVars()) { 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 index 9a044c08966..fe4c802ad37 100644 --- 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 @@ -1,9 +1,9 @@ // verbose: true // msgContains: Could not find sort: seq // exceptionClass: BuildingException -// position: 8/4 +// position: 8/12 \problem { - seq::seqGet(seqEmpty, 0) + seqGet<[seq]>(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 index 62c0e48c388..a80312466c2 100644 --- 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 @@ -1,13 +1,13 @@ // verbose: true // msgContains: Could not find sort: seq // exceptionClass: BuildingException -// position: 9/11 +// position: 9/19 \rules { R { - \find(seq::seqGet(seqEmpty, 0)) - \replacewith(seq::seqGet(seqEmpty, 0)) + \find(seqGet<[seq]>(seqEmpty, 0)) + \replacewith(seqGet<[seq]>(seqEmpty, 0)) }; } diff --git a/key.core/src/test/resources/de/uka/ilkd/key/nparser/taclets.old.txt b/key.core/src/test/resources/de/uka/ilkd/key/nparser/taclets.old.txt index ffb4cb55fc2..69b18dc9c6b 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/nparser/taclets.old.txt +++ b/key.core/src/test/resources/de/uka/ilkd/key/nparser/taclets.old.txt @@ -1,5 +1,5 @@ # This files contains representation of taclets, which are accepted and revised. -# Date: Wed Nov 19 11:46:34 CET 2025 +# Date: Mon Mar 30 08:41:43 CEST 2026 == abortJavaCardTransactionAPI (abortJavaCardTransactionAPI) ========================================= abortJavaCardTransactionAPI { @@ -17,7 +17,7 @@ abortJavaCardTransactionBox { \find(==>box_transaction|{{ .. #abortJavaCardTransaction; ... }}| (post)) -\replacewith([]==>[update-application(elem-update(heap)(anon(savedHeap,allObjects(java.lang.Object::#$transactionConditionallyUpdated),heap)),box(post))]) +\replacewith([]==>[update-application(elem-update(heap)(anon(savedHeap,allObjects(java.lang.Object::#$transactionConditionallyUpdated),heap)),box(post))]) \heuristics(simplify_prog) Choices: (programRules:Java & JavaCard:on)} ----------------------------------------------------- @@ -26,7 +26,7 @@ abortJavaCardTransactionDiamond { \find(==>diamond_transaction|{{ .. #abortJavaCardTransaction; ... }}| (post)) -\replacewith([]==>[update-application(elem-update(heap)(anon(savedHeap,allObjects(java.lang.Object::#$transactionConditionallyUpdated),heap)),diamond(post))]) +\replacewith([]==>[update-application(elem-update(heap)(anon(savedHeap,allObjects(java.lang.Object::#$transactionConditionallyUpdated),heap)),diamond(post))]) \heuristics(simplify_prog) Choices: (programRules:Java & JavaCard:on)} ----------------------------------------------------- @@ -34,7 +34,7 @@ Choices: (programRules:Java & JavaCard:on)} accDefinition { \find(acc(h,s,o,o2)) \varcond(\notFreeIn(fv (variable), o2 (deltaObject term)), \notFreeIn(fv (variable), o (java.lang.Object term)), \notFreeIn(fv (variable), s (LocSet term)), \notFreeIn(fv (variable), h (Heap term))) -\replacewith(and(and(not(equals(o,null)),not(equals(o2,null))),exists{fv (variable)}(and(elementOf(o,fv,s),equals(deltaObject::select(h,o,fv),o2))))) +\replacewith(and(and(not(equals(o,null)),not(equals(o2,null))),exists{fv (variable)}(and(elementOf(o,fv,s),equals(select<[deltaObject]>(h,o,fv),o2))))) \heuristics(simplify) Choices: reach:on} ----------------------------------------------------- @@ -679,7 +679,7 @@ allocateInstance { #lhs = #t.#allocate()@#t; ... }}| (post)) \varcond(\hasSort(#t2 (program Type), alphaObj)) -\add [and(and(not(equals(#lhs,null)),imp(wellFormed(heap),equals(boolean::select(heap,#lhs,java.lang.Object::#$created),FALSE))),equals(alphaObj::exactInstance(#lhs),TRUE))]==>[] \replacewith([]==>[update-application(elem-update(heap)(create(heap,#lhs)),#allmodal(post))]) +\add [and(and(not(equals(#lhs,null)),imp(wellFormed(heap),equals(select<[boolean]>(heap,#lhs,java.lang.Object::#$created),FALSE))),equals(exactInstance<[alphaObj]>(#lhs),TRUE))]==>[] \replacewith([]==>[update-application(elem-update(heap)(create(heap,#lhs)),#allmodal(post))]) \heuristics(method_expand) Choices: (programRules:Java & permissions:off)} ----------------------------------------------------- @@ -689,7 +689,7 @@ allocateInstanceWithLength { #lhs = #t.#allocate(#len)@#t; ... }}| (post)) \varcond(\hasSort(#t2 (program Type), alphaObj)) -\add [and(and(not(equals(#lhs,null)),imp(wellFormed(heap),and(equals(boolean::select(heap,#lhs,java.lang.Object::#$created),FALSE),equals(length(#lhs),#len)))),equals(alphaObj::exactInstance(#lhs),TRUE))]==>[] \replacewith([]==>[update-application(elem-update(heap)(store(store(create(heap,#lhs),#lhs,java.lang.Object::#$transient,Z(0(#))),#lhs,java.lang.Object::#$transactionConditionallyUpdated,FALSE)),#allmodal(post))]) +\add [and(and(not(equals(#lhs,null)),imp(wellFormed(heap),and(equals(select<[boolean]>(heap,#lhs,java.lang.Object::#$created),FALSE),equals(length(#lhs),#len)))),equals(exactInstance<[alphaObj]>(#lhs),TRUE))]==>[] \replacewith([]==>[update-application(elem-update(heap)(store(store(create(heap,#lhs),#lhs,java.lang.Object::#$transient,Z(0(#))),#lhs,java.lang.Object::#$transactionConditionallyUpdated,FALSE)),#allmodal(post))]) \heuristics(method_expand) Choices: (programRules:Java & permissions:off)} ----------------------------------------------------- @@ -1076,7 +1076,7 @@ Choices: true} array2seqDef { \find(array2seq(h,a)) \varcond(\notFreeIn(u (variable), h (Heap term)), \notFreeIn(u (variable), a (java.lang.Object term))) -\replacewith(seqDef{u (variable)}(Z(0(#)),length(a),any::select(h,a,arr(u)))) +\replacewith(seqDef{u (variable)}(Z(0(#)),length(a),select<[any]>(h,a,arr(u)))) \heuristics(simplify_enlarging) Choices: sequences:on} ----------------------------------------------------- @@ -1146,14 +1146,14 @@ Choices: programRules:Java} == array_self_reference (array_self_reference) ========================================= array_self_reference { \assumes ([wellFormed(heapSV)]==>[equals(array,null)]) -\find(arrayStoreValid(array,G::select(heapSV,array,arr(idx)))) +\find(arrayStoreValid(array,select<[G]>(heapSV,array,arr(idx)))) \sameUpdateLevel\replacewith(true) \heuristics(simplify_java) Choices: programRules:Java} ----------------------------------------------------- == array_self_reference_eq (array_self_reference_eq) ========================================= array_self_reference_eq { -\assumes ([wellFormed(heapSV),equals(G::select(heapSV,array,arr(idx)),EQ)]==>[equals(array,null)]) +\assumes ([wellFormed(heapSV),equals(select<[G]>(heapSV,array,arr(idx)),EQ)]==>[equals(array,null)]) \find(arrayStoreValid(array,EQ)) \sameUpdateLevel\replacewith(true) \heuristics(simplify_java) @@ -1161,10 +1161,10 @@ Choices: programRules:Java} ----------------------------------------------------- == array_store_known_dynamic_array_type (known dynamic array type) ========================================= array_store_known_dynamic_array_type { -\assumes ([equals(J::exactInstance(array),TRUE)]==>[]) +\assumes ([equals(exactInstance<[J]>(array),TRUE)]==>[]) \find(arrayStoreValid(array,obj)) \sameUpdateLevel\varcond(\isReference[non_null]( J )) -\replacewith(or(equals(obj,null),equals(#arrayBaseInstanceOf(J::exactInstance(array),obj),TRUE))) +\replacewith(or(equals(obj,null),equals(#arrayBaseInstanceOf(exactInstance<[J]>(array),obj),TRUE))) \heuristics(simplify_java) Choices: programRules:Java} ----------------------------------------------------- @@ -1199,7 +1199,7 @@ assertSafe { method-frame (#ex) { #typeof(#e1) #condition = #e1; } -}\] (all{f (variable)}(all{o (variable)}(or(and(not(equals(o,null)),equals(boolean::select(oldHeap,o,java.lang.Object::#$created),FALSE)),equals(any::select(oldHeap,o,f),any::select(heap,o,f))))))]) ; +}\] (all{f (variable)}(all{o (variable)}(or(and(not(equals(o,null)),equals(select<[boolean]>(oldHeap,o,java.lang.Object::#$created),FALSE)),equals(select<[any]>(oldHeap,o,f),select<[any]>(heap,o,f))))))]) ; \replacewith([]==>[\<{ method-frame (#ex) { #condition = #e1; @@ -1220,7 +1220,7 @@ assertSafeWithMessage { #typeof(#e1) #condition = #e1; #typeof(#e2) #message = #e2; } -}\] (all{f (variable)}(all{o (variable)}(or(and(not(equals(o,null)),equals(boolean::select(oldHeap,o,java.lang.Object::#$created),FALSE)),equals(any::select(oldHeap,o,f),any::select(heap,o,f))))))]) ; +}\] (all{f (variable)}(all{o (variable)}(or(and(not(equals(o,null)),equals(select<[boolean]>(oldHeap,o,java.lang.Object::#$created),FALSE)),equals(select<[any]>(oldHeap,o,f),select<[any]>(heap,o,f))))))]) ; \replacewith([]==>[\<{ method-frame (#ex) { #typeof(#e1) #condition = #e1; @@ -1235,7 +1235,7 @@ Choices: (programRules:Java & assertions:safe)} assignableDefinition { \find(assignable(heapNew,heapOld,locs)) \varcond(\notFreeIn(f (variable), heapNew (Heap term)), \notFreeIn(f (variable), heapOld (Heap term)), \notFreeIn(f (variable), locs (LocSet term)), \notFreeIn(o (variable), heapNew (Heap term)), \notFreeIn(o (variable), heapOld (Heap term)), \notFreeIn(o (variable), locs (LocSet term))) -\replacewith(all{f (variable)}(all{o (variable)}(or(or(elementOf(o,f,locs),and(not(equals(o,null)),not(equals(boolean::select(heapOld,o,java.lang.Object::#$created),TRUE)))),equals(any::select(heapNew,o,f),any::select(heapOld,o,f)))))) +\replacewith(all{f (variable)}(all{o (variable)}(or(or(elementOf(o,f,locs),and(not(equals(o,null)),not(equals(select<[boolean]>(heapOld,o,java.lang.Object::#$created),TRUE)))),equals(select<[any]>(heapNew,o,f),select<[any]>(heapOld,o,f)))))) \heuristics(delayedExpansion) Choices: programRules:Java} ----------------------------------------------------- @@ -1838,7 +1838,7 @@ assignment_array2 { \varcond(\hasSort(\elemSort(#v0 (program Variable)), G)) \add [and(not(equals(#v0,null)),or(leq(length(#v0),#se),lt(#se,Z(0(#)))))]==>[] \replacewith([]==>[false]) ; \add [equals(#v0,null)]==>[] \replacewith([]==>[false]) ; -\replacewith([]==>[update-application(elem-update(#v (program Variable))(G::select(heap,#v0,arr(#se))),#allmodal(post))]) +\replacewith([]==>[update-application(elem-update(#v (program Variable))(select<[G]>(heap,#v0,arr(#se))),#allmodal(post))]) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRules:Java & runtimeExceptions:ban)} ----------------------------------------------------- @@ -1849,7 +1849,7 @@ assignment_read_attribute { ... }}| (post)) \varcond( \not \static(#a (program Variable)), \not \isArrayLength(#a (program Variable)), \hasSort(#a (program Variable), G), \not\isThisReference (#v (program Variable)), \not \final(#a (program Variable))) \add [equals(#v,null)]==>[] \replacewith([]==>[false]) ; -\replacewith([]==>[update-application(elem-update(#v0 (program Variable))(G::select(heap,#v,#memberPVToField(#a))),#allmodal(post))]) +\replacewith([]==>[update-application(elem-update(#v0 (program Variable))(select<[G]>(heap,#v,#memberPVToField(#a))),#allmodal(post))]) \heuristics(simplify_prog_subset, simplify_prog) Choices: ((programRules:Java & runtimeExceptions:ban) & finalFields:immutable)} ----------------------------------------------------- @@ -1860,7 +1860,7 @@ assignment_read_attribute_final { ... }}| (post)) \varcond( \not \static(#a (program Variable)), \not \isArrayLength(#a (program Variable)), \hasSort(#a (program Variable), G), \not\isThisReference (#v (program Variable)), \final(#a (program Variable))) \add [equals(#v,null)]==>[] \replacewith([]==>[false]) ; -\replacewith([]==>[update-application(elem-update(#v0 (program Variable))(G::final(#v,#memberPVToField(#a))),#allmodal(post))]) +\replacewith([]==>[update-application(elem-update(#v0 (program Variable))(final<[G]>(#v,#memberPVToField(#a))),#allmodal(post))]) \heuristics(simplify_prog_subset, simplify_prog) Choices: ((programRules:Java & runtimeExceptions:ban) & finalFields:immutable)} ----------------------------------------------------- @@ -1870,7 +1870,7 @@ assignment_read_attribute_this { #v0 = #v.#a; ... }}| (post)) \varcond( \not \static(#a (program Variable)), \not \isArrayLength(#a (program Variable)), \not\isModelField(#a (program Variable)), \hasSort(#a (program Variable), G), \isThisReference (#v (program Variable)), \not \final(#a (program Variable))) -\replacewith([]==>[update-application(elem-update(#v0 (program Variable))(G::select(heap,#v,#memberPVToField(#a))),#allmodal(post))]) +\replacewith([]==>[update-application(elem-update(#v0 (program Variable))(select<[G]>(heap,#v,#memberPVToField(#a))),#allmodal(post))]) \heuristics(simplify_prog_subset, simplify_prog) Choices: ((programRules:Java & runtimeExceptions:ban) & finalFields:immutable)} ----------------------------------------------------- @@ -1880,7 +1880,7 @@ assignment_read_attribute_this_final { #v0 = #v.#a; ... }}| (post)) \varcond( \not \static(#a (program Variable)), \not \isArrayLength(#a (program Variable)), \hasSort(#a (program Variable), G), \isThisReference (#v (program Variable)), \final(#a (program Variable))) -\replacewith([]==>[update-application(elem-update(#v0 (program Variable))(G::final(#v,#memberPVToField(#a))),#allmodal(post))]) +\replacewith([]==>[update-application(elem-update(#v0 (program Variable))(final<[G]>(#v,#memberPVToField(#a))),#allmodal(post))]) \heuristics(simplify_prog_subset, simplify_prog) Choices: ((programRules:Java & runtimeExceptions:ban) & finalFields:immutable)} ----------------------------------------------------- @@ -1911,7 +1911,7 @@ assignment_read_static_attribute { #v0 = @(#sv); ... }}| (post)) \sameUpdateLevel\varcond(\hasSort(#sv (program StaticVariable), G), \not \final(#sv (program StaticVariable))) -\replacewith(update-application(elem-update(#v0 (program Variable))(G::select(heap,null,#memberPVToField(#sv))),#allmodal(post))) +\replacewith(update-application(elem-update(#v0 (program Variable))(select<[G]>(heap,null,#memberPVToField(#sv))),#allmodal(post))) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRules:Java & finalFields:immutable)} ----------------------------------------------------- @@ -1921,7 +1921,7 @@ assignment_read_static_attribute_final { #v0 = @(#sv); ... }}| (post)) \sameUpdateLevel\varcond(\hasSort(#sv (program StaticVariable), G), \final(#sv (program StaticVariable))) -\replacewith(update-application(elem-update(#v0 (program Variable))(G::final(null,#memberPVToField(#sv))),#allmodal(post))) +\replacewith(update-application(elem-update(#v0 (program Variable))(final<[G]>(null,#memberPVToField(#sv))),#allmodal(post))) \heuristics(simplify_prog_subset, simplify_prog) Choices: (programRules:Java & finalFields:immutable)} ----------------------------------------------------- @@ -1931,7 +1931,7 @@ assignment_read_static_attribute_with_variable_prefix { #loc = @(#v.#sv); ... }}| (post)) \varcond(\hasSort(#sv (program StaticVariable), G)) -\replacewith(update-application(elem-update(#loc (program Variable))(G::select(heap,#v,#memberPVToField(#sv))),#allmodal(post))) +\replacewith(update-application(elem-update(#loc (program Variable))(select<[G]>(heap,#v,#memberPVToField(#sv))),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} ----------------------------------------------------- @@ -1955,7 +1955,7 @@ assignment_to_primitive_array_component_transaction { \varcond( \not \isReferenceArray(#v (program Variable))) \add [and(not(equals(#v,null)),or(leq(length(#v),#se),lt(#se,Z(0(#)))))]==>[] \replacewith([]==>[false]) ; \add [equals(#v,null)]==>[] \replacewith([]==>[false]) ; -\replacewith([]==>[update-application(elem-update(heap)(store(heap,#v,arr(#se),#se0)),update-application(elem-update(savedHeap)(if-then-else(equals(int::select(heap,#v,java.lang.Object::#$transient),Z(0(#))),store(savedHeap,#v,java.lang.Object::#$transactionConditionallyUpdated,TRUE),if-then-else(equals(boolean::select(savedHeap,#v,java.lang.Object::#$transactionConditionallyUpdated),FALSE),store(savedHeap,#v,arr(#se),#se0),savedHeap))),#transaction(post)))]) +\replacewith([]==>[update-application(elem-update(heap)(store(heap,#v,arr(#se),#se0)),update-application(elem-update(savedHeap)(if-then-else(equals(select<[int]>(heap,#v,java.lang.Object::#$transient),Z(0(#))),store(savedHeap,#v,java.lang.Object::#$transactionConditionallyUpdated,TRUE),if-then-else(equals(select<[boolean]>(savedHeap,#v,java.lang.Object::#$transactionConditionallyUpdated),FALSE),store(savedHeap,#v,arr(#se),#se0),savedHeap))),#transaction(post)))]) \heuristics(simplify_prog_subset, simplify_prog) Choices: ((programRules:Java & runtimeExceptions:ban) & JavaCard:on)} ----------------------------------------------------- @@ -1981,7 +1981,7 @@ assignment_to_reference_array_component_transaction { \add [and(and(and(not(equals(#v,null)),lt(#se,length(#v))),geq(#se,Z(0(#)))),not(arrayStoreValid(#v,#se0)))]==>[] \replacewith([]==>[false]) ; \add [and(not(equals(#v,null)),or(leq(length(#v),#se),lt(#se,Z(0(#)))))]==>[] \replacewith([]==>[false]) ; \add [equals(#v,null)]==>[] \replacewith([]==>[false]) ; -\replacewith([]==>[update-application(elem-update(heap)(store(heap,#v,arr(#se),#se0)),update-application(elem-update(savedHeap)(if-then-else(equals(int::select(heap,#v,java.lang.Object::#$transient),Z(0(#))),store(savedHeap,#v,java.lang.Object::#$transactionConditionallyUpdated,TRUE),if-then-else(equals(boolean::select(savedHeap,#v,java.lang.Object::#$transactionConditionallyUpdated),FALSE),store(savedHeap,#v,arr(#se),#se0),savedHeap))),#transaction(post)))]) +\replacewith([]==>[update-application(elem-update(heap)(store(heap,#v,arr(#se),#se0)),update-application(elem-update(savedHeap)(if-then-else(equals(select<[int]>(heap,#v,java.lang.Object::#$transient),Z(0(#))),store(savedHeap,#v,java.lang.Object::#$transactionConditionallyUpdated,TRUE),if-then-else(equals(select<[boolean]>(savedHeap,#v,java.lang.Object::#$transactionConditionallyUpdated),FALSE),store(savedHeap,#v,arr(#se),#se0),savedHeap))),#transaction(post)))]) \heuristics(simplify_prog_subset, simplify_prog) Choices: ((programRules:Java & runtimeExceptions:ban) & JavaCard:on)} ----------------------------------------------------- @@ -3446,9 +3446,9 @@ Choices: true} ----------------------------------------------------- == castAdd (narrow type) ========================================= castAdd { -\assumes ([equals(CSub::instance(strictCTerm2),TRUE)]==>[]) +\assumes ([equals(instance<[CSub]>(strictCTerm2),TRUE)]==>[]) \find(strictCTerm2) -\sameUpdateLevel\replacewith(CSub::cast(strictCTerm2)) +\sameUpdateLevel\replacewith(cast<[CSub]>(strictCTerm2)) Choices: true} ----------------------------------------------------- @@ -3457,13 +3457,13 @@ castAdd2 { \assumes ([equals(cs,gt)]==>[]) \find(gt) \sameUpdateLevel\varcond(\strict\sub(C, G)) -\replacewith(C::cast(gt)) +\replacewith(cast<[C]>(gt)) Choices: true} ----------------------------------------------------- == castDel (castDel) ========================================= castDel { -\find(C::cast(castedTerm)) +\find(cast<[C]>(castedTerm)) \replacewith(castedTerm) \heuristics(cast_deletion, simplify) Choices: true} @@ -3471,7 +3471,7 @@ Choices: true} == castDel2 (castDel) ========================================= castDel2 { \assumes ([equals(cs,gt)]==>[]) -\find(C::cast(gt)) +\find(cast<[C]>(gt)) \sameUpdateLevel\replacewith(cs) Choices: true} @@ -3481,7 +3481,7 @@ castLongToFloatAddition2 { \find(#normalassign ((modal operator))|{{ .. #loc = #seFloat + #seLong; ... }}| (post)) -\replacewith(update-application(elem-update(#loc (program Variable))(javaAddFloat(#seFloat,float::cast(#seLong))),#normalassign(post))) +\replacewith(update-application(elem-update(#loc (program Variable))(javaAddFloat(#seFloat,cast<[float]>(#seLong))),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} ----------------------------------------------------- @@ -3498,32 +3498,32 @@ Choices: programRules:Java} ----------------------------------------------------- == castTrueImpliesOriginalTrue (castTrueImpliesOriginalTrue) ========================================= castTrueImpliesOriginalTrue { -\assumes ([equals(boolean::select(h,o,f),TRUE)]==>[]) -\find(==>equals(any::select(h,o,f),TRUE)) +\assumes ([equals(select<[boolean]>(h,o,f),TRUE)]==>[]) +\find(==>equals(select<[any]>(h,o,f),TRUE)) \replacewith([]==>[true]) \heuristics(concrete) Choices: programRules:Java} ----------------------------------------------------- == castType (castType) ========================================= castType { -\assumes ([equals(H::instance(C::cast(s)),TRUE)]==>[]) -\find(equals(CSub::instance(s),TRUE)==>) -\replacewith([equals(H::instance(s),TRUE)]==>[]) +\assumes ([equals(instance<[H]>(cast<[C]>(s)),TRUE)]==>[]) +\find(equals(instance<[CSub]>(s),TRUE)==>) +\replacewith([equals(instance<[H]>(s),TRUE)]==>[]) \heuristics(simplify) Choices: true} ----------------------------------------------------- == castType2 (castType) ========================================= castType2 { -\assumes ([]==>[equals(H::instance(C::cast(s)),TRUE)]) -\find(equals(CSub::instance(s),TRUE)==>) -\replacewith([]==>[equals(H::instance(s),TRUE)]) +\assumes ([]==>[equals(instance<[H]>(cast<[C]>(s)),TRUE)]) +\find(equals(instance<[CSub]>(s),TRUE)==>) +\replacewith([]==>[equals(instance<[H]>(s),TRUE)]) \heuristics(simplify) Choices: true} ----------------------------------------------------- == castedGetAny (castedGetAny) ========================================= castedGetAny { -\find(beta::cast(any::seqGet(seq,idx))) -\replacewith(beta::seqGet(seq,idx)) +\find(cast<[beta]>(seqGet<[any]>(seq,idx))) +\replacewith(seqGet<[beta]>(seq,idx)) \heuristics(simplify) Choices: sequences:on} ----------------------------------------------------- @@ -3562,15 +3562,15 @@ Choices: true} ----------------------------------------------------- == closeType (closeType) ========================================= closeType { -\assumes ([]==>[equals(G::instance(t1),TRUE)]) -\find(equals(GSub::instance(t1),TRUE)==>) +\assumes ([]==>[equals(instance<[G]>(t1),TRUE)]) +\find(equals(instance<[GSub]>(t1),TRUE)==>) \closegoal\heuristics(closure) Choices: true} ----------------------------------------------------- == closeTypeSwitched (closeType) ========================================= closeTypeSwitched { -\assumes ([equals(GSub::instance(t1),TRUE)]==>[]) -\find(==>equals(G::instance(t1),TRUE)) +\assumes ([equals(instance<[GSub]>(t1),TRUE)]==>[]) +\find(==>equals(instance<[G]>(t1),TRUE)) \closegoal\heuristics(closure) Choices: true} ----------------------------------------------------- @@ -5163,14 +5163,14 @@ Choices: true} createdInHeapToElementOf { \find(createdInHeap(s,h)) \varcond(\notFreeIn(fv (variable), h (Heap term)), \notFreeIn(fv (variable), s (LocSet term)), \notFreeIn(ov (variable), h (Heap term)), \notFreeIn(ov (variable), s (LocSet term))) -\replacewith(all{ov (variable)}(all{fv (variable)}(imp(elementOf(ov,fv,s),or(equals(ov,null),equals(boolean::select(h,ov,java.lang.Object::#$created),TRUE)))))) +\replacewith(all{ov (variable)}(all{fv (variable)}(imp(elementOf(ov,fv,s),or(equals(ov,null),equals(select<[boolean]>(h,ov,java.lang.Object::#$created),TRUE)))))) \heuristics(classAxiom) Choices: programRules:Java} ----------------------------------------------------- == createdInHeapWithAllFields (createdInHeapWithAllFields) ========================================= createdInHeapWithAllFields { \find(createdInHeap(allFields(o),h)) -\replacewith(or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::#$created),TRUE))) +\replacewith(or(equals(o,null),equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE))) \heuristics(simplify_enlarging) Choices: programRules:Java} ----------------------------------------------------- @@ -5178,14 +5178,14 @@ Choices: programRules:Java} createdInHeapWithAllFieldsEQ { \assumes ([equals(allFields(o),EQ)]==>[]) \find(createdInHeap(EQ,h)) -\sameUpdateLevel\replacewith(or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::#$created),TRUE))) +\sameUpdateLevel\replacewith(or(equals(o,null),equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE))) \heuristics(simplify_enlarging) Choices: programRules:Java} ----------------------------------------------------- == createdInHeapWithArrayRange (createdInHeapWithArrayRange) ========================================= createdInHeapWithArrayRange { \find(createdInHeap(arrayRange(o,lower,upper),h)) -\replacewith(or(or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::#$created),TRUE)),lt(upper,lower))) +\replacewith(or(or(equals(o,null),equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE)),lt(upper,lower))) \heuristics(simplify_enlarging) Choices: programRules:Java} ----------------------------------------------------- @@ -5193,7 +5193,7 @@ Choices: programRules:Java} createdInHeapWithArrayRangeEQ { \assumes ([equals(arrayRange(o,lower,upper),EQ)]==>[]) \find(createdInHeap(EQ,h)) -\sameUpdateLevel\replacewith(or(or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::#$created),TRUE)),lt(upper,lower))) +\sameUpdateLevel\replacewith(or(or(equals(o,null),equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE)),lt(upper,lower))) \heuristics(simplify_enlarging) Choices: programRules:Java} ----------------------------------------------------- @@ -5223,14 +5223,14 @@ Choices: programRules:Java} ----------------------------------------------------- == createdInHeapWithSelect (createdInHeapWithSelect) ========================================= createdInHeapWithSelect { -\find(==>createdInHeap(LocSet::select(h,o,f),h)) +\find(==>createdInHeap(select<[LocSet]>(h,o,f),h)) \replacewith([]==>[wellFormed(h)]) \heuristics(concrete) Choices: programRules:Java} ----------------------------------------------------- == createdInHeapWithSelectEQ (createdInHeapWithSelectEQ) ========================================= createdInHeapWithSelectEQ { -\assumes ([equals(LocSet::select(h,o,f),EQ)]==>[]) +\assumes ([equals(select<[LocSet]>(h,o,f),EQ)]==>[]) \find(==>createdInHeap(EQ,h)) \replacewith([]==>[wellFormed(h)]) \heuristics(concrete) @@ -5254,7 +5254,7 @@ Choices: programRules:Java} == createdInHeapWithSingleton (createdInHeapWithSingleton) ========================================= createdInHeapWithSingleton { \find(createdInHeap(singleton(o,f),h)) -\replacewith(or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::#$created),TRUE))) +\replacewith(or(equals(o,null),equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE))) \heuristics(simplify_enlarging) Choices: programRules:Java} ----------------------------------------------------- @@ -5262,7 +5262,7 @@ Choices: programRules:Java} createdInHeapWithSingletonEQ { \assumes ([equals(singleton(o,f),EQ)]==>[]) \find(createdInHeap(EQ,h)) -\sameUpdateLevel\replacewith(or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::#$created),TRUE))) +\sameUpdateLevel\replacewith(or(equals(o,null),equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE))) \heuristics(simplify_enlarging) Choices: programRules:Java} ----------------------------------------------------- @@ -5335,7 +5335,7 @@ Choices: true} defInDomainImpliesCreated { \find(inDomainImpliesCreated(m)) \varcond(\notFreeIn(o (variable), m (Map term))) -\replacewith(all{o (variable)}(imp(inDomain(m,o),equals(boolean::select(heap,o,java.lang.Object::#$created),TRUE)))) +\replacewith(all{o (variable)}(imp(inDomain(m,o),equals(select<[boolean]>(heap,o,java.lang.Object::#$created),TRUE)))) \heuristics(simplify_enlarging) Choices: true} ----------------------------------------------------- @@ -5343,7 +5343,7 @@ Choices: true} defIsFinite { \find(isFinite(m)) \varcond(\notFreeIn(s (variable), m (Map term)), \notFreeIn(vx (variable), m (Map term))) -\replacewith(exists{s (variable)}(all{vx (variable)}(equiv(inDomain(m,vx),exists{ix (variable)}(and(and(leq(Z(0(#)),ix),lt(ix,seqLen(s))),equals(any::seqGet(s,ix),vx))))))) +\replacewith(exists{s (variable)}(all{vx (variable)}(equiv(inDomain(m,vx),exists{ix (variable)}(and(and(leq(Z(0(#)),ix),lt(ix,seqLen(s))),equals(seqGet<[any]>(s,ix),vx))))))) Choices: true} ----------------------------------------------------- @@ -5382,7 +5382,7 @@ Choices: true} defMapSingleton { \find(mapSingleton(xa,y)) \varcond(\notFreeIn(vy (variable), y (any term)), \notFreeIn(vy (variable), xa (alpha term))) -\replacewith(mapForeach{vy (variable)}(if-then-else(equals(vy,any::cast(xa)),TRUE,FALSE),y)) +\replacewith(mapForeach{vy (variable)}(if-then-else(equals(vy,cast<[any]>(xa)),TRUE,FALSE),y)) Choices: true} ----------------------------------------------------- @@ -5406,7 +5406,7 @@ Choices: sequences:on} defOfSeqConcat { \find(seqConcat(seq1,seq2)) \varcond(\notFreeIn(uSub (variable), seq2 (Seq term)), \notFreeIn(uSub (variable), seq1 (Seq term))) -\replacewith(seqDef{uSub (variable)}(Z(0(#)),add(seqLen(seq1),seqLen(seq2)),if-then-else(lt(uSub,seqLen(seq1)),any::seqGet(seq1,uSub),any::seqGet(seq2,sub(uSub,seqLen(seq1)))))) +\replacewith(seqDef{uSub (variable)}(Z(0(#)),add(seqLen(seq1),seqLen(seq2)),if-then-else(lt(uSub,seqLen(seq1)),seqGet<[any]>(seq1,uSub),seqGet<[any]>(seq2,sub(uSub,seqLen(seq1)))))) Choices: sequences:on} ----------------------------------------------------- @@ -5414,7 +5414,7 @@ Choices: sequences:on} defOfSeqReverse { \find(seqReverse(seq)) \varcond(\notFreeIn(uSub (variable), seq (Seq term))) -\replacewith(seqDef{uSub (variable)}(Z(0(#)),seqLen(seq),any::seqGet(seq,sub(sub(seqLen(seq),uSub),Z(1(#)))))) +\replacewith(seqDef{uSub (variable)}(Z(0(#)),seqLen(seq),seqGet<[any]>(seq,sub(sub(seqLen(seq),uSub),Z(1(#)))))) Choices: sequences:on} ----------------------------------------------------- @@ -5430,7 +5430,7 @@ Choices: sequences:on} defOfSeqSub { \find(seqSub(seq,from,to)) \varcond(\notFreeIn(uSub (variable), to (int term)), \notFreeIn(uSub (variable), from (int term)), \notFreeIn(uSub (variable), seq (Seq term))) -\replacewith(seqDef{uSub (variable)}(from,to,any::seqGet(seq,uSub))) +\replacewith(seqDef{uSub (variable)}(from,to,seqGet<[any]>(seq,uSub))) Choices: sequences:on} ----------------------------------------------------- @@ -5438,7 +5438,7 @@ Choices: sequences:on} defOfSeqUpd { \find(seqUpd(seq,idx,value)) \varcond(\notFreeIn(uSub (variable), seq (Seq term)), \notFreeIn(uSub (variable), value (any term)), \notFreeIn(uSub (variable), idx (int term))) -\replacewith(seqDef{uSub (variable)}(Z(0(#)),seqLen(seq),if-then-else(equals(uSub,idx),value,any::seqGet(seq,uSub)))) +\replacewith(seqDef{uSub (variable)}(Z(0(#)),seqLen(seq),if-then-else(equals(uSub,idx),value,seqGet<[any]>(seq,uSub)))) Choices: sequences:on} ----------------------------------------------------- @@ -5446,7 +5446,7 @@ Choices: sequences:on} defSeq2Map { \find(seq2map(s)) \varcond(\notFreeIn(ix (variable), s (Seq term))) -\replacewith(mapForeach{ix (variable)}(if-then-else(and(leq(Z(0(#)),ix),lt(ix,seqLen(s))),TRUE,FALSE),any::seqGet(s,ix))) +\replacewith(mapForeach{ix (variable)}(if-then-else(and(leq(Z(0(#)),ix),lt(ix,seqLen(s))),TRUE,FALSE),seqGet<[any]>(s,ix))) Choices: true} ----------------------------------------------------- @@ -5461,7 +5461,7 @@ Choices: true} definitionAllElementsOfArray { \find(allElementsOfArray(h,array,singleton(o,f))) \varcond(\notFreeIn(j (variable), f (Field term)), \notFreeIn(j (variable), o (java.lang.Object term)), \notFreeIn(j (variable), array (java.lang.Object term)), \notFreeIn(j (variable), h (Heap term))) -\replacewith(infiniteUnion{j (variable)}(if-then-else(and(leq(Z(0(#)),j),lt(j,length(array))),singleton(java.lang.Object::select(h,array,arr(j)),f),empty))) +\replacewith(infiniteUnion{j (variable)}(if-then-else(and(leq(Z(0(#)),j),lt(j,length(array))),singleton(select<[java.lang.Object]>(h,array,arr(j)),f),empty))) \heuristics(simplify) Choices: programRules:Java} ----------------------------------------------------- @@ -5469,7 +5469,7 @@ Choices: programRules:Java} definitionAllElementsOfArray2 { \find(allElementsOfArray(h,array,allFields(o))) \varcond(\notFreeIn(j (variable), array (java.lang.Object term)), \notFreeIn(j (variable), h (Heap term))) -\replacewith(infiniteUnion{j (variable)}(if-then-else(and(leq(Z(0(#)),j),lt(j,length(array))),allFields(java.lang.Object::select(h,array,arr(j))),empty))) +\replacewith(infiniteUnion{j (variable)}(if-then-else(and(leq(Z(0(#)),j),lt(j,length(array))),allFields(select<[java.lang.Object]>(h,array,arr(j))),empty))) \heuristics(simplify) Choices: programRules:Java} ----------------------------------------------------- @@ -5477,7 +5477,7 @@ Choices: programRules:Java} definitionAllElementsOfArrayLocsets { \find(allElementsOfArrayLocsets(h,array,singleton(o,f))) \varcond(\notFreeIn(j (variable), f (Field term)), \notFreeIn(j (variable), o (java.lang.Object term)), \notFreeIn(j (variable), array (java.lang.Object term)), \notFreeIn(j (variable), h (Heap term))) -\replacewith(infiniteUnion{j (variable)}(if-then-else(and(leq(Z(0(#)),j),lt(j,length(array))),LocSet::select(h,java.lang.Object::select(h,array,arr(j)),f),empty))) +\replacewith(infiniteUnion{j (variable)}(if-then-else(and(leq(Z(0(#)),j),lt(j,length(array))),select<[LocSet]>(h,select<[java.lang.Object]>(h,array,arr(j)),f),empty))) \heuristics(simplify) Choices: programRules:Java} ----------------------------------------------------- @@ -5495,7 +5495,7 @@ Choices: true} definitionOfNewOnHeap { \find(==>newOnHeap(h,s)) \varcond(\notFreeIn(i (variable), h (Heap term)), \notFreeIn(i (variable), s (Seq term))) -\replacewith([]==>[all{i (variable)}(imp(and(leq(Z(0(#)),i),lt(i,seqLen(s))),and(imp(equals(java.lang.Object::instance(any::seqGet(s,i)),TRUE),equals(boolean::select(h,java.lang.Object::seqGet(s,i),java.lang.Object::#$created),FALSE)),imp(equals(Seq::instance(any::seqGet(s,i)),TRUE),newOnHeap(h,Seq::seqGet(s,i))))))]) +\replacewith([]==>[all{i (variable)}(imp(and(leq(Z(0(#)),i),lt(i,seqLen(s))),and(imp(equals(instance<[java.lang.Object]>(seqGet<[any]>(s,i)),TRUE),equals(select<[boolean]>(h,seqGet<[java.lang.Object]>(s,i),java.lang.Object::#$created),FALSE)),imp(equals(instance<[Seq]>(seqGet<[any]>(s,i)),TRUE),newOnHeap(h,seqGet<[Seq]>(s,i))))))]) \heuristics(comprehensions) Choices: true} ----------------------------------------------------- @@ -5503,7 +5503,7 @@ Choices: true} definitionOfObjectIsomorphic { \find(==>objectIsomorphic(s1,o1,s2,o2)) \varcond(\notFreeIn(i (variable), o2 (java.lang.Object term)), \notFreeIn(i (variable), o1 (java.lang.Object term)), \notFreeIn(i (variable), s2 (Seq term)), \notFreeIn(i (variable), s1 (Seq term))) -\replacewith([]==>[all{i (variable)}(imp(and(leq(Z(0(#)),i),lt(i,seqLen(s1))),and(imp(equals(java.lang.Object::instance(any::seqGet(s1,i)),TRUE),equiv(equals(java.lang.Object::seqGet(s1,i),o1),equals(java.lang.Object::seqGet(s2,i),o2))),imp(equals(Seq::instance(any::seqGet(s1,i)),TRUE),objectIsomorphic(Seq::seqGet(s1,i),o1,Seq::seqGet(s2,i),o2)))))]) +\replacewith([]==>[all{i (variable)}(imp(and(leq(Z(0(#)),i),lt(i,seqLen(s1))),and(imp(equals(instance<[java.lang.Object]>(seqGet<[any]>(s1,i)),TRUE),equiv(equals(seqGet<[java.lang.Object]>(s1,i),o1),equals(seqGet<[java.lang.Object]>(s2,i),o2))),imp(equals(instance<[Seq]>(seqGet<[any]>(s1,i)),TRUE),objectIsomorphic(seqGet<[Seq]>(s1,i),o1,seqGet<[Seq]>(s2,i),o2)))))]) \heuristics(comprehensions) Choices: true} ----------------------------------------------------- @@ -5511,7 +5511,7 @@ Choices: true} definitionOfObjectsIsomorphic { \find(==>objectsIsomorphic(s1,t1,s2,t2)) \varcond(\notFreeIn(i (variable), t2 (Seq term)), \notFreeIn(i (variable), t1 (Seq term)), \notFreeIn(i (variable), s2 (Seq term)), \notFreeIn(i (variable), s1 (Seq term))) -\replacewith([]==>[all{i (variable)}(imp(and(leq(Z(0(#)),i),lt(i,seqLen(t1))),and(imp(equals(java.lang.Object::instance(any::seqGet(t1,i)),TRUE),objectIsomorphic(s1,java.lang.Object::seqGet(t1,i),s2,java.lang.Object::seqGet(t2,i))),imp(equals(Seq::instance(any::seqGet(t1,i)),TRUE),objectsIsomorphic(s1,Seq::seqGet(t1,i),s2,Seq::seqGet(t2,i))))))]) +\replacewith([]==>[all{i (variable)}(imp(and(leq(Z(0(#)),i),lt(i,seqLen(t1))),and(imp(equals(instance<[java.lang.Object]>(seqGet<[any]>(t1,i)),TRUE),objectIsomorphic(s1,seqGet<[java.lang.Object]>(t1,i),s2,seqGet<[java.lang.Object]>(t2,i))),imp(equals(instance<[Seq]>(seqGet<[any]>(t1,i)),TRUE),objectsIsomorphic(s1,seqGet<[Seq]>(t1,i),s2,seqGet<[Seq]>(t2,i))))))]) \heuristics(comprehensions) Choices: true} ----------------------------------------------------- @@ -5519,7 +5519,7 @@ Choices: true} definitionOfSameTypes { \find(==>sameTypes(s1,s2)) \varcond(\notFreeIn(i (variable), s2 (Seq term)), \notFreeIn(i (variable), s1 (Seq term))) -\replacewith([]==>[and(equals(seqLen(s1),seqLen(s2)),all{i (variable)}(imp(and(leq(Z(0(#)),i),lt(i,seqLen(s1))),and(sameType(any::seqGet(s1,i),any::seqGet(s2,i)),imp(equals(Seq::instance(any::seqGet(s1,i)),TRUE),sameTypes(Seq::seqGet(s1,i),Seq::seqGet(s2,i)))))))]) +\replacewith([]==>[and(equals(seqLen(s1),seqLen(s2)),all{i (variable)}(imp(and(leq(Z(0(#)),i),lt(i,seqLen(s1))),and(sameType(seqGet<[any]>(s1,i),seqGet<[any]>(s2,i)),imp(equals(instance<[Seq]>(seqGet<[any]>(s1,i)),TRUE),sameTypes(seqGet<[Seq]>(s1,i),seqGet<[Seq]>(s2,i)))))))]) \heuristics(comprehensions) Choices: true} ----------------------------------------------------- @@ -5527,7 +5527,7 @@ Choices: true} definitionSeqdefWorkaround { \find(seq_def_workaround(h,lower,upper,array)) \varcond(\notFreeIn(j (variable), upper (int term)), \notFreeIn(j (variable), lower (int term)), \notFreeIn(j (variable), array (java.lang.Object term)), \notFreeIn(j (variable), h (Heap term))) -\replacewith(seqDef{j (variable)}(lower,upper,any::select(h,array,arr(j)))) +\replacewith(seqDef{j (variable)}(lower,upper,select<[any]>(h,array,arr(j)))) \heuristics(concrete) Choices: sequences:on} ----------------------------------------------------- @@ -5535,7 +5535,7 @@ Choices: sequences:on} definitionSeqdefWorkaround2 { \find(seq_def_workaround2(h,lower,upper,array,singleton(o,f))) \varcond(\notFreeIn(j (variable), upper (int term)), \notFreeIn(j (variable), lower (int term)), \notFreeIn(j (variable), array (java.lang.Object term)), \notFreeIn(j (variable), f (Field term)), \notFreeIn(j (variable), h (Heap term))) -\replacewith(seqDef{j (variable)}(lower,upper,any::select(h,java.lang.Object::select(h,array,arr(j)),f))) +\replacewith(seqDef{j (variable)}(lower,upper,select<[any]>(h,select<[java.lang.Object]>(h,array,arr(j)),f))) \heuristics(concrete) Choices: sequences:on} ----------------------------------------------------- @@ -5554,7 +5554,7 @@ delete_unnecessary_cast { #lhs = (#npit) #se; ... }}| (post)) \sameUpdateLevel\varcond(\hasSort(#npit (program NonPrimitiveType), G), \sub(\typeof(#se (program SimpleExpression)), G)) -\add [or(equals(#se,null),equals(G::instance(#se),TRUE))]==>[] \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(#addCast(#se,#lhs)),#allmodal(post))) +\add [or(equals(#se,null),equals(instance<[G]>(#se),TRUE))]==>[] \replacewith(update-application(elem-update(#lhs (program LeftHandSide))(#addCast(#se,#lhs)),#allmodal(post))) \heuristics(simplify_prog) Choices: programRules:Java} ----------------------------------------------------- @@ -5817,18 +5817,18 @@ Choices: programRules:Java} ----------------------------------------------------- == dismissNonSelectedField (dismissNonSelectedField) ========================================= dismissNonSelectedField { -\find(alpha::select(store(h,o,f1,x),u,f2)) +\find(select<[alpha]>(store(h,o,f1,x),u,f2)) \varcond(\differentFields (f1 (Field term), f2 (Field term))) -\replacewith(alpha::select(h,u,f2)) +\replacewith(select<[alpha]>(h,u,f2)) \heuristics(simplify) Choices: programRules:Java} ----------------------------------------------------- == dismissNonSelectedFieldEQ (dismissNonSelectedFieldEQ) ========================================= dismissNonSelectedFieldEQ { \assumes ([equals(store(h,o,f1,x),EQ)]==>[]) -\find(alpha::select(EQ,u,f2)) +\find(select<[alpha]>(EQ,u,f2)) \sameUpdateLevel\varcond(\differentFields (f1 (Field term), f2 (Field term))) -\replacewith(alpha::select(h,u,f2)) +\replacewith(select<[alpha]>(h,u,f2)) \heuristics(simplify) Choices: programRules:Java} ----------------------------------------------------- @@ -6246,9 +6246,9 @@ Choices: programRules:Java} ----------------------------------------------------- == dynamic_type_for_null (dynamic_type_for_null) ========================================= dynamic_type_for_null { -\find(G::exactInstance(null)) +\find(exactInstance<[G]>(null)) \varcond(\not\same(G, Null)) -\replacewith(FALSE) +\replacewith(FALSE) \heuristics(concrete) Choices: programRules:Java} ----------------------------------------------------- @@ -6307,7 +6307,7 @@ Choices: programRules:Java} == elementOfFreshLocs (elementOfFreshLocs) ========================================= elementOfFreshLocs { \find(elementOf(o,f,freshLocs(h))) -\replacewith(and(not(equals(o,null)),not(equals(boolean::select(h,o,java.lang.Object::#$created),TRUE)))) +\replacewith(and(not(equals(o,null)),not(equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE)))) \heuristics(concrete) Choices: programRules:Java} ----------------------------------------------------- @@ -6616,7 +6616,7 @@ Choices: true} elim_exists2 { \find(exists{Gvar (variable)}(equals(Gvar,Hterm))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) -\replacewith(equals(G::instance(Hterm),TRUE)) +\replacewith(equals(instance<[G]>(Hterm),TRUE)) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} ----------------------------------------------------- @@ -6624,7 +6624,7 @@ Choices: true} elim_exists3 { \find(exists{Gvar (variable)}(equals(Hterm,Gvar))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) -\replacewith(equals(G::instance(Hterm),TRUE)) +\replacewith(equals(instance<[G]>(Hterm),TRUE)) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} ----------------------------------------------------- @@ -6648,7 +6648,7 @@ Choices: true} elim_exists6 { \find(exists{Gvar (variable)}(and(phi,equals(Gvar,Hterm)))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) -\replacewith(and(subst{Gvar (variable)}(G::cast(Hterm),phi),equals(G::instance(Hterm),TRUE))) +\replacewith(and(subst{Gvar (variable)}(cast<[G]>(Hterm),phi),equals(instance<[G]>(Hterm),TRUE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} ----------------------------------------------------- @@ -6656,7 +6656,7 @@ Choices: true} elim_exists7 { \find(exists{Gvar (variable)}(and(phi,equals(Hterm,Gvar)))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) -\replacewith(and(subst{Gvar (variable)}(G::cast(Hterm),phi),equals(G::instance(Hterm),TRUE))) +\replacewith(and(subst{Gvar (variable)}(cast<[G]>(Hterm),phi),equals(instance<[G]>(Hterm),TRUE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} ----------------------------------------------------- @@ -6760,7 +6760,7 @@ Choices: true} elim_forall10 { \find(all{Gvar (variable)}(imp(equals(Gvar,Hterm),phi))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) -\replacewith(or(subst{Gvar (variable)}(G::cast(Hterm),phi),equals(G::instance(Hterm),FALSE))) +\replacewith(or(subst{Gvar (variable)}(cast<[G]>(Hterm),phi),equals(instance<[G]>(Hterm),FALSE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} ----------------------------------------------------- @@ -6768,7 +6768,7 @@ Choices: true} elim_forall11 { \find(all{Gvar (variable)}(imp(equals(Hterm,Gvar),phi))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) -\replacewith(or(subst{Gvar (variable)}(G::cast(Hterm),phi),equals(G::instance(Hterm),FALSE))) +\replacewith(or(subst{Gvar (variable)}(cast<[G]>(Hterm),phi),equals(instance<[G]>(Hterm),FALSE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} ----------------------------------------------------- @@ -6792,7 +6792,7 @@ Choices: true} elim_forall14 { \find(all{Gvar (variable)}(imp(and(psi,equals(Gvar,Hterm)),phi))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) -\replacewith(or(subst{Gvar (variable)}(G::cast(Hterm),imp(psi,phi)),equals(G::instance(Hterm),FALSE))) +\replacewith(or(subst{Gvar (variable)}(cast<[G]>(Hterm),imp(psi,phi)),equals(instance<[G]>(Hterm),FALSE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} ----------------------------------------------------- @@ -6800,7 +6800,7 @@ Choices: true} elim_forall15 { \find(all{Gvar (variable)}(imp(and(psi,equals(Hterm,Gvar)),phi))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) -\replacewith(or(subst{Gvar (variable)}(G::cast(Hterm),imp(psi,phi)),equals(G::instance(Hterm),FALSE))) +\replacewith(or(subst{Gvar (variable)}(cast<[G]>(Hterm),imp(psi,phi)),equals(instance<[G]>(Hterm),FALSE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} ----------------------------------------------------- @@ -6824,7 +6824,7 @@ Choices: true} elim_forall18 { \find(all{Gvar (variable)}(imp(and(equals(Gvar,Hterm),psi),phi))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) -\replacewith(or(subst{Gvar (variable)}(G::cast(Hterm),imp(psi,phi)),equals(G::instance(Hterm),FALSE))) +\replacewith(or(subst{Gvar (variable)}(cast<[G]>(Hterm),imp(psi,phi)),equals(instance<[G]>(Hterm),FALSE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} ----------------------------------------------------- @@ -6832,7 +6832,7 @@ Choices: true} elim_forall19 { \find(all{Gvar (variable)}(imp(and(equals(Hterm,Gvar),psi),phi))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) -\replacewith(or(subst{Gvar (variable)}(G::cast(Hterm),imp(psi,phi)),equals(G::instance(Hterm),FALSE))) +\replacewith(or(subst{Gvar (variable)}(cast<[G]>(Hterm),imp(psi,phi)),equals(instance<[G]>(Hterm),FALSE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} ----------------------------------------------------- @@ -6840,7 +6840,7 @@ Choices: true} elim_forall2 { \find(all{Gvar (variable)}(not(equals(Gvar,Hterm)))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) -\replacewith(equals(G::instance(Hterm),FALSE)) +\replacewith(equals(instance<[G]>(Hterm),FALSE)) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} ----------------------------------------------------- @@ -6848,7 +6848,7 @@ Choices: true} elim_forall3 { \find(all{Gvar (variable)}(not(equals(Hterm,Gvar)))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) -\replacewith(equals(G::instance(Hterm),FALSE)) +\replacewith(equals(instance<[G]>(Hterm),FALSE)) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} ----------------------------------------------------- @@ -6872,7 +6872,7 @@ Choices: true} elim_forall6 { \find(all{Gvar (variable)}(or(phi,not(equals(Gvar,Hterm))))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) -\replacewith(or(subst{Gvar (variable)}(G::cast(Hterm),phi),equals(G::instance(Hterm),FALSE))) +\replacewith(or(subst{Gvar (variable)}(cast<[G]>(Hterm),phi),equals(instance<[G]>(Hterm),FALSE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} ----------------------------------------------------- @@ -6880,7 +6880,7 @@ Choices: true} elim_forall7 { \find(all{Gvar (variable)}(or(phi,not(equals(Hterm,Gvar))))) \varcond(\notFreeIn(Gvar (variable), Hterm (H term))) -\replacewith(or(subst{Gvar (variable)}(G::cast(Hterm),phi),equals(G::instance(Hterm),FALSE))) +\replacewith(or(subst{Gvar (variable)}(cast<[G]>(Hterm),phi),equals(instance<[G]>(Hterm),FALSE))) \heuristics(elimQuantifierWithCast, elimQuantifier) Choices: true} ----------------------------------------------------- @@ -7320,7 +7320,7 @@ Choices: programRules:Java} equalityToSelect { \find(equals(h,h2)) \varcond(\notFreeIn(fv (variable), h2 (Heap term)), \notFreeIn(fv (variable), h (Heap term)), \notFreeIn(ov (variable), h2 (Heap term)), \notFreeIn(ov (variable), h (Heap term))) -\replacewith(all{ov (variable)}(all{fv (variable)}(equals(any::select(h,ov,fv),any::select(h2,ov,fv))))) +\replacewith(all{ov (variable)}(all{fv (variable)}(equals(select<[any]>(h,ov,fv),select<[any]>(h2,ov,fv))))) \heuristics(semantics_blasting) Choices: programRules:Java} ----------------------------------------------------- @@ -7328,7 +7328,7 @@ Choices: programRules:Java} equalityToSeqGetAndSeqLen { \find(equals(left,right)) \varcond(\notFreeIn(iv (variable), right (Seq term)), \notFreeIn(iv (variable), left (Seq term))) -\replacewith(and(equals(seqLen(left),seqLen(right)),all{iv (variable)}(imp(and(leq(Z(0(#)),iv),lt(iv,seqLen(left))),equals(any::seqGet(left,iv),any::seqGet(right,iv)))))) +\replacewith(and(equals(seqLen(left),seqLen(right)),all{iv (variable)}(imp(and(leq(Z(0(#)),iv),lt(iv,seqLen(left))),equals(seqGet<[any]>(left,iv),seqGet<[any]>(right,iv)))))) \heuristics(defOpsSeqEquality) Choices: sequences:on} ----------------------------------------------------- @@ -7336,7 +7336,7 @@ Choices: sequences:on} equalityToSeqGetAndSeqLenLeft { \find(equals(s,s2)==>) \varcond(\notFreeIn(iv (variable), s2 (Seq term)), \notFreeIn(iv (variable), s (Seq term))) -\add [and(equals(seqLen(s),seqLen(s2)),all{iv (variable)}(imp(and(leq(Z(0(#)),iv),lt(iv,seqLen(s))),equals(any::seqGet(s,iv),any::seqGet(s2,iv)))))]==>[] +\add [and(equals(seqLen(s),seqLen(s2)),all{iv (variable)}(imp(and(leq(Z(0(#)),iv),lt(iv,seqLen(s))),equals(seqGet<[any]>(s,iv),seqGet<[any]>(s2,iv)))))]==>[] \heuristics(inReachableStateImplication) Choices: sequences:on} ----------------------------------------------------- @@ -7344,7 +7344,7 @@ Choices: sequences:on} equalityToSeqGetAndSeqLenRight { \find(==>equals(s,s2)) \varcond(\notFreeIn(iv (variable), s2 (Seq term)), \notFreeIn(iv (variable), s (Seq term))) -\replacewith([]==>[and(equals(seqLen(s),seqLen(s2)),all{iv (variable)}(imp(and(leq(Z(0(#)),iv),lt(iv,seqLen(s))),equals(any::seqGet(s,iv),any::seqGet(s2,iv)))))]) +\replacewith([]==>[and(equals(seqLen(s),seqLen(s2)),all{iv (variable)}(imp(and(leq(Z(0(#)),iv),lt(iv,seqLen(s))),equals(seqGet<[any]>(s,iv),seqGet<[any]>(s2,iv)))))]) \heuristics(simplify_enlarging) Choices: sequences:on} ----------------------------------------------------- @@ -8000,7 +8000,7 @@ Choices: true} ----------------------------------------------------- == exact_instance_definition_boolean (exact_instance_definition_boolean) ========================================= exact_instance_definition_boolean { -\find(equals(boolean::exactInstance(bool),TRUE)) +\find(equals(exactInstance<[boolean]>(bool),TRUE)) \varcond(\notFreeIn(bv (variable), bool (boolean term))) \replacewith(exists{bv (variable)}(equals(bool,bv))) \heuristics(simplify) @@ -8008,7 +8008,7 @@ Choices: programRules:Java} ----------------------------------------------------- == exact_instance_definition_int (exact_instance_definition_int) ========================================= exact_instance_definition_int { -\find(equals(int::exactInstance(idx0),TRUE)) +\find(equals(exactInstance<[int]>(idx0),TRUE)) \varcond(\notFreeIn(iv (variable), idx0 (int term))) \replacewith(exists{iv (variable)}(equals(idx0,iv))) \heuristics(simplify) @@ -8016,7 +8016,7 @@ Choices: programRules:Java} ----------------------------------------------------- == exact_instance_definition_null (exact_instance_definition_null) ========================================= exact_instance_definition_null { -\find(equals(Null::exactInstance(obj),TRUE)) +\find(equals(exactInstance<[Null]>(obj),TRUE)) \varcond(\notFreeIn(bv (variable), bool (boolean term))) \replacewith(equals(obj,null)) \heuristics(simplify) @@ -8024,7 +8024,7 @@ Choices: programRules:Java} ----------------------------------------------------- == exact_instance_for_interfaces_or_abstract_classes (interfaces or abstract classes have no exact instances) ========================================= exact_instance_for_interfaces_or_abstract_classes { -\find(G::exactInstance(obj)) +\find(exactInstance<[G]>(obj)) \varcond(\isAbstractOrInterface (G)) \replacewith(FALSE) \heuristics(simplify) @@ -8032,8 +8032,8 @@ Choices: programRules:Java} ----------------------------------------------------- == exact_instance_known_dynamic_type (exact_instance_known_dynamic_type) ========================================= exact_instance_known_dynamic_type { -\assumes ([equals(G::exactInstance(a),TRUE)]==>[]) -\find(H::exactInstance(a)) +\assumes ([equals(exactInstance<[G]>(a),TRUE)]==>[]) +\find(exactInstance<[H]>(a)) \sameUpdateLevel\varcond(\not\same(G, H)) \replacewith(FALSE) \heuristics(evaluate_instanceof, simplify) @@ -9588,9 +9588,9 @@ Choices: true} ----------------------------------------------------- == getAnyOfArray2seq (getAnyOfArray2seq) ========================================= getAnyOfArray2seq { -\find(any::seqGet(array2seq(h,a),idx)) -\add []==>[and(leq(Z(0(#)),idx),lt(idx,length(a)))] ; -\replacewith(any::select(h,a,arr(idx))) +\find(seqGet<[any]>(array2seq(h,a),idx)) +\sameUpdateLevel\add []==>[and(leq(Z(0(#)),idx),lt(idx,length(a)))] ; +\replacewith(select<[any]>(h,a,arr(idx))) Choices: sequences:on} ----------------------------------------------------- @@ -9602,15 +9602,15 @@ getJavaCardTransient { #jcsystemType.#getTransient(#se)@#jcsystemType; ... }}| (post)) \replacewith([]==>[not(equals(#se,null))]) ; -\replacewith([]==>[update-application(elem-update(#lhs (program LeftHandSide))(int::select(heap,#se,java.lang.Object::#$transient)),#allmodal(post))]) +\replacewith([]==>[update-application(elem-update(#lhs (program LeftHandSide))(select<[int]>(heap,#se,java.lang.Object::#$transient)),#allmodal(post))]) \heuristics(simplify_prog) Choices: (programRules:Java & JavaCard:on)} ----------------------------------------------------- == getOfArray2seq (getOfArray2seq) ========================================= getOfArray2seq { -\find(alpha::seqGet(array2seq(h,a),idx)) -\add []==>[and(leq(Z(0(#)),idx),lt(idx,length(a)))] ; -\replacewith(alpha::select(h,a,arr(idx))) +\find(seqGet<[alpha]>(array2seq(h,a),idx)) +\sameUpdateLevel\add []==>[and(leq(Z(0(#)),idx),lt(idx,length(a)))] ; +\replacewith(select<[alpha]>(h,a,arr(idx))) Choices: sequences:on} ----------------------------------------------------- @@ -9624,7 +9624,7 @@ Choices: true} == getOfMapForeach (getOfMapForeach) ========================================= getOfMapForeach { \find(mapGet(mapForeach{v (variable)}(b,y),x)) -\sameUpdateLevel\replacewith(if-then-else(inDomain(mapForeach{v (variable)}(b,y),x),subst{v (variable)}(alpha::cast(x),y),mapUndef)) +\sameUpdateLevel\replacewith(if-then-else(inDomain(mapForeach{v (variable)}(b,y),x),subst{v (variable)}(cast<[alpha]>(x),y),mapUndef)) \heuristics(simplify_enlarging) Choices: true} ----------------------------------------------------- @@ -9659,98 +9659,98 @@ Choices: true} == getOfSeq2Map (getOfSeq2Map) ========================================= getOfSeq2Map { \find(mapGet(seq2map(s),x)) -\sameUpdateLevel\replacewith(if-then-else(and(and(equals(int::instance(x),TRUE),leq(Z(0(#)),int::cast(x))),lt(int::cast(x),seqLen(s))),any::seqGet(s,int::cast(x)),mapUndef)) +\sameUpdateLevel\replacewith(if-then-else(and(and(equals(instance<[int]>(x),TRUE),leq(Z(0(#)),cast<[int]>(x))),lt(cast<[int]>(x),seqLen(s))),seqGet<[any]>(s,cast<[int]>(x)),mapUndef)) \heuristics(simplify_enlarging) Choices: true} ----------------------------------------------------- == getOfSeqConcat (getOfSeqConcat) ========================================= getOfSeqConcat { -\find(alpha::seqGet(seqConcat(seq,seq2),idx)) -\replacewith(if-then-else(lt(idx,seqLen(seq)),alpha::seqGet(seq,idx),alpha::seqGet(seq2,sub(idx,seqLen(seq))))) +\find(seqGet<[alpha]>(seqConcat(seq,seq2),idx)) +\replacewith(if-then-else(lt(idx,seqLen(seq)),seqGet<[alpha]>(seq,idx),seqGet<[alpha]>(seq2,sub(idx,seqLen(seq))))) \heuristics(simplify_enlarging) Choices: sequences:on} ----------------------------------------------------- == getOfSeqConcatEQ (getOfSeqConcat) ========================================= getOfSeqConcatEQ { \assumes ([equals(seqConcat(seq,seq2),EQ)]==>[]) -\find(alpha::seqGet(EQ,idx)) -\sameUpdateLevel\replacewith(if-then-else(lt(idx,seqLen(seq)),alpha::seqGet(seq,idx),alpha::seqGet(seq2,sub(idx,seqLen(seq))))) +\find(seqGet<[alpha]>(EQ,idx)) +\sameUpdateLevel\replacewith(if-then-else(lt(idx,seqLen(seq)),seqGet<[alpha]>(seq,idx),seqGet<[alpha]>(seq2,sub(idx,seqLen(seq))))) \heuristics(simplify_enlarging, no_self_application) Choices: sequences:on} ----------------------------------------------------- == getOfSeqDef (getOfSeqDef) ========================================= getOfSeqDef { -\find(alpha::seqGet(seqDef{uSub (variable)}(from,to,t),idx)) +\find(seqGet<[alpha]>(seqDef{uSub (variable)}(from,to,t),idx)) \varcond(\notFreeIn(uSub (variable), to (int term)), \notFreeIn(uSub (variable), from (int term))) -\replacewith(if-then-else(and(leq(Z(0(#)),idx),lt(idx,sub(to,from))),alpha::cast(subst{uSub (variable)}(add(idx,from),t)),alpha::cast(seqGetOutside))) +\replacewith(if-then-else(and(leq(Z(0(#)),idx),lt(idx,sub(to,from))),cast<[alpha]>(subst{uSub (variable)}(add(idx,from),t)),cast<[alpha]>(seqGetOutside))) \heuristics(simplify) Choices: sequences:on} ----------------------------------------------------- == getOfSeqDefEQ (getOfSeqDef) ========================================= getOfSeqDefEQ { \assumes ([equals(seqDef{uSub (variable)}(from,to,t),EQ)]==>[]) -\find(alpha::seqGet(EQ,idx)) +\find(seqGet<[alpha]>(EQ,idx)) \sameUpdateLevel\varcond(\notFreeIn(uSub (variable), to (int term)), \notFreeIn(uSub (variable), from (int term))) -\replacewith(if-then-else(and(leq(Z(0(#)),idx),lt(idx,sub(to,from))),alpha::cast(subst{uSub (variable)}(add(idx,from),t)),alpha::cast(seqGetOutside))) +\replacewith(if-then-else(and(leq(Z(0(#)),idx),lt(idx,sub(to,from))),cast<[alpha]>(subst{uSub (variable)}(add(idx,from),t)),cast<[alpha]>(seqGetOutside))) \heuristics(simplify_enlarging) Choices: sequences:on} ----------------------------------------------------- == getOfSeqReverse (getOfSeqReverse) ========================================= getOfSeqReverse { -\find(alpha::seqGet(seqReverse(seq),idx)) -\replacewith(alpha::seqGet(seq,sub(sub(seqLen(seq),Z(1(#))),idx))) +\find(seqGet<[alpha]>(seqReverse(seq),idx)) +\replacewith(seqGet<[alpha]>(seq,sub(sub(seqLen(seq),Z(1(#))),idx))) \heuristics(simplify_enlarging) Choices: sequences:on} ----------------------------------------------------- == getOfSeqReverseEQ (getOfSeqReverse) ========================================= getOfSeqReverseEQ { \assumes ([equals(seqReverse(seq),EQ)]==>[]) -\find(alpha::seqGet(EQ,idx)) -\sameUpdateLevel\replacewith(alpha::seqGet(seq,sub(sub(seqLen(seq),Z(1(#))),idx))) +\find(seqGet<[alpha]>(EQ,idx)) +\sameUpdateLevel\replacewith(seqGet<[alpha]>(seq,sub(sub(seqLen(seq),Z(1(#))),idx))) \heuristics(simplify_enlarging, no_self_application) Choices: sequences:on} ----------------------------------------------------- == getOfSeqSingleton (getOfSeqSingleton) ========================================= getOfSeqSingleton { -\find(alpha::seqGet(seqSingleton(x),idx)) -\replacewith(if-then-else(equals(idx,Z(0(#))),alpha::cast(x),alpha::cast(seqGetOutside))) +\find(seqGet<[alpha]>(seqSingleton(x),idx)) +\replacewith(if-then-else(equals(idx,Z(0(#))),cast<[alpha]>(x),cast<[alpha]>(seqGetOutside))) \heuristics(simplify) Choices: sequences:on} ----------------------------------------------------- == getOfSeqSingletonConcrete (getOfSeqSingletonConcrete) ========================================= getOfSeqSingletonConcrete { -\find(alpha::seqGet(seqSingleton(x),Z(0(#)))) -\replacewith(alpha::cast(x)) +\find(seqGet<[alpha]>(seqSingleton(x),Z(0(#)))) +\replacewith(cast<[alpha]>(x)) \heuristics(concrete) Choices: sequences:on} ----------------------------------------------------- == getOfSeqSingletonEQ (getOfSeqSingleton) ========================================= getOfSeqSingletonEQ { \assumes ([equals(seqSingleton(x),EQ)]==>[]) -\find(alpha::seqGet(EQ,idx)) -\sameUpdateLevel\replacewith(if-then-else(equals(idx,Z(0(#))),alpha::cast(x),alpha::cast(seqGetOutside))) +\find(seqGet<[alpha]>(EQ,idx)) +\sameUpdateLevel\replacewith(if-then-else(equals(idx,Z(0(#))),cast<[alpha]>(x),cast<[alpha]>(seqGetOutside))) \heuristics(simplify_enlarging, no_self_application) Choices: sequences:on} ----------------------------------------------------- == getOfSeqSub (getOfSeqSub) ========================================= getOfSeqSub { -\find(alpha::seqGet(seqSub(seq,from,to),idx)) -\replacewith(if-then-else(and(leq(Z(0(#)),idx),lt(idx,sub(to,from))),alpha::seqGet(seq,add(idx,from)),alpha::cast(seqGetOutside))) +\find(seqGet<[alpha]>(seqSub(seq,from,to),idx)) +\replacewith(if-then-else(and(leq(Z(0(#)),idx),lt(idx,sub(to,from))),seqGet<[alpha]>(seq,add(idx,from)),cast<[alpha]>(seqGetOutside))) \heuristics(simplify_enlarging) Choices: sequences:on} ----------------------------------------------------- == getOfSeqSubEQ (getOfSeqSub) ========================================= getOfSeqSubEQ { \assumes ([equals(seqSub(seq,from,to),EQ)]==>[]) -\find(alpha::seqGet(EQ,idx)) -\sameUpdateLevel\replacewith(if-then-else(and(leq(Z(0(#)),idx),lt(idx,sub(to,from))),alpha::seqGet(seq,add(idx,from)),alpha::cast(seqGetOutside))) +\find(seqGet<[alpha]>(EQ,idx)) +\sameUpdateLevel\replacewith(if-then-else(and(leq(Z(0(#)),idx),lt(idx,sub(to,from))),seqGet<[alpha]>(seq,add(idx,from)),cast<[alpha]>(seqGetOutside))) \heuristics(simplify_enlarging, no_self_application) Choices: sequences:on} ----------------------------------------------------- == getOfSeqUpd (getOfSeqUpd) ========================================= getOfSeqUpd { -\find(alpha::seqGet(seqUpd(seq,idx,value),jdx)) -\replacewith(if-then-else(and(and(leq(Z(0(#)),jdx),lt(jdx,seqLen(seq))),equals(idx,jdx)),alpha::cast(value),alpha::seqGet(seq,jdx))) +\find(seqGet<[alpha]>(seqUpd(seq,idx,value),jdx)) +\replacewith(if-then-else(and(and(leq(Z(0(#)),jdx),lt(jdx,seqLen(seq))),equals(idx,jdx)),cast<[alpha]>(value),seqGet<[alpha]>(seq,jdx))) \heuristics(simplify_enlarging) Choices: sequences:on} ----------------------------------------------------- @@ -10610,7 +10610,7 @@ Choices: true} == inDomainOfMapForeach (inDomainOfMapForeach) ========================================= inDomainOfMapForeach { \find(inDomain(mapForeach{v (variable)}(b,y),x)) -\replacewith(and(equals(subst{v (variable)}(alpha::cast(x),b),TRUE),equals(alpha::instance(x),TRUE))) +\replacewith(and(equals(subst{v (variable)}(cast<[alpha]>(x),b),TRUE),equals(instance<[alpha]>(x),TRUE))) \heuristics(simplify) Choices: true} ----------------------------------------------------- @@ -10645,7 +10645,7 @@ Choices: true} == inDomainOfSeq2Map (inDomainOfSeq2Map) ========================================= inDomainOfSeq2Map { \find(inDomain(seq2map(s),x)) -\replacewith(and(and(equals(int::instance(x),TRUE),leq(Z(0(#)),int::cast(x))),lt(int::cast(x),seqLen(s)))) +\replacewith(and(and(equals(instance<[int]>(x),TRUE),leq(Z(0(#)),cast<[int]>(x))),lt(cast<[int]>(x),seqLen(s)))) \heuristics(simplify) Choices: true} ----------------------------------------------------- @@ -11185,7 +11185,7 @@ Choices: true} indexOf { \find(clIndexOfChar(l,c,i)) \varcond(\notFreeIn(iv (variable), i (int term)), \notFreeIn(iv (variable), c (int term)), \notFreeIn(iv (variable), l (Seq term))) -\replacewith(ifExThenElse{iv (variable)}(and(and(and(geq(i,Z(0(#))),geq(iv,i)),lt(iv,seqLen(l))),equals(int::seqGet(l,iv),c)),iv,Z(neglit(1(#))))) +\replacewith(ifExThenElse{iv (variable)}(and(and(and(geq(i,Z(0(#))),geq(iv,i)),lt(iv,seqLen(l))),equals(seqGet<[int]>(l,iv),c)),iv,Z(neglit(1(#))))) \heuristics(stringsExpandDefNormalOp) Choices: Strings:on} ----------------------------------------------------- @@ -11193,7 +11193,7 @@ Choices: Strings:on} indexOfSeqConcatFirst { \find(seqIndexOf(seqConcat(s1,s2),x)) \sameUpdateLevel\varcond(\notFreeIn(idx (variable), x (any term)), \notFreeIn(idx (variable), s2 (Seq term)), \notFreeIn(idx (variable), s1 (Seq term))) -\add []==>[exists{idx (variable)}(and(and(leq(Z(0(#)),idx),lt(idx,seqLen(s1))),equals(any::seqGet(s1,idx),x)))] ; +\add []==>[exists{idx (variable)}(and(and(leq(Z(0(#)),idx),lt(idx,seqLen(s1))),equals(seqGet<[any]>(s1,idx),x)))] ; \replacewith(seqIndexOf(s1,x)) Choices: sequences:on} @@ -11202,7 +11202,7 @@ Choices: sequences:on} indexOfSeqConcatSecond { \find(seqIndexOf(seqConcat(s1,s2),x)) \sameUpdateLevel\varcond(\notFreeIn(idx (variable), x (any term)), \notFreeIn(idx (variable), s2 (Seq term)), \notFreeIn(idx (variable), s1 (Seq term))) -\add []==>[and(not(exists{idx (variable)}(and(and(leq(Z(0(#)),idx),lt(idx,seqLen(s1))),equals(any::seqGet(s1,idx),x)))),exists{idx (variable)}(and(and(leq(Z(0(#)),idx),lt(idx,seqLen(s2))),equals(any::seqGet(s2,idx),x))))] ; +\add []==>[and(not(exists{idx (variable)}(and(and(leq(Z(0(#)),idx),lt(idx,seqLen(s1))),equals(seqGet<[any]>(s1,idx),x)))),exists{idx (variable)}(and(and(leq(Z(0(#)),idx),lt(idx,seqLen(s2))),equals(seqGet<[any]>(s2,idx),x))))] ; \replacewith(add(seqIndexOf(s2,x),seqLen(s1))) Choices: sequences:on} @@ -11218,7 +11218,7 @@ Choices: sequences:on} indexOfSeqSub { \find(seqIndexOf(seqSub(s,from,to),x)) \sameUpdateLevel\varcond(\notFreeIn(nx (variable), to (int term)), \notFreeIn(nx (variable), from (int term)), \notFreeIn(nx (variable), x (any term)), \notFreeIn(nx (variable), s (Seq term))) -\add []==>[and(and(and(leq(from,seqIndexOf(s,x)),lt(seqIndexOf(s,x),to)),leq(Z(0(#)),from)),exists{nx (variable)}(and(and(leq(Z(0(#)),nx),lt(nx,seqLen(s))),equals(any::seqGet(s,nx),x))))] ; +\add []==>[and(and(and(leq(from,seqIndexOf(s,x)),lt(seqIndexOf(s,x),to)),leq(Z(0(#)),from)),exists{nx (variable)}(and(and(leq(Z(0(#)),nx),lt(nx,seqLen(s))),equals(seqGet<[any]>(s,nx),x))))] ; \replacewith(sub(seqIndexOf(s,x),from)) Choices: sequences:on} @@ -11233,25 +11233,25 @@ Choices: Strings:on} ----------------------------------------------------- == ineffectiveCast (ineffectiveCast) ========================================= ineffectiveCast { -\assumes ([equals(H::instance(t),TRUE)]==>[]) -\find(H::cast(t)) -\sameUpdateLevel\add [equals(H::cast(t),t)]==>[] +\assumes ([equals(instance<[H]>(t),TRUE)]==>[]) +\find(cast<[H]>(t)) +\sameUpdateLevel\add [equals(cast<[H]>(t),t)]==>[] \heuristics(inReachableStateImplication) Choices: true} ----------------------------------------------------- == ineffectiveCast2 (ineffectiveCast2) ========================================= ineffectiveCast2 { \assumes ([equals(cs,gt)]==>[]) -\find(C::cast(gt)) -\sameUpdateLevel\add [equals(C::cast(gt),gt)]==>[] +\find(cast<[C]>(gt)) +\sameUpdateLevel\add [equals(cast<[C]>(gt),gt)]==>[] \heuristics(inReachableStateImplication) Choices: true} ----------------------------------------------------- == ineffectiveCast3 (ineffectiveCast3) ========================================= ineffectiveCast3 { -\assumes ([equals(H::exactInstance(t),TRUE)]==>[]) -\find(H::cast(t)) -\sameUpdateLevel\add [equals(H::cast(t),t)]==>[] +\assumes ([equals(exactInstance<[H]>(t),TRUE)]==>[]) +\find(cast<[H]>(t)) +\sameUpdateLevel\add [equals(cast<[H]>(t),t)]==>[] \heuristics(inReachableStateImplication) Choices: true} ----------------------------------------------------- @@ -11307,7 +11307,7 @@ Choices: programRules:Java} insert_constant_string_value { \assumes ([wellFormed(heap)]==>[]) \find(#csv) -\sameUpdateLevel\add [or(equals(#constantvalue(#csv),null),and(not(equals(strPool(Seq::cast(#constantvalue(#csv))),null)),equals(boolean::select(heap,strPool(Seq::cast(#constantvalue(#csv))),java.lang.Object::#$created),TRUE)))]==>[] \replacewith(if-then-else(equals(#constantvalue(#csv),null),null,strPool(Seq::cast(#constantvalue(#csv))))) +\sameUpdateLevel\add [or(equals(#constantvalue(#csv),null),and(not(equals(strPool(cast<[Seq]>(#constantvalue(#csv))),null)),equals(select<[boolean]>(heap,strPool(cast<[Seq]>(#constantvalue(#csv))),java.lang.Object::#$created),TRUE)))]==>[] \replacewith(if-then-else(equals(#constantvalue(#csv),null),null,strPool(cast<[Seq]>(#constantvalue(#csv))))) \heuristics(concrete) Choices: true} ----------------------------------------------------- @@ -11442,8 +11442,8 @@ Choices: programRules:Java} ----------------------------------------------------- == instance_for_final_types (instance_for_final_types) ========================================= instance_for_final_types { -\assumes ([]==>[equals(J::exactInstance(a),TRUE)]) -\find(equals(J::instance(a),TRUE)==>) +\assumes ([]==>[equals(exactInstance<[J]>(a),TRUE)]) +\find(equals(instance<[J]>(a),TRUE)==>) \varcond(\isFinal (J)) \replacewith([equals(a,null)]==>[]) \heuristics(simplify) @@ -11464,8 +11464,8 @@ Choices: programRules:Java} ----------------------------------------------------- == instanceof_known_dynamic_type (instanceof_known_dynamic_type) ========================================= instanceof_known_dynamic_type { -\assumes ([equals(G::exactInstance(a),TRUE)]==>[]) -\find(H::instance(a)) +\assumes ([equals(exactInstance<[G]>(a),TRUE)]==>[]) +\find(instance<[H]>(a)) \sameUpdateLevel\varcond(\sub(G, H)) \replacewith(TRUE) \heuristics(evaluate_instanceof, simplify) @@ -11473,8 +11473,8 @@ Choices: true} ----------------------------------------------------- == instanceof_known_dynamic_type_2 (instanceof_known_dynamic_type_2) ========================================= instanceof_known_dynamic_type_2 { -\assumes ([equals(G::exactInstance(a),TRUE)]==>[]) -\find(H::instance(a)) +\assumes ([equals(exactInstance<[G]>(a),TRUE)]==>[]) +\find(instance<[H]>(a)) \sameUpdateLevel\varcond(\not\sub(G, H)) \replacewith(FALSE) \heuristics(evaluate_instanceof, simplify) @@ -11482,7 +11482,7 @@ Choices: true} ----------------------------------------------------- == instanceof_not_compatible (instanceof disjoint type) ========================================= instanceof_not_compatible { -\find(equals(G::instance(a),TRUE)) +\find(equals(instance<[G]>(a),TRUE)) \varcond(\sub(Null, G), \disjointModuloNull(G, \typeof(a (any term)))) \replacewith(equals(a,null)) \heuristics(evaluate_instanceof, concrete) @@ -11490,7 +11490,7 @@ Choices: true} ----------------------------------------------------- == instanceof_not_compatible_2 (instanceof disjoint type) ========================================= instanceof_not_compatible_2 { -\find(equals(G::instance(a),FALSE)) +\find(equals(instance<[G]>(a),FALSE)) \varcond(\sub(Null, G), \disjointModuloNull(G, \typeof(a (any term)))) \replacewith(not(equals(a,null))) \heuristics(evaluate_instanceof, concrete) @@ -11498,7 +11498,7 @@ Choices: true} ----------------------------------------------------- == instanceof_not_compatible_3 (instanceof disjoint type) ========================================= instanceof_not_compatible_3 { -\find(equals(G::instance(a),TRUE)) +\find(equals(instance<[G]>(a),TRUE)) \varcond(\not\sub(Null, G), \disjointModuloNull(G, \typeof(a (any term)))) \replacewith(false) \heuristics(evaluate_instanceof, concrete) @@ -11506,7 +11506,7 @@ Choices: true} ----------------------------------------------------- == instanceof_not_compatible_4 (instanceof disjoint type) ========================================= instanceof_not_compatible_4 { -\find(equals(G::instance(a),FALSE)) +\find(equals(instance<[G]>(a),FALSE)) \varcond(\not\sub(Null, G), \disjointModuloNull(G, \typeof(a (any term)))) \replacewith(true) \heuristics(evaluate_instanceof, concrete) @@ -11514,8 +11514,8 @@ Choices: true} ----------------------------------------------------- == instanceof_not_compatible_5 (instanceof disjoint type) ========================================= instanceof_not_compatible_5 { -\assumes ([equals(H::instance(a),TRUE)]==>[]) -\find(equals(G::instance(a),TRUE)) +\assumes ([equals(instance<[H]>(a),TRUE)]==>[]) +\find(equals(instance<[G]>(a),TRUE)) \varcond(\sub(Null, G), \disjointModuloNull(G, H)) \replacewith(equals(a,null)) \heuristics(evaluate_instanceof, concrete) @@ -11523,7 +11523,7 @@ Choices: true} ----------------------------------------------------- == instanceof_static_type (instanceof static supertype) ========================================= instanceof_static_type { -\find(G::instance(a)) +\find(instance<[G]>(a)) \varcond(\sub(\typeof(a (any term)), G)) \replacewith(TRUE) \heuristics(evaluate_instanceof, concrete) @@ -11532,7 +11532,7 @@ Choices: true} == instanceof_static_type_2 (instanceof static supertype) ========================================= instanceof_static_type_2 { \assumes ([equals(a2,a)]==>[]) -\find(G::instance(a)) +\find(instance<[G]>(a)) \sameUpdateLevel\varcond(\sub(\typeof(a2 (any term)), G)) \replacewith(TRUE) \heuristics(evaluate_instanceof, concrete) @@ -11550,7 +11550,7 @@ intLongToFloatAddition1 { \find(#normalassign ((modal operator))|{{ .. #loc = #seLong + #seFloat; ... }}| (post)) -\replacewith(update-application(elem-update(#loc (program Variable))(javaAddFloat(float::cast(#seLong),#seFloat)),#normalassign(post))) +\replacewith(update-application(elem-update(#loc (program Variable))(javaAddFloat(cast<[float]>(#seLong),#seFloat)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} ----------------------------------------------------- @@ -11559,7 +11559,7 @@ intToFloatAddition { \find(#normalassign ((modal operator))|{{ .. #loc = #seCharByteShortInt + #seFloat; ... }}| (post)) -\replacewith(update-application(elem-update(#loc (program Variable))(javaAddFloat(float::cast(#seCharByteShortInt),#seFloat)),#normalassign(post))) +\replacewith(update-application(elem-update(#loc (program Variable))(javaAddFloat(cast<[float]>(#seCharByteShortInt),#seFloat)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} ----------------------------------------------------- @@ -11581,7 +11581,7 @@ Choices: true} == intersectAllFieldsFreshLocs (intersectAllFieldsFreshLocs) ========================================= intersectAllFieldsFreshLocs { \find(equals(intersect(allFields(o),freshLocs(h)),empty)) -\replacewith(or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::#$created),TRUE))) +\replacewith(or(equals(o,null),equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE))) \heuristics(simplify) Choices: programRules:Java} ----------------------------------------------------- @@ -12058,7 +12058,7 @@ Choices: true} lastIndexOf { \find(clLastIndexOfChar(sourceStr,c,i)) \varcond(\notFreeIn(iv (variable), sourceStr (Seq term)), \notFreeIn(iv (variable), i (int term)), \notFreeIn(iv (variable), c (int term))) -\replacewith(ifExThenElse{iv (variable)}(and(and(and(gt(iv,Z(0(#))),geq(i,iv)),lt(sub(i,iv),seqLen(sourceStr))),equals(int::seqGet(sourceStr,sub(i,iv)),c)),sub(i,iv),Z(neglit(1(#))))) +\replacewith(ifExThenElse{iv (variable)}(and(and(and(gt(iv,Z(0(#))),geq(i,iv)),lt(sub(i,iv),seqLen(sourceStr))),equals(seqGet<[int]>(sourceStr,sub(i,iv)),c)),sub(i,iv),Z(neglit(1(#))))) \heuristics(stringsExpandDefNormalOp) Choices: Strings:on} ----------------------------------------------------- @@ -13545,35 +13545,35 @@ Choices: integerSimplificationRules:full} == narrowFinalArrayType (narrowFinalArrayType) ========================================= narrowFinalArrayType { \assumes ([]==>[equals(o,null)]) -\find(beta::final(o,arr(idx))) +\find(final<[beta]>(o,arr(idx))) \sameUpdateLevel\varcond(\hasSort(\elemSort(o (java.lang.Object term)), alpha), \strict\sub(alpha, beta)) -\replacewith(alpha::final(o,arr(idx))) +\replacewith(final<[alpha]>(o,arr(idx))) \heuristics(simplify) Choices: programRules:Java} ----------------------------------------------------- == narrowSelectArrayType (narrowSelectArrayType) ========================================= narrowSelectArrayType { \assumes ([wellFormed(h)]==>[equals(o,null)]) -\find(beta::select(h,o,arr(idx))) +\find(select<[beta]>(h,o,arr(idx))) \sameUpdateLevel\varcond(\hasSort(\elemSort(o (java.lang.Object term)), alpha), \strict\sub(alpha, beta)) -\replacewith(alpha::select(h,o,arr(idx))) +\replacewith(select<[alpha]>(h,o,arr(idx))) \heuristics(simplify) Choices: programRules:Java} ----------------------------------------------------- == narrowSelectType (narrowSelectType) ========================================= narrowSelectType { \assumes ([wellFormed(h)]==>[]) -\find(beta::select(h,o,f)) +\find(select<[beta]>(h,o,f)) \varcond(\fieldType(f (Field term), alpha), \strict\sub(alpha, beta)) -\replacewith(alpha::select(h,o,f)) +\replacewith(select<[alpha]>(h,o,f)) \heuristics(simplify) Choices: programRules:Java} ----------------------------------------------------- == narrowTypeFinal (narrowTypeFinal) ========================================= narrowTypeFinal { -\find(beta::final(o,f)) +\find(final<[beta]>(o,f)) \varcond(\fieldType(f (Field term), alpha), \strict\sub(alpha, beta)) -\replacewith(alpha::final(o,f)) +\replacewith(final<[alpha]>(o,f)) \heuristics(simplify) Choices: programRules:Java} ----------------------------------------------------- @@ -13618,7 +13618,7 @@ narrowingCastFloatToInt { \find(#normalassign ((modal operator))|{{ .. #loc = (int) #seFloat; ... }}| (post)) -\replacewith(update-application(elem-update(#loc (program Variable))(int::cast(#seFloat)),#normalassign(post))) +\replacewith(update-application(elem-update(#loc (program Variable))(cast<[int]>(#seFloat)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} ----------------------------------------------------- @@ -13627,7 +13627,7 @@ narrowingCastFloatToLong { \find(#normalassign ((modal operator))|{{ .. #loc = (long) #seFloat; ... }}| (post)) -\replacewith(update-application(elem-update(#loc (program Variable))(int::cast(#seFloat)),#normalassign(post))) +\replacewith(update-application(elem-update(#loc (program Variable))(cast<[int]>(#seFloat)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} ----------------------------------------------------- @@ -13875,7 +13875,7 @@ Choices: programRules:Java} nonNull { \find(nonNull(heapSV,o,depth)) \varcond(\notFreeIn(i (variable), depth (int term)), \notFreeIn(i (variable), heapSV (Heap term)), \notFreeIn(i (variable), o (java.lang.Object term)), \isReferenceArray(o (java.lang.Object term))) -\replacewith(and(not(equals(o,null)),imp(gt(depth,Z(0(#))),all{i (variable)}(imp(and(leq(Z(0(#)),i),lt(i,length(o))),nonNull(heapSV,java.lang.Object::select(heapSV,o,arr(i)),sub(depth,Z(1(#))))))))) +\replacewith(and(not(equals(o,null)),imp(gt(depth,Z(0(#))),all{i (variable)}(imp(and(leq(Z(0(#)),i),lt(i,length(o))),nonNull(heapSV,select<[java.lang.Object]>(heapSV,o,arr(i)),sub(depth,Z(1(#))))))))) \heuristics(simplify_enlarging) Choices: programRules:Java} ----------------------------------------------------- @@ -13909,7 +13909,7 @@ Choices: true} ----------------------------------------------------- == nullCreated (nullCreated) ========================================= nullCreated { -\add [or(all{h (variable)}(equals(boolean::select(h,null,java.lang.Object::#$created),TRUE)),all{h (variable)}(equals(boolean::select(h,null,java.lang.Object::#$created),FALSE)))]==>[] +\add [or(all{h (variable)}(equals(select<[boolean]>(h,null,java.lang.Object::#$created),TRUE)),all{h (variable)}(equals(select<[boolean]>(h,null,java.lang.Object::#$created),FALSE)))]==>[] Choices: programRules:Java} ----------------------------------------------------- @@ -13975,32 +13975,32 @@ Choices: programRules:Java} == onlyCreatedObjectsAreInLocSets (onlyCreatedObjectsAreInLocSets) ========================================= onlyCreatedObjectsAreInLocSets { \assumes ([wellFormed(h)]==>[]) -\find(elementOf(o2,f2,LocSet::select(h,o,f))==>) -\add [or(equals(o2,null),equals(boolean::select(h,o2,java.lang.Object::#$created),TRUE))]==>[] +\find(elementOf(o2,f2,select<[LocSet]>(h,o,f))==>) +\add [or(equals(o2,null),equals(select<[boolean]>(h,o2,java.lang.Object::#$created),TRUE))]==>[] \heuristics(inReachableStateImplication) Choices: programRules:Java} ----------------------------------------------------- == onlyCreatedObjectsAreInLocSetsEQ (onlyCreatedObjectsAreInLocSetsEQ) ========================================= onlyCreatedObjectsAreInLocSetsEQ { -\assumes ([wellFormed(h),equals(LocSet::select(h,o,f),EQ)]==>[]) +\assumes ([wellFormed(h),equals(select<[LocSet]>(h,o,f),EQ)]==>[]) \find(elementOf(o2,f2,EQ)==>) -\add [or(equals(o2,null),equals(boolean::select(h,o2,java.lang.Object::#$created),TRUE))]==>[] +\add [or(equals(o2,null),equals(select<[boolean]>(h,o2,java.lang.Object::#$created),TRUE))]==>[] \heuristics(inReachableStateImplication) Choices: programRules:Java} ----------------------------------------------------- == onlyCreatedObjectsAreInLocSetsEQFinal (onlyCreatedObjectsAreInLocSetsEQFinal) ========================================= onlyCreatedObjectsAreInLocSetsEQFinal { -\assumes ([wellFormed(h),equals(LocSet::final(o,f),EQ)]==>[]) +\assumes ([wellFormed(h),equals(final<[LocSet]>(o,f),EQ)]==>[]) \find(elementOf(o2,f2,EQ)==>) -\add [or(equals(o2,null),equals(boolean::select(h,o2,java.lang.Object::#$created),TRUE))]==>[] +\add [or(equals(o2,null),equals(select<[boolean]>(h,o2,java.lang.Object::#$created),TRUE))]==>[] \heuristics(inReachableStateImplication) Choices: programRules:Java} ----------------------------------------------------- == onlyCreatedObjectsAreInLocSetsFinal (onlyCreatedObjectsAreInLocSetsFinal) ========================================= onlyCreatedObjectsAreInLocSetsFinal { \assumes ([wellFormed(h)]==>[]) -\find(elementOf(o2,f2,LocSet::final(o,f))==>) -\add [or(equals(o2,null),equals(boolean::select(h,o2,java.lang.Object::#$created),TRUE))]==>[] +\find(elementOf(o2,f2,final<[LocSet]>(o,f))==>) +\add [or(equals(o2,null),equals(select<[boolean]>(h,o2,java.lang.Object::#$created),TRUE))]==>[] \heuristics(inReachableStateImplication) Choices: programRules:Java} ----------------------------------------------------- @@ -14008,7 +14008,7 @@ Choices: programRules:Java} onlyCreatedObjectsAreObserved { \find(obs) \sameUpdateLevel\varcond(\isObserver (obs (deltaObject term), h (Heap term))) -\add [or(equals(obs,null),equals(boolean::select(h,obs,java.lang.Object::#$created),TRUE))]==>[] +\add [or(equals(obs,null),equals(select<[boolean]>(h,obs,java.lang.Object::#$created),TRUE))]==>[] \heuristics(inReachableStateImplication) Choices: programRules:Java} ----------------------------------------------------- @@ -14016,7 +14016,7 @@ Choices: programRules:Java} onlyCreatedObjectsAreObservedInLocSets { \find(elementOf(o,f,obs)==>) \varcond(\isObserver (obs (LocSet term), h (Heap term))) -\add [or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::#$created),TRUE))]==>[] +\add [or(equals(o,null),equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE))]==>[] \heuristics(inReachableStateImplication) Choices: programRules:Java} ----------------------------------------------------- @@ -14025,23 +14025,23 @@ onlyCreatedObjectsAreObservedInLocSetsEQ { \assumes ([equals(obs,EQ)]==>[]) \find(elementOf(o,f,EQ)==>) \varcond(\isObserver (obs (LocSet term), h (Heap term))) -\add [or(equals(o,null),equals(boolean::select(h,o,java.lang.Object::#$created),TRUE))]==>[] +\add [or(equals(o,null),equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE))]==>[] \heuristics(inReachableStateImplication) Choices: programRules:Java} ----------------------------------------------------- == onlyCreatedObjectsAreReferenced (onlyCreatedObjectsAreReferenced) ========================================= onlyCreatedObjectsAreReferenced { \assumes ([wellFormed(h)]==>[]) -\find(deltaObject::select(h,o,f)) -\sameUpdateLevel\add [or(equals(deltaObject::select(h,o,f),null),equals(boolean::select(h,deltaObject::select(h,o,f),java.lang.Object::#$created),TRUE))]==>[] +\find(select<[deltaObject]>(h,o,f)) +\sameUpdateLevel\add [or(equals(select<[deltaObject]>(h,o,f),null),equals(select<[boolean]>(h,select<[deltaObject]>(h,o,f),java.lang.Object::#$created),TRUE))]==>[] \heuristics(inReachableStateImplication) Choices: programRules:Java} ----------------------------------------------------- == onlyCreatedObjectsAreReferencedFinal (onlyCreatedObjectsAreReferencedFinal) ========================================= onlyCreatedObjectsAreReferencedFinal { -\assumes ([wellFormed(h),equals(boolean::select(h,o,java.lang.Object::#$created),TRUE)]==>[]) -\find(deltaObject::final(o,f)) -\sameUpdateLevel\add [or(equals(deltaObject::final(o,f),null),equals(boolean::select(h,deltaObject::final(o,f),java.lang.Object::#$created),TRUE))]==>[] +\assumes ([wellFormed(h),equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE)]==>[]) +\find(final<[deltaObject]>(o,f)) +\sameUpdateLevel\add [or(equals(final<[deltaObject]>(o,f),null),equals(select<[boolean]>(h,final<[deltaObject]>(o,f),java.lang.Object::#$created),TRUE))]==>[] \heuristics(inReachableStateImplication) Choices: programRules:Java} ----------------------------------------------------- @@ -14049,7 +14049,7 @@ Choices: programRules:Java} only_created_objects_are_reachable { \assumes ([wellFormed(h)]==>[equals(o,null)]) \find(reach(h,s,o,o2,n)==>) -\add [or(not(equals(boolean::select(h,o,java.lang.Object::#$created),TRUE)),equals(boolean::select(h,o2,java.lang.Object::#$created),TRUE))]==>[] +\add [or(not(equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE)),equals(select<[boolean]>(h,o2,java.lang.Object::#$created),TRUE))]==>[] \heuristics(inReachableStateImplication) Choices: reach:on} ----------------------------------------------------- @@ -14127,7 +14127,7 @@ Choices: true} ----------------------------------------------------- == permissionDefaultValue (permissionDefaultValue) ========================================= permissionDefaultValue { -\find(Permission::defaultValue) +\find(defaultValue<[Permission]>) \replacewith(initFullPermission) \heuristics(simplify) Choices: true} @@ -14770,7 +14770,7 @@ Choices: true} precOfSeq { \find(prec(s1,s2)) \varcond(\notFreeIn(jv (variable), s2 (Seq term)), \notFreeIn(jv (variable), s1 (Seq term)), \notFreeIn(iv (variable), s2 (Seq term)), \notFreeIn(iv (variable), s1 (Seq term))) -\replacewith(or(and(equals(seqLen(s1),seqLen(s2)),exists{iv (variable)}(and(and(and(leq(Z(0(#)),iv),lt(iv,seqLen(s1))),prec(any::seqGet(s1,iv),any::seqGet(s2,iv))),all{jv (variable)}(imp(and(leq(Z(0(#)),jv),lt(jv,iv)),equals(any::seqGet(s1,jv),any::seqGet(s2,jv))))))),lt(seqLen(s1),seqLen(s2)))) +\replacewith(or(and(equals(seqLen(s1),seqLen(s2)),exists{iv (variable)}(and(and(and(leq(Z(0(#)),iv),lt(iv,seqLen(s1))),prec(seqGet<[any]>(s1,iv),seqGet<[any]>(s2,iv))),all{jv (variable)}(imp(and(leq(Z(0(#)),jv),lt(jv,iv)),equals(seqGet<[any]>(s1,jv),seqGet<[any]>(s2,jv))))))),lt(seqLen(s1),seqLen(s2)))) Choices: true} ----------------------------------------------------- @@ -14959,8 +14959,8 @@ Choices: true} ----------------------------------------------------- == pullOutSelect (pullOutSelect) ========================================= pullOutSelect { -\find(beta::select(h,o,f)) -\sameUpdateLevel\add [equals(beta::select(h,o,f),selectSK<>)]==>[] \replacewith(selectSK<>) +\find(select<[beta]>(h,o,f)) +\sameUpdateLevel\add [equals(select<[beta]>(h,o,f),selectSK<>)]==>[] \replacewith(selectSK<>) \heuristics(pull_out_select) Choices: programRules:Java} ----------------------------------------------------- @@ -15086,7 +15086,7 @@ Choices: reach:on} ----------------------------------------------------- == reachEndOfUniquePath (reachEndOfUniquePath) ========================================= reachEndOfUniquePath { -\assumes ([reach(h,allObjects(f),o,o2,n),equals(alpha::select(h,o2,f),null),equals(alpha::select(h,o3,f),null)]==>[]) +\assumes ([reach(h,allObjects(f),o,o2,n),equals(select<[alpha]>(h,o2,f),null),equals(select<[alpha]>(h,o3,f),null)]==>[]) \find(reach(h,allObjects(f),o,o3,n2)==>) \varcond(\different (n (int term), n2 (int term))) \add [and(equals(o2,o3),equals(n,n2))]==>[] @@ -15095,7 +15095,7 @@ Choices: reach:on} ----------------------------------------------------- == reachEndOfUniquePath2 (reachEndOfUniquePath2) ========================================= reachEndOfUniquePath2 { -\assumes ([reach(h,allObjects(f),o,o2,n),equals(alpha::select(h,o2,f),null)]==>[]) +\assumes ([reach(h,allObjects(f),o,o2,n),equals(select<[alpha]>(h,o2,f),null)]==>[]) \find(reach(h,allObjects(f),o,o3,n2)==>) \varcond(\different (o (java.lang.Object term), o2 (java.lang.Object term)), \different (n (int term), n2 (int term))) \add [or(lt(n2,n),and(equals(o2,o3),equals(n,n2)))]==>[] @@ -15143,7 +15143,7 @@ Choices: reach:on} reach_does_not_depend_on_fresh_locs { \assumes ([]==>[equals(o,null)]) \find(reach(anon(h,empty,h2),s,o,o2,n)) -\add []==>[and(wellFormed(h),equals(boolean::select(h,o,java.lang.Object::#$created),TRUE))] ; +\add []==>[and(wellFormed(h),equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE))] ; \replacewith(reach(h,s,o,o2,n)) \heuristics(simplify) Choices: reach:on} @@ -15152,7 +15152,7 @@ Choices: reach:on} reach_does_not_depend_on_fresh_locs_EQ { \assumes ([equals(anon(h,empty,h2),EQ)]==>[equals(o,null)]) \find(reach(EQ,s,o,o2,n)) -\add []==>[and(wellFormed(h),equals(boolean::select(h,o,java.lang.Object::#$created),TRUE))] ; +\add []==>[and(wellFormed(h),equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE))] ; \replacewith(reach(h,s,o,o2,n)) \heuristics(simplify) Choices: reach:on} @@ -15177,40 +15177,40 @@ reference_type_cast { #lhs = (#npit) #se; ... }}| (post)) \varcond(\hasSort(#npit (program NonPrimitiveType), G), \not\sub(\typeof(#se (program SimpleExpression)), G)) -\add []==>[or(equals(#se,null),equals(G::instance(#se),TRUE))] \replacewith([]==>[false]) ; +\add []==>[or(equals(#se,null),equals(instance<[G]>(#se),TRUE))] \replacewith([]==>[false]) ; \replacewith([]==>[update-application(elem-update(#lhs (program LeftHandSide))(#addCast(#se,#lhs)),#allmodal(post))]) \heuristics(simplify_prog) Choices: (programRules:Java & runtimeExceptions:ban)} ----------------------------------------------------- == referencedObjectIsCreatedRighFinalEQ (referencedObjectIsCreatedRighFinalEQ) ========================================= referencedObjectIsCreatedRighFinalEQ { -\assumes ([equals(deltaObject::final(o,f),EQ)]==>[equals(EQ,null)]) -\find(==>equals(boolean::select(h,EQ,java.lang.Object::#$created),TRUE)) -\add []==>[or(equals(boolean::select(h,o,java.lang.Object::#$created),TRUE),equals(o,null))] +\assumes ([equals(final<[deltaObject]>(o,f),EQ)]==>[equals(EQ,null)]) +\find(==>equals(select<[boolean]>(h,EQ,java.lang.Object::#$created),TRUE)) +\add []==>[or(equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE),equals(o,null))] \heuristics(concrete) Choices: programRules:Java} ----------------------------------------------------- == referencedObjectIsCreatedRight (referencedObjectIsCreatedRight) ========================================= referencedObjectIsCreatedRight { -\assumes ([]==>[equals(deltaObject::select(h,o,f),null)]) -\find(==>equals(boolean::select(h,deltaObject::select(h,o,f),java.lang.Object::#$created),TRUE)) +\assumes ([]==>[equals(select<[deltaObject]>(h,o,f),null)]) +\find(==>equals(select<[boolean]>(h,select<[deltaObject]>(h,o,f),java.lang.Object::#$created),TRUE)) \replacewith([]==>[wellFormed(h)]) \heuristics(concrete) Choices: programRules:Java} ----------------------------------------------------- == referencedObjectIsCreatedRightEQ (referencedObjectIsCreatedRightEQ) ========================================= referencedObjectIsCreatedRightEQ { -\assumes ([equals(deltaObject::select(h,o,f),EQ)]==>[equals(EQ,null)]) -\find(==>equals(boolean::select(h,EQ,java.lang.Object::#$created),TRUE)) +\assumes ([equals(select<[deltaObject]>(h,o,f),EQ)]==>[equals(EQ,null)]) +\find(==>equals(select<[boolean]>(h,EQ,java.lang.Object::#$created),TRUE)) \replacewith([]==>[wellFormed(h)]) \heuristics(concrete) Choices: programRules:Java} ----------------------------------------------------- == referencedObjectIsCreatedRightFinal (referencedObjectIsCreatedRightFinal) ========================================= referencedObjectIsCreatedRightFinal { -\assumes ([]==>[equals(deltaObject::final(o,f),null)]) -\find(==>equals(boolean::select(h,deltaObject::final(o,f),java.lang.Object::#$created),TRUE)) -\replacewith([]==>[or(equals(boolean::select(h,o,java.lang.Object::#$created),TRUE),equals(o,null))]) +\assumes ([]==>[equals(final<[deltaObject]>(o,f),null)]) +\find(==>equals(select<[boolean]>(h,final<[deltaObject]>(o,f),java.lang.Object::#$created),TRUE)) +\replacewith([]==>[or(equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE),equals(o,null))]) \heuristics(simplify_enlarging) Choices: programRules:Java} ----------------------------------------------------- @@ -15290,7 +15290,7 @@ Choices: Strings:on} == removeZeros (removeZeros) ========================================= removeZeros { \find(clRemoveZeros(l)) -\replacewith(if-then-else(or(equals(l,seqEmpty),equals(int::seqGet(l,Z(0(#))),C(8(4(#))))),l,clRemoveZeros(seqSub(l,Z(1(#)),seqLen(l))))) +\replacewith(if-then-else(or(equals(l,seqEmpty),equals(seqGet<[int]>(l,Z(0(#))),C(8(4(#))))),l,clRemoveZeros(seqSub(l,Z(1(#)),seqLen(l))))) \heuristics(integerToString) Choices: Strings:on} ----------------------------------------------------- @@ -15390,7 +15390,7 @@ Choices: Strings:on} replaceDef { \find(clReplace(str,searchChar,replChar)) \sameUpdateLevel\varcond(\notFreeIn(pos (variable), replChar (int term)), \notFreeIn(pos (variable), searchChar (int term)), \notFreeIn(pos (variable), str (Seq term))) -\add [and(equals(clReplace(str,searchChar,replChar),newSym),equals(seqDef{pos (variable)}(Z(0(#)),seqLen(str),if-then-else(equals(int::seqGet(str,pos),searchChar),replChar,int::seqGet(str,pos))),newSym))]==>[] +\add [and(equals(clReplace(str,searchChar,replChar),newSym),equals(seqDef{pos (variable)}(Z(0(#)),seqLen(str),if-then-else(equals(seqGet<[int]>(str,pos),searchChar),replChar,seqGet<[int]>(str,pos))),newSym))]==>[] \heuristics(stringsIntroduceNewSym, defOpsReplace) Choices: Strings:on} ----------------------------------------------------- @@ -15601,7 +15601,7 @@ Choices: true} ----------------------------------------------------- == sameTypeFalse (sameTypeFalse) ========================================= sameTypeFalse { -\assumes ([equals(G::exactInstance(x1),TRUE),equals(H::exactInstance(x2),TRUE)]==>[]) +\assumes ([equals(exactInstance<[G]>(x1),TRUE),equals(exactInstance<[H]>(x2),TRUE)]==>[]) \find(sameType(x1,x2)) \varcond(\not\same(G, H)) \replacewith(false) @@ -15610,7 +15610,7 @@ Choices: true} ----------------------------------------------------- == sameTypeTrue (sameTypeTrue) ========================================= sameTypeTrue { -\assumes ([equals(G::exactInstance(x1),TRUE),equals(G::exactInstance(x2),TRUE)]==>[]) +\assumes ([equals(exactInstance<[G]>(x1),TRUE),equals(exactInstance<[G]>(x2),TRUE)]==>[]) \find(sameType(x1,x2)) \replacewith(true) \heuristics(concrete) @@ -15676,7 +15676,7 @@ Choices: programRules:Java} schiffl_lemma_2 { \find(seqPerm(s,t)==>) \varcond(\notFreeIn(y (variable), t (Seq term)), \notFreeIn(y (variable), s (Seq term)), \notFreeIn(x (variable), t (Seq term)), \notFreeIn(x (variable), s (Seq term)), \notFreeIn(r (variable), t (Seq term)), \notFreeIn(r (variable), s (Seq term)), \notFreeIn(iv (variable), t (Seq term)), \notFreeIn(iv (variable), s (Seq term))) -\add [all{x (variable)}(all{y (variable)}(imp(and(and(and(and(and(equals(any::seqGet(s,x),any::seqGet(t,x)),equals(any::seqGet(s,y),any::seqGet(t,y))),leq(Z(0(#)),x)),lt(x,seqLen(s))),leq(Z(0(#)),y)),lt(y,seqLen(s))),exists{r (variable)}(and(and(and(and(equals(seqLen(r),seqLen(s)),seqNPerm(r)),all{iv (variable)}(imp(and(leq(Z(0(#)),iv),lt(iv,seqLen(s))),equals(any::seqGet(s,iv),any::seqGet(t,int::seqGet(r,iv)))))),equals(int::seqGet(r,x),x)),equals(int::seqGet(r,y),y))))))]==>[] +\add [all{x (variable)}(all{y (variable)}(imp(and(and(and(and(and(equals(seqGet<[any]>(s,x),seqGet<[any]>(t,x)),equals(seqGet<[any]>(s,y),seqGet<[any]>(t,y))),leq(Z(0(#)),x)),lt(x,seqLen(s))),leq(Z(0(#)),y)),lt(y,seqLen(s))),exists{r (variable)}(and(and(and(and(equals(seqLen(r),seqLen(s)),seqNPerm(r)),all{iv (variable)}(imp(and(leq(Z(0(#)),iv),lt(iv,seqLen(s))),equals(seqGet<[any]>(s,iv),seqGet<[any]>(t,seqGet<[int]>(r,iv)))))),equals(seqGet<[int]>(r,x),x)),equals(seqGet<[int]>(r,y),y))))))]==>[] Choices: true} ----------------------------------------------------- @@ -15684,7 +15684,7 @@ Choices: true} schiffl_thm_1 { \find(seqPerm(s,t)==>) \varcond(\notFreeIn(idx (variable), t (Seq term)), \notFreeIn(idx (variable), s (Seq term)), \notFreeIn(idx (variable), b (any term)), \notFreeIn(idx (variable), a (any term)), \notFreeIn(idx (variable), y (int term)), \notFreeIn(idx (variable), x (int term))) -\add [imp(and(and(and(and(and(and(seqPerm(s,t),equals(any::seqGet(s,x),any::seqGet(t,x))),equals(any::seqGet(s,y),any::seqGet(t,y))),leq(Z(0(#)),x)),lt(x,seqLen(s))),leq(Z(0(#)),y)),lt(y,seqLen(s))),seqPerm(seqDef{idx (variable)}(Z(0(#)),seqLen(s),if-then-else(equals(idx,y),b,if-then-else(equals(idx,x),a,any::seqGet(s,idx)))),seqDef{idx (variable)}(Z(0(#)),seqLen(s),if-then-else(equals(idx,y),b,if-then-else(equals(idx,x),a,any::seqGet(t,idx))))))]==>[] +\add [imp(and(and(and(and(and(and(seqPerm(s,t),equals(seqGet<[any]>(s,x),seqGet<[any]>(t,x))),equals(seqGet<[any]>(s,y),seqGet<[any]>(t,y))),leq(Z(0(#)),x)),lt(x,seqLen(s))),leq(Z(0(#)),y)),lt(y,seqLen(s))),seqPerm(seqDef{idx (variable)}(Z(0(#)),seqLen(s),if-then-else(equals(idx,y),b,if-then-else(equals(idx,x),a,seqGet<[any]>(s,idx)))),seqDef{idx (variable)}(Z(0(#)),seqLen(s),if-then-else(equals(idx,y),b,if-then-else(equals(idx,x),a,seqGet<[any]>(t,idx))))))]==>[] Choices: true} ----------------------------------------------------- @@ -15697,91 +15697,91 @@ Choices: true} ----------------------------------------------------- == selectCreatedOfAnon (selectCreatedOfAnon) ========================================= selectCreatedOfAnon { -\find(boolean::select(anon(h,s,h2),o,java.lang.Object::#$created)) -\replacewith(if-then-else(equals(boolean::select(h,o,java.lang.Object::#$created),TRUE),TRUE,boolean::select(h2,o,java.lang.Object::#$created))) +\find(select<[boolean]>(anon(h,s,h2),o,java.lang.Object::#$created)) +\replacewith(if-then-else(equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE),TRUE,select<[boolean]>(h2,o,java.lang.Object::#$created))) \heuristics(simplify_heap_high_costs) Choices: programRules:Java} ----------------------------------------------------- == selectCreatedOfAnonAsFormula (selectCreatedOfAnonAsFormula) ========================================= selectCreatedOfAnonAsFormula { -\find(equals(boolean::select(anon(h,s,h2),o,java.lang.Object::#$created),TRUE)) -\replacewith(or(equals(boolean::select(h,o,java.lang.Object::#$created),TRUE),equals(boolean::select(h2,o,java.lang.Object::#$created),TRUE))) +\find(equals(select<[boolean]>(anon(h,s,h2),o,java.lang.Object::#$created),TRUE)) +\replacewith(or(equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE),equals(select<[boolean]>(h2,o,java.lang.Object::#$created),TRUE))) \heuristics(simplify_ENLARGING) Choices: programRules:Java} ----------------------------------------------------- == selectCreatedOfAnonAsFormulaEQ (selectCreatedOfAnonAsFormulaEQ) ========================================= selectCreatedOfAnonAsFormulaEQ { \assumes ([equals(anon(h,s,h2),EQ)]==>[]) -\find(equals(boolean::select(EQ,o,java.lang.Object::#$created),TRUE)) -\sameUpdateLevel\replacewith(or(equals(boolean::select(h,o,java.lang.Object::#$created),TRUE),equals(boolean::select(h2,o,java.lang.Object::#$created),TRUE))) +\find(equals(select<[boolean]>(EQ,o,java.lang.Object::#$created),TRUE)) +\sameUpdateLevel\replacewith(or(equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE),equals(select<[boolean]>(h2,o,java.lang.Object::#$created),TRUE))) \heuristics(simplify_ENLARGING) Choices: programRules:Java} ----------------------------------------------------- == selectCreatedOfAnonEQ (selectCreatedOfAnonEQ) ========================================= selectCreatedOfAnonEQ { \assumes ([equals(anon(h,s,h2),EQ)]==>[]) -\find(boolean::select(EQ,o,java.lang.Object::#$created)) -\sameUpdateLevel\replacewith(if-then-else(equals(boolean::select(h,o,java.lang.Object::#$created),TRUE),TRUE,boolean::select(h2,o,java.lang.Object::#$created))) +\find(select<[boolean]>(EQ,o,java.lang.Object::#$created)) +\sameUpdateLevel\replacewith(if-then-else(equals(select<[boolean]>(h,o,java.lang.Object::#$created),TRUE),TRUE,select<[boolean]>(h2,o,java.lang.Object::#$created))) \heuristics(simplify_heap_high_costs) Choices: programRules:Java} ----------------------------------------------------- == selectOfAnon (selectOfAnon) ========================================= selectOfAnon { -\find(beta::select(anon(h,s,h2),o,f)) -\replacewith(if-then-else(or(and(elementOf(o,f,s),not(equals(f,java.lang.Object::#$created))),elementOf(o,f,freshLocs(h))),beta::select(h2,o,f),beta::select(h,o,f))) +\find(select<[beta]>(anon(h,s,h2),o,f)) +\replacewith(if-then-else(or(and(elementOf(o,f,s),not(equals(f,java.lang.Object::#$created))),elementOf(o,f,freshLocs(h))),select<[beta]>(h2,o,f),select<[beta]>(h,o,f))) \heuristics(semantics_blasting) Choices: programRules:Java} ----------------------------------------------------- == selectOfAnonEQ (selectOfAnonEQ) ========================================= selectOfAnonEQ { \assumes ([equals(anon(h,s,h2),EQ)]==>[]) -\find(beta::select(EQ,o,f)) -\sameUpdateLevel\replacewith(if-then-else(or(and(elementOf(o,f,s),not(equals(f,java.lang.Object::#$created))),elementOf(o,f,freshLocs(h))),beta::select(h2,o,f),beta::select(h,o,f))) +\find(select<[beta]>(EQ,o,f)) +\sameUpdateLevel\replacewith(if-then-else(or(and(elementOf(o,f,s),not(equals(f,java.lang.Object::#$created))),elementOf(o,f,freshLocs(h))),select<[beta]>(h2,o,f),select<[beta]>(h,o,f))) \heuristics(simplify_heap_high_costs) Choices: programRules:Java} ----------------------------------------------------- == selectOfCreate (selectOfCreate) ========================================= selectOfCreate { -\find(beta::select(create(h,o),o2,f)) -\replacewith(if-then-else(and(and(equals(o,o2),not(equals(o,null))),equals(f,java.lang.Object::#$created)),beta::cast(TRUE),beta::select(h,o2,f))) +\find(select<[beta]>(create(h,o),o2,f)) +\replacewith(if-then-else(and(and(equals(o,o2),not(equals(o,null))),equals(f,java.lang.Object::#$created)),cast<[beta]>(TRUE),select<[beta]>(h,o2,f))) \heuristics(semantics_blasting) Choices: programRules:Java} ----------------------------------------------------- == selectOfCreateEQ (selectOfCreateEQ) ========================================= selectOfCreateEQ { \assumes ([equals(create(h,o),EQ)]==>[]) -\find(beta::select(EQ,o2,f)) -\sameUpdateLevel\replacewith(if-then-else(and(and(equals(o,o2),not(equals(o,null))),equals(f,java.lang.Object::#$created)),beta::cast(TRUE),beta::select(h,o2,f))) +\find(select<[beta]>(EQ,o2,f)) +\sameUpdateLevel\replacewith(if-then-else(and(and(equals(o,o2),not(equals(o,null))),equals(f,java.lang.Object::#$created)),cast<[beta]>(TRUE),select<[beta]>(h,o2,f))) \heuristics(simplify_heap_high_costs) Choices: programRules:Java} ----------------------------------------------------- == selectOfMemset (selectOfMemset) ========================================= selectOfMemset { -\find(beta::select(memset(h,s,x),o,f)) -\replacewith(if-then-else(and(elementOf(o,f,s),not(equals(f,java.lang.Object::#$created))),beta::cast(x),beta::select(h,o,f))) +\find(select<[beta]>(memset(h,s,x),o,f)) +\replacewith(if-then-else(and(elementOf(o,f,s),not(equals(f,java.lang.Object::#$created))),cast<[beta]>(x),select<[beta]>(h,o,f))) \heuristics(semantics_blasting) Choices: programRules:Java} ----------------------------------------------------- == selectOfMemsetEQ (selectOfMemsetEQ) ========================================= selectOfMemsetEQ { \assumes ([equals(memset(h,s,x),EQ)]==>[]) -\find(beta::select(EQ,o,f)) -\sameUpdateLevel\replacewith(if-then-else(and(elementOf(o,f,s),not(equals(f,java.lang.Object::#$created))),beta::cast(x),beta::select(h,o,f))) +\find(select<[beta]>(EQ,o,f)) +\sameUpdateLevel\replacewith(if-then-else(and(elementOf(o,f,s),not(equals(f,java.lang.Object::#$created))),cast<[beta]>(x),select<[beta]>(h,o,f))) \heuristics(simplify_heap_high_costs) Choices: programRules:Java} ----------------------------------------------------- == selectOfStore (selectOfStore) ========================================= selectOfStore { -\find(beta::select(store(h,o,f,x),o2,f2)) -\replacewith(if-then-else(and(and(equals(o,o2),equals(f,f2)),not(equals(f,java.lang.Object::#$created))),beta::cast(x),beta::select(h,o2,f2))) +\find(select<[beta]>(store(h,o,f,x),o2,f2)) +\replacewith(if-then-else(and(and(equals(o,o2),equals(f,f2)),not(equals(f,java.lang.Object::#$created))),cast<[beta]>(x),select<[beta]>(h,o2,f2))) \heuristics(semantics_blasting) Choices: programRules:Java} ----------------------------------------------------- == selectOfStoreEQ (selectOfStoreEQ) ========================================= selectOfStoreEQ { \assumes ([equals(store(h,o,f,x),EQ)]==>[]) -\find(beta::select(EQ,o2,f2)) -\sameUpdateLevel\replacewith(if-then-else(and(and(equals(o,o2),equals(f,f2)),not(equals(f,java.lang.Object::#$created))),beta::cast(x),beta::select(h,o2,f2))) +\find(select<[beta]>(EQ,o2,f2)) +\sameUpdateLevel\replacewith(if-then-else(and(and(equals(o,o2),equals(f,f2)),not(equals(f,java.lang.Object::#$created))),cast<[beta]>(x),select<[beta]>(h,o2,f2))) \heuristics(simplify_heap_high_costs) Choices: programRules:Java} ----------------------------------------------------- @@ -15827,7 +15827,7 @@ Choices: sequences:on} ----------------------------------------------------- == seqDefOfSeq (seqDefOfSeq) ========================================= seqDefOfSeq { -\find(seqDef{u (variable)}(Z(0(#)),x,any::seqGet(s,u))) +\find(seqDef{u (variable)}(Z(0(#)),x,seqGet<[any]>(s,u))) \varcond(\notFreeIn(v (variable), s (Seq term)), \notFreeIn(v (variable), x (int term)), \notFreeIn(u (variable), s (Seq term)), \notFreeIn(u (variable), x (int term))) \replacewith(if-then-else(equals(seqLen(s),x),s,if-then-else(gt(seqLen(s),x),seqSub(s,Z(0(#)),x),seqConcat(s,seqDef{v (variable)}(seqLen(s),x,seqGetOutside))))) \heuristics(simplify_enlarging) @@ -15885,7 +15885,7 @@ Choices: sequences:on} == seqDef_one_summand (seqDef_one_summand) ========================================= seqDef_one_summand { \find(seqDef{uSub (variable)}(from,idx,t)) -\sameUpdateLevel\varcond(\notFreeIn(uSub (variable), idx (int term)), \notFreeIn(uSub (variable), from (int term))) +\varcond(\notFreeIn(uSub (variable), idx (int term)), \notFreeIn(uSub (variable), from (int term))) \replacewith(if-then-else(equals(add(from,Z(1(#))),idx),seqSingleton(subst{uSub (variable)}(from,t)),seqDef{uSub (variable)}(from,idx,t))) Choices: sequences:on} @@ -15909,8 +15909,8 @@ Choices: sequences:on} ----------------------------------------------------- == seqGetAlphaCast (seqGetAlphaCast) ========================================= seqGetAlphaCast { -\find(alpha::seqGet(seq,at)) -\add [equals(alpha::cast(any::seqGet(seq,at)),alpha::seqGet(seq,at))]==>[] +\find(seqGet<[alpha]>(seq,at)) +\add [equals(cast<[alpha]>(seqGet<[any]>(seq,at)),seqGet<[alpha]>(seq,at))]==>[] \heuristics(inReachableStateImplication) Choices: sequences:on} ----------------------------------------------------- @@ -15944,7 +15944,7 @@ Choices: programRules:Java} seqIndexOf { \find(seqIndexOf(s,t)) \varcond(\notFreeIn(m (variable), t (any term)), \notFreeIn(m (variable), s (Seq term)), \notFreeIn(n (variable), t (any term)), \notFreeIn(n (variable), s (Seq term))) -\add [imp(exists{n (variable)}(and(and(leq(Z(0(#)),n),lt(n,seqLen(s))),equals(any::seqGet(s,n),t))),and(and(and(leq(Z(0(#)),seqIndexOf(s,t)),lt(seqIndexOf(s,t),seqLen(s))),equals(any::seqGet(s,seqIndexOf(s,t)),t)),all{m (variable)}(imp(and(leq(Z(0(#)),m),lt(m,seqIndexOf(s,t))),not(equals(any::seqGet(s,m),t))))))]==>[] +\add [imp(exists{n (variable)}(and(and(leq(Z(0(#)),n),lt(n,seqLen(s))),equals(seqGet<[any]>(s,n),t))),and(and(and(leq(Z(0(#)),seqIndexOf(s,t)),lt(seqIndexOf(s,t),seqLen(s))),equals(seqGet<[any]>(s,seqIndexOf(s,t)),t)),all{m (variable)}(imp(and(leq(Z(0(#)),m),lt(m,seqIndexOf(s,t))),not(equals(seqGet<[any]>(s,m),t))))))]==>[] Choices: sequences:on} ----------------------------------------------------- @@ -15990,7 +15990,7 @@ Choices: programRules:Java} == seqOutsideValue (seqOutsideValue) ========================================= seqOutsideValue { \find(seqGetOutside) -\add [all{s (variable)}(all{iv (variable)}(imp(or(lt(iv,Z(0(#))),leq(seqLen(s),iv)),equals(any::seqGet(s,iv),seqGetOutside))))]==>[] +\add [all{s (variable)}(all{iv (variable)}(imp(or(lt(iv,Z(0(#))),leq(seqLen(s),iv)),equals(seqGet<[any]>(s,iv),seqGetOutside))))]==>[] Choices: sequences:on} ----------------------------------------------------- @@ -16017,14 +16017,14 @@ Choices: programRules:Java} == seqSelfDefinition (seqSelfDefinition) ========================================= seqSelfDefinition { \find(seq) -\add [all{s (variable)}(equals(s,seqDef{u (variable)}(Z(0(#)),seqLen(s),any::seqGet(s,u))))]==>[] +\add [all{s (variable)}(equals(s,seqDef{u (variable)}(Z(0(#)),seqLen(s),seqGet<[any]>(s,u))))]==>[] Choices: sequences:on} ----------------------------------------------------- == seqSelfDefinitionEQ2 (seqSelfDefinition) ========================================= seqSelfDefinitionEQ2 { \assumes ([equals(seqLen(s),x)]==>[]) -\find(seqDef{u (variable)}(Z(0(#)),x,any::seqGet(s,u))) +\find(seqDef{u (variable)}(Z(0(#)),x,seqGet<[any]>(s,u))) \sameUpdateLevel\varcond(\notFreeIn(u (variable), s (Seq term)), \notFreeIn(u (variable), x (int term))) \replacewith(s) \heuristics(simplify) @@ -16135,7 +16135,7 @@ setJavaCardTransient { #jcsystemType.#setTransient(#se, #se1)@#jcsystemType; ... }}| (post)) \replacewith([]==>[not(equals(#se,null))]) ; -\replacewith([]==>[update-application(elem-update(heap)(store(heap,#se,java.lang.Object::#$transient,#se1)),#allmodal(post))]) +\replacewith([]==>[update-application(elem-update(heap)(store(heap,#se,java.lang.Object::#$transient,#se1)),#allmodal(post))]) \heuristics(simplify_prog) Choices: (programRules:Java & JavaCard:on)} ----------------------------------------------------- @@ -16340,93 +16340,93 @@ Choices: true} ----------------------------------------------------- == simplifySelectOfAnon (simplifySelectOfAnon) ========================================= simplifySelectOfAnon { -\find(equals(beta::select(anon(h,s,h2),o,f),sk)==>) +\find(equals(select<[beta]>(anon(h,s,h2),o,f),sk)==>) \addrules [replaceKnownSelect { -\find(beta::select(anon(h,s,h2),o,f)) +\find(select<[beta]>(anon(h,s,h2),o,f)) \inSequentState\replacewith(sk) \heuristics(concrete) -Choices: programRules:Java}] \replacewith([equals(if-then-else(or(and(elementOf(o,f,s),not(equals(f,java.lang.Object::#$created))),elementOf(o,f,freshLocs(h))),beta::select(h2,o,f),beta::select(h,o,f)),sk)]==>[]) +Choices: programRules:Java}] \replacewith([equals(if-then-else(or(and(elementOf(o,f,s),not(equals(f,java.lang.Object::#$created))),elementOf(o,f,freshLocs(h))),select<[beta]>(h2,o,f),select<[beta]>(h,o,f)),sk)]==>[]) \heuristics(simplify_select) Choices: programRules:Java} ----------------------------------------------------- == simplifySelectOfAnonEQ (simplifySelectOfAnonEQ) ========================================= simplifySelectOfAnonEQ { \assumes ([equals(anon(h,s,h2),EQ)]==>[]) -\find(equals(beta::select(EQ,o,f),sk)==>) +\find(equals(select<[beta]>(EQ,o,f),sk)==>) \addrules [replaceKnownSelect { -\find(beta::select(EQ,o,f)) +\find(select<[beta]>(EQ,o,f)) \inSequentState\replacewith(sk) \heuristics(concrete) -Choices: programRules:Java}] \replacewith([equals(if-then-else(or(and(elementOf(o,f,s),not(equals(f,java.lang.Object::#$created))),elementOf(o,f,freshLocs(h))),beta::select(h2,o,f),beta::select(h,o,f)),sk)]==>[]) +Choices: programRules:Java}] \replacewith([equals(if-then-else(or(and(elementOf(o,f,s),not(equals(f,java.lang.Object::#$created))),elementOf(o,f,freshLocs(h))),select<[beta]>(h2,o,f),select<[beta]>(h,o,f)),sk)]==>[]) \heuristics(simplify_select) Choices: programRules:Java} ----------------------------------------------------- == simplifySelectOfCreate (simplifySelectOfCreate) ========================================= simplifySelectOfCreate { -\find(equals(beta::select(create(h,o),o2,f),sk)==>) +\find(equals(select<[beta]>(create(h,o),o2,f),sk)==>) \addrules [replaceKnownSelect { -\find(beta::select(create(h,o),o2,f)) +\find(select<[beta]>(create(h,o),o2,f)) \inSequentState\replacewith(sk) \heuristics(concrete) -Choices: programRules:Java}] \replacewith([equals(if-then-else(and(and(equals(o,o2),not(equals(o,null))),equals(f,java.lang.Object::#$created)),beta::cast(TRUE),beta::select(h,o2,f)),sk)]==>[]) +Choices: programRules:Java}] \replacewith([equals(if-then-else(and(and(equals(o,o2),not(equals(o,null))),equals(f,java.lang.Object::#$created)),cast<[beta]>(TRUE),select<[beta]>(h,o2,f)),sk)]==>[]) \heuristics(simplify_select) Choices: programRules:Java} ----------------------------------------------------- == simplifySelectOfCreateEQ (simplifySelectOfCreateEQ) ========================================= simplifySelectOfCreateEQ { \assumes ([equals(create(h,o),EQ)]==>[]) -\find(equals(beta::select(EQ,o2,f),sk)==>) +\find(equals(select<[beta]>(EQ,o2,f),sk)==>) \addrules [replaceKnownSelect { -\find(beta::select(EQ,o2,f)) +\find(select<[beta]>(EQ,o2,f)) \inSequentState\replacewith(sk) \heuristics(concrete) -Choices: programRules:Java}] \replacewith([equals(if-then-else(and(and(equals(o,o2),not(equals(o,null))),equals(f,java.lang.Object::#$created)),beta::cast(TRUE),beta::select(h,o2,f)),sk)]==>[]) +Choices: programRules:Java}] \replacewith([equals(if-then-else(and(and(equals(o,o2),not(equals(o,null))),equals(f,java.lang.Object::#$created)),cast<[beta]>(TRUE),select<[beta]>(h,o2,f)),sk)]==>[]) \heuristics(simplify_select) Choices: programRules:Java} ----------------------------------------------------- == simplifySelectOfMemset (simplifySelectOfMemset) ========================================= simplifySelectOfMemset { -\find(equals(beta::select(memset(h,s,x),o,f),sk)==>) +\find(equals(select<[beta]>(memset(h,s,x),o,f),sk)==>) \addrules [replaceKnownSelect { -\find(beta::select(memset(h,s,x),o,f)) +\find(select<[beta]>(memset(h,s,x),o,f)) \inSequentState\replacewith(sk) \heuristics(concrete) -Choices: programRules:Java}] \replacewith([equals(if-then-else(and(elementOf(o,f,s),not(equals(f,java.lang.Object::#$created))),x,beta::select(h,o,f)),sk)]==>[]) +Choices: programRules:Java}] \replacewith([equals(if-then-else(and(elementOf(o,f,s),not(equals(f,java.lang.Object::#$created))),x,select<[beta]>(h,o,f)),sk)]==>[]) \heuristics(simplify_select) Choices: programRules:Java} ----------------------------------------------------- == simplifySelectOfMemsetEQ (simplifySelectOfMemsetEQ) ========================================= simplifySelectOfMemsetEQ { \assumes ([equals(memset(h,s,x),EQ)]==>[]) -\find(equals(beta::select(EQ,o,f),sk)==>) +\find(equals(select<[beta]>(EQ,o,f),sk)==>) \addrules [replaceKnownSelect { -\find(beta::select(EQ,o,f)) +\find(select<[beta]>(EQ,o,f)) \inSequentState\replacewith(sk) \heuristics(concrete) -Choices: programRules:Java}] \replacewith([equals(if-then-else(and(elementOf(o,f,s),not(equals(f,java.lang.Object::#$created))),x,beta::select(h,o,f)),sk)]==>[]) +Choices: programRules:Java}] \replacewith([equals(if-then-else(and(elementOf(o,f,s),not(equals(f,java.lang.Object::#$created))),x,select<[beta]>(h,o,f)),sk)]==>[]) \heuristics(simplify_select) Choices: programRules:Java} ----------------------------------------------------- == simplifySelectOfStore (simplifySelectOfStore) ========================================= simplifySelectOfStore { -\find(equals(beta::select(store(h,o,f,x),o2,f2),sk)==>) +\find(equals(select<[beta]>(store(h,o,f,x),o2,f2),sk)==>) \addrules [replaceKnownSelect { -\find(beta::select(store(h,o,f,x),o2,f2)) +\find(select<[beta]>(store(h,o,f,x),o2,f2)) \inSequentState\replacewith(sk) \heuristics(concrete) -Choices: programRules:Java}] \replacewith([equals(if-then-else(and(and(equals(o,o2),equals(f,f2)),not(equals(f,java.lang.Object::#$created))),beta::cast(x),beta::select(h,o2,f2)),sk)]==>[]) +Choices: programRules:Java}] \replacewith([equals(if-then-else(and(and(equals(o,o2),equals(f,f2)),not(equals(f,java.lang.Object::#$created))),cast<[beta]>(x),select<[beta]>(h,o2,f2)),sk)]==>[]) \heuristics(simplify_select) Choices: programRules:Java} ----------------------------------------------------- == simplifySelectOfStoreEQ (simplifySelectOfStoreEQ) ========================================= simplifySelectOfStoreEQ { \assumes ([equals(store(h,o,f,x),EQ)]==>[]) -\find(equals(beta::select(EQ,o2,f2),sk)==>) +\find(equals(select<[beta]>(EQ,o2,f2),sk)==>) \addrules [replaceKnownSelect { -\find(beta::select(EQ,o2,f2)) +\find(select<[beta]>(EQ,o2,f2)) \inSequentState\replacewith(sk) \heuristics(concrete) -Choices: programRules:Java}] \replacewith([equals(if-then-else(and(and(equals(o,o2),equals(f,f2)),not(equals(f,java.lang.Object::#$created))),beta::cast(x),beta::select(h,o2,f2)),sk)]==>[]) +Choices: programRules:Java}] \replacewith([equals(if-then-else(and(and(equals(o,o2),equals(f,f2)),not(equals(f,java.lang.Object::#$created))),cast<[beta]>(x),select<[beta]>(h,o2,f2)),sk)]==>[]) \heuristics(simplify_select) Choices: programRules:Java} ----------------------------------------------------- @@ -16676,14 +16676,14 @@ Choices: true} ----------------------------------------------------- == ssubsortDirect (ssubsortDirect) ========================================= ssubsortDirect { -\find(ssubsort(alphSub::ssort,alph::ssort)) +\find(ssubsort(ssort<[alphSub]>,ssort<[alph]>)) \replacewith(true) \heuristics(simplify) Choices: true} ----------------------------------------------------- == ssubsortSup (ssubsortSup) ========================================= ssubsortSup { -\find(ssubsort(alph::ssort,alphSub::ssort)) +\find(ssubsort(ssort<[alph]>,ssort<[alphSub]>)) \varcond(\not\same(alphSub, alph)) \replacewith(false) \heuristics(simplify) @@ -16759,7 +16759,7 @@ stringAssignment { \find(#normalassign ((modal operator))|{{ .. #v = #slit; ... }}| (post)) -\sameUpdateLevel\add [not(equals(strPool(#slit),null)),equals(boolean::select(heap,strPool(#slit),java.lang.Object::#$created),TRUE)]==>[] \replacewith(update-application(elem-update(#v (program Variable))(strPool(#slit)),#normalassign(post))) +\sameUpdateLevel\add [not(equals(strPool(#slit),null)),equals(select<[boolean]>(heap,strPool(#slit),java.lang.Object::#$created),TRUE)]==>[] \replacewith(update-application(elem-update(#v (program Variable))(strPool(#slit)),#normalassign(post))) \heuristics(simplify_prog_subset, simplify_prog) Choices: true} ----------------------------------------------------- @@ -16890,7 +16890,7 @@ Choices: sequences:on} subSeqConcatEQ { \assumes ([equals(seqConcat(s1,s2),EQ)]==>[]) \find(seqSub(EQ,l,u)) -\replacewith(seqConcat(seqSub(s1,l,if-then-else(lt(seqLen(s1),u),seqLen(s1),u)),seqSub(s2,if-then-else(lt(l,seqLen(s1)),Z(0(#)),sub(l,seqLen(s1))),sub(u,seqLen(s1))))) +\sameUpdateLevel\replacewith(seqConcat(seqSub(s1,l,if-then-else(lt(seqLen(s1),u),seqLen(s1),u)),seqSub(s2,if-then-else(lt(l,seqLen(s1)),Z(0(#)),sub(l,seqLen(s1))),sub(u,seqLen(s1))))) \heuristics(simplify_enlarging, no_self_application) Choices: sequences:on} ----------------------------------------------------- @@ -16912,7 +16912,7 @@ Choices: sequences:on} subSeqHeadSeqDefEQ { \assumes ([equals(seqDef{i (variable)}(Z(0(#)),u,a),EQ)]==>[]) \find(seqSub(seqConcat(EQ,seq),Z(0(#)),u)) -\replacewith(seqDef{i (variable)}(Z(0(#)),u,a)) +\sameUpdateLevel\replacewith(seqDef{i (variable)}(Z(0(#)),u,a)) \heuristics(concrete) Choices: sequences:on} ----------------------------------------------------- @@ -16934,7 +16934,7 @@ Choices: sequences:on} subSeqSingleton2EQ { \assumes ([equals(seqSingleton(x),EQ)]==>[]) \find(seqSub(EQ,l,u)) -\replacewith(seqConcat(seqSub(seqEmpty,if-then-else(lt(l,Z(0(#))),l,Z(0(#))),if-then-else(lt(u,Z(0(#))),u,Z(0(#)))),seqConcat(if-then-else(and(leq(l,Z(0(#))),geq(u,Z(1(#)))),seqSingleton(x),seqEmpty),seqSub(seqEmpty,if-then-else(gt(l,Z(0(#))),l,Z(1(#))),if-then-else(gt(u,Z(0(#))),u,Z(1(#))))))) +\sameUpdateLevel\replacewith(seqConcat(seqSub(seqEmpty,if-then-else(lt(l,Z(0(#))),l,Z(0(#))),if-then-else(lt(u,Z(0(#))),u,Z(0(#)))),seqConcat(if-then-else(and(leq(l,Z(0(#))),geq(u,Z(1(#)))),seqSingleton(x),seqEmpty),seqSub(seqEmpty,if-then-else(gt(l,Z(0(#))),l,Z(1(#))),if-then-else(gt(u,Z(0(#))),u,Z(1(#))))))) \heuristics(simplify_enlarging, no_self_application) Choices: sequences:on} ----------------------------------------------------- @@ -16942,7 +16942,7 @@ Choices: sequences:on} subSeqSingletonEQ { \assumes ([equals(seqSingleton(x),EQ)]==>[]) \find(seqSub(EQ,Z(0(#)),Z(1(#)))) -\replacewith(seqSingleton(x)) +\sameUpdateLevel\replacewith(seqSingleton(x)) \heuristics(concrete) Choices: sequences:on} ----------------------------------------------------- @@ -18272,14 +18272,14 @@ Choices: programRules:Java} == typeEq (typeEq) ========================================= typeEq { \find(equals(s,t1)==>) -\add [equals(H::instance(s),TRUE),equals(G::instance(t1),TRUE)]==>[] +\add [equals(instance<[H]>(s),TRUE),equals(instance<[G]>(t1),TRUE)]==>[] Choices: true} ----------------------------------------------------- == typeEqDerived (typeEq) ========================================= typeEqDerived { \assumes ([equals(s,t1)]==>[]) -\find(H::instance(s)) +\find(instance<[H]>(s)) \sameUpdateLevel\replacewith(TRUE) \heuristics(concrete, simplify) Choices: true} @@ -18287,7 +18287,7 @@ Choices: true} == typeEqDerived2 (typeEq) ========================================= typeEqDerived2 { \assumes ([equals(s,t1)]==>[]) -\find(G::instance(t1)) +\find(instance<[G]>(t1)) \sameUpdateLevel\replacewith(TRUE) \heuristics(concrete, simplify) Choices: true} @@ -18295,7 +18295,7 @@ Choices: true} == typeStatic (typeStatic) ========================================= typeStatic { \find(s) -\sameUpdateLevel\add [equals(G::instance(s),TRUE)]==>[] +\sameUpdateLevel\add [equals(instance<[G]>(s),TRUE)]==>[] Choices: true} ----------------------------------------------------- @@ -18599,7 +18599,7 @@ Choices: programRules:Java} wellFormedMemsetArrayObject { \find(wellFormed(memset(h,arrayRange(ar,lo,up),x))) \succedentPolarity\varcond(\hasSort(\elemSort(ar (java.lang.Object term)), alpha)) -\replacewith(and(wellFormed(h),or(equals(x,null),and(equals(boolean::select(h,x,java.lang.Object::#$created),TRUE),arrayStoreValid(ar,x))))) +\replacewith(and(wellFormed(h),or(equals(x,null),and(equals(select<[boolean]>(h,x,java.lang.Object::#$created),TRUE),arrayStoreValid(ar,x))))) \heuristics(simplify_enlarging) Choices: programRules:Java} ----------------------------------------------------- @@ -18615,7 +18615,7 @@ Choices: programRules:Java} wellFormedStoreArray { \find(wellFormed(store(h,o,arr(idx),x))) \succedentPolarity\varcond(\hasSort(\elemSort(o (java.lang.Object term)), alpha)) -\replacewith(and(wellFormed(h),or(equals(x,null),and(equals(boolean::select(h,x,java.lang.Object::#$created),TRUE),arrayStoreValid(o,x))))) +\replacewith(and(wellFormed(h),or(equals(x,null),and(equals(select<[boolean]>(h,x,java.lang.Object::#$created),TRUE),arrayStoreValid(o,x))))) \heuristics(simplify_enlarging) Choices: programRules:Java} ----------------------------------------------------- @@ -18639,7 +18639,7 @@ Choices: programRules:Java} wellFormedStoreObject { \find(wellFormed(store(h,o,f,x))) \succedentPolarity\varcond(\fieldType(f (Field term), alpha)) -\replacewith(and(wellFormed(h),or(equals(x,null),and(equals(boolean::select(h,x,java.lang.Object::#$created),TRUE),equals(alpha::instance(x),TRUE))))) +\replacewith(and(wellFormed(h),or(equals(x,null),and(equals(select<[boolean]>(h,x,java.lang.Object::#$created),TRUE),equals(instance<[alpha]>(x),TRUE))))) \heuristics(simplify_enlarging) Choices: programRules:Java} ----------------------------------------------------- @@ -18648,7 +18648,7 @@ wellFormedStoreObjectEQ { \assumes ([equals(store(h,o,f,x),EQ)]==>[]) \find(wellFormed(EQ)) \sameUpdateLevel\succedentPolarity\varcond(\fieldType(f (Field term), alpha)) -\replacewith(and(wellFormed(h),or(equals(x,null),and(equals(boolean::select(h,x,java.lang.Object::#$created),TRUE),equals(alpha::instance(x),TRUE))))) +\replacewith(and(wellFormed(h),or(equals(x,null),and(equals(select<[boolean]>(h,x,java.lang.Object::#$created),TRUE),equals(instance<[alpha]>(x),TRUE))))) \heuristics(simplify_enlarging) Choices: programRules:Java} ----------------------------------------------------- @@ -18682,7 +18682,7 @@ wideningCastIntToFloat { \find(#normalassign ((modal operator))|{{ .. #loc = (float) #seCharByteShortInt; ... }}| (post)) -\replacewith(update-application(elem-update(#loc (program Variable))(float::cast(#seCharByteShortInt)),#normalassign(post))) +\replacewith(update-application(elem-update(#loc (program Variable))(cast<[float]>(#seCharByteShortInt)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} ----------------------------------------------------- @@ -18691,7 +18691,7 @@ wideningCastLongToFloat { \find(#normalassign ((modal operator))|{{ .. #loc = (float) #seLong; ... }}| (post)) -\replacewith(update-application(elem-update(#loc (program Variable))(float::cast(#seLong)),#normalassign(post))) +\replacewith(update-application(elem-update(#loc (program Variable))(cast<[float]>(#seLong)),#normalassign(post))) \heuristics(executeFloatAssignment) Choices: programRules:Java} ----------------------------------------------------- diff --git a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/SMT_lemma_seqGet.dl.proof b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/SMT_lemma_seqGet.dl.proof index 2212baae4bd..9377c3b0cec 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/SMT_lemma_seqGet.dl.proof +++ b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/SMT_lemma_seqGet.dl.proof @@ -47,7 +47,7 @@ \forall Seq s; ( lt(i, Z(0(#))) | geq(i, seqLen(s)) - -> any::seqGet(s, i)<> = seqGetOutside) + -> seqGet<[any]>(s, i)<> = seqGetOutside) } diff --git a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/SMT_lemma_seqGetOutside.dl.proof b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/SMT_lemma_seqGetOutside.dl.proof index 234303f5915..8c5d0a40f1e 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/SMT_lemma_seqGetOutside.dl.proof +++ b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/SMT_lemma_seqGetOutside.dl.proof @@ -45,7 +45,7 @@ \forall Seq s; ( lt(i, Z(0(#))) | geq(i, seqLen(s)) - -> any::seqGet(s, i)<> = seqGetOutside) + -> seqGet<[any]>(s, i)<> = seqGetOutside) } @@ -60,7 +60,7 @@ (rule "cut" (inst "cutFormula=( s_0 = seqDef{int i;}(Z(0(#)), seqLen(s_0), - any::seqGet(s_0, i)))<>") (userinteraction)) + seqGet<[any]>(s_0, i)))<>") (userinteraction)) (branch "CUT: s_0 = seqDef{int i;}(0, s_0.length, s_0[i]) TRUE" (rule "applyEqRigid" (formula "2") (term "0,0,1") (ifseqformula "1") (userinteraction)) (rule "getOfSeqDef" (formula "2") (term "0,1") (userinteraction)) diff --git a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/cast2.yml b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/cast2.yml index 1828b337dce..f16b83d805a 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/cast2.yml +++ b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/cast2.yml @@ -5,4 +5,4 @@ expected: IRRELEVANT keySrc: |- \functions { Field FF; Seq s; java.lang.Object o; } - \problem { int::select(heap, o, FF) = int::seqGet(s, 42) } + \problem { select<[int]>(heap, o, FF) = seqGet<[int]>(s, 42) } diff --git a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/heap1.yml b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/heap1.yml index 81db6462bda..1dea97085e5 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/heap1.yml +++ b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/heap1.yml @@ -6,4 +6,4 @@ state: EXTENDED keySrc: |- \functions { Field FF; java.lang.Object o; } - \problem { FF != java.lang.Object::#$created -> any::select(store(heap, o, FF, 42), o, FF) = 42 } + \problem { FF != java.lang.Object::#$created -> select<[any]>(store(heap, o, FF, 42), o, FF) = 42 } diff --git a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/quant2.yml b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/quant2.yml index 580312e5cca..2ac39f54ea4 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/quant2.yml +++ b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/quant2.yml @@ -10,5 +10,5 @@ contains: expected: VALID keySrc: |- \problem { - \forall Object o; (String::instance(o) = TRUE -> (String)o = o) + \forall Object o; (instance<[String]>(o) = TRUE -> (String)o = o) } diff --git a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/subtypes3738.yml b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/subtypes3738.yml index 50eb69ccf41..a511e03979b 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/subtypes3738.yml +++ b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/subtypes3738.yml @@ -1,10 +1,10 @@ # Modelled after a bugfix for #3738 -# can be proved before the fix but not afterwards +# can be proved before the fix but not afterward javaSrc: | interface X {} class Y extends Object implements X { } keySrc: | - \problem { !\exists Object o; (X::instance(o) = TRUE & Y::instance(o) = TRUE) } + \problem { !\exists Object o; (instance<[X]>(o) = TRUE & instance<[Y]>(o) = TRUE) } contains: - (assert (subtype sort_Y sort_X)) - (assert (not (subtype sort_X sort_Y))) diff --git a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/types1.yml b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/types1.yml index 37098529951..47a82806013 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/types1.yml +++ b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/types1.yml @@ -3,5 +3,5 @@ contains: expected: VALID keySrc: |- \problem { - any::instance(42) = TRUE + instance<[any]>(42) = TRUE } diff --git a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/types2.yml b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/types2.yml index ee1778a6927..0b01e4f4333 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/types2.yml +++ b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/types2.yml @@ -3,5 +3,5 @@ contains: expected: VALID keySrc: |- \problem { - any::instance(FALSE) = TRUE + instance<[any]>(FALSE) = TRUE } diff --git a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/unknownQuantified.yml b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/unknownQuantified.yml index 7cdde00de49..86ac131a39c 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/unknownQuantified.yml +++ b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/cases/unknownQuantified.yml @@ -9,7 +9,7 @@ keySrc: |- } \problem { - \forall Seq s; (s = (seqDef{int u;}(0, s.length, any::seqGet(s, u)))) + \forall Seq s; (s = (seqDef{int u;}(0, s.length, seqGet<[any]>(s, u)))) & seqLen(seqSub(s1, 0, maxx - 1)) = maxx - 1 -> s1.length = maxx - 1 diff --git a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/smt-lemma-header.key b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/smt-lemma-header.key index 4169d34480d..116255f97e6 100644 --- a/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/smt-lemma-header.key +++ b/key.core/src/test/resources/de/uka/ilkd/key/smt/newsmt2/smt-lemma-header.key @@ -1,13 +1,13 @@ /*\sorts { \generic G; } // This should actually be "(G)" instead of "(any)", but KeY can't parse that ... -\functions { G G::PATTERN(any); } +\functions { G PATTERN<[G]>(any); } \predicates { FPATTERN(\formula); } \rules { removePattern { \schemaVar \term any t; - \find(G::PATTERN(t)) + \find(PATTERN<[G]>(t)) \replacewith(t) \heuristics(simplify) }; 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 f50f4424e32..e899d1eebd2 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 @@ -310,11 +310,11 @@ & ( !b = TRUE & ( !result_0_1 = null & ( wellFormed(heap) - & ( boolean::select(heap, + & ( select<[boolean]>(heap, self, java.lang.Object::#$created) = TRUE - & ( A::exactInstance(self) = TRUE + & ( exactInstance<[A]>(self) = TRUE & ( measuredByEmpty & ( wellFormed(anon_heap_g<>) & ( anon(heap, @@ -322,21 +322,21 @@ anon_heap_g<>) = heapAfter_g & ( exc_0_1 = null - & ( boolean::select(heap, + & ( select<[boolean]>(heap, result_0_1, java.lang.Object::#$created) = TRUE - | boolean::select(anon_heap_g<>, + | select<[boolean]>(anon_heap_g<>, result_0_1, java.lang.Object::#$created) = TRUE)))))))))) -> !self = null & wellFormed(heap) - & boolean::select(heap, + & select<[boolean]>(heap, self, java.lang.Object::#$created) = TRUE - & A::exactInstance(self) = TRUE + & exactInstance<[A]>(self) = TRUE & measuredByEmpty & ( b = TRUE & wellFormed(anon_heap_f<>) @@ -354,15 +354,15 @@ anon_heap_g<>) = heapAfter_g & exc_0_1 = null - & ( boolean::select(heap, + & ( select<[boolean]>(heap, result_0_1, java.lang.Object::#$created) = TRUE - | boolean::select(anon_heap_g<>, + | select<[boolean]>(anon_heap_g<>, result_0_1, java.lang.Object::#$created) = TRUE))") (userinteraction)) - (branch "CUT: !self = null & ( !b = TRUE & ( !result_0_1 = null & ( wellFormed(heap) & ( self.$created = TRUE & ( A::exactInstance(self) = TRUE & ( measuredByEmpty & ( wellFormed(anon_heap_g<>) & ( heap[anon(allLocs, anon_heap_g<>)] = heapAfter_g & ( exc_0_1 = null & ( result_0_1.$created = TRUE | result_0_1.$created@anon_heap_g<> = TRUE)))))))))) -> !self = null & wellFormed(heap) & self.$created = TRUE & A::exactInstance(self) = TRUE & measuredByEmpty & ( b = TRUE & wellFormed(anon_heap_f<>) & heap[anon(allLocs, anon_heap_f<>)] = heapAfter_f & exc_0_0 = null & result_0_0 >= 1 | !b = TRUE & !result_0_1 = null & wellFormed(anon_heap_g<>) & heap[anon(allLocs, anon_heap_g<>)] = heapAfter_g & exc_0_1 = null & ( result_0_1.$created = TRUE | result_0_1.$created@anon_heap_g<> = TRUE)) TRUE" + (branch "CUT: !self = null & ( !b = TRUE & ( !result_0_1 = null & ( wellFormed(heap) & ( self.$created = TRUE & ( exactInstance<[A]>(self) = TRUE & ( measuredByEmpty & ( wellFormed(anon_heap_g<>) & ( heap[anon(allLocs, anon_heap_g<>)] = heapAfter_g & ( exc_0_1 = null & ( result_0_1.$created = TRUE | result_0_1.$created@anon_heap_g<> = TRUE)))))))))) -> !self = null & wellFormed(heap) & self.$created = TRUE & exactInstance<[A]>(self) = TRUE & measuredByEmpty & ( b = TRUE & wellFormed(anon_heap_f<>) & heap[anon(allLocs, anon_heap_f<>)] = heapAfter_f & exc_0_0 = null & result_0_0 >= 1 | !b = TRUE & !result_0_1 = null & wellFormed(anon_heap_g<>) & heap[anon(allLocs, anon_heap_g<>)] = heapAfter_g & exc_0_1 = null & ( result_0_1.$created = TRUE | result_0_1.$created@anon_heap_g<> = TRUE)) TRUE" (builtin "One Step Simplification" (formula "2")) (rule "impRight" (formula "2")) (rule "impRight" (formula "3")) @@ -383,7 +383,7 @@ (builtin "One Step Simplification" (formula "9") (ifInst "" (formula "13")) (ifInst "" (formula "1")) (ifInst "" (formula "2")) (ifInst "" (formula "4")) (ifInst "" (formula "12")) (ifInst "" (formula "12")) (ifInst "" (formula "11")) (ifInst "" (formula "5")) (ifInst "" (formula "6")) (ifInst "" (formula "7")) (ifInst "" (formula "8")) (ifInst "" (formula "12")) (ifInst "" (formula "12")) (ifInst "" (formula "14"))) (rule "closeFalse" (formula "9")) ) - (branch "CUT: !self = null & ( !b = TRUE & ( !result_0_1 = null & ( wellFormed(heap) & ( self.$created = TRUE & ( A::exactInstance(self) = TRUE & ( measuredByEmpty & ( wellFormed(anon_heap_g<>) & ( heap[anon(allLocs, anon_heap_g<>)] = heapAfter_g & ( exc_0_1 = null & ( result_0_1.$created = TRUE | result_0_1.$created@anon_heap_g<> = TRUE)))))))))) -> !self = null & wellFormed(heap) & self.$created = TRUE & A::exactInstance(self) = TRUE & measuredByEmpty & ( b = TRUE & wellFormed(anon_heap_f<>) & heap[anon(allLocs, anon_heap_f<>)] = heapAfter_f & exc_0_0 = null & result_0_0 >= 1 | !b = TRUE & !result_0_1 = null & wellFormed(anon_heap_g<>) & heap[anon(allLocs, anon_heap_g<>)] = heapAfter_g & exc_0_1 = null & ( result_0_1.$created = TRUE | result_0_1.$created@anon_heap_g<> = TRUE)) FALSE" + (branch "CUT: !self = null & ( !b = TRUE & ( !result_0_1 = null & ( wellFormed(heap) & ( self.$created = TRUE & ( exactInstance<[A]>(self) = TRUE & ( measuredByEmpty & ( wellFormed(anon_heap_g<>) & ( heap[anon(allLocs, anon_heap_g<>)] = heapAfter_g & ( exc_0_1 = null & ( result_0_1.$created = TRUE | result_0_1.$created@anon_heap_g<> = TRUE)))))))))) -> !self = null & wellFormed(heap) & self.$created = TRUE & exactInstance<[A]>(self) = TRUE & measuredByEmpty & ( b = TRUE & wellFormed(anon_heap_f<>) & heap[anon(allLocs, anon_heap_f<>)] = heapAfter_f & exc_0_0 = null & result_0_0 >= 1 | !b = TRUE & !result_0_1 = null & wellFormed(anon_heap_g<>) & heap[anon(allLocs, anon_heap_g<>)] = heapAfter_g & exc_0_1 = null & ( result_0_1.$created = TRUE | result_0_1.$created@anon_heap_g<> = TRUE)) FALSE" (rule "hide_right" (formula "2") (userinteraction)) (rule "impRight" (formula "1")) (rule "andLeft" (formula "1")) diff --git a/key.core/src/test/resources/testcase/smt/tacletTranslation/castOperators.key b/key.core/src/test/resources/testcase/smt/tacletTranslation/castOperators.key index 7544c267967..3d05a46a75b 100644 --- a/key.core/src/test/resources/testcase/smt/tacletTranslation/castOperators.key +++ b/key.core/src/test/resources/testcase/smt/tacletTranslation/castOperators.key @@ -31,8 +31,8 @@ Options: f = (MySort) f f != (MySort) g & - & (java.util.List::instance(o)=TRUE - -> java.util.Collection::instance(o)=TRUE) + & (instance<[java.util.List]>(o)=TRUE + -> instance<[java.util.Collection]>(o)=TRUE) diff --git a/key.core/src/test/resources/testcase/smt/tacletTranslation/complexProblem.key b/key.core/src/test/resources/testcase/smt/tacletTranslation/complexProblem.key index 6be0ed47fef..181e1a9b796 100644 --- a/key.core/src/test/resources/testcase/smt/tacletTranslation/complexProblem.key +++ b/key.core/src/test/resources/testcase/smt/tacletTranslation/complexProblem.key @@ -45,7 +45,7 @@ Options: & ((A.$created=TRUE & wellFormed(heap) & !(A.F@(Test)=null))-> (A.F.F@(Test).$created=TRUE | A.F.F@(Test)=null)) & - (java.lang.Object::exactInstance(o) = TRUE & wellFormed(heap) & o.$created=TRUE -> + (exactInstance<[java.lang.Object]>(o) = TRUE & wellFormed(heap) & o.$created=TRUE -> \exists int iv; java.lang.Object::(iv) = o) & (java.lang.Object::(5) = o & wellFormed(heap) & o.$created=TRUE -> diff --git a/key.core/src/test/resources/testcase/smt/tacletTranslation/complexProblem2.key b/key.core/src/test/resources/testcase/smt/tacletTranslation/complexProblem2.key index 11103fec169..627e8f23258 100644 --- a/key.core/src/test/resources/testcase/smt/tacletTranslation/complexProblem2.key +++ b/key.core/src/test/resources/testcase/smt/tacletTranslation/complexProblem2.key @@ -38,8 +38,8 @@ Options: & (wellFormed(heap) & java.lang.Object.$classInitializationInProgress=TRUE -> java.lang.Object.$classPrepared=TRUE) // (5) - & (java.util.List::instance(o)=TRUE - -> java.util.Collection::instance(o)=TRUE) // (6) + & (instance<[java.util.List]>(o)=TRUE + -> instance<[java.util.Collection]>(o)=TRUE) // (6) & (wellFormed(heap) -> java.lang.Object. >=0) // (7) diff --git a/key.core/src/test/resources/testcase/testrules.key b/key.core/src/test/resources/testcase/testrules.key index c70300cfded..d8e7d6c0848 100644 --- a/key.core/src/test/resources/testcase/testrules.key +++ b/key.core/src/test/resources/testcase/testrules.key @@ -254,7 +254,7 @@ TesTApplyTaclet_emptyModality { \replacewith ( \<{ #v = #e + 1; }\> post ) }; testUninstantiatedSVCollector { - \find ({#v:=1 || heap:=store(heap,#v3,#memberPVToField(#v2),2)}\<{}\> int::select(heap,#v3,#memberPVToField(#v1)) = 4) \replacewith ( true ) + \find ({#v:=1 || heap:=store(heap,#v3,#memberPVToField(#v2),2)}\<{}\> select<[int]>(heap,#v3,#memberPVToField(#v1)) = 4) \replacewith ( true ) }; testParsingExplicitMethodBody { diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqNPermRange.proof b/key.core/tacletProofs/seqPerm/Taclet_seqNPermRange.proof index 74602500ab0..ec10b18deb3 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqNPermRange.proof +++ b/key.core/tacletProofs/seqPerm/Taclet_seqNPermRange.proof @@ -62,12 +62,12 @@ -> \\forall int idx; ( leq(Z(0(#)), idx) & lt(idx, v_iv) -> leq(Z(0(#)), - (int)(any::seqGet(s, idx))) - & lt((int)(any::seqGet(s, idx)), + (int)(seqGet<[any]>(s, idx))) + & lt((int)(seqGet<[any]>(s, idx)), seqLen(s)) - & int::instance(any::seqGet(s, idx)) + & instance<[int]>(seqGet<[any]>(s, idx)) = TRUE))")) -(branch "CUT: forall int v_iv; forall Seq s; ( seqNPerm(s) & s.length = v_iv -> forall int idx; ( 0 <= idx & idx < v_iv -> 0 <= (int)(s[idx]) & (int)(s[idx]) < s.length & int::instance(s[idx]) = TRUE)) TRUE" +(branch "CUT: forall int v_iv; forall Seq s; ( seqNPerm(s) & s.length = v_iv -> forall int idx; ( 0 <= idx & idx < v_iv -> 0 <= (int)(s[idx]) & (int)(s[idx]) < s.length & instance<[int]>(s[idx]) = TRUE)) TRUE" (rule "allRight" (formula "3") (inst "sk=v_iv_0")) (rule "impRight" (formula "3")) (rule "andLeft" (formula "1")) @@ -93,7 +93,7 @@ (rule "close" (formula "7") (ifseqformula "4")) ) ) -(branch "CUT: forall int v_iv; forall Seq s; ( seqNPerm(s) & s.length = v_iv -> forall int idx; ( 0 <= idx & idx < v_iv -> 0 <= (int)(s[idx]) & (int)(s[idx]) < s.length & int::instance(s[idx]) = TRUE)) FALSE" +(branch "CUT: forall int v_iv; forall Seq s; ( seqNPerm(s) & s.length = v_iv -> forall int idx; ( 0 <= idx & idx < v_iv -> 0 <= (int)(s[idx]) & (int)(s[idx]) < s.length & instance<[int]>(s[idx]) = TRUE)) FALSE" (rule "auto_int_induction_geqZero" (formula "2") (inst "sk=v_iv_1")) (branch "Base Case" (rule "allRight" (formula "2") (inst "sk=s_0")) @@ -1373,7 +1373,7 @@ (branch (rule "andRight" (formula "15")) (branch - (rule "cut" (inst "cutFormula=leq(Z(0(#)), (int)(any::seqGet(s_1, jv_0)))")) + (rule "cut" (inst "cutFormula=leq(Z(0(#)), (int)(seqGet<[any]>(s_1, jv_0)))")) (branch "CUT: 0 <= (int)(s_1[jv_0]) TRUE" (rule "eqSymm" (formula "2")) (rule "castedGetAny" (formula "16") (term "1")) diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqNPermRange.txt b/key.core/tacletProofs/seqPerm/Taclet_seqNPermRange.txt index c62ed340eb4..0e550f6af00 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqNPermRange.txt +++ b/key.core/tacletProofs/seqPerm/Taclet_seqNPermRange.txt @@ -51,7 +51,7 @@ cut '\forall int v_iv; \forall Seq s; (\forall int idx; (0 <= idx & idx < v_iv       ->   0 <= (int)s[idx]        & (int)s[idx] < seqLen(s) -       & int::instance(s[idx]) = TRUE)))'; +       & instance<[int]>(s[idx]) = TRUE)))'; rule allRight; rule impRight; rule andLeft; @@ -128,7 +128,7 @@ rule impLeft; rule hide_right formula='   0 <= (int)(s_1[idx_2])  & (int)(s_1[idx_2]) < s_1.length - & int::instance(s_1[idx_2]) = TRUE'; + & instance<[int]>(s_1[idx_2]) = TRUE'; rule andRight; tryclose branch; tryclose branch; @@ -163,7 +163,7 @@ rule hide_left formula='    (   0 <= idx & idx < v_iv_1     ->   0 <= (int)(seqRemove(s_1, jv_0)[idx])        & (int)(seqRemove(s_1, jv_0)[idx]) < seqRemove(s_1, jv_0).length -       & int::instance(seqRemove(s_1, jv_0)[idx]) = TRUE)'; +       & instance<[int]>(seqRemove(s_1, jv_0)[idx]) = TRUE)'; cut 'idx_2!=jv_0'; tryclose branch; rule hide_right formula='jv_0 < idx_2'; diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqPermExists.proof b/key.core/tacletProofs/seqPerm/Taclet_seqPermExists.proof index 9cf2911607d..65aed6cb07c 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqPermExists.proof +++ b/key.core/tacletProofs/seqPerm/Taclet_seqPermExists.proof @@ -217,7 +217,7 @@ (rule "inEqSimp_contradInEq1" (formula "10") (term "0") (ifseqformula "2")) (rule "qeq_literals" (formula "10") (term "0,0")) (builtin "One Step Simplification" (formula "10")) - (rule "allLeft" (formula "1") (inst "t=int::seqGet(s_0, v_iv_0)")) + (rule "allLeft" (formula "1") (inst "t=seqGet<[int]>(s_0, v_iv_0)")) (rule "applyEq" (formula "1") (term "0,0,0,0") (ifseqformula "14")) (rule "replace_known_left" (formula "1") (term "0,0,0") (ifseqformula "5")) (builtin "One Step Simplification" (formula "1")) diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqPermForall.proof b/key.core/tacletProofs/seqPerm/Taclet_seqPermForall.proof index 5ca063ed0a7..42b3f176619 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqPermForall.proof +++ b/key.core/tacletProofs/seqPerm/Taclet_seqPermForall.proof @@ -331,7 +331,7 @@ (rule "inEqSimp_contradInEq1" (formula "8") (term "0") (ifseqformula "1")) (rule "qeq_literals" (formula "8") (term "0,0")) (builtin "One Step Simplification" (formula "8")) - (rule "allLeft" (formula "3") (inst "t=int::seqGet(s_0, v_iv_0)")) + (rule "allLeft" (formula "3") (inst "t=seqGet<[int]>(s_0, v_iv_0)")) (rule "applyEqRigid" (formula "3") (term "0,0,0") (ifseqformula "13")) (rule "replace_known_right" (formula "3") (term "0,0") (ifseqformula "15")) (builtin "One Step Simplification" (formula "3")) diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqPermFromSwap.proof b/key.core/tacletProofs/seqPerm/Taclet_seqPermFromSwap.proof index 7b2eb8e4a2f..44149780597 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqPermFromSwap.proof +++ b/key.core/tacletProofs/seqPerm/Taclet_seqPermFromSwap.proof @@ -132,11 +132,11 @@ (rule "exRightHide" (formula "12") (inst "t=seqDef{int u;}(Z(0(#)), seqLen(s_1), \\if (u = v_iv_1) - \\then (any::seqGet(s_1, v_jv_1)) + \\then (seqGet<[any]>(s_1, v_jv_1)) \\else (\\if (u = v_jv_1) - \\then (any::seqGet(s_1, + \\then (seqGet<[any]>(s_1, v_iv_1)) - \\else (any::seqGet(s_1, + \\else (seqGet<[any]>(s_1, u))))") (userinteraction)) (rule "andRight" (formula "12") (userinteraction)) (branch diff --git a/key.core/tacletProofs/seqPerm/Taclet_seqPermTrans.proof b/key.core/tacletProofs/seqPerm/Taclet_seqPermTrans.proof index ed674597d6e..d304c4266a9 100644 --- a/key.core/tacletProofs/seqPerm/Taclet_seqPermTrans.proof +++ b/key.core/tacletProofs/seqPerm/Taclet_seqPermTrans.proof @@ -76,7 +76,7 @@ (rule "exLeft" (formula "4") (inst "sk=s_1") (userinteraction)) (rule "exRightHide" (formula "5") (inst "t=seqDef{int i;}(Z(0(#)), seqLen(s_1), - int::seqGet(s_0, int::seqGet(s_1, i)))") (userinteraction)) + seqGet<[int]>(s_0, seqGet<[int]>(s_1, i)))") (userinteraction)) (rule "andRight" (formula "5") (userinteraction)) (branch (rule "andRight" (formula "5") (userinteraction)) @@ -310,7 +310,7 @@ (rule "andLeft" (formula "4")) (rule "add_zero_right" (formula "15") (term "1,1,0,0") (userinteraction)) (rule "castDel" (formula "15") (term "0") (userinteraction)) - (rule "eqTermCut" (formula "15") (term "1,0") (inst "s=any::seqGet(s_1, jv_1)") (userinteraction)) + (rule "eqTermCut" (formula "15") (term "1,0") (inst "s=seqGet<[any]>(s_1, jv_1)") (userinteraction)) (branch "Assume (int)s_1[jv_1] = s_1[jv_1]" (rule "applyEqRigid" (formula "16") (term "1,0") (ifseqformula "1") (userinteraction)) (rule "applyEqRigid" (formula "16") (term "0,1,0") (ifseqformula "4") (userinteraction)) diff --git a/key.core/tacletProofs/seqPerm2/Taclet_schiffl_lemma_2.proof b/key.core/tacletProofs/seqPerm2/Taclet_schiffl_lemma_2.proof index bef3d72c971..f44457aefb4 100644 --- a/key.core/tacletProofs/seqPerm2/Taclet_schiffl_lemma_2.proof +++ b/key.core/tacletProofs/seqPerm2/Taclet_schiffl_lemma_2.proof @@ -370,7 +370,7 @@ 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); +cut (seqGet<[int]>(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; diff --git a/key.core/tacletProofs/seqRules/Taclet_getOfArray2seq.proof b/key.core/tacletProofs/seqRules/Taclet_getOfArray2seq.proof index e5c9361a71b..f9de48a4f90 100644 --- a/key.core/tacletProofs/seqRules/Taclet_getOfArray2seq.proof +++ b/key.core/tacletProofs/seqRules/Taclet_getOfArray2seq.proof @@ -60,8 +60,8 @@ = store(f_h, f_a, arr(f_idx), - any::select(f_h, f_a, arr(f_idx)))") (userinteraction)) -(branch "CUT: f_h = f_h[f_a[f_idx] := any::select(f_h, f_a, arr(f_idx))] TRUE" + select<[any]>(f_h, f_a, arr(f_idx)))") (userinteraction)) +(branch "CUT: f_h = f_h[f_a[f_idx] := select<[any]>(f_h, f_a, arr(f_idx))] TRUE" (rule "applyEqRigid" (formula "3") (term "0,0,0") (ifseqformula "1") (userinteraction)) (rule "applyEqRigid" (formula "3") (term "0,1") (ifseqformula "1") (userinteraction)) (rule "selectOfStore" (formula "3") (term "1") (userinteraction)) @@ -83,7 +83,7 @@ (builtin "One Step Simplification" (formula "4")) (rule "closeTrue" (formula "4")) ) -(branch "CUT: f_h = f_h[f_a[f_idx] := any::select(f_h, f_a, arr(f_idx))] FALSE" +(branch "CUT: f_h = f_h[f_a[f_idx] := select<[any]>(f_h, f_a, arr(f_idx))] FALSE" (rule "equalityToSelect" (formula "2") (inst "ov=ov") (inst "fv=fv") (userinteraction)) (rule "allRight" (formula "2") (inst "sk=ov_0") (userinteraction)) (rule "allRight" (formula "2") (inst "sk=fv_0") (userinteraction)) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqNPermRight.proof b/key.core/tacletProofs/seqRules/Taclet_seqNPermRight.proof index 71911daf3f7..369502af2df 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqNPermRight.proof +++ b/key.core/tacletProofs/seqRules/Taclet_seqNPermRight.proof @@ -65,25 +65,25 @@ ( leq(Z(0(#)), v_iv) & lt(v_iv, v_jv) & lt(v_jv, seqLen(s)) - -> ! int::seqGet(s, v_iv) - = int::seqGet(s, v_jv)) + -> ! seqGet<[int]>(s, v_iv) + = seqGet<[int]>(s, v_jv)) & \\forall int v_iv; ( leq(Z(0(#)), v_iv) & lt(v_iv, seqLen(s)) - -> leq(Z(0(#)), int::seqGet(s, v_iv)) - & lt(int::seqGet(s, v_iv), seqLen(s))) + -> leq(Z(0(#)), seqGet<[int]>(s, v_iv)) + & lt(seqGet<[int]>(s, v_iv), seqLen(s))) & \\forall int v_iv; ( leq(Z(0(#)), v_iv) & lt(v_iv, seqLen(s)) - -> int::instance(any::seqGet(s, v_iv)) + -> instance<[int]>(seqGet<[any]>(s, v_iv)) = TRUE) -> \\forall int iv; ( leq(Z(0(#)), iv) & lt(iv, seqLen(s)) -> \\exists int jv; ( leq(Z(0(#)), jv) & lt(jv, seqLen(s)) - & int::seqGet(s, jv) = iv)))") (userinteraction)) -(branch "CUT: forall int N; forall Seq s; ( s.length = N -> forall int v_iv; forall int v_jv; ( 0 <= v_iv & v_iv < v_jv & v_jv < s.length -> !(int)s[v_iv] = (int)s[v_jv]) & forall int v_iv; ( 0 <= v_iv & v_iv < s.length -> 0 <= (int)s[v_iv] & (int)s[v_iv] < s.length) & forall int v_iv; ( 0 <= v_iv & v_iv < s.length -> int::instance(s[v_iv]) = TRUE) -> forall int iv; ( 0 <= iv & iv < s.length -> exists int jv; ( 0 <= jv & jv < s.length & (int)s[jv] = iv))) TRUE" + & seqGet<[int]>(s, jv) = iv)))") (userinteraction)) +(branch "CUT: forall int N; forall Seq s; ( s.length = N -> forall int v_iv; forall int v_jv; ( 0 <= v_iv & v_iv < v_jv & v_jv < s.length -> !(int)s[v_iv] = (int)s[v_jv]) & forall int v_iv; ( 0 <= v_iv & v_iv < s.length -> 0 <= (int)s[v_iv] & (int)s[v_iv] < s.length) & forall int v_iv; ( 0 <= v_iv & v_iv < s.length -> instance<[int]>(s[v_iv]) = TRUE) -> forall int iv; ( 0 <= iv & iv < s.length -> exists int jv; ( 0 <= jv & jv < s.length & (int)s[jv] = iv))) TRUE" (rule "allLeftHide" (formula "1") (inst "t=seqLen(f_s)") (userinteraction)) (rule "allLeftHide" (formula "1") (inst "t=f_s") (userinteraction)) (rule "impLeft" (formula "1") (userinteraction)) @@ -341,7 +341,7 @@ ) ) ) -(branch "CUT: forall int N; forall Seq s; ( s.length = N -> forall int v_iv; forall int v_jv; ( 0 <= v_iv & v_iv < v_jv & v_jv < s.length -> !(int)s[v_iv] = (int)s[v_jv]) & forall int v_iv; ( 0 <= v_iv & v_iv < s.length -> 0 <= (int)s[v_iv] & (int)s[v_iv] < s.length) & forall int v_iv; ( 0 <= v_iv & v_iv < s.length -> int::instance(s[v_iv]) = TRUE) -> forall int iv; ( 0 <= iv & iv < s.length -> exists int jv; ( 0 <= jv & jv < s.length & (int)s[jv] = iv))) FALSE" +(branch "CUT: forall int N; forall Seq s; ( s.length = N -> forall int v_iv; forall int v_jv; ( 0 <= v_iv & v_iv < v_jv & v_jv < s.length -> !(int)s[v_iv] = (int)s[v_jv]) & forall int v_iv; ( 0 <= v_iv & v_iv < s.length -> 0 <= (int)s[v_iv] & (int)s[v_iv] < s.length) & forall int v_iv; ( 0 <= v_iv & v_iv < s.length -> instance<[int]>(s[v_iv]) = TRUE) -> forall int iv; ( 0 <= iv & iv < s.length -> exists int jv; ( 0 <= jv & jv < s.length & (int)s[jv] = iv))) FALSE" (rule "auto_int_induction_geqZero" (formula "4") (inst "sk=N_0") (userinteraction)) (branch "Base Case" (rule "allRight" (formula "4") (inst "sk=s_0")) @@ -375,18 +375,18 @@ (rule "cut" (inst "cutFormula=\\exists int j; ( leq(Z(0(#)), j) & lt(j, seqLen(s_1)) - & int::seqGet(s_1, j) = N_0)") (userinteraction)) + & seqGet<[int]>(s_1, j) = N_0)") (userinteraction)) (branch "CUT: exists int j; (0 <= j & j < s_1.length & (int)s_1[j] = N_0) TRUE" (rule "exLeft" (formula "1") (inst "sk=j_0") (userinteraction)) (rule "cut" (inst "cutFormula=\\forall int j; ( leq(Z(0(#)), j) & lt(j, seqLen(s_1)) & !j = j_0 - -> !int::seqGet(s_1, j) = N_0)") (userinteraction)) + -> !seqGet<[int]>(s_1, j) = N_0)") (userinteraction)) (branch "CUT: forall int j; ( 0 <= j & j < s_1.length & !j = j_0 -> !(int)s_1[j] = N_0) TRUE" (rule "allLeftHide" (formula "8") (inst "t=seqDef{int i;}(Z(0(#)), N_0, \\if (i = j_0) - \\then (int::seqGet(s_1, N_0)) - \\else (int::seqGet(s_1, i)))") (userinteraction)) + \\then (seqGet<[int]>(s_1, N_0)) + \\else (seqGet<[int]>(s_1, i)))") (userinteraction)) (rule "impLeft" (formula "8") (userinteraction)) (branch (rule "lenOfSeqDef" (formula "11") (term "0")) @@ -2004,7 +2004,7 @@ ) ) (branch "CUT: exists int j; (0 <= j & j < s_1.length & (int)s_1[j] = N_0) FALSE" - (rule "allLeftHide" (formula "6") (inst "t=seqDef{int i;}(Z(0(#)), N_0, int::seqGet(s_1, i))") (userinteraction)) + (rule "allLeftHide" (formula "6") (inst "t=seqDef{int i;}(Z(0(#)), N_0, seqGet<[int]>(s_1, i))") (userinteraction)) (rule "impLeft" (formula "6") (userinteraction)) (branch (rule "lenOfSeqDef" (formula "9") (term "0")) @@ -2724,7 +2724,7 @@ ) ) (branch - (rule "allLeftHide" (formula "6") (inst "t=int::seqGet(s_1, N_0)") (userinteraction)) + (rule "allLeftHide" (formula "6") (inst "t=seqGet<[int]>(s_1, N_0)") (userinteraction)) (rule "impLeft" (formula "6") (userinteraction)) (branch (rule "inEqSimp_ltToLeq" (formula "9") (term "1")) diff --git a/key.core/tacletProofs/seqRules/Taclet_seqNPermRight.proof.old b/key.core/tacletProofs/seqRules/Taclet_seqNPermRight.proof.old index d39886843e8..fb1d8dcf884 100644 --- a/key.core/tacletProofs/seqRules/Taclet_seqNPermRight.proof.old +++ b/key.core/tacletProofs/seqRules/Taclet_seqNPermRight.proof.old @@ -68,25 +68,25 @@ ( leq(Z(0(#)), v_iv) & lt(v_iv, v_jv) & lt(v_jv, seqLen(s)) - -> ! int::seqGet(s, v_iv) - = int::seqGet(s, v_jv)) + -> ! seqGet<[int]>(s, v_iv) + = seqGet<[int]>(s, v_jv)) & \\forall int v_iv; ( leq(Z(0(#)), v_iv) & lt(v_iv, seqLen(s)) - -> leq(Z(0(#)), int::seqGet(s, v_iv)) - & lt(int::seqGet(s, v_iv), seqLen(s))) + -> leq(Z(0(#)), seqGet<[int]>(s, v_iv)) + & lt(seqGet<[int]>(s, v_iv), seqLen(s))) & \\forall int v_iv; ( leq(Z(0(#)), v_iv) & lt(v_iv, seqLen(s)) - -> int::instance(any::seqGet(s, v_iv)) + -> instance<[int]>(seqGet<[any]>(s, v_iv)) = TRUE) -> \\forall int iv; ( leq(Z(0(#)), iv) & lt(iv, seqLen(s)) -> \\exists int jv; ( leq(Z(0(#)), jv) & lt(jv, seqLen(s)) - & int::seqGet(s, jv) = iv)))") (userinteraction)) -(branch "CUT: forall int N; forall Seq s; ( s.length = N -> forall int v_iv; forall int v_jv; ( 0 <= v_iv & v_iv < v_jv & v_jv < s.length -> !(int)s[v_iv] = (int)s[v_jv]) & forall int v_iv; ( 0 <= v_iv & v_iv < s.length -> 0 <= (int)s[v_iv] & (int)s[v_iv] < s.length) & forall int v_iv; ( 0 <= v_iv & v_iv < s.length -> int::instance(s[v_iv]) = TRUE) -> forall int iv; ( 0 <= iv & iv < s.length -> exists int jv; ( 0 <= jv & jv < s.length & (int)s[jv] = iv))) TRUE" + & seqGet<[int]>(s, jv) = iv)))") (userinteraction)) +(branch "CUT: forall int N; forall Seq s; ( s.length = N -> forall int v_iv; forall int v_jv; ( 0 <= v_iv & v_iv < v_jv & v_jv < s.length -> !(int)s[v_iv] = (int)s[v_jv]) & forall int v_iv; ( 0 <= v_iv & v_iv < s.length -> 0 <= (int)s[v_iv] & (int)s[v_iv] < s.length) & forall int v_iv; ( 0 <= v_iv & v_iv < s.length -> instance<[int]>(s[v_iv]) = TRUE) -> forall int iv; ( 0 <= iv & iv < s.length -> exists int jv; ( 0 <= jv & jv < s.length & (int)s[jv] = iv))) TRUE" (rule "allLeftHide" (formula "1") (inst "t=seqLen(f_s)") (userinteraction)) (rule "allLeftHide" (formula "1") (inst "t=f_s") (userinteraction)) (rule "impLeft" (formula "1") (userinteraction)) @@ -485,7 +485,7 @@ ) ) ) -(branch "CUT: forall int N; forall Seq s; ( s.length = N -> forall int v_iv; forall int v_jv; ( 0 <= v_iv & v_iv < v_jv & v_jv < s.length -> !(int)s[v_iv] = (int)s[v_jv]) & forall int v_iv; ( 0 <= v_iv & v_iv < s.length -> 0 <= (int)s[v_iv] & (int)s[v_iv] < s.length) & forall int v_iv; ( 0 <= v_iv & v_iv < s.length -> int::instance(s[v_iv]) = TRUE) -> forall int iv; ( 0 <= iv & iv < s.length -> exists int jv; ( 0 <= jv & jv < s.length & (int)s[jv] = iv))) FALSE" +(branch "CUT: forall int N; forall Seq s; ( s.length = N -> forall int v_iv; forall int v_jv; ( 0 <= v_iv & v_iv < v_jv & v_jv < s.length -> !(int)s[v_iv] = (int)s[v_jv]) & forall int v_iv; ( 0 <= v_iv & v_iv < s.length -> 0 <= (int)s[v_iv] & (int)s[v_iv] < s.length) & forall int v_iv; ( 0 <= v_iv & v_iv < s.length -> instance<[int]>(s[v_iv]) = TRUE) -> forall int iv; ( 0 <= iv & iv < s.length -> exists int jv; ( 0 <= jv & jv < s.length & (int)s[jv] = iv))) FALSE" (rule "hide_right" (formula "5") (userinteraction)) (rule "hide_left" (formula "2") (userinteraction)) (rule "hide_left" (formula "2") (userinteraction)) @@ -572,18 +572,18 @@ (rule "cut" (inst "cutFormula=\\exists int j; ( leq(Z(0(#)), j) & lt(j, seqLen(s_1)) - & int::seqGet(s_1, j) = N_0)") (userinteraction)) + & seqGet<[int]>(s_1, j) = N_0)") (userinteraction)) (branch "CUT: exists int j; (0 <= j & j < s_1.length & (int)s_1[j] = N_0) TRUE" (rule "exLeft" (formula "1") (inst "sk=j_0") (userinteraction)) (rule "cut" (inst "cutFormula=\\forall int j; ( leq(Z(0(#)), j) & lt(j, seqLen(s_1)) & !j = j_0 - -> !int::seqGet(s_1, j) = N_0)") (userinteraction)) + -> !seqGet<[int]>(s_1, j) = N_0)") (userinteraction)) (branch "CUT: forall int j; ( 0 <= j & j < s_1.length & !j = j_0 -> !(int)s_1[j] = N_0) TRUE" (rule "allLeftHide" (formula "8") (inst "t=seqDef{int i;}(Z(0(#)), N_0, \\if (i = j_0) - \\then (int::seqGet(s_1, N_0)) - \\else (int::seqGet(s_1, i)))") (userinteraction)) + \\then (seqGet<[int]>(s_1, N_0)) + \\else (seqGet<[int]>(s_1, i)))") (userinteraction)) (rule "impLeft" (formula "8") (userinteraction)) (branch "Case 1" (rule "andLeft" (formula "2")) @@ -4451,7 +4451,7 @@ ) (branch "CUT: exists int j; (0 <= j & j < s_1.length & (int)s_1[j] = N_0) FALSE" (rule "hide_right" (formula "8") (userinteraction)) - (rule "allLeftHide" (formula "6") (inst "t=seqDef{int i;}(Z(0(#)), N_0, int::seqGet(s_1, i))") (userinteraction)) + (rule "allLeftHide" (formula "6") (inst "t=seqDef{int i;}(Z(0(#)), N_0, seqGet<[int]>(s_1, i))") (userinteraction)) (rule "impLeft" (formula "6") (userinteraction)) (branch "Case 1" (rule "eqSymm" (formula "1") (term "0,1,0,0")) @@ -5428,7 +5428,7 @@ ) ) (branch "Case 2" - (rule "allLeftHide" (formula "6") (inst "t=int::seqGet(s_1, N_0)") (userinteraction)) + (rule "allLeftHide" (formula "6") (inst "t=seqGet<[int]>(s_1, N_0)") (userinteraction)) (rule "impLeft" (formula "6") (userinteraction)) (branch "Case 1" (rule "eqSymm" (formula "1") (term "0,1,0,0")) diff --git a/key.ncore/src/main/antlr/KeYLexer.g4 b/key.ncore/src/main/antlr/KeYLexer.g4 index ffdc0623c5e..82999d2f805 100644 --- a/key.ncore/src/main/antlr/KeYLexer.g4 +++ b/key.ncore/src/main/antlr/KeYLexer.g4 @@ -660,10 +660,6 @@ RGUILLEMETS | '›' ; -IMPLICIT_IDENT - : '<' (LETTER)+ '>' ('$lmtd')? -> type (IDENT) - ; - EQV : '<->' | '\u2194' diff --git a/key.ui/examples/JLS_Conformance_Tests/JLS_15_12_4_Method_Invocation/evaluateArgs.key b/key.ui/examples/JLS_Conformance_Tests/JLS_15_12_4_Method_Invocation/evaluateArgs.key index 276f8a7aaf5..709379246ed 100644 --- a/key.ui/examples/JLS_Conformance_Tests/JLS_15_12_4_Method_Invocation/evaluateArgs.key +++ b/key.ui/examples/JLS_Conformance_Tests/JLS_15_12_4_Method_Invocation/evaluateArgs.key @@ -8,5 +8,5 @@ \problem { // m is called with arguments 1,3 - a1 != null & a1.$created=TRUE & wellFormed(heap) -> \<{ i = 1; j = a1.m(i++, ++i); }\> (j = \if (B::instance(a1) = TRUE) \then (3) \else (4)) + a1 != null & a1.$created=TRUE & wellFormed(heap) -> \<{ i = 1; j = a1.m(i++, ++i); }\> (j = \if (instance<[B]>(a1) = TRUE) \then (3) \else (4)) } diff --git a/key.ui/examples/JLS_Conformance_Tests/JLS_15_12_4_Method_Invocation/evaluateArgsConst.key b/key.ui/examples/JLS_Conformance_Tests/JLS_15_12_4_Method_Invocation/evaluateArgsConst.key index 2f55a4ad520..5fcaae7d8bb 100644 --- a/key.ui/examples/JLS_Conformance_Tests/JLS_15_12_4_Method_Invocation/evaluateArgsConst.key +++ b/key.ui/examples/JLS_Conformance_Tests/JLS_15_12_4_Method_Invocation/evaluateArgsConst.key @@ -7,5 +7,5 @@ } \problem { - a1 != null & a1.$created=TRUE & wellFormed(heap) -> \<{ i = 1; j = a1.m(1, 3); }\> (j = \if (B::instance(a1) = TRUE) \then (3) \else (4)) + a1 != null & a1.$created=TRUE & wellFormed(heap) -> \<{ i = 1; j = a1.m(1, 3); }\> (j = \if (instance<[B]>(a1) = TRUE) \then (3) \else (4)) } diff --git a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleArrayAssignment_AIOOB.key b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleArrayAssignment_AIOOB.key index 6caffb82e68..ef9038d9227 100644 --- a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleArrayAssignment_AIOOB.key +++ b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleArrayAssignment_AIOOB.key @@ -27,5 +27,5 @@ } catch (ArrayStoreException e) { exc = e; } - }\> ( exc != null & java.lang.ArrayIndexOutOfBoundsException::instance(exc) = TRUE & i = 0) + }\> ( exc != null & instance<[java.lang.ArrayIndexOutOfBoundsException]>(exc) = TRUE & i = 0) } diff --git a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleArrayAssignment_ASE.key b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleArrayAssignment_ASE.key index d805b71b2af..1bcfd467c53 100644 --- a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleArrayAssignment_ASE.key +++ b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleArrayAssignment_ASE.key @@ -16,7 +16,7 @@ // when accessing array elements null check comes before index out of bounds check before array store validity check \problem { - o != null & o.$created=TRUE & java.lang.Object::exactInstance(o) = TRUE & wellFormed(heap) -> + o != null & o.$created=TRUE & exactInstance<[java.lang.Object]>(o) = TRUE & wellFormed(heap) -> \<{ a = new String[10]; exc = null; @@ -31,5 +31,5 @@ } catch (ArrayStoreException e) { exc = e; } - }\> ( exc != null & java.lang.ArrayStoreException::instance(exc) = TRUE & i = 0 & a[0] = null) + }\> ( exc != null & instance<[java.lang.ArrayStoreException]>(exc) = TRUE & i = 0 & a[0] = null) } diff --git a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleArrayAssignment_ASE_2.key b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleArrayAssignment_ASE_2.key index b9c8e1eae20..857565eecdc 100644 --- a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleArrayAssignment_ASE_2.key +++ b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleArrayAssignment_ASE_2.key @@ -16,7 +16,7 @@ // when accessing array elements null check comes before index out of bounds check before array store validity check \problem { - o != null & o.$created=TRUE & java.lang.Object::exactInstance(o) = TRUE & wellFormed(heap) -> + o != null & o.$created=TRUE & exactInstance<[java.lang.Object]>(o) = TRUE & wellFormed(heap) -> \<{ a = new String[10]; exc = null; @@ -31,5 +31,5 @@ } catch (ArrayStoreException e) { exc = e; } - }\> ( exc != null & java.lang.ArrayIndexOutOfBoundsException::instance(exc) = TRUE & i = 0 & a[0] = null) + }\> ( exc != null & instance<[java.lang.ArrayIndexOutOfBoundsException]>(exc) = TRUE & i = 0 & a[0] = null) } diff --git a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleArrayAssignment_NPE.key b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleArrayAssignment_NPE.key index 0574eaff365..cd14d5095a3 100644 --- a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleArrayAssignment_NPE.key +++ b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleArrayAssignment_NPE.key @@ -29,5 +29,5 @@ } catch (ArrayStoreException e) { exc = e; } - }\> ( exc != null & NullPointerException::instance(exc) = TRUE & i = 0) + }\> ( exc != null & instance<[NullPointerException]>(exc) = TRUE & i = 0) } diff --git a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleAssignmentNPE.key b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleAssignmentNPE.key index b01311731ce..544f7aa03e5 100644 --- a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleAssignmentNPE.key +++ b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/simpleAssignmentNPE.key @@ -17,6 +17,6 @@ \<{ exc = null; try { l.next = null; } catch (Exception e) { exc = e; } - }\> ( exc != null & NullPointerException::instance(exc) = TRUE ) + }\> ( exc != null & instance<[NullPointerException]>(exc) = TRUE ) } \ No newline at end of file diff --git a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftArrayAssignment_NPE.key b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftArrayAssignment_NPE.key index 8527fa627af..3af0c5eb69c 100644 --- a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftArrayAssignment_NPE.key +++ b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftArrayAssignment_NPE.key @@ -29,5 +29,5 @@ } catch (ArrayStoreException e) { exc = e; } - }\> ( exc != null & java.lang.NullPointerException::instance(exc) = TRUE & i = 0) + }\> ( exc != null & instance<[java.lang.NullPointerException]>(exc) = TRUE & i = 0) } diff --git a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftArrayAssignment_NPE_2.key b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftArrayAssignment_NPE_2.key index e7cd081d3f7..1ac468bb918 100644 --- a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftArrayAssignment_NPE_2.key +++ b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftArrayAssignment_NPE_2.key @@ -30,5 +30,5 @@ } catch (ArrayStoreException e) { exc = e; } - }\> ( exc != null & java.lang.NullPointerException::instance(exc) = TRUE & i = 1) + }\> ( exc != null & instance<[java.lang.NullPointerException]>(exc) = TRUE & i = 1) } diff --git a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftArrayAssignment_NPE_3.key b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftArrayAssignment_NPE_3.key index 4c812797c90..60906b50692 100644 --- a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftArrayAssignment_NPE_3.key +++ b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftArrayAssignment_NPE_3.key @@ -30,5 +30,5 @@ } catch (ArrayStoreException e) { exc = e; } - }\> ( exc != null & java.lang.NullPointerException::instance(exc) = TRUE & i = 1) + }\> ( exc != null & instance<[java.lang.NullPointerException]>(exc) = TRUE & i = 1) } diff --git a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftAssignment_NPE.key b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftAssignment_NPE.key index 4d6df581ac8..49065cf0980 100644 --- a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftAssignment_NPE.key +++ b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftAssignment_NPE.key @@ -19,5 +19,5 @@ \<{ exc = null; try { (k=l.next).next = null; } catch (NullPointerException e) { exc = e; } - }\> ( exc != null & NullPointerException::instance(exc) = TRUE & k = null ) + }\> ( exc != null & instance<[NullPointerException]>(exc) = TRUE & k = null ) } \ No newline at end of file diff --git a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftAssignment_NPE_2.key b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftAssignment_NPE_2.key index c2090841af6..f49606368ad 100644 --- a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftAssignment_NPE_2.key +++ b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftAssignment_NPE_2.key @@ -17,5 +17,5 @@ \<{ exc = null; try { (k=l.next).next = null; } catch (NullPointerException e) { exc = e; } - }\> ( exc != null & NullPointerException::instance(exc) = TRUE & k = null ) + }\> ( exc != null & instance<[NullPointerException]>(exc) = TRUE & k = null ) } \ No newline at end of file diff --git a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftThenUnfoldRightAssignment_NPE.key b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftThenUnfoldRightAssignment_NPE.key index dbb5cc0c404..3a2f6e750a7 100644 --- a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftThenUnfoldRightAssignment_NPE.key +++ b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftThenUnfoldRightAssignment_NPE.key @@ -18,5 +18,5 @@ \<{ exc = null; i = 0; try { l.next.size = ++i; } catch (NullPointerException e) { exc = e; } - }\> ( exc != null & NullPointerException::instance(exc) = TRUE & i = 1) + }\> ( exc != null & instance<[NullPointerException]>(exc) = TRUE & i = 1) } \ No newline at end of file diff --git a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftThenUnfoldRightAssignment_NPE_2.key b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftThenUnfoldRightAssignment_NPE_2.key index a4a02c159f2..98fe86de0b7 100644 --- a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftThenUnfoldRightAssignment_NPE_2.key +++ b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftThenUnfoldRightAssignment_NPE_2.key @@ -18,5 +18,5 @@ \<{ exc = null; i = 0; try { l.next.size = ++i; } catch (NullPointerException e) { exc = e; } - }\> ( exc != null & NullPointerException::instance(exc) = TRUE & i = 0) + }\> ( exc != null & instance<[NullPointerException]>(exc) = TRUE & i = 0) } \ No newline at end of file diff --git a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftThenUnfoldRightThrowNPEOnRight.key b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftThenUnfoldRightThrowNPEOnRight.key index 316ff5ba680..40f86558498 100644 --- a/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftThenUnfoldRightThrowNPEOnRight.key +++ b/key.ui/examples/JLS_Conformance_Tests/JLS_15_26_Assignment/unfoldLeftThenUnfoldRightThrowNPEOnRight.key @@ -24,5 +24,5 @@ } catch (NullPointerException e) { exc = e; } - }\> ( exc != null & NullPointerException::instance(exc) = TRUE & i = 0 & m != null & l.next.next = null) + }\> ( exc != null & instance<[NullPointerException]>(exc) = TRUE & i = 0 & m != null & l.next.next = null) } 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 index e8986266e3d..fb49af6480b 100644 --- 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 @@ -1937,8 +1937,8 @@ (rule "arrayLengthIsAShort" (formula "19") (term "0")) (builtin "One Step Simplification" (formula "19")) (rule "true_left" (formula "19")) - (rule "allLeft" (formula "22") (inst "t=int::select(heap, - IntOpt::final(null, IntOpt::#NONE), + (rule "allLeft" (formula "22") (inst "t=select<[int]>(heap, + final<[IntOpt]>(null, IntOpt::#NONE), IntOpt::#value)")) (rule "cut_direct" (formula "22") (term "1")) (branch "CUT: self.count(a, k_0, IntOpt.NONE.value) * 2 <= k_0 TRUE" @@ -2624,7 +2624,7 @@ (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" + (branch " i_14 = i_14 & IntOpt::#value = IntOpt::#value & !IntOpt::#value = java.lang.Object::#$created TRUE" (rule "castDel2" (formula "38") (term "4,0") (ifseqformula "5") (userinteraction)) (rule "applyEqReverse" (formula "31") (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)) @@ -2865,7 +2865,7 @@ ) ) ) - (branch " i_14 = i_14 & IntOpt::#value = IntOpt::#value & !IntOpt::#value = java.lang.Object:: FALSE" + (branch " i_14 = i_14 & IntOpt::#value = IntOpt::#value & !IntOpt::#value = java.lang.Object::#$created FALSE" (builtin "One Step Simplification" (formula "37")) (rule "closeTrue" (formula "37")) ) @@ -3158,7 +3158,7 @@ (rule "leq_literals" (formula "22") (term "0")) (builtin "One Step Simplification" (formula "22")) (rule "ifthenelse_split" (formula "2") (term "0")) - (branch "f_0 = java.lang.Object:: & o_0 = i_14 TRUE" + (branch "f_0 = java.lang.Object::#$created & 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"))) @@ -3179,7 +3179,7 @@ (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" + (branch "f_0 = java.lang.Object::#$created & 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")) @@ -3239,7 +3239,7 @@ (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" + (branch "f_0 = java.lang.Object::#$initialized & o_0 = i_14 TRUE" (rule "andLeft" (formula "2")) (rule "applyEqReverse" (formula "43") (term "1") (ifseqformula "4")) (rule "hideAuxiliaryEq" (formula "4")) @@ -3264,7 +3264,7 @@ (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" + (branch "f_0 = java.lang.Object::#$initialized & o_0 = i_14 FALSE" (rule "close" (formula "42") (ifseqformula "2")) ) ) @@ -4211,8 +4211,8 @@ (rule "arrayLengthIsAShort" (formula "15") (term "0")) (builtin "One Step Simplification" (formula "15")) (rule "true_left" (formula "15")) - (rule "allLeft" (formula "19") (inst "t=int::select(heap, - IntOpt::final(null, IntOpt::#NONE), + (rule "allLeft" (formula "19") (inst "t=select<[int]>(heap, + final<[IntOpt]>(null, IntOpt::#NONE), IntOpt::#value)")) (rule "cut_direct" (formula "19") (term "1")) (branch "CUT: self.count(a, k_0, IntOpt.NONE.value) * 2 <= k_0 + mc_0 * -1 TRUE" 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 index a935d14e417..3773d9d3e50 100644 --- 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 @@ -164,7 +164,7 @@ (rule "close" (formula "16") (ifseqformula "1")) ) (branch "k = 0 FALSE" - (rule "eqTermCut" (formula "16") (term "0,0,0") (inst "s=int::select(heap, a, arr(sub(k, Z(1(#)))))") (userinteraction)) + (rule "eqTermCut" (formula "16") (term "0,0,0") (inst "s=select<[int]>(heap, a, arr(sub(k, Z(1(#)))))") (userinteraction)) (branch "Assume a[k - 1]@heap[anon(allLocs setMinus a.*, anon_heap<>)] = a[k - 1]" (rule "polySimp_elimSub" (formula "17") (term "3,1,1,1")) (rule "mul_literals" (formula "17") (term "1,3,1,1,1")) diff --git a/key.ui/examples/heap/Transactions/JML depends clause (id_ 0 - java.lang.Object___inv_ for Account).proof b/key.ui/examples/heap/Transactions/JML depends clause (id_ 0 - java.lang.Object___inv_ for Account).proof index cf2af7734e0..70a6ed7d88c 100644 --- a/key.ui/examples/heap/Transactions/JML depends clause (id_ 0 - java.lang.Object___inv_ for Account).proof +++ b/key.ui/examples/heap/Transactions/JML depends clause (id_ 0 - java.lang.Object___inv_ for Account).proof @@ -296,7 +296,7 @@ (builtin "One Step Simplification" (formula "1")) (rule "notLeft" (formula "1")) (rule "cut_direct" (formula "15") (term "1,0")) - (branch " CUT: int::select(anonHeap, self.transactions, total) + (branch " CUT: select<[int]>(anonHeap, self.transactions, total) = self.balance TRUE" (builtin "One Step Simplification" (formula "16")) (rule "cut_direct" (formula "16") (term "1")) @@ -569,7 +569,7 @@ (rule "closeTrue" (formula "14")) ) ) - (branch " CUT: int::select(anonHeap, self.transactions, total) + (branch " CUT: select<[int]>(anonHeap, self.transactions, total) = self.balance FALSE" (builtin "One Step Simplification" (formula "16")) (rule "false_right" (formula "16")) @@ -853,7 +853,7 @@ ) (branch " (self.transactions, total) in self.transactions.footprint FALSE" (rule "cut_direct" (formula "15") (term "1")) - (branch " CUT: int::select(anonHeap, self.transactions, total) + (branch " CUT: select<[int]>(anonHeap, self.transactions, total) = self.balance TRUE" (builtin "One Step Simplification" (formula "16")) (rule "cut_direct" (formula "16") (term "0")) @@ -917,7 +917,7 @@ ) ) ) - (branch " CUT: int::select(anonHeap, self.transactions, total) + (branch " CUT: select<[int]>(anonHeap, self.transactions, total) = self.balance FALSE" (builtin "One Step Simplification" (formula "16")) (rule "false_right" (formula "16")) diff --git a/key.ui/examples/heap/Transactions/JML operation contract (id_ 6 - Main__main).proof b/key.ui/examples/heap/Transactions/JML operation contract (id_ 6 - Main__main).proof index 0fffed83e80..f6eda5c1dd1 100644 --- a/key.ui/examples/heap/Transactions/JML operation contract (id_ 6 - Main__main).proof +++ b/key.ui/examples/heap/Transactions/JML operation contract (id_ 6 - Main__main).proof @@ -514,7 +514,7 @@ (rule "ifthenelse_split" (formula "51") (term "0")) (branch " if (self_1.$created = TRUE) then (TRUE) - else (boolean::select(anonHeap_Account, + else (select<[boolean]>(anonHeap_Account, self_1, $created)) = TRUE TRUE" @@ -523,7 +523,7 @@ ) (branch " if (self_1.$created = TRUE) then (TRUE) - else (boolean::select(anonHeap_Account, + else (select<[boolean]>(anonHeap_Account, self_1, $created)) = TRUE FALSE" @@ -531,32 +531,32 @@ (branch " if ( if ( if ( if ( if ( if ( e_3.$created = TRUE) then (TRUE) - else (boolean::select(anonHeap_Account, + else (select<[boolean]>(anonHeap_Account, e_3, $created)) = TRUE) then (TRUE) - else (boolean::select(anonHeap_deposit, + else (select<[boolean]>(anonHeap_deposit, e_3, $created)) = TRUE) then (TRUE) - else (boolean::select(anonHeap_Account_0, + else (select<[boolean]>(anonHeap_Account_0, e_3, $created)) = TRUE) then (TRUE) - else (boolean::select(anonHeap_deposit_0, + else (select<[boolean]>(anonHeap_deposit_0, e_3, $created)) = TRUE) then (TRUE) - else (boolean::select(anonHeap_transfer, + else (select<[boolean]>(anonHeap_transfer, e_3, $created)) = TRUE) then (TRUE) - else (boolean::select(anonHeap_getTotal, + else (select<[boolean]>(anonHeap_getTotal, e_3, $created)) = TRUE TRUE" @@ -588,32 +588,32 @@ (branch " if ( if ( if ( if ( if ( if ( e_3.$created = TRUE) then (TRUE) - else (boolean::select(anonHeap_Account, + else (select<[boolean]>(anonHeap_Account, e_3, $created)) = TRUE) then (TRUE) - else (boolean::select(anonHeap_deposit, + else (select<[boolean]>(anonHeap_deposit, e_3, $created)) = TRUE) then (TRUE) - else (boolean::select(anonHeap_Account_0, + else (select<[boolean]>(anonHeap_Account_0, e_3, $created)) = TRUE) then (TRUE) - else (boolean::select(anonHeap_deposit_0, + else (select<[boolean]>(anonHeap_deposit_0, e_3, $created)) = TRUE) then (TRUE) - else (boolean::select(anonHeap_transfer, + else (select<[boolean]>(anonHeap_transfer, e_3, $created)) = TRUE) then (TRUE) - else (boolean::select(anonHeap_getTotal, + else (select<[boolean]>(anonHeap_getTotal, e_3, $created)) = TRUE FALSE" @@ -719,12 +719,12 @@ (rule "polySimp_sepPosMonomial" (formula "33")) (rule "mul_literals" (formula "33") (term "1")) (rule "ifthenelse_split" (formula "45") (term "0")) - (branch " boolean::select(anonHeap_Account, self_1, $created) + (branch " select<[boolean]>(anonHeap_Account, self_1, $created) = TRUE TRUE" (builtin "One Step Simplification" (formula "46")) (rule "closeTrue" (formula "46")) ) - (branch " boolean::select(anonHeap_Account, self_1, $created) + (branch " select<[boolean]>(anonHeap_Account, self_1, $created) = TRUE FALSE" (rule "cut_direct" (formula "50") (term "1")) (branch " CUT: wellFormed(heapAfter_getTotal) TRUE" @@ -3647,7 +3647,7 @@ (rule "ifthenelse_split" (formula "31") (term "0")) (branch " if (self_1.$created = TRUE) then (TRUE) - else (boolean::select(anonHeap_Account, + else (select<[boolean]>(anonHeap_Account, self_1, $created)) = TRUE TRUE" @@ -3656,7 +3656,7 @@ ) (branch " if (self_1.$created = TRUE) then (TRUE) - else (boolean::select(anonHeap_Account, + else (select<[boolean]>(anonHeap_Account, self_1, $created)) = TRUE FALSE" 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 a27b598b69c..e5ad7b3984a 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 @@ -829,7 +829,7 @@ (rule "hideAuxiliaryEq" (formula "8")) (rule "eqSymm" (formula "7")) (rule "allLeft" (formula "6") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "6") (term "1,0")) @@ -861,7 +861,7 @@ (builtin "One Step Simplification" (formula "6")) (rule "notLeft" (formula "6")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "8") (term "1,0")) @@ -912,14 +912,14 @@ (builtin "One Step Simplification" (formula "4")) (rule "true_left" (formula "4")) (rule "allLeft" (formula "4") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "4") (term "0,0,0") (ifseqformula "9")) (builtin "One Step Simplification" (formula "4")) (rule "true_left" (formula "4")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "3") (term "1")) @@ -989,7 +989,7 @@ (rule "applyEqReverse" (formula "14") (term "0,0") (ifseqformula "13")) (rule "hideAuxiliaryEq" (formula "13")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "11") (term "1,0,0,0,0,0")) @@ -2251,7 +2251,7 @@ (rule "hideAuxiliaryEq" (formula "8")) (rule "eqSymm" (formula "7")) (rule "allLeft" (formula "6") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "6") (term "1")) @@ -2283,7 +2283,7 @@ (builtin "One Step Simplification" (formula "6")) (rule "notLeft" (formula "6")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "8") (term "1")) @@ -2334,14 +2334,14 @@ (builtin "One Step Simplification" (formula "4")) (rule "true_left" (formula "4")) (rule "allLeft" (formula "4") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "4") (term "0,0,0") (ifseqformula "9")) (builtin "One Step Simplification" (formula "4")) (rule "true_left" (formula "4")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) @@ -2442,7 +2442,7 @@ (rule "applyEqReverse" (formula "17") (term "0,0") (ifseqformula "16")) (rule "hideAuxiliaryEq" (formula "16")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "13") (term "1,0,0,0,0,0")) @@ -5202,7 +5202,7 @@ (rule "leq_literals" (formula "12") (term "0,1")) (builtin "One Step Simplification" (formula "12")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "13") (term "1")) @@ -5245,7 +5245,7 @@ (builtin "One Step Simplification" (formula "10")) (rule "true_left" (formula "10")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "10") (term "1,0")) @@ -5736,7 +5736,7 @@ (rule "qeq_literals" (formula "12") (term "0,1")) (builtin "One Step Simplification" (formula "12")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "13") (term "1")) @@ -5773,7 +5773,7 @@ (rule "hideAuxiliaryEq" (formula "14")) (rule "eqSymm" (formula "13")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "11") (term "1,0")) @@ -5901,7 +5901,7 @@ (builtin "One Step Simplification" (formula "7")) (rule "true_left" (formula "7")) (rule "allLeft" (formula "7") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "7") (term "1,0")) @@ -5927,7 +5927,7 @@ (builtin "One Step Simplification" (formula "7")) (rule "true_left" (formula "7")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "8") (term "0,0,0") (ifseqformula "13")) @@ -6012,7 +6012,7 @@ (builtin "One Step Simplification" (formula "17")) (rule "commute_or_2" (formula "17") (term "0")) (rule "allLeft" (formula "18") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "18") (term "1,0,0,0,0")) @@ -6484,7 +6484,7 @@ (builtin "One Step Simplification" (formula "34")) (rule "false_right" (formula "34")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "10") (term "1,0")) @@ -6557,7 +6557,7 @@ (rule "qeq_literals" (formula "11") (term "0,1")) (builtin "One Step Simplification" (formula "11")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "12") (term "1")) @@ -6809,7 +6809,7 @@ (builtin "One Step Simplification" (formula "9")) (rule "true_left" (formula "9")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "9") (term "1")) @@ -6846,7 +6846,7 @@ (builtin "One Step Simplification" (formula "9")) (rule "true_left" (formula "9")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "10") (term "0,0,0") (ifseqformula "16")) @@ -6944,7 +6944,7 @@ (rule "qeq_literals" (formula "22") (term "0,1,0,0,0,0")) (builtin "One Step Simplification" (formula "22")) (rule "allLeft" (formula "23") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "23") (term "1,0,0,0,0,0")) @@ -8061,7 +8061,7 @@ (builtin "One Step Simplification" (formula "11")) (rule "notLeft" (formula "11")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "11") (term "1,0")) @@ -8163,7 +8163,7 @@ (rule "leq_literals" (formula "13") (term "0,1")) (builtin "One Step Simplification" (formula "13")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "14") (term "1,0")) @@ -8356,7 +8356,7 @@ (rule "add_literals" (formula "19") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "19")) (rule "allLeft" (formula "20") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "20") (term "1,0,0,0,0,0")) @@ -8393,7 +8393,7 @@ (rule "add_zero_left" (formula "20") (term "1,0,1,0")) (builtin "One Step Simplification" (formula "20")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "9") (term "0,0,0") (ifseqformula "15")) @@ -8409,7 +8409,7 @@ (builtin "One Step Simplification" (formula "9")) (rule "true_left" (formula "9")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "8") (term "1,0")) @@ -8583,7 +8583,7 @@ (rule "add_literals" (formula "19") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "19")) (rule "allLeft" (formula "20") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "20") (term "1,0,0,0,0,0")) @@ -8907,7 +8907,7 @@ (builtin "One Step Simplification" (formula "10")) (rule "notLeft" (formula "10")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "10") (term "1,0")) @@ -9029,7 +9029,7 @@ (rule "qeq_literals" (formula "15") (term "0,1")) (builtin "One Step Simplification" (formula "15")) (rule "allLeft" (formula "16") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "16") (term "1,0")) @@ -9358,7 +9358,7 @@ (builtin "One Step Simplification" (formula "20")) (rule "true_left" (formula "20")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "9") (term "1,0")) @@ -9466,7 +9466,7 @@ (rule "qeq_literals" (formula "15") (term "0,1")) (builtin "One Step Simplification" (formula "15")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "8") (term "1,0")) @@ -9508,14 +9508,14 @@ (builtin "One Step Simplification" (formula "8")) (rule "true_left" (formula "8")) (rule "allLeft" (formula "6") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "6") (term "0,0,0") (ifseqformula "10")) (builtin "One Step Simplification" (formula "6")) (rule "true_left" (formula "6")) (rule "allLeft" (formula "5") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "5") (term "1")) @@ -10324,7 +10324,7 @@ (builtin "One Step Simplification" (formula "8")) (rule "notLeft" (formula "8")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "8") (term "1")) @@ -10403,7 +10403,7 @@ (builtin "One Step Simplification" (formula "12")) (rule "commute_or_2" (formula "12") (term "0")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "10") (term "1,0")) @@ -10658,7 +10658,7 @@ (rule "hideAuxiliaryEq" (formula "11")) (rule "eqSymm" (formula "10")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "11") (term "1,0")) @@ -10736,7 +10736,7 @@ (builtin "One Step Simplification" (formula "34")) (rule "false_right" (formula "34")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "8") (term "1")) @@ -10852,7 +10852,7 @@ (rule "inEqSimp_sepPosMonomial0" (formula "20") (term "1")) (rule "mul_literals" (formula "20") (term "1,1")) (rule "allLeft" (formula "16") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "16") (term "1,0,0,0,0")) @@ -10928,7 +10928,7 @@ (builtin "One Step Simplification" (formula "5")) (rule "true_left" (formula "5")) (rule "allLeft" (formula "5") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "5") (term "1")) @@ -10961,7 +10961,7 @@ (builtin "One Step Simplification" (formula "5")) (rule "true_left" (formula "5")) (rule "allLeft" (formula "6") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "6") (term "0,0,0") (ifseqformula "11")) @@ -11098,7 +11098,7 @@ (builtin "One Step Simplification" (formula "10")) (rule "commute_or_2" (formula "10") (term "0")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "8") (term "1,0")) @@ -11255,7 +11255,7 @@ (rule "hideAuxiliaryEq" (formula "13")) (rule "eqSymm" (formula "12")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "13") (term "1")) @@ -11881,7 +11881,7 @@ (builtin "One Step Simplification" (formula "11")) (rule "true_left" (formula "11")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "11") (term "1,0")) @@ -11970,7 +11970,7 @@ (rule "qeq_literals" (formula "12") (term "0,1")) (builtin "One Step Simplification" (formula "12")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "13") (term "1,0")) @@ -12484,7 +12484,7 @@ (rule "qeq_literals" (formula "12") (term "0,1")) (builtin "One Step Simplification" (formula "12")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "13") (term "1,0")) @@ -12572,7 +12572,7 @@ (builtin "One Step Simplification" (formula "37")) (rule "false_right" (formula "37")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "10") (term "1,0")) @@ -12644,7 +12644,7 @@ (builtin "One Step Simplification" (formula "12")) (rule "true_left" (formula "12")) (rule "allLeft" (formula "7") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "7") (term "1")) @@ -12677,7 +12677,7 @@ (builtin "One Step Simplification" (formula "7")) (rule "true_left" (formula "7")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "8") (term "0,0,0") (ifseqformula "13")) @@ -12744,7 +12744,7 @@ (rule "qeq_literals" (formula "20") (term "0,1,0")) (builtin "One Step Simplification" (formula "20")) (rule "allLeft" (formula "16") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "16") (term "1,0,0,0,0")) @@ -13247,7 +13247,7 @@ (builtin "One Step Simplification" (formula "35")) (rule "false_right" (formula "35")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "10") (term "1")) @@ -13320,7 +13320,7 @@ (rule "leq_literals" (formula "11") (term "0,1")) (builtin "One Step Simplification" (formula "11")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "12") (term "1,0")) @@ -13567,7 +13567,7 @@ (builtin "One Step Simplification" (formula "10")) (rule "true_left" (formula "10")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "10") (term "0,0,0") (ifseqformula "16")) @@ -13585,7 +13585,7 @@ (builtin "One Step Simplification" (formula "9")) (rule "true_left" (formula "9")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "9") (term "1")) @@ -13707,7 +13707,7 @@ (rule "qeq_literals" (formula "22") (term "0,1,0,0,0,0")) (builtin "One Step Simplification" (formula "22")) (rule "allLeft" (formula "23") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "23") (term "1,0,0,0,0,0")) @@ -14896,7 +14896,7 @@ (rule "qeq_literals" (formula "13") (term "0,1")) (builtin "One Step Simplification" (formula "13")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "14") (term "1")) @@ -14933,7 +14933,7 @@ (rule "hideAuxiliaryEq" (formula "15")) (rule "eqSymm" (formula "14")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "11") (term "1,0")) @@ -15130,7 +15130,7 @@ (rule "add_literals" (formula "19") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "19")) (rule "allLeft" (formula "20") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "20") (term "1,0,0,0,0,0")) @@ -15180,7 +15180,7 @@ (builtin "One Step Simplification" (formula "9")) (rule "true_left" (formula "9")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "9") (term "0,0,0") (ifseqformula "15")) @@ -15198,7 +15198,7 @@ (builtin "One Step Simplification" (formula "8")) (rule "true_left" (formula "8")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "8") (term "1")) @@ -15376,7 +15376,7 @@ (rule "add_literals" (formula "20") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "20")) (rule "allLeft" (formula "21") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "21") (term "1,0,0,0,0,0")) @@ -15608,7 +15608,7 @@ (builtin "One Step Simplification" (formula "10")) (rule "notLeft" (formula "10")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "10") (term "1")) @@ -15715,7 +15715,7 @@ (rule "leq_literals" (formula "12") (term "0,1")) (builtin "One Step Simplification" (formula "12")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "13") (term "1")) @@ -15926,7 +15926,7 @@ (rule "applyEqReverse" (formula "27") (term "0,0") (ifseqformula "26")) (rule "hideAuxiliaryEq" (formula "26")) (rule "allLeft" (formula "21") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "21") (term "1,0,0,0,0")) @@ -16284,7 +16284,7 @@ (builtin "One Step Simplification" (formula "20")) (rule "true_left" (formula "20")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "9") (term "1")) @@ -16381,7 +16381,7 @@ (builtin "One Step Simplification" (formula "5")) (rule "true_left" (formula "5")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "8") (term "1")) @@ -16423,7 +16423,7 @@ (builtin "One Step Simplification" (formula "8")) (rule "true_left" (formula "8")) (rule "allLeft" (formula "5") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "5") (term "1,0")) @@ -16449,7 +16449,7 @@ (builtin "One Step Simplification" (formula "5")) (rule "true_left" (formula "5")) (rule "allLeft" (formula "6") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "6") (term "0,0,0") (ifseqformula "10")) @@ -17261,7 +17261,7 @@ (builtin "One Step Simplification" (formula "11")) (rule "commute_or_2" (formula "11") (term "0")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "9") (term "1")) @@ -17349,7 +17349,7 @@ (builtin "One Step Simplification" (formula "11")) (rule "notLeft" (formula "11")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "11") (term "1,0")) @@ -17492,7 +17492,7 @@ (rule "replace_known_left" (formula "33") (term "1") (ifseqformula "13")) (builtin "One Step Simplification" (formula "33")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "9") (term "1")) @@ -17650,7 +17650,7 @@ (rule "hideAuxiliaryEq" (formula "11")) (rule "eqSymm" (formula "10")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "11") (term "1,0")) @@ -17801,7 +17801,7 @@ (rule "add_literals" (formula "16") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "16")) (rule "allLeft" (formula "17") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "17") (term "1,0,0,0,0,0")) @@ -17845,7 +17845,7 @@ (builtin "One Step Simplification" (formula "5")) (rule "true_left" (formula "5")) (rule "allLeft" (formula "5") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "5") (term "1,0")) @@ -17886,7 +17886,7 @@ (builtin "One Step Simplification" (formula "6")) (rule "true_left" (formula "6")) (rule "allLeft" (formula "6") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "6") (term "0,0,0") (ifseqformula "11")) @@ -17965,7 +17965,7 @@ (rule "replace_known_right" (formula "34") (term "0,0,0") (ifseqformula "28")) (builtin "One Step Simplification" (formula "34")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "8") (term "1,0")) @@ -18071,7 +18071,7 @@ (rule "hideAuxiliaryEq" (formula "13")) (rule "eqSymm" (formula "12")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "13") (term "1,0")) @@ -18810,7 +18810,7 @@ (builtin "One Step Simplification" (formula "9")) (rule "true_left" (formula "9")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "9") (term "1,0")) @@ -18860,7 +18860,7 @@ (rule "leq_literals" (formula "11") (term "0,1")) (builtin "One Step Simplification" (formula "11")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "12") (term "1")) @@ -19505,7 +19505,7 @@ (rule "leq_literals" (formula "12") (term "0,1")) (builtin "One Step Simplification" (formula "12")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "13") (term "1,0")) @@ -19593,7 +19593,7 @@ (builtin "One Step Simplification" (formula "10")) (rule "true_left" (formula "10")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "10") (term "1")) @@ -19676,14 +19676,14 @@ (builtin "One Step Simplification" (formula "8")) (rule "true_left" (formula "8")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "8") (term "0,0,0") (ifseqformula "13")) (builtin "One Step Simplification" (formula "8")) (rule "true_left" (formula "8")) (rule "allLeft" (formula "7") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "7") (term "1,0")) @@ -19843,7 +19843,7 @@ (rule "add_literals" (formula "20") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "20")) (rule "allLeft" (formula "21") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "21") (term "1,0,0,0,0,0")) @@ -20288,7 +20288,7 @@ (rule "replace_known_right" (formula "15") (term "0") (ifseqformula "30")) (builtin "One Step Simplification" (formula "15")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "10") (term "1")) @@ -20361,7 +20361,7 @@ (rule "qeq_literals" (formula "11") (term "0,1")) (builtin "One Step Simplification" (formula "11")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "12") (term "1,0")) @@ -20576,14 +20576,14 @@ (builtin "One Step Simplification" (formula "9")) (rule "true_left" (formula "9")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "10") (term "0,0,0") (ifseqformula "16")) (builtin "One Step Simplification" (formula "10")) (rule "true_left" (formula "10")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "9") (term "1")) @@ -20703,7 +20703,7 @@ (rule "leq_literals" (formula "21") (term "0,1,0,0,0,0")) (builtin "One Step Simplification" (formula "21")) (rule "allLeft" (formula "22") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "22") (term "1,0,0,0,0,0")) @@ -21790,7 +21790,7 @@ (builtin "One Step Simplification" (formula "11")) (rule "notLeft" (formula "11")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "11") (term "1,0")) @@ -21881,7 +21881,7 @@ (rule "leq_literals" (formula "13") (term "0,1")) (builtin "One Step Simplification" (formula "13")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "14") (term "1")) @@ -22067,7 +22067,7 @@ (rule "add_literals" (formula "19") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "19")) (rule "allLeft" (formula "20") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "20") (term "1,0,0,0,0,0")) @@ -22117,7 +22117,7 @@ (builtin "One Step Simplification" (formula "9")) (rule "true_left" (formula "9")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "9") (term "0,0,0") (ifseqformula "15")) @@ -22131,7 +22131,7 @@ (builtin "One Step Simplification" (formula "8")) (rule "true_left" (formula "8")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "8") (term "1,0")) @@ -22282,7 +22282,7 @@ (rule "qeq_literals" (formula "24") (term "0,1,0")) (builtin "One Step Simplification" (formula "24")) (rule "allLeft" (formula "19") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "19") (term "1,0,0,0,0")) @@ -22358,7 +22358,7 @@ (builtin "One Step Simplification" (formula "7")) (rule "true_left" (formula "7")) (rule "allLeft" (formula "7") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "7") (term "1")) @@ -22407,7 +22407,7 @@ (builtin "One Step Simplification" (formula "8")) (rule "true_left" (formula "8")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "8") (term "0,0,0") (ifseqformula "14")) @@ -22663,7 +22663,7 @@ (builtin "One Step Simplification" (formula "10")) (rule "notLeft" (formula "10")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "10") (term "1,0")) @@ -22785,7 +22785,7 @@ (rule "leq_literals" (formula "15") (term "0,1")) (builtin "One Step Simplification" (formula "15")) (rule "allLeft" (formula "16") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "16") (term "1,0")) @@ -23165,7 +23165,7 @@ (rule "qeq_literals" (formula "14") (term "0,1")) (builtin "One Step Simplification" (formula "14")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "11") (term "1")) @@ -23211,7 +23211,7 @@ (builtin "One Step Simplification" (formula "6")) (rule "true_left" (formula "6")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "8") (term "1,0")) @@ -24085,7 +24085,7 @@ (builtin "One Step Simplification" (formula "8")) (rule "notLeft" (formula "8")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "8") (term "1")) @@ -24156,7 +24156,7 @@ (builtin "One Step Simplification" (formula "7")) (rule "true_left" (formula "7")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "10") (term "1,0")) @@ -24353,7 +24353,7 @@ (builtin "One Step Simplification" (formula "12")) (rule "commute_or_2" (formula "12") (term "0")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "9") (term "1,0")) @@ -24466,7 +24466,7 @@ (builtin "One Step Simplification" (formula "9")) (rule "true_left" (formula "9")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "11") (term "1")) @@ -24617,7 +24617,7 @@ (rule "add_literals" (formula "16") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "16")) (rule "allLeft" (formula "17") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "17") (term "1,0,0,0,0")) @@ -24654,7 +24654,7 @@ (rule "add_zero_left" (formula "17") (term "1,0,1,0")) (builtin "One Step Simplification" (formula "17")) (rule "allLeft" (formula "6") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "6") (term "0,0,0") (ifseqformula "11")) @@ -24683,7 +24683,7 @@ (builtin "One Step Simplification" (formula "6")) (rule "true_left" (formula "6")) (rule "allLeft" (formula "5") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "5") (term "1")) @@ -24847,7 +24847,7 @@ (rule "replace_known_right" (formula "36") (term "0,0,0") (ifseqformula "29")) (builtin "One Step Simplification" (formula "36")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "8") (term "1,0")) @@ -24953,7 +24953,7 @@ (rule "hideAuxiliaryEq" (formula "13")) (rule "eqSymm" (formula "12")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "13") (term "1,0")) @@ -25085,7 +25085,7 @@ (rule "add_literals" (formula "18") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "18")) (rule "allLeft" (formula "19") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "19") (term "1,0,0,0,0")) @@ -25765,7 +25765,7 @@ (rule "leq_literals" (formula "15") (term "0,1")) (builtin "One Step Simplification" (formula "15")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "11") (term "1,0")) @@ -25843,7 +25843,7 @@ (rule "qeq_literals" (formula "12") (term "0,1")) (builtin "One Step Simplification" (formula "12")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "13") (term "1")) @@ -26330,7 +26330,7 @@ (rule "leq_literals" (formula "12") (term "0,1")) (builtin "One Step Simplification" (formula "12")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "13") (term "1,0")) @@ -26418,7 +26418,7 @@ (builtin "One Step Simplification" (formula "10")) (rule "true_left" (formula "10")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "10") (term "1,0")) @@ -26501,14 +26501,14 @@ (builtin "One Step Simplification" (formula "7")) (rule "true_left" (formula "7")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "8") (term "0,0,0") (ifseqformula "13")) (builtin "One Step Simplification" (formula "8")) (rule "true_left" (formula "8")) (rule "allLeft" (formula "7") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "7") (term "1")) @@ -26650,7 +26650,7 @@ (rule "add_literals" (formula "19") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "19")) (rule "allLeft" (formula "20") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "20") (term "1,0,0,0,0,0")) @@ -27113,7 +27113,7 @@ (rule "replace_known_right" (formula "15") (term "0") (ifseqformula "30")) (builtin "One Step Simplification" (formula "15")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "10") (term "1")) @@ -27186,7 +27186,7 @@ (rule "qeq_literals" (formula "11") (term "0,1")) (builtin "One Step Simplification" (formula "11")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "12") (term "1,0")) @@ -27399,7 +27399,7 @@ (builtin "One Step Simplification" (formula "9")) (rule "true_left" (formula "9")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "9") (term "1,0")) @@ -27434,7 +27434,7 @@ (builtin "One Step Simplification" (formula "10")) (rule "true_left" (formula "10")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "10") (term "0,0,0") (ifseqformula "16")) @@ -27536,7 +27536,7 @@ (rule "qeq_literals" (formula "22") (term "0,1,0,0,0,0")) (builtin "One Step Simplification" (formula "22")) (rule "allLeft" (formula "23") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "23") (term "1,0,0,0,0,0")) @@ -28660,7 +28660,7 @@ (builtin "One Step Simplification" (formula "11")) (rule "notLeft" (formula "11")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "11") (term "1")) @@ -28813,7 +28813,7 @@ (rule "leq_literals" (formula "13") (term "0,1")) (builtin "One Step Simplification" (formula "13")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "14") (term "1")) @@ -28980,7 +28980,7 @@ (builtin "One Step Simplification" (formula "23")) (rule "true_left" (formula "23")) (rule "allLeft" (formula "19") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "19") (term "1,0,0,0,0")) @@ -29059,7 +29059,7 @@ (builtin "One Step Simplification" (formula "8")) (rule "true_left" (formula "8")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "8") (term "1,0")) @@ -29090,7 +29090,7 @@ (builtin "One Step Simplification" (formula "8")) (rule "true_left" (formula "8")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "9") (term "0,0,0") (ifseqformula "15")) @@ -29222,7 +29222,7 @@ (rule "qeq_literals" (formula "24") (term "0,1,0")) (builtin "One Step Simplification" (formula "24")) (rule "allLeft" (formula "19") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "19") (term "1,0,0,0,0,0")) @@ -29297,7 +29297,7 @@ (builtin "One Step Simplification" (formula "8")) (rule "true_left" (formula "8")) (rule "allLeft" (formula "7") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "7") (term "1,0")) @@ -29339,7 +29339,7 @@ (builtin "One Step Simplification" (formula "7")) (rule "true_left" (formula "7")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "8") (term "0,0,0") (ifseqformula "14")) @@ -29533,7 +29533,7 @@ (builtin "One Step Simplification" (formula "10")) (rule "notLeft" (formula "10")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "10") (term "1,0")) @@ -29691,7 +29691,7 @@ (rule "qeq_literals" (formula "15") (term "0,1")) (builtin "One Step Simplification" (formula "15")) (rule "allLeft" (formula "16") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "16") (term "1")) @@ -30035,7 +30035,7 @@ (builtin "One Step Simplification" (formula "20")) (rule "true_left" (formula "20")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "9") (term "1,0")) @@ -30143,7 +30143,7 @@ (builtin "One Step Simplification" (formula "5")) (rule "true_left" (formula "5")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "8") (term "1,0")) @@ -30185,7 +30185,7 @@ (builtin "One Step Simplification" (formula "8")) (rule "true_left" (formula "8")) (rule "allLeft" (formula "5") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "5") (term "1,0")) @@ -30211,7 +30211,7 @@ (builtin "One Step Simplification" (formula "5")) (rule "true_left" (formula "5")) (rule "allLeft" (formula "6") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "6") (term "0,0,0") (ifseqformula "10")) @@ -31028,7 +31028,7 @@ (builtin "One Step Simplification" (formula "11")) (rule "commute_or_2" (formula "11") (term "0")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "9") (term "1")) @@ -31116,7 +31116,7 @@ (builtin "One Step Simplification" (formula "11")) (rule "notLeft" (formula "11")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "11") (term "1,0")) @@ -31289,7 +31289,7 @@ (builtin "One Step Simplification" (formula "11")) (rule "commute_or_2" (formula "11") (term "0")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "9") (term "1,0")) @@ -31417,7 +31417,7 @@ (rule "hideAuxiliaryEq" (formula "11")) (rule "eqSymm" (formula "10")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "11") (term "1,0")) @@ -31556,7 +31556,7 @@ (rule "hideAuxiliaryEq" (formula "20")) (rule "eqSymm" (formula "20") (term "0")) (rule "allLeft" (formula "16") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "16") (term "1,0,0,0,0")) @@ -31605,7 +31605,7 @@ (rule "add_literals" (formula "17") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "17")) (rule "allLeft" (formula "5") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "5") (term "1")) @@ -31657,7 +31657,7 @@ (builtin "One Step Simplification" (formula "6")) (rule "true_left" (formula "6")) (rule "allLeft" (formula "6") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "6") (term "0,0,0") (ifseqformula "11")) @@ -31831,7 +31831,7 @@ (builtin "One Step Simplification" (formula "11")) (rule "commute_or_2" (formula "11") (term "0")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "8") (term "1,0")) @@ -31937,7 +31937,7 @@ (rule "hideAuxiliaryEq" (formula "13")) (rule "eqSymm" (formula "12")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "13") (term "1")) @@ -34614,7 +34614,7 @@ (rule "leq_literals" (formula "13") (term "0,1")) (builtin "One Step Simplification" (formula "13")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "14") (term "1,0")) @@ -34665,7 +34665,7 @@ (rule "hideAuxiliaryEq" (formula "16")) (rule "eqSymm" (formula "15")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "12") (term "1,0")) @@ -34705,7 +34705,7 @@ (rule "replace_known_right" (formula "22") (term "0") (ifseqformula "35")) (builtin "One Step Simplification" (formula "22")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "9") (term "1,0")) @@ -34748,7 +34748,7 @@ (builtin "One Step Simplification" (formula "10")) (rule "true_left" (formula "10")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "10") (term "0,0,0") (ifseqformula "15")) @@ -34815,7 +34815,7 @@ (rule "inEqSimp_contradInEq1" (formula "20") (term "1,0") (ifseqformula "29")) (rule "qeq_literals" (formula "20") (term "0,1,0")) (builtin "One Step Simplification" (formula "20")) - (rule "allLeft" (formula "21") (inst "t=int::select(anonIn_heap<>, + (rule "allLeft" (formula "21") (inst "t=select<[int]>(anonIn_heap<>, anonIn_current, IntNode::$data)")) (rule "pullOutSelect" (formula "21") (term "0,0,0") (inst "selectSK=IntNode_next_3")) @@ -34874,7 +34874,7 @@ (builtin "One Step Simplification" (formula "18")) (rule "commute_or_2" (formula "18") (term "0")) (rule "allLeft" (formula "19") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "19") (term "1,0,0,0,0,0")) @@ -35240,7 +35240,7 @@ (rule "qeq_literals" (formula "13") (term "0,1")) (builtin "One Step Simplification" (formula "13")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "12") (term "1")) @@ -35272,7 +35272,7 @@ (builtin "One Step Simplification" (formula "12")) (rule "notLeft" (formula "12")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "14") (term "1,0")) @@ -35344,7 +35344,7 @@ (builtin "One Step Simplification" (formula "9")) (rule "true_left" (formula "9")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "9") (term "1")) @@ -35374,7 +35374,7 @@ (builtin "One Step Simplification" (formula "10")) (rule "true_left" (formula "10")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "10") (term "0,0,0") (ifseqformula "15")) @@ -35440,7 +35440,7 @@ (builtin "One Step Simplification" (formula "21")) (rule "applyEqReverse" (formula "22") (term "0,0,0") (ifseqformula "21")) (rule "hideAuxiliaryEq" (formula "21")) - (rule "allLeft" (formula "22") (inst "t=int::select(anonIn_heap<>, + (rule "allLeft" (formula "22") (inst "t=select<[int]>(anonIn_heap<>, anonIn_current, IntNode::$data)")) (rule "pullOutSelect" (formula "22") (term "0,0,0") (inst "selectSK=IntNode_next_4")) @@ -35496,7 +35496,7 @@ (builtin "One Step Simplification" (formula "18")) (rule "commute_or_2" (formula "18") (term "0")) (rule "allLeft" (formula "19") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "19") (term "1,0,0,0,0,0")) @@ -35837,7 +35837,7 @@ (builtin "One Step Simplification" (formula "7")) (rule "cnf_rightDist" (formula "7") (term "0,0,0,0,0,1,0,0,0,0")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "12") (term "1")) @@ -35902,7 +35902,7 @@ (rule "qeq_literals" (formula "13") (term "0,1")) (builtin "One Step Simplification" (formula "13")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "14") (term "1")) @@ -35970,7 +35970,7 @@ (builtin "One Step Simplification" (formula "9")) (rule "true_left" (formula "9")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "9") (term "1,0")) @@ -35996,7 +35996,7 @@ (builtin "One Step Simplification" (formula "9")) (rule "true_left" (formula "9")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "10") (term "0,0,0") (ifseqformula "15")) @@ -36061,7 +36061,7 @@ (rule "inEqSimp_contradInEq1" (formula "20") (term "1,0") (ifseqformula "29")) (rule "qeq_literals" (formula "20") (term "0,1,0")) (builtin "One Step Simplification" (formula "20")) - (rule "allLeft" (formula "21") (inst "t=int::select(anonIn_heap<>, + (rule "allLeft" (formula "21") (inst "t=select<[int]>(anonIn_heap<>, anonIn_current, IntNode::$data)")) (rule "pullOutSelect" (formula "21") (term "0,0,0") (inst "selectSK=IntNode_next_3")) @@ -36126,7 +36126,7 @@ (builtin "One Step Simplification" (formula "18")) (rule "commute_or_2" (formula "18") (term "0")) (rule "allLeft" (formula "19") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "19") (term "1,0,0,0,0,0")) @@ -36462,7 +36462,7 @@ (builtin "One Step Simplification" (formula "7")) (rule "cnf_rightDist" (formula "7") (term "0,0,0,0,1,0,0,0,0,0")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "12") (term "1")) @@ -36527,7 +36527,7 @@ (rule "qeq_literals" (formula "13") (term "0,1")) (builtin "One Step Simplification" (formula "13")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "14") (term "1")) @@ -36587,7 +36587,7 @@ (builtin "One Step Simplification" (formula "22")) (rule "commute_or" (formula "7") (term "0,0,0,0,0,0,0,1,0,0,0,0")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "10") (term "0,0,0") (ifseqformula "15")) @@ -36601,7 +36601,7 @@ (builtin "One Step Simplification" (formula "9")) (rule "true_left" (formula "9")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "9") (term "1")) @@ -36686,7 +36686,7 @@ (rule "inEqSimp_contradInEq1" (formula "20") (term "1,0") (ifseqformula "29")) (rule "qeq_literals" (formula "20") (term "0,1,0")) (builtin "One Step Simplification" (formula "20")) - (rule "allLeft" (formula "21") (inst "t=int::select(anonIn_heap<>, + (rule "allLeft" (formula "21") (inst "t=select<[int]>(anonIn_heap<>, anonIn_current, IntNode::$data)")) (rule "pullOutSelect" (formula "21") (term "0,0,0") (inst "selectSK=IntNode_next_3")) @@ -36751,7 +36751,7 @@ (rule "leq_literals" (formula "16") (term "0,1")) (builtin "One Step Simplification" (formula "16")) (rule "allLeft" (formula "19") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "19") (term "1,0,0,0,0")) @@ -42413,7 +42413,7 @@ (rule "commute_or" (formula "8") (term "0,1,1,0")) (rule "shift_paren_or" (formula "8") (term "0,1,0,1,0")) (rule "ifthenelse_split" (formula "4") (term "0")) - (branch " ¬f_0 = java.lang.Object::#$created ∧ ( ¬ boolean::select(heap, null, java.lang.Object::#$created) = TRUE ∨ ¬f_0 = java.lang.Object::#$created) TRUE" + (branch " ¬f_0 = java.lang.Object::#$created ∧ ( ¬ select<[boolean]>(heap, null, java.lang.Object::#$created) = TRUE ∨ ¬f_0 = java.lang.Object::#$created) TRUE" (rule "andLeft" (formula "4")) (rule "notLeft" (formula "4")) (rule "applyEqReverse" (formula "35") (term "1") (ifseqformula "5")) @@ -42913,7 +42913,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "3") (term "1")) @@ -43334,7 +43334,7 @@ ) ) ) - (branch " ¬f_0 = java.lang.Object::#$created ∧ ( ¬ boolean::select(heap, null, java.lang.Object::#$created) = TRUE ∨ ¬f_0 = java.lang.Object::#$created) FALSE" + (branch " ¬f_0 = java.lang.Object::#$created ∧ ( ¬ select<[boolean]>(heap, null, java.lang.Object::#$created) = TRUE ∨ ¬f_0 = java.lang.Object::#$created) FALSE" (rule "applyEqReverse" (formula "34") (term "1") (ifseqformula "4")) (rule "applyEqReverse" (formula "3") (term "2,0") (ifseqformula "4")) (rule "hideAuxiliaryEq" (formula "4")) @@ -44573,7 +44573,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) @@ -45248,7 +45248,7 @@ (rule "shift_paren_or" (formula "21") (term "0")) (rule "commute_or" (formula "20") (term "0,0")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) @@ -45751,7 +45751,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) @@ -46227,7 +46227,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) @@ -46503,7 +46503,7 @@ (rule "shift_paren_or" (formula "16") (term "0,1,0,1,0")) (rule "commute_or_2" (formula "8") (term "0,0,1,0,1,0")) (rule "ifthenelse_split" (formula "4") (term "0")) - (branch " ¬f_0 = java.lang.Object::#$created ∧ ( ¬ boolean::select(heap, null, java.lang.Object::#$created) = TRUE ∨ ¬f_0 = java.lang.Object::#$created) TRUE" + (branch " ¬f_0 = java.lang.Object::#$created ∧ ( ¬ select<[boolean]>(heap, null, java.lang.Object::#$created) = TRUE ∨ ¬f_0 = java.lang.Object::#$created) TRUE" (rule "andLeft" (formula "4")) (rule "notLeft" (formula "4")) (rule "applyEqReverse" (formula "36") (term "1") (ifseqformula "5")) @@ -47001,7 +47001,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) @@ -47470,7 +47470,7 @@ ) ) ) - (branch " ¬f_0 = java.lang.Object::#$created ∧ ( ¬ boolean::select(heap, null, java.lang.Object::#$created) = TRUE ∨ ¬f_0 = java.lang.Object::#$created) FALSE" + (branch " ¬f_0 = java.lang.Object::#$created ∧ ( ¬ select<[boolean]>(heap, null, java.lang.Object::#$created) = TRUE ∨ ¬f_0 = java.lang.Object::#$created) FALSE" (rule "applyEqReverse" (formula "3") (term "2,0") (ifseqformula "4")) (rule "applyEqReverse" (formula "35") (term "1") (ifseqformula "4")) (rule "hideAuxiliaryEq" (formula "4")) @@ -48701,7 +48701,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "3") (term "1")) @@ -49302,7 +49302,7 @@ (rule "commute_or" (formula "8") (term "0,0")) (rule "commute_or_2" (formula "9") (term "0,0,0,0")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) @@ -49795,7 +49795,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) @@ -50237,7 +50237,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "3") (term "1")) @@ -50607,7 +50607,7 @@ (rule "inEqSimp_sepPosMonomial0" (formula "10") (term "0,0,0,1,0")) (rule "mul_literals" (formula "10") (term "1,0,0,0,1,0")) (rule "ifthenelse_split" (formula "4") (term "0")) - (branch " ¬f_0 = java.lang.Object::#$created ∧ ( ¬ boolean::select(heap, null, java.lang.Object::#$created) = TRUE ∨ ¬f_0 = java.lang.Object::#$created) TRUE" + (branch " ¬f_0 = java.lang.Object::#$created ∧ ( ¬ select<[boolean]>(heap, null, java.lang.Object::#$created) = TRUE ∨ ¬f_0 = java.lang.Object::#$created) TRUE" (rule "andLeft" (formula "4")) (rule "notLeft" (formula "4")) (rule "applyEqReverse" (formula "37") (term "1") (ifseqformula "5")) @@ -51008,7 +51008,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) @@ -51433,7 +51433,7 @@ ) ) ) - (branch " ¬f_0 = java.lang.Object::#$created ∧ ( ¬ boolean::select(heap, null, java.lang.Object::#$created) = TRUE ∨ ¬f_0 = java.lang.Object::#$created) FALSE" + (branch " ¬f_0 = java.lang.Object::#$created ∧ ( ¬ select<[boolean]>(heap, null, java.lang.Object::#$created) = TRUE ∨ ¬f_0 = java.lang.Object::#$created) FALSE" (rule "applyEqReverse" (formula "3") (term "2,0") (ifseqformula "4")) (rule "applyEqReverse" (formula "36") (term "1") (ifseqformula "4")) (rule "hideAuxiliaryEq" (formula "4")) @@ -52359,7 +52359,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) @@ -52843,7 +52843,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) @@ -53548,7 +53548,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) @@ -54223,7 +54223,7 @@ (rule "shift_paren_or" (formula "21") (term "0")) (rule "commute_or" (formula "20") (term "0,0")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) @@ -54573,7 +54573,7 @@ (rule "polySimp_mulLiterals" (formula "11") (term "1,1,1")) (rule "polySimp_elimOne" (formula "11") (term "1,1,1")) (rule "ifthenelse_split" (formula "4") (term "0")) - (branch " ¬f_0 = java.lang.Object::#$created ∧ ( ¬ boolean::select(heap, null, java.lang.Object::#$created) = TRUE ∨ ¬f_0 = java.lang.Object::#$created) TRUE" + (branch " ¬f_0 = java.lang.Object::#$created ∧ ( ¬ select<[boolean]>(heap, null, java.lang.Object::#$created) = TRUE ∨ ¬f_0 = java.lang.Object::#$created) TRUE" (rule "andLeft" (formula "4")) (rule "notLeft" (formula "4")) (rule "applyEqReverse" (formula "3") (term "2,0") (ifseqformula "5")) @@ -55245,7 +55245,7 @@ ) ) ) - (branch " ¬f_0 = java.lang.Object::#$created ∧ ( ¬ boolean::select(heap, null, java.lang.Object::#$created) = TRUE ∨ ¬f_0 = java.lang.Object::#$created) FALSE" + (branch " ¬f_0 = java.lang.Object::#$created ∧ ( ¬ select<[boolean]>(heap, null, java.lang.Object::#$created) = TRUE ∨ ¬f_0 = java.lang.Object::#$created) FALSE" (rule "applyEqReverse" (formula "37") (term "1") (ifseqformula "4")) (rule "applyEqReverse" (formula "3") (term "2,0") (ifseqformula "4")) (rule "hideAuxiliaryEq" (formula "4")) @@ -56215,7 +56215,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) @@ -56654,7 +56654,7 @@ (rule "commute_or" (formula "8") (term "0,0")) (rule "commute_or_2" (formula "9") (term "0,0,0,0")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "3") (term "1")) @@ -57361,7 +57361,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "3") (term "1")) @@ -57964,7 +57964,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(anonIn_heap<>, + select<[int]>(anonIn_heap<>, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "3") (term "1")) 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 911459e00db..69c9bf37f85 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 @@ -1609,7 +1609,7 @@ (rule "polySimp_mulLiterals" (formula "2") (term "0")) (rule "polySimp_elimOne" (formula "2") (term "0")) (rule "allLeft" (formula "25") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "25") (term "1")) (rule "polySimp_mulComm0" (formula "25") (term "1,0,1")) (rule "polySimp_rightDist" (formula "25") (term "1,0,1")) @@ -1745,7 +1745,7 @@ (rule "commute_and_2" (formula "2") (term "0,0,0,0")) (rule "commute_and" (formula "2") (term "0,0,0,0,0")) (rule "allLeft" (formula "27") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "27") (term "1,0")) (rule "polySimp_mulComm0" (formula "27") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "27") (term "1,0,1,0")) @@ -1885,7 +1885,7 @@ (builtin "One Step Simplification" (formula "27")) (rule "true_left" (formula "27")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "12") (term "1,0")) (rule "polySimp_mulComm0" (formula "12") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "12") (term "1,0,1,0")) @@ -1935,7 +1935,7 @@ (rule "replace_known_left" (formula "29") (term "0,1,0,0") (ifseqformula "18")) (builtin "One Step Simplification" (formula "29")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "14") (term "1")) (rule "polySimp_mulComm0" (formula "14") (term "1,0,1")) (rule "polySimp_rightDist" (formula "14") (term "1,0,1")) @@ -1998,12 +1998,12 @@ (builtin "One Step Simplification" (formula "29")) (rule "true_left" (formula "29")) (rule "allLeft" (formula "29") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "29") (term "0,0,0") (ifseqformula "34")) (builtin "One Step Simplification" (formula "29")) (rule "true_left" (formula "29")) (rule "allLeft" (formula "28") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "28") (term "1,0")) (rule "polySimp_mulComm0" (formula "28") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "28") (term "1,0,1,0")) @@ -2079,7 +2079,7 @@ (rule "add_literals" (formula "17") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "17")) (rule "allLeft" (formula "18") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "18") (term "1,0,0,0,0,0")) (rule "polySimp_mulComm0" (formula "18") (term "1,0,1,0,0,0,0,0")) (rule "polySimp_rightDist" (formula "18") (term "1,0,1,0,0,0,0,0")) @@ -2636,7 +2636,7 @@ (builtin "One Step Simplification" (formula "12")) (rule "true_left" (formula "12")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "12") (term "1,0")) (rule "polySimp_mulComm0" (formula "12") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "12") (term "1,0,1,0")) @@ -2689,7 +2689,7 @@ (builtin "One Step Simplification" (formula "15")) (rule "true_left" (formula "15")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "13") (term "0,0,0") (ifseqformula "18")) (builtin "One Step Simplification" (formula "13")) (rule "true_left" (formula "13")) @@ -4400,7 +4400,7 @@ (builtin "One Step Simplification" (formula "13")) (rule "true_left" (formula "13")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "13") (term "1")) (rule "polySimp_mulComm0" (formula "13") (term "1,0,1")) (rule "polySimp_rightDist" (formula "13") (term "1,0,1")) @@ -4453,7 +4453,7 @@ (builtin "One Step Simplification" (formula "14")) (rule "true_left" (formula "14")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "14") (term "0,0,0") (ifseqformula "19")) (builtin "One Step Simplification" (formula "14")) (rule "true_left" (formula "14")) @@ -4876,7 +4876,7 @@ (rule "add_literals" (formula "16") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "16")) (rule "allLeft" (formula "17") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "17") (term "1,0,0,0,0")) (rule "polySimp_mulComm0" (formula "17") (term "1,0,1,0,0,0,0")) (rule "polySimp_rightDist" (formula "17") (term "1,0,1,0,0,0,0")) @@ -5357,7 +5357,7 @@ (builtin "One Step Simplification" (formula "12")) (rule "true_left" (formula "12")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "12") (term "0,0,0") (ifseqformula "17")) (builtin "One Step Simplification" (formula "12")) (rule "true_left" (formula "12")) @@ -5372,7 +5372,7 @@ (builtin "One Step Simplification" (formula "14")) (rule "true_left" (formula "14")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "11") (term "1,0")) (rule "polySimp_mulComm0" (formula "11") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "11") (term "1,0,1,0")) @@ -5907,7 +5907,7 @@ (builtin "One Step Simplification" (formula "13")) (rule "true_left" (formula "13")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "13") (term "0,0,0") (ifseqformula "18")) (builtin "One Step Simplification" (formula "13")) (rule "true_left" (formula "13")) @@ -5955,7 +5955,7 @@ (builtin "One Step Simplification" (formula "12")) (rule "true_left" (formula "12")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "12") (term "1")) (rule "polySimp_mulComm0" (formula "12") (term "1,0,1")) (rule "polySimp_rightDist" (formula "12") (term "1,0,1")) @@ -6177,7 +6177,7 @@ (builtin "One Step Simplification" (formula "29")) (rule "notLeft" (formula "29")) (rule "allLeft" (formula "30") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "30") (term "0,0,0") (ifseqformula "32")) (builtin "One Step Simplification" (formula "30")) (rule "true_left" (formula "30")) @@ -6186,7 +6186,7 @@ (builtin "One Step Simplification" (formula "30")) (rule "true_left" (formula "30")) (rule "allLeft" (formula "29") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "29") (term "1,0")) (rule "polySimp_mulComm0" (formula "29") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "29") (term "1,0,1,0")) @@ -6262,7 +6262,7 @@ (rule "add_literals" (formula "18") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "18")) (rule "allLeft" (formula "19") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "19") (term "1,0,0,0,0")) (rule "polySimp_mulComm0" (formula "19") (term "1,0,1,0,0,0,0")) (rule "polySimp_rightDist" (formula "19") (term "1,0,1,0,0,0,0")) @@ -6842,7 +6842,7 @@ (builtin "One Step Simplification" (formula "17")) (rule "true_left" (formula "17")) (rule "allLeft" (formula "4") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "4") (term "0,0,0") (ifseqformula "35")) (builtin "One Step Simplification" (formula "4")) (rule "inEqSimp_homoInEq0" (formula "4") (term "0")) @@ -7154,7 +7154,7 @@ (rule "true_left" (formula "18")) (rule "commute_or_2" (formula "25") (term "0")) (rule "allLeft" (formula "5") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "5") (term "0,0,0") (ifseqformula "36")) (builtin "One Step Simplification" (formula "5")) (rule "inEqSimp_homoInEq1" (formula "5") (term "1")) @@ -7243,7 +7243,7 @@ (rule "add_literals" (formula "17") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "17")) (rule "allLeft" (formula "18") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "18") (term "1,0,0,0,0,0")) (rule "polySimp_mulComm0" (formula "18") (term "1,0,1,0,0,0,0,0")) (rule "polySimp_rightDist" (formula "18") (term "1,0,1,0,0,0,0,0")) @@ -7684,7 +7684,7 @@ (builtin "One Step Simplification" (formula "16")) (rule "true_left" (formula "16")) (rule "allLeft" (formula "4") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "4") (term "0,0,0") (ifseqformula "35")) (builtin "One Step Simplification" (formula "4")) (rule "inEqSimp_homoInEq0" (formula "4") (term "0")) @@ -8021,7 +8021,7 @@ (builtin "One Step Simplification" (formula "17")) (rule "true_left" (formula "17")) (rule "allLeft" (formula "5") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "5") (term "0,0,0") (ifseqformula "36")) (builtin "One Step Simplification" (formula "5")) (rule "inEqSimp_homoInEq1" (formula "5") (term "1")) @@ -8436,7 +8436,7 @@ (rule "polySimp_mulLiterals" (formula "1") (term "0")) (rule "polySimp_elimOne" (formula "1") (term "0")) (rule "allLeft" (formula "25") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "25") (term "1")) (rule "polySimp_mulComm0" (formula "25") (term "1,0,1")) (rule "polySimp_rightDist" (formula "25") (term "1,0,1")) @@ -8572,7 +8572,7 @@ (rule "commute_and_2" (formula "1") (term "0,0,0,0")) (rule "commute_and" (formula "1") (term "0,0,0,0,0")) (rule "allLeft" (formula "27") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "27") (term "1")) (rule "polySimp_mulComm0" (formula "27") (term "1,0,1")) (rule "polySimp_rightDist" (formula "27") (term "1,0,1")) @@ -10604,7 +10604,7 @@ (builtin "One Step Simplification" (formula "41")) (rule "ifthenelse_negated" (formula "2") (term "0")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "12") (term "1,0")) (rule "polySimp_mulComm0" (formula "12") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "12") (term "1,0,1,0")) @@ -10654,7 +10654,7 @@ (rule "replace_known_left" (formula "29") (term "0,1,0,0") (ifseqformula "18")) (builtin "One Step Simplification" (formula "29")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "14") (term "1,0")) (rule "polySimp_mulComm0" (formula "14") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "14") (term "1,0,1,0")) @@ -10721,12 +10721,12 @@ (builtin "One Step Simplification" (formula "29")) (rule "true_left" (formula "29")) (rule "allLeft" (formula "29") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "29") (term "0,0,0") (ifseqformula "34")) (builtin "One Step Simplification" (formula "29")) (rule "true_left" (formula "29")) (rule "allLeft" (formula "28") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "28") (term "1")) (rule "polySimp_mulComm0" (formula "28") (term "1,0,1")) (rule "polySimp_rightDist" (formula "28") (term "1,0,1")) @@ -10796,7 +10796,7 @@ (rule "add_literals" (formula "17") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "17")) (rule "allLeft" (formula "18") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "18") (term "1,0,0,0,0,0")) (rule "polySimp_mulComm0" (formula "18") (term "1,0,1,0,0,0,0,0")) (rule "polySimp_rightDist" (formula "18") (term "1,0,1,0,0,0,0,0")) @@ -11175,7 +11175,7 @@ (builtin "One Step Simplification" (formula "15")) (rule "true_left" (formula "15")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "12") (term "1")) (rule "polySimp_mulComm0" (formula "12") (term "1,0,1")) (rule "polySimp_rightDist" (formula "12") (term "1,0,1")) @@ -11203,7 +11203,7 @@ (builtin "One Step Simplification" (formula "13")) (rule "true_left" (formula "13")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "13") (term "0,0,0") (ifseqformula "18")) (builtin "One Step Simplification" (formula "13")) (rule "true_left" (formula "13")) @@ -12638,7 +12638,7 @@ (builtin "One Step Simplification" (formula "13")) (rule "true_left" (formula "13")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "13") (term "1,0")) (rule "polySimp_mulComm0" (formula "13") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "13") (term "1,0,1,0")) @@ -12684,7 +12684,7 @@ (builtin "One Step Simplification" (formula "14")) (rule "true_left" (formula "14")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "14") (term "0,0,0") (ifseqformula "19")) (builtin "One Step Simplification" (formula "14")) (rule "true_left" (formula "14")) @@ -13997,7 +13997,7 @@ (builtin "One Step Simplification" (formula "12")) (rule "true_left" (formula "12")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "12") (term "0,0,0") (ifseqformula "17")) (builtin "One Step Simplification" (formula "12")) (rule "true_left" (formula "12")) @@ -14011,7 +14011,7 @@ (builtin "One Step Simplification" (formula "11")) (rule "true_left" (formula "11")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "11") (term "1,0")) (rule "polySimp_mulComm0" (formula "11") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "11") (term "1,0,1,0")) @@ -14823,7 +14823,7 @@ (rule "qeq_literals" (formula "20") (term "0,1")) (builtin "One Step Simplification" (formula "20")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "13") (term "0,0,0") (ifseqformula "18")) (builtin "One Step Simplification" (formula "13")) (rule "true_left" (formula "13")) @@ -14846,7 +14846,7 @@ (rule "leq_literals" (formula "48") (term "0,1")) (builtin "One Step Simplification" (formula "48")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "12") (term "1,0")) (rule "polySimp_mulComm0" (formula "12") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "12") (term "1,0,1,0")) @@ -15363,7 +15363,7 @@ (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1,0,0")) (rule "mul_literals" (formula "1") (term "1,1,0,0")) (rule "allLeft" (formula "30") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "30") (term "0,0,0") (ifseqformula "32")) (builtin "One Step Simplification" (formula "30")) (rule "true_left" (formula "30")) @@ -15376,7 +15376,7 @@ (builtin "One Step Simplification" (formula "29")) (rule "notLeft" (formula "29")) (rule "allLeft" (formula "29") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "29") (term "1,0")) (rule "polySimp_mulComm0" (formula "29") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "29") (term "1,0,1,0")) @@ -15450,7 +15450,7 @@ (rule "add_literals" (formula "18") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "18")) (rule "allLeft" (formula "19") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "19") (term "1,0,0,0,0")) (rule "polySimp_mulComm0" (formula "19") (term "1,0,1,0,0,0,0")) (rule "polySimp_rightDist" (formula "19") (term "1,0,1,0,0,0,0")) @@ -15776,7 +15776,7 @@ (builtin "One Step Simplification" (formula "17")) (rule "true_left" (formula "17")) (rule "allLeft" (formula "4") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "4") (term "0,0,0") (ifseqformula "35")) (builtin "One Step Simplification" (formula "4")) (rule "inEqSimp_homoInEq0" (formula "4") (term "0")) @@ -15842,7 +15842,7 @@ (builtin "One Step Simplification" (formula "18")) (rule "true_left" (formula "18")) (rule "allLeft" (formula "5") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "5") (term "0,0,0") (ifseqformula "36")) (builtin "One Step Simplification" (formula "5")) (rule "inEqSimp_homoInEq1" (formula "5") (term "1")) @@ -16191,7 +16191,7 @@ (builtin "One Step Simplification" (formula "16")) (rule "true_left" (formula "16")) (rule "allLeft" (formula "4") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "4") (term "0,0,0") (ifseqformula "35")) (builtin "One Step Simplification" (formula "4")) (rule "inEqSimp_homoInEq0" (formula "4") (term "0")) @@ -16253,7 +16253,7 @@ (builtin "One Step Simplification" (formula "17")) (rule "true_left" (formula "17")) (rule "allLeft" (formula "5") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "5") (term "0,0,0") (ifseqformula "36")) (builtin "One Step Simplification" (formula "5")) (rule "inEqSimp_homoInEq0" (formula "5") (term "0")) @@ -16308,12 +16308,12 @@ (builtin "One Step Simplification" (formula "29")) (rule "true_left" (formula "29")) (rule "allLeft" (formula "29") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "29") (term "0,0,0") (ifseqformula "34")) (builtin "One Step Simplification" (formula "29")) (rule "true_left" (formula "29")) (rule "allLeft" (formula "28") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "28") (term "1")) (rule "polySimp_mulComm0" (formula "28") (term "1,0,1")) (rule "polySimp_rightDist" (formula "28") (term "1,0,1")) @@ -16391,7 +16391,7 @@ (rule "add_literals" (formula "17") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "17")) (rule "allLeft" (formula "18") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "18") (term "1,0,0,0,0,0")) (rule "polySimp_mulComm0" (formula "18") (term "1,0,1,0,0,0,0,0")) (rule "polySimp_rightDist" (formula "18") (term "1,0,1,0,0,0,0,0")) @@ -16752,7 +16752,7 @@ (builtin "One Step Simplification" (formula "13")) (rule "true_left" (formula "13")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "13") (term "0,0,0") (ifseqformula "18")) (builtin "One Step Simplification" (formula "13")) (rule "true_left" (formula "13")) @@ -16780,7 +16780,7 @@ (rule "leq_literals" (formula "20") (term "0,1")) (builtin "One Step Simplification" (formula "20")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "12") (term "1,0")) (rule "polySimp_mulComm0" (formula "12") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "12") (term "1,0,1,0")) @@ -18225,7 +18225,7 @@ (builtin "One Step Simplification" (formula "13")) (rule "true_left" (formula "13")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "13") (term "1,0")) (rule "polySimp_mulComm0" (formula "13") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "13") (term "1,0,1,0")) @@ -18253,7 +18253,7 @@ (builtin "One Step Simplification" (formula "14")) (rule "true_left" (formula "14")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "14") (term "0,0,0") (ifseqformula "19")) (builtin "One Step Simplification" (formula "14")) (rule "true_left" (formula "14")) @@ -19608,7 +19608,7 @@ (rule "qeq_literals" (formula "49") (term "0,1")) (builtin "One Step Simplification" (formula "49")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "11") (term "1,0")) (rule "polySimp_mulComm0" (formula "11") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "11") (term "1,0,1,0")) @@ -19636,7 +19636,7 @@ (builtin "One Step Simplification" (formula "12")) (rule "true_left" (formula "12")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "12") (term "0,0,0") (ifseqformula "17")) (builtin "One Step Simplification" (formula "12")) (rule "true_left" (formula "12")) @@ -20407,7 +20407,7 @@ (builtin "One Step Simplification" (formula "13")) (rule "true_left" (formula "13")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "13") (term "0,0,0") (ifseqformula "18")) (builtin "One Step Simplification" (formula "13")) (rule "true_left" (formula "13")) @@ -20416,7 +20416,7 @@ (builtin "One Step Simplification" (formula "13")) (rule "true_left" (formula "13")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "12") (term "1,0")) (rule "polySimp_mulComm0" (formula "12") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "12") (term "1,0,1,0")) @@ -20956,12 +20956,12 @@ (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1,0,0")) (rule "mul_literals" (formula "1") (term "1,1,0,0")) (rule "allLeft" (formula "30") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "typeEqDerived" (formula "30") (term "0,0,0") (ifseqformula "32")) (builtin "One Step Simplification" (formula "30")) (rule "true_left" (formula "30")) (rule "allLeft" (formula "29") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "29") (term "1,0")) (rule "polySimp_mulComm0" (formula "29") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "29") (term "1,0,1,0")) @@ -21043,7 +21043,7 @@ (rule "add_literals" (formula "18") (term "1,0,1,0,0")) (builtin "One Step Simplification" (formula "18")) (rule "allLeft" (formula "19") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "19") (term "1,0,0,0,0")) (rule "polySimp_mulComm0" (formula "19") (term "1,0,1,0,0,0,0")) (rule "polySimp_rightDist" (formula "19") (term "1,0,1,0,0,0,0")) @@ -21367,7 +21367,7 @@ (builtin "One Step Simplification" (formula "17")) (rule "true_left" (formula "17")) (rule "allLeft" (formula "4") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "4") (term "0,0,0") (ifseqformula "35")) (builtin "One Step Simplification" (formula "4")) (rule "inEqSimp_homoInEq0" (formula "4") (term "0")) @@ -21437,7 +21437,7 @@ (builtin "One Step Simplification" (formula "18")) (rule "true_left" (formula "18")) (rule "allLeft" (formula "5") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "5") (term "0,0,0") (ifseqformula "36")) (builtin "One Step Simplification" (formula "5")) (rule "inEqSimp_homoInEq0" (formula "5") (term "0")) @@ -21787,7 +21787,7 @@ (builtin "One Step Simplification" (formula "16")) (rule "true_left" (formula "16")) (rule "allLeft" (formula "4") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "4") (term "0,0,0") (ifseqformula "35")) (builtin "One Step Simplification" (formula "4")) (rule "inEqSimp_homoInEq0" (formula "4") (term "0")) @@ -21849,7 +21849,7 @@ (builtin "One Step Simplification" (formula "17")) (rule "true_left" (formula "17")) (rule "allLeft" (formula "5") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "5") (term "0,0,0") (ifseqformula "36")) (builtin "One Step Simplification" (formula "5")) (rule "inEqSimp_homoInEq0" (formula "5") (term "0")) 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 b7c2d600123..ac64a579c51 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 @@ -952,7 +952,7 @@ (rule "replace_known_left" (formula "26") (term "1") (ifseqformula "15")) (builtin "One Step Simplification" (formula "26")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "11") (term "1")) (rule "polySimp_mulComm0" (formula "11") (term "1,0,1")) (rule "polySimp_rightDist" (formula "11") (term "1,0,1")) @@ -1115,7 +1115,7 @@ (builtin "One Step Simplification" (formula "13")) (rule "notLeft" (formula "13")) (rule "allLeft" (formula "16") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "16") (term "1")) (rule "polySimp_mulComm0" (formula "16") (term "1,0,1")) (rule "polySimp_rightDist" (formula "16") (term "1,0,1")) @@ -1224,7 +1224,7 @@ (rule "qeq_literals" (formula "25") (term "0,1,0")) (builtin "One Step Simplification" (formula "25")) (rule "allLeft" (formula "21") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "21") (term "1,0,0,0,0")) (rule "polySimp_mulComm0" (formula "21") (term "1,0,1,0,0,0,0")) (rule "polySimp_rightDist" (formula "21") (term "1,0,1,0,0,0,0")) @@ -3423,7 +3423,7 @@ (builtin "One Step Simplification" (formula "44")) (rule "shift_paren_or" (formula "34") (term "0,0,0,0,0")) (rule "allLeft" (formula "17") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "17") (term "0,0,0") (ifseqformula "26")) (builtin "One Step Simplification" (formula "17")) (rule "inEqSimp_homoInEq1" (formula "17") (term "1")) @@ -4360,7 +4360,7 @@ (builtin "One Step Simplification" (formula "1")) (rule "true_left" (formula "1")) (rule "allLeft" (formula "17") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "17") (term "0,0,0") (ifseqformula "26")) (builtin "One Step Simplification" (formula "17")) (rule "inEqSimp_homoInEq0" (formula "17") (term "0")) @@ -7077,7 +7077,7 @@ (rule "leq_literals" (formula "21") (term "0,1")) (builtin "One Step Simplification" (formula "21")) (rule "allLeft" (formula "17") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "17") (term "1,0")) (rule "polySimp_mulComm0" (formula "17") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "17") (term "1,0,1,0")) @@ -7136,7 +7136,7 @@ (rule "leq_literals" (formula "18") (term "0,1")) (builtin "One Step Simplification" (formula "18")) (rule "allLeft" (formula "19") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "19") (term "1")) (rule "polySimp_mulComm0" (formula "19") (term "1,0,1")) (rule "polySimp_rightDist" (formula "19") (term "1,0,1")) @@ -7215,7 +7215,7 @@ (rule "elementOfSingleton" (formula "38") (term "0,0,0")) (builtin "One Step Simplification" (formula "38")) (rule "allLeft" (formula "39") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "39") (term "1")) (rule "polySimp_mulComm0" (formula "39") (term "1,0,1")) (rule "polySimp_rightDist" (formula "39") (term "1,0,1")) @@ -9288,7 +9288,7 @@ (builtin "One Step Simplification" (formula "27")) (rule "true_left" (formula "27")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "13") (term "0,0,0") (ifseqformula "22")) (builtin "One Step Simplification" (formula "13")) (rule "inEqSimp_homoInEq1" (formula "13") (term "1")) @@ -10798,7 +10798,7 @@ (builtin "One Step Simplification" (formula "43")) (rule "shift_paren_or" (formula "30") (term "0,0,0,0,0")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "13") (term "0,0,0") (ifseqformula "22")) (builtin "One Step Simplification" (formula "13")) (rule "inEqSimp_homoInEq0" (formula "13") (term "0")) @@ -11638,7 +11638,7 @@ (builtin "One Step Simplification" (formula "13")) (rule "true_left" (formula "13")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "13") (term "1,0")) (rule "polySimp_mulComm0" (formula "13") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "13") (term "1,0,1,0")) @@ -11685,7 +11685,7 @@ (rule "leq_literals" (formula "14") (term "0,1")) (builtin "One Step Simplification" (formula "14")) (rule "allLeft" (formula "15") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "15") (term "1")) (rule "polySimp_mulComm0" (formula "15") (term "1,0,1")) (rule "polySimp_rightDist" (formula "15") (term "1,0,1")) @@ -11825,7 +11825,7 @@ (rule "hideAuxiliaryEq" (formula "34")) (rule "eqSymm" (formula "34")) (rule "allLeft" (formula "35") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "35") (term "1,0")) (rule "polySimp_mulComm0" (formula "35") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "35") (term "1,0,1,0")) @@ -13010,7 +13010,7 @@ (rule "commute_and" (formula "33") (term "0,0,1,1,0,0,0,0,0")) (rule "shift_paren_or" (formula "16") (term "0,0,0,0,0")) (rule "allLeft" (formula "27") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "27") (term "0,0,0") (ifseqformula "20")) (builtin "One Step Simplification" (formula "27")) (rule "inEqSimp_homoInEq0" (formula "27") (term "0")) @@ -13420,7 +13420,7 @@ (rule "commute_and" (formula "33") (term "0,0,1,1,0,0,0,0,0")) (rule "shift_paren_or" (formula "16") (term "0,0,0,0,0")) (rule "allLeft" (formula "27") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "27") (term "0,0,0") (ifseqformula "20")) (builtin "One Step Simplification" (formula "27")) (rule "inEqSimp_homoInEq0" (formula "27") (term "0")) @@ -14689,7 +14689,7 @@ (rule "shift_paren_or" (formula "27") (term "0,0,0,0,0")) (rule "commute_and" (formula "28") (term "0,0,1,1,0,0,0,0,0")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "11") (term "0,0,0") (ifseqformula "20")) (builtin "One Step Simplification" (formula "11")) (rule "inEqSimp_homoInEq0" (formula "11") (term "0")) @@ -15106,7 +15106,7 @@ (rule "commute_and" (formula "29") (term "0,0,1,1,0,0,0,0,0")) (rule "shift_paren_or" (formula "12") (term "0,0,0,0,0")) (rule "allLeft" (formula "23") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "23") (term "0,0,0") (ifseqformula "16")) (builtin "One Step Simplification" (formula "23")) (rule "inEqSimp_homoInEq1" (formula "23") (term "1")) @@ -18800,7 +18800,7 @@ (builtin "One Step Simplification" (formula "29")) (rule "true_left" (formula "29")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "13") (term "0,0,0") (ifseqformula "22")) (builtin "One Step Simplification" (formula "13")) (rule "inEqSimp_homoInEq1" (formula "13") (term "1")) @@ -19488,7 +19488,7 @@ (builtin "One Step Simplification" (formula "29")) (rule "true_left" (formula "29")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "13") (term "0,0,0") (ifseqformula "22")) (builtin "One Step Simplification" (formula "13")) (rule "inEqSimp_homoInEq1" (formula "13") (term "1")) @@ -24925,7 +24925,7 @@ (rule "true_left" (formula "30")) (rule "commute_and" (formula "33") (term "0,0,1,1,0,0,0,0,0")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "13") (term "0,0,0") (ifseqformula "22")) (builtin "One Step Simplification" (formula "13")) (rule "inEqSimp_homoInEq0" (formula "13") (term "0")) @@ -36476,7 +36476,7 @@ (rule "polySimp_elimOne" (formula "27") (term "1,1")) (rule "shift_paren_or" (formula "13") (term "0,0,0,0,0")) (rule "allLeft" (formula "31") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "31") (term "0,0,0") (ifseqformula "17")) (builtin "One Step Simplification" (formula "31")) (rule "inEqSimp_homoInEq1" (formula "31") (term "1")) @@ -36530,7 +36530,7 @@ (rule "mul_literals" (formula "1") (term "1,1,0,0")) (rule "shift_paren_or" (formula "14") (term "0,0,0,0,0")) (rule "allLeft" (formula "29") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "29") (term "0,0,0") (ifseqformula "18")) (builtin "One Step Simplification" (formula "29")) (rule "inEqSimp_homoInEq1" (formula "29") (term "1")) @@ -36883,7 +36883,7 @@ (rule "true_left" (formula "25")) (rule "shift_paren_or" (formula "13") (term "0,0,0,0,0")) (rule "allLeft" (formula "27") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "27") (term "0,0,0") (ifseqformula "17")) (builtin "One Step Simplification" (formula "27")) (rule "inEqSimp_homoInEq1" (formula "27") (term "1")) @@ -40487,7 +40487,7 @@ (rule "commute_or_2" (formula "33") (term "0,0,0,0")) (rule "shift_paren_or" (formula "33") (term "0,0,0,0,0")) (rule "allLeft" (formula "17") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "17") (term "0,0,0") (ifseqformula "26")) (builtin "One Step Simplification" (formula "17")) (rule "inEqSimp_homoInEq0" (formula "17") (term "0")) @@ -40904,7 +40904,7 @@ (rule "commute_or_2" (formula "33") (term "0,0,0,0")) (rule "shift_paren_or" (formula "33") (term "0,0,0,0,0")) (rule "allLeft" (formula "17") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "17") (term "0,0,0") (ifseqformula "26")) (builtin "One Step Simplification" (formula "17")) (rule "inEqSimp_homoInEq1" (formula "17") (term "1")) @@ -41744,7 +41744,7 @@ (builtin "One Step Simplification" (formula "7")) (rule "true_left" (formula "7")) (rule "allLeft" (formula "17") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "17") (term "1,0")) (rule "polySimp_mulComm0" (formula "17") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "17") (term "1,0,1,0")) @@ -41790,7 +41790,7 @@ (builtin "One Step Simplification" (formula "17")) (rule "notLeft" (formula "17")) (rule "allLeft" (formula "18") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (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")) @@ -42382,7 +42382,7 @@ (rule "shift_paren_or" (formula "29") (term "0,0,0,0,0")) (rule "commute_and" (formula "30") (term "0,0,1,1,0,0,0,0,0")) (rule "allLeft" (formula "13") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "13") (term "0,0,0") (ifseqformula "22")) (builtin "One Step Simplification" (formula "13")) (rule "inEqSimp_homoInEq1" (formula "13") (term "1")) @@ -42808,7 +42808,7 @@ (rule "commute_and" (formula "31") (term "0,0,1,1,0,0,0,0,0")) (rule "shift_paren_or" (formula "14") (term "0,0,0,0,0")) (rule "allLeft" (formula "25") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "25") (term "0,0,0") (ifseqformula "18")) (builtin "One Step Simplification" (formula "25")) (rule "inEqSimp_homoInEq0" (formula "25") (term "0")) @@ -43088,7 +43088,7 @@ (builtin "One Step Simplification" (formula "25")) (rule "notLeft" (formula "25")) (rule "allLeft" (formula "27") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "27") (term "1,0")) (rule "polySimp_mulComm0" (formula "27") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "27") (term "1,0,1,0")) @@ -43184,7 +43184,7 @@ (builtin "One Step Simplification" (formula "29")) (rule "eqSymm" (formula "29") (term "1,0,0,0,0")) (rule "allLeft" (formula "25") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "25") (term "1,0")) (rule "polySimp_mulComm0" (formula "25") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "25") (term "1,0,1,0")) @@ -44136,7 +44136,7 @@ (builtin "One Step Simplification" (formula "4")) (rule "true_left" (formula "4")) (rule "allLeft" (formula "25") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "25") (term "0,0,0") (ifseqformula "19")) (builtin "One Step Simplification" (formula "25")) (rule "inEqSimp_homoInEq0" (formula "25") (term "0")) @@ -44542,7 +44542,7 @@ (builtin "One Step Simplification" (formula "5")) (rule "true_left" (formula "5")) (rule "allLeft" (formula "26") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "26") (term "0,0,0") (ifseqformula "20")) (builtin "One Step Simplification" (formula "26")) (rule "inEqSimp_homoInEq0" (formula "26") (term "0")) @@ -44597,7 +44597,7 @@ (builtin "One Step Simplification" (formula "5")) (rule "true_left" (formula "5")) (rule "allLeft" (formula "26") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "26") (term "0,0,0") (ifseqformula "20")) (builtin "One Step Simplification" (formula "26")) (rule "inEqSimp_homoInEq0" (formula "26") (term "0")) @@ -45273,7 +45273,7 @@ (builtin "One Step Simplification" (formula "1")) (rule "true_left" (formula "1")) (rule "allLeft" (formula "25") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "25") (term "0,0,0") (ifseqformula "19")) (builtin "One Step Simplification" (formula "25")) (rule "inEqSimp_homoInEq0" (formula "25") (term "0")) @@ -45675,7 +45675,7 @@ (builtin "One Step Simplification" (formula "5")) (rule "true_left" (formula "5")) (rule "allLeft" (formula "26") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "26") (term "0,0,0") (ifseqformula "20")) (builtin "One Step Simplification" (formula "26")) (rule "inEqSimp_homoInEq1" (formula "26") (term "1")) @@ -45726,7 +45726,7 @@ (builtin "One Step Simplification" (formula "5")) (rule "true_left" (formula "5")) (rule "allLeft" (formula "26") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "26") (term "0,0,0") (ifseqformula "20")) (builtin "One Step Simplification" (formula "26")) (rule "inEqSimp_homoInEq1" (formula "26") (term "1")) @@ -48568,7 +48568,7 @@ (builtin "One Step Simplification" (formula "1")) (rule "true_left" (formula "1")) (rule "allLeft" (formula "21") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "21") (term "0,0,0") (ifseqformula "15")) (builtin "One Step Simplification" (formula "21")) (rule "inEqSimp_homoInEq1" (formula "21") (term "1")) @@ -48768,7 +48768,7 @@ (rule "eqSymm" (formula "39")) (rule "applyEq" (formula "39") (term "1") (ifseqformula "25")) (rule "allLeft" (formula "22") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "22") (term "0,0,0") (ifseqformula "16")) (builtin "One Step Simplification" (formula "22")) (rule "inEqSimp_homoInEq1" (formula "22") (term "1")) @@ -48811,7 +48811,7 @@ (builtin "One Step Simplification" (formula "36")) (rule "notRight" (formula "36")) (rule "allLeft" (formula "22") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "22") (term "0,0,0") (ifseqformula "16")) (builtin "One Step Simplification" (formula "22")) (rule "inEqSimp_homoInEq0" (formula "22") (term "0")) @@ -49782,7 +49782,7 @@ (builtin "One Step Simplification" (formula "1")) (rule "true_left" (formula "1")) (rule "allLeft" (formula "21") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "21") (term "0,0,0") (ifseqformula "15")) (builtin "One Step Simplification" (formula "21")) (rule "inEqSimp_homoInEq0" (formula "21") (term "0")) @@ -49978,7 +49978,7 @@ (rule "eqSymm" (formula "40")) (rule "applyEq" (formula "40") (term "1") (ifseqformula "25")) (rule "allLeft" (formula "22") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "22") (term "0,0,0") (ifseqformula "16")) (builtin "One Step Simplification" (formula "22")) (rule "inEqSimp_homoInEq0" (formula "22") (term "0")) @@ -50017,7 +50017,7 @@ (builtin "One Step Simplification" (formula "36")) (rule "notRight" (formula "36")) (rule "allLeft" (formula "22") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "22") (term "0,0,0") (ifseqformula "16")) (builtin "One Step Simplification" (formula "22")) (rule "inEqSimp_homoInEq1" (formula "22") (term "1")) @@ -53617,7 +53617,7 @@ (rule "commute_and" (formula "31") (term "0,0,1,1,0,0,0,0,0")) (rule "shift_paren_or" (formula "14") (term "0,0,0,0,0")) (rule "allLeft" (formula "25") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "25") (term "0,0,0") (ifseqformula "18")) (builtin "One Step Simplification" (formula "25")) (rule "inEqSimp_homoInEq0" (formula "25") (term "0")) @@ -54028,7 +54028,7 @@ (rule "commute_and" (formula "31") (term "0,0,1,1,0,0,0,0,0")) (rule "shift_paren_or" (formula "14") (term "0,0,0,0,0")) (rule "allLeft" (formula "25") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "25") (term "0,0,0") (ifseqformula "18")) (builtin "One Step Simplification" (formula "25")) (rule "inEqSimp_homoInEq1" (formula "25") (term "1")) @@ -54915,7 +54915,7 @@ (builtin "One Step Simplification" (formula "25")) (rule "notLeft" (formula "25")) (rule "allLeft" (formula "25") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "25") (term "1,0")) (rule "polySimp_mulComm0" (formula "25") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "25") (term "1,0,1,0")) @@ -55024,7 +55024,7 @@ (builtin "One Step Simplification" (formula "27")) (rule "eqSymm" (formula "27") (term "1,0,0,0")) (rule "allLeft" (formula "28") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "28") (term "1")) (rule "polySimp_mulComm0" (formula "28") (term "1,0,1")) (rule "polySimp_rightDist" (formula "28") (term "1,0,1")) @@ -55608,7 +55608,7 @@ (rule "commute_and" (formula "27") (term "0,0,1,1,0,0,0,0,0")) (rule "shift_paren_or" (formula "10") (term "0,0,0,0,0")) (rule "allLeft" (formula "21") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "21") (term "0,0,0") (ifseqformula "14")) (builtin "One Step Simplification" (formula "21")) (rule "inEqSimp_homoInEq0" (formula "21") (term "0")) @@ -55822,7 +55822,7 @@ (rule "commute_and" (formula "27") (term "0,0,1,1,0,0,0,0,0")) (rule "shift_paren_or" (formula "10") (term "0,0,0,0,0")) (rule "allLeft" (formula "21") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "21") (term "0,0,0") (ifseqformula "14")) (builtin "One Step Simplification" (formula "21")) (rule "inEqSimp_homoInEq1" (formula "21") (term "1")) @@ -56257,7 +56257,7 @@ (builtin "One Step Simplification" (formula "21")) (rule "notLeft" (formula "21")) (rule "allLeft" (formula "21") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "21") (term "1")) (rule "polySimp_mulComm0" (formula "21") (term "1,0,1")) (rule "polySimp_rightDist" (formula "21") (term "1,0,1")) @@ -56346,7 +56346,7 @@ (rule "hideAuxiliaryEq" (formula "23")) (rule "eqSymm" (formula "23")) (rule "allLeft" (formula "24") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "24") (term "1")) (rule "polySimp_mulComm0" (formula "24") (term "1,0,1")) (rule "polySimp_rightDist" (formula "24") (term "1,0,1")) @@ -69339,7 +69339,7 @@ (rule "commute_or" (formula "29") (term "0,0")) (rule "commute_or_2" (formula "30") (term "0,0,0,0")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "3") (term "0,0,0") (ifseqformula "24")) (builtin "One Step Simplification" (formula "3")) (rule "inEqSimp_homoInEq0" (formula "3") (term "0")) @@ -69761,7 +69761,7 @@ (rule "applyEqReverse" (formula "47") (term "0") (ifseqformula "7")) (rule "hideAuxiliaryEq" (formula "7")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) (rule "polySimp_mulComm0" (formula "3") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "3") (term "1,0,1,0")) @@ -69803,7 +69803,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) (rule "allLeft" (formula "18") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "18") (term "0,0,0") (ifseqformula "27")) (builtin "One Step Simplification" (formula "18")) (rule "inEqSimp_homoInEq0" (formula "18") (term "0")) @@ -70196,7 +70196,7 @@ (rule "commute_or" (formula "29") (term "0,0")) (rule "commute_or_2" (formula "30") (term "0,0,0,0")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "3") (term "0,0,0") (ifseqformula "24")) (builtin "One Step Simplification" (formula "3")) (rule "inEqSimp_homoInEq1" (formula "3") (term "1")) @@ -70623,7 +70623,7 @@ (rule "applyEqReverse" (formula "49") (term "0") (ifseqformula "7")) (rule "hideAuxiliaryEq" (formula "7")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) (rule "polySimp_mulComm0" (formula "3") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "3") (term "1,0,1,0")) @@ -70667,7 +70667,7 @@ (rule "true_left" (formula "3")) (rule "shift_paren_or" (formula "33") (term "0,0,0,0,0")) (rule "allLeft" (formula "18") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "18") (term "0,0,0") (ifseqformula "27")) (builtin "One Step Simplification" (formula "18")) (rule "inEqSimp_homoInEq0" (formula "18") (term "0")) @@ -71463,7 +71463,7 @@ (rule "applyEqReverse" (formula "49") (term "0") (ifseqformula "7")) (rule "hideAuxiliaryEq" (formula "7")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "3") (term "1")) (rule "polySimp_mulComm0" (formula "3") (term "1,0,1")) (rule "polySimp_rightDist" (formula "3") (term "1,0,1")) @@ -72316,7 +72316,7 @@ (rule "applyEqReverse" (formula "49") (term "0") (ifseqformula "7")) (rule "hideAuxiliaryEq" (formula "7")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "3") (term "1")) (rule "polySimp_mulComm0" (formula "3") (term "1,0,1")) (rule "polySimp_rightDist" (formula "3") (term "1,0,1")) @@ -72814,7 +72814,7 @@ (rule "commute_or" (formula "25") (term "0,0")) (rule "commute_or_2" (formula "26") (term "0,0,0,0")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "3") (term "0,0,0") (ifseqformula "20")) (builtin "One Step Simplification" (formula "3")) (rule "inEqSimp_homoInEq1" (formula "3") (term "1")) @@ -73000,7 +73000,7 @@ (rule "applyEqReverse" (formula "41") (term "0") (ifseqformula "5")) (rule "hideAuxiliaryEq" (formula "5")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) (rule "polySimp_mulComm0" (formula "3") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "3") (term "1,0,1,0")) @@ -73125,7 +73125,7 @@ (rule "commute_or" (formula "28") (term "0,0")) (rule "commute_or_2" (formula "29") (term "0,0,0,0")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "14") (term "0,0,0") (ifseqformula "23")) (builtin "One Step Simplification" (formula "14")) (rule "inEqSimp_homoInEq1" (formula "14") (term "1")) @@ -73649,7 +73649,7 @@ (rule "applyEqReverse" (formula "46") (term "0") (ifseqformula "7")) (rule "hideAuxiliaryEq" (formula "7")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) (rule "polySimp_mulComm0" (formula "3") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "3") (term "1,0,1,0")) @@ -73709,7 +73709,7 @@ (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1,0,0")) (rule "mul_literals" (formula "1") (term "1,1,0,0")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) (rule "polySimp_mulComm0" (formula "3") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "3") (term "1,0,1,0")) @@ -74012,7 +74012,7 @@ (rule "commute_or" (formula "25") (term "0,0")) (rule "commute_or_2" (formula "26") (term "0,0,0,0")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "3") (term "0,0,0") (ifseqformula "20")) (builtin "One Step Simplification" (formula "3")) (rule "inEqSimp_homoInEq0" (formula "3") (term "0")) @@ -74286,7 +74286,7 @@ (rule "applyEqReverse" (formula "46") (term "0") (ifseqformula "7")) (rule "hideAuxiliaryEq" (formula "7")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) (rule "polySimp_mulComm0" (formula "3") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "3") (term "1,0,1,0")) @@ -74322,7 +74322,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "notLeft" (formula "3")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "replace_known_left" (formula "14") (term "0,0,0") (ifseqformula "23")) (builtin "One Step Simplification" (formula "14")) (rule "inEqSimp_homoInEq1" (formula "14") (term "1")) @@ -74911,7 +74911,7 @@ (rule "applyEqReverse" (formula "48") (term "0") (ifseqformula "7")) (rule "hideAuxiliaryEq" (formula "7")) (rule "allLeft" (formula "3") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, IntLinkedList::$size))")) + select<[int]>(heap, self, IntLinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "3") (term "1,0")) (rule "polySimp_mulComm0" (formula "3") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "3") (term "1,0,1,0")) diff --git a/key.ui/examples/heap/list_seq/LinkedList(LinkedList__remove(java.lang.Object)).JML normal_behavior operation contract.1.proof b/key.ui/examples/heap/list_seq/LinkedList(LinkedList__remove(java.lang.Object)).JML normal_behavior operation contract.1.proof index 7bdcdb12c64..f0def5c4090 100644 --- a/key.ui/examples/heap/list_seq/LinkedList(LinkedList__remove(java.lang.Object)).JML normal_behavior operation contract.1.proof +++ b/key.ui/examples/heap/list_seq/LinkedList(LinkedList__remove(java.lang.Object)).JML normal_behavior operation contract.1.proof @@ -465,7 +465,7 @@ (rule "qeq_literals" (formula "14") (term "0,0")) (builtin "One Step Simplification" (formula "14")) (rule "allLeft" (formula "15") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "15") (term "0,0")) (rule "polySimp_mulComm0" (formula "15") (term "1,0,0,0")) (rule "polySimp_rightDist" (formula "15") (term "1,0,0,0")) @@ -520,7 +520,7 @@ (builtin "One Step Simplification" (formula "9")) (rule "true_left" (formula "9")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "9") (term "0,0")) (rule "polySimp_mulComm0" (formula "9") (term "1,0,0,0")) (rule "polySimp_rightDist" (formula "9") (term "1,0,0,0")) @@ -550,7 +550,7 @@ (builtin "One Step Simplification" (formula "9")) (rule "notLeft" (formula "9")) (rule "allLeft" (formula "10") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "typeEqDerived" (formula "10") (term "0,1") (ifseqformula "16")) (builtin "One Step Simplification" (formula "10")) (rule "true_left" (formula "10")) @@ -578,7 +578,7 @@ (builtin "One Step Simplification" (formula "12")) (rule "notLeft" (formula "12")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "12") (term "1,0")) (rule "polySimp_mulComm0" (formula "12") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "12") (term "1,0,1,0")) @@ -3414,7 +3414,7 @@ (builtin "One Step Simplification" (formula "29")) (rule "true_left" (formula "29")) (rule "allLeft" (formula "29") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "29") (term "1,0")) (rule "polySimp_mulComm0" (formula "29") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "29") (term "1,0,1,0")) @@ -3711,7 +3711,7 @@ (builtin "One Step Simplification" (formula "29")) (rule "notLeft" (formula "29")) (rule "allLeft" (formula "29") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "29") (term "1,0")) (rule "polySimp_mulComm0" (formula "29") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "29") (term "1,0,1,0")) @@ -4619,7 +4619,7 @@ (rule "qeq_literals" (formula "29") (term "0,0")) (builtin "One Step Simplification" (formula "29")) (rule "allLeft" (formula "37") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "polySimp_homoEq" (formula "37") (term "1,0,0")) (rule "polySimp_mulComm0" (formula "37") (term "1,0,1,0,0")) (rule "polySimp_rightDist" (formula "37") (term "1,0,1,0,0")) @@ -4703,7 +4703,7 @@ (builtin "One Step Simplification" (formula "21")) (rule "notLeft" (formula "21")) (rule "allLeft" (formula "43") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "43") (term "1,0,0")) (rule "eqSymm" (formula "43") (term "0,1,0")) (rule "inEqSimp_homoInEq1" (formula "43") (term "1,0,0,0")) @@ -11881,7 +11881,7 @@ (builtin "One Step Simplification" (formula "34")) (rule "commute_or_2" (formula "34") (term "0,0")) (rule "allLeft" (formula "31") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "polySimp_homoEq" (formula "31") (term "1,0,0")) (rule "polySimp_mulComm0" (formula "31") (term "1,0,1,0,0")) (rule "polySimp_rightDist" (formula "31") (term "1,0,1,0,0")) @@ -11936,7 +11936,7 @@ (builtin "One Step Simplification" (formula "36")) (rule "commute_or_2" (formula "36") (term "0,0")) (rule "allLeft" (formula "37") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "37") (term "1,0,0")) (rule "eqSymm" (formula "37") (term "0,1,0")) (rule "inEqSimp_homoInEq0" (formula "37") (term "1,0,0,0,0")) @@ -12185,7 +12185,7 @@ (builtin "One Step Simplification" (formula "25")) (rule "notLeft" (formula "25")) (rule "allLeft" (formula "25") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "25") (term "1,0")) (rule "polySimp_mulComm0" (formula "25") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "25") (term "1,0,1,0")) @@ -12418,7 +12418,7 @@ (builtin "One Step Simplification" (formula "2")) (rule "true_left" (formula "2")) (rule "allLeft" (formula "28") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "28") (term "1,0")) (rule "polySimp_mulComm0" (formula "28") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "28") (term "1,0,1,0")) @@ -12664,7 +12664,7 @@ (builtin "One Step Simplification" (formula "11")) (rule "true_left" (formula "11")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "typeEqDerived" (formula "11") (term "0,1") (ifseqformula "17")) (builtin "One Step Simplification" (formula "11")) (rule "true_left" (formula "11")) @@ -12721,7 +12721,7 @@ (rule "qeq_literals" (formula "13") (term "0,0")) (builtin "One Step Simplification" (formula "13")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "14") (term "0,0")) (rule "polySimp_mulComm0" (formula "14") (term "1,0,0,0")) (rule "polySimp_rightDist" (formula "14") (term "1,0,0,0")) @@ -12783,7 +12783,7 @@ (builtin "One Step Simplification" (formula "11")) (rule "notLeft" (formula "11")) (rule "allLeft" (formula "11") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "11") (term "0,0")) (rule "polySimp_mulComm0" (formula "11") (term "1,0,0,0")) (rule "polySimp_rightDist" (formula "11") (term "1,0,0,0")) @@ -12822,7 +12822,7 @@ (builtin "One Step Simplification" (formula "8")) (rule "notLeft" (formula "8")) (rule "allLeft" (formula "8") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "inEqSimp_homoInEq1" (formula "8") (term "1,0")) (rule "polySimp_mulComm0" (formula "8") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "8") (term "1,0,1,0")) @@ -12870,7 +12870,7 @@ (builtin "One Step Simplification" (formula "9")) (rule "true_left" (formula "9")) (rule "allLeft" (formula "9") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "typeEqDerived" (formula "9") (term "0,1") (ifseqformula "15")) (builtin "One Step Simplification" (formula "9")) (rule "true_left" (formula "9")) @@ -13530,7 +13530,7 @@ (rule "applyEq" (formula "44") (term "0") (ifseqformula "2")) (rule "applyEq" (formula "5") (term "1,0") (ifseqformula "2")) (rule "allLeft" (formula "36") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "replace_known_left" (formula "36") (term "0,1") (ifseqformula "17")) (builtin "One Step Simplification" (formula "36")) (rule "inEqSimp_homoInEq0" (formula "36") (term "0")) @@ -23258,7 +23258,7 @@ (rule "inEqSimp_commuteLeq" (formula "50") (term "0,0,0,0,0,1,0,0,0,0")) (rule "inEqSimp_sepPosMonomial0" (formula "50") (term "1,0,0,0,1,1,1,0,1,0,0,0")) (rule "cut_direct" (formula "50") (term "1,0,0,0,0") (userinteraction)) - (branch "CUT: infiniteUnion{int _var52;}(if ( _var52 >= 0 & 1 + int::select(store(store(store(store(store(store(heap, m_0, next, null), self, last, m_0), self, seq, seqConcat(seqSub(self.seq, 0, -1 + i_1), seqSub(self.seq, 1 + i_1, -1 + self.size))), self, nodeseq, seqConcat(seqSub(self.nodeseq, 0, -1 + i_1), seqSub(self.nodeseq, 1 + i_1, -1 + self.size))), self, footprint, self.footprint setMinus allFields(n_0)), self, size, -1 + self.size), self, size) * -1 + _var52 <= 0) then (allFields((Node)(any::seqGet(Seq::select(store(store(store(store(store(store(heap, m_0, next, null), self, last, m_0), self, seq, seqConcat(seqSub(self.seq, 0, -1 + i_1), seqSub(self.seq, 1 + i_1, -1 + self.size))), self, nodeseq, seqConcat(seqSub(self.nodeseq, 0, -1 + i_1), seqSub(self.nodeseq, 1 + i_1, -1 + self.size))), self, footprint, self.footprint setMinus allFields(n_0)), self, size, -1 + self.size), self, nodeseq), _var52)))) else ({})) cup allFields(self) = LocSet::select(store(store(store(store(store(store(heap, m_0, next, null), self, last, m_0), self, seq, seqConcat(seqSub(self.seq, 0, -1 + i_1), seqSub(self.seq, 1 + i_1, -1 + self.size))), self, nodeseq, seqConcat(seqSub(self.nodeseq, 0, -1 + i_1), seqSub(self.nodeseq, 1 + i_1, -1 + self.size))), self, footprint, self.footprint setMinus allFields(n_0)), self, size, -1 + self.size), self, footprint) TRUE" + (branch "CUT: infiniteUnion{int _var52;}(if ( _var52 >= 0 & 1 + select<[int]>(store(store(store(store(store(store(heap, m_0, next, null), self, last, m_0), self, seq, seqConcat(seqSub(self.seq, 0, -1 + i_1), seqSub(self.seq, 1 + i_1, -1 + self.size))), self, nodeseq, seqConcat(seqSub(self.nodeseq, 0, -1 + i_1), seqSub(self.nodeseq, 1 + i_1, -1 + self.size))), self, footprint, self.footprint setMinus allFields(n_0)), self, size, -1 + self.size), self, size) * -1 + _var52 <= 0) then (allFields((Node)(any::seqGet(Seq::select(store(store(store(store(store(store(heap, m_0, next, null), self, last, m_0), self, seq, seqConcat(seqSub(self.seq, 0, -1 + i_1), seqSub(self.seq, 1 + i_1, -1 + self.size))), self, nodeseq, seqConcat(seqSub(self.nodeseq, 0, -1 + i_1), seqSub(self.nodeseq, 1 + i_1, -1 + self.size))), self, footprint, self.footprint setMinus allFields(n_0)), self, size, -1 + self.size), self, nodeseq), _var52)))) else ({})) cup allFields(self) = LocSet::select(store(store(store(store(store(store(heap, m_0, next, null), self, last, m_0), self, seq, seqConcat(seqSub(self.seq, 0, -1 + i_1), seqSub(self.seq, 1 + i_1, -1 + self.size))), self, nodeseq, seqConcat(seqSub(self.nodeseq, 0, -1 + i_1), seqSub(self.nodeseq, 1 + i_1, -1 + self.size))), self, footprint, self.footprint setMinus allFields(n_0)), self, size, -1 + self.size), self, footprint) TRUE" (rule "concrete_and_3" (formula "51") (term "0,0,0,0")) (rule "polySimp_mulComm0" (formula "51") (term "1,1,0,0,0,1,1,1,0,1,0,0,0")) (rule "polySimp_rightDist" (formula "51") (term "1,1,0,0,0,1,1,1,0,1,0,0,0")) @@ -28297,7 +28297,7 @@ (rule "concrete_and_2" (formula "27") (term "0,0")) (rule "concrete_or_2" (formula "27") (term "0")) (rule "allLeft" (formula "34") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "34") (term "0,1,0")) (rule "eqSymm" (formula "34") (term "1,0,0")) (rule "inEqSimp_homoInEq0" (formula "34") (term "1,0,0,0,0")) @@ -32104,7 +32104,7 @@ ) ) ) - (branch "CUT: infiniteUnion{int _var52;}(if ( _var52 >= 0 & 1 + int::select(store(store(store(store(store(store(heap, m_0, next, null), self, last, m_0), self, seq, seqConcat(seqSub(self.seq, 0, -1 + i_1), seqSub(self.seq, 1 + i_1, -1 + self.size))), self, nodeseq, seqConcat(seqSub(self.nodeseq, 0, -1 + i_1), seqSub(self.nodeseq, 1 + i_1, -1 + self.size))), self, footprint, self.footprint setMinus allFields(n_0)), self, size, -1 + self.size), self, size) * -1 + _var52 <= 0) then (allFields((Node)(any::seqGet(Seq::select(store(store(store(store(store(store(heap, m_0, next, null), self, last, m_0), self, seq, seqConcat(seqSub(self.seq, 0, -1 + i_1), seqSub(self.seq, 1 + i_1, -1 + self.size))), self, nodeseq, seqConcat(seqSub(self.nodeseq, 0, -1 + i_1), seqSub(self.nodeseq, 1 + i_1, -1 + self.size))), self, footprint, self.footprint setMinus allFields(n_0)), self, size, -1 + self.size), self, nodeseq), _var52)))) else ({})) cup allFields(self) = LocSet::select(store(store(store(store(store(store(heap, m_0, next, null), self, last, m_0), self, seq, seqConcat(seqSub(self.seq, 0, -1 + i_1), seqSub(self.seq, 1 + i_1, -1 + self.size))), self, nodeseq, seqConcat(seqSub(self.nodeseq, 0, -1 + i_1), seqSub(self.nodeseq, 1 + i_1, -1 + self.size))), self, footprint, self.footprint setMinus allFields(n_0)), self, size, -1 + self.size), self, footprint) FALSE" + (branch "CUT: infiniteUnion{int _var52;}(if ( _var52 >= 0 & 1 + select<[int]>(store(store(store(store(store(store(heap, m_0, next, null), self, last, m_0), self, seq, seqConcat(seqSub(self.seq, 0, -1 + i_1), seqSub(self.seq, 1 + i_1, -1 + self.size))), self, nodeseq, seqConcat(seqSub(self.nodeseq, 0, -1 + i_1), seqSub(self.nodeseq, 1 + i_1, -1 + self.size))), self, footprint, self.footprint setMinus allFields(n_0)), self, size, -1 + self.size), self, size) * -1 + _var52 <= 0) then (allFields((Node)(any::seqGet(Seq::select(store(store(store(store(store(store(heap, m_0, next, null), self, last, m_0), self, seq, seqConcat(seqSub(self.seq, 0, -1 + i_1), seqSub(self.seq, 1 + i_1, -1 + self.size))), self, nodeseq, seqConcat(seqSub(self.nodeseq, 0, -1 + i_1), seqSub(self.nodeseq, 1 + i_1, -1 + self.size))), self, footprint, self.footprint setMinus allFields(n_0)), self, size, -1 + self.size), self, nodeseq), _var52)))) else ({})) cup allFields(self) = LocSet::select(store(store(store(store(store(store(heap, m_0, next, null), self, last, m_0), self, seq, seqConcat(seqSub(self.seq, 0, -1 + i_1), seqSub(self.seq, 1 + i_1, -1 + self.size))), self, nodeseq, seqConcat(seqSub(self.nodeseq, 0, -1 + i_1), seqSub(self.nodeseq, 1 + i_1, -1 + self.size))), self, footprint, self.footprint setMinus allFields(n_0)), self, size, -1 + self.size), self, footprint) FALSE" (rule "hide_right" (formula "51") (userinteraction)) (rule "selectOfStore" (formula "50") (term "1")) (rule "eqClose" (formula "50") (term "0,0,0,1")) @@ -33571,7 +33571,7 @@ (rule "eqClose" (formula "39") (term "0,0,0,0")) (rule "ifthenelse_true_for" (formula "39") (term "0,0,0")) (rule "allLeft" (formula "40") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "40") (term "0,1,0")) (rule "eqSymm" (formula "40") (term "1,0,0")) (rule "inEqSimp_homoInEq0" (formula "40") (term "1,0,0,0,0")) @@ -33671,7 +33671,7 @@ (rule "concrete_or_2" (formula "18")) (rule "notLeft" (formula "18")) (rule "allLeft" (formula "37") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "replace_known_left" (formula "37") (term "0,1") (ifseqformula "47")) (rule "concrete_not_1" (formula "37") (term "1")) (rule "concrete_or_4" (formula "37")) @@ -34296,7 +34296,7 @@ (rule "eqClose" (formula "41") (term "0,0,0,0")) (rule "ifthenelse_true_for" (formula "41") (term "0,0,0")) (rule "allLeft" (formula "42") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "42") (term "0,1,0")) (rule "eqSymm" (formula "42") (term "1,0,0")) (rule "inEqSimp_homoInEq1" (formula "42") (term "1,0,0,0")) @@ -34351,7 +34351,7 @@ (rule "concrete_or_2" (formula "18")) (rule "notLeft" (formula "18")) (rule "allLeft" (formula "37") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "replace_known_left" (formula "37") (term "0,1") (ifseqformula "47")) (rule "concrete_not_1" (formula "37") (term "1")) (rule "concrete_or_4" (formula "37")) @@ -36209,7 +36209,7 @@ (rule "concrete_or_3" (formula "5")) (rule "true_left" (formula "5")) (rule "allLeft" (formula "32") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "32") (term "0,1,0")) (rule "eqSymm" (formula "32") (term "1,0,0")) (rule "inEqSimp_homoInEq0" (formula "32") (term "1,0,0,0,0")) @@ -36362,7 +36362,7 @@ (rule "concrete_or_2" (formula "35")) (rule "notLeft" (formula "35")) (rule "allLeft" (formula "34") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "replace_known_left" (formula "34") (term "0,1") (ifseqformula "43")) (rule "concrete_not_1" (formula "34") (term "1")) (rule "concrete_or_4" (formula "34")) @@ -36843,7 +36843,7 @@ (rule "concrete_or_4" (formula "34") (term "0,0,0")) (rule "commute_or_2" (formula "34") (term "0,0")) (rule "allLeft" (formula "35") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "35") (term "1,0,0")) (rule "eqSymm" (formula "35") (term "0,1,0")) (rule "inEqSimp_homoInEq0" (formula "35") (term "1,0,0,0,0")) @@ -36949,7 +36949,7 @@ (rule "concrete_or_2" (formula "35")) (rule "notLeft" (formula "35")) (rule "allLeft" (formula "34") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "replace_known_left" (formula "34") (term "0,1") (ifseqformula "43")) (rule "concrete_not_1" (formula "34") (term "1")) (rule "concrete_or_4" (formula "34")) @@ -40492,7 +40492,7 @@ (rule "qeq_literals" (formula "27") (term "0,0,0")) (builtin "One Step Simplification" (formula "27")) (rule "allLeft" (formula "34") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "34") (term "1,0,0")) (rule "eqSymm" (formula "34") (term "0,1,0")) (rule "inEqSimp_homoInEq0" (formula "34") (term "1,0,0,0,0")) @@ -40661,7 +40661,7 @@ (builtin "One Step Simplification" (formula "36")) (rule "commute_or_2" (formula "36") (term "0,0")) (rule "allLeft" (formula "37") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "37") (term "0,1,0")) (rule "eqSymm" (formula "37") (term "1,0,0")) (rule "inEqSimp_homoInEq1" (formula "37") (term "1,0,0,0")) @@ -40996,7 +40996,7 @@ (builtin "One Step Simplification" (formula "35")) (rule "commute_or_2" (formula "35") (term "0,0")) (rule "allLeft" (formula "36") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "36") (term "0,1,0")) (rule "eqSymm" (formula "36") (term "1,0,0")) (rule "inEqSimp_homoInEq1" (formula "36") (term "1,0,0,0")) @@ -41629,7 +41629,7 @@ (rule "qeq_literals" (formula "29") (term "0,0")) (builtin "One Step Simplification" (formula "29")) (rule "allLeft" (formula "36") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "36") (term "0,1,0")) (rule "eqSymm" (formula "36") (term "1,0,0")) (rule "inEqSimp_homoInEq0" (formula "36") (term "1,0,0,0,0")) @@ -41967,7 +41967,7 @@ (builtin "One Step Simplification" (formula "33")) (rule "commute_or_2" (formula "33") (term "0,0")) (rule "allLeft" (formula "34") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "34") (term "0,1,0")) (rule "eqSymm" (formula "34") (term "1,0,0")) (rule "inEqSimp_homoInEq1" (formula "34") (term "1,0,0,0")) @@ -45866,7 +45866,7 @@ (rule "concrete_and_2" (formula "41") (term "0,0")) (rule "concrete_or_2" (formula "41") (term "0")) (rule "allLeft" (formula "49") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "49") (term "0,1,0")) (rule "eqSymm" (formula "49") (term "1,0,0")) (rule "inEqSimp_homoInEq0" (formula "49") (term "1,0,0,0,0")) @@ -46297,7 +46297,7 @@ (rule "concrete_and_2" (formula "39") (term "0,0")) (rule "concrete_or_2" (formula "39") (term "0")) (rule "allLeft" (formula "48") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "48") (term "0,1,0")) (rule "eqSymm" (formula "48") (term "1,0,0")) (rule "inEqSimp_homoInEq1" (formula "48") (term "1,0,0,0")) @@ -47359,7 +47359,7 @@ (rule "concrete_and_2" (formula "42") (term "0,0")) (rule "concrete_or_2" (formula "42") (term "0")) (rule "allLeft" (formula "51") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "51") (term "0,1,0")) (rule "eqSymm" (formula "51") (term "1,0,0")) (rule "inEqSimp_homoInEq1" (formula "51") (term "1,0,0,0")) @@ -47629,7 +47629,7 @@ (rule "concrete_and_2" (formula "43") (term "0,0")) (rule "concrete_or_2" (formula "43") (term "0")) (rule "allLeft" (formula "54") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "54") (term "0,1,0")) (rule "eqSymm" (formula "54") (term "1,0,0")) (rule "inEqSimp_homoInEq0" (formula "54") (term "1,0,0,0,0")) @@ -48634,7 +48634,7 @@ (rule "concrete_and_2" (formula "39") (term "1,0,0,0")) (rule "concrete_or_4" (formula "39") (term "0,0,0")) (rule "allLeft" (formula "40") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "40") (term "0,1,0")) (rule "eqSymm" (formula "40") (term "1,0,0")) (rule "inEqSimp_homoInEq1" (formula "40") (term "1,0,0,0")) @@ -50973,7 +50973,7 @@ (rule "concrete_and_2" (formula "40") (term "1,0,0,0")) (rule "concrete_or_4" (formula "40") (term "0,0,0")) (rule "allLeft" (formula "41") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "41") (term "0,1,0")) (rule "eqSymm" (formula "41") (term "1,0,0")) (rule "inEqSimp_homoInEq1" (formula "41") (term "1,0,0,0")) @@ -51932,7 +51932,7 @@ (builtin "One Step Simplification" (formula "35")) (rule "commute_or_2" (formula "35") (term "0,0")) (rule "allLeft" (formula "36") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "36") (term "1,0,0")) (rule "eqSymm" (formula "36") (term "0,1,0")) (rule "inEqSimp_homoInEq0" (formula "36") (term "1,0,0,0,0")) @@ -53039,7 +53039,7 @@ (rule "inEqSimp_sepPosMonomial0" (formula "32") (term "0")) (rule "mul_literals" (formula "32") (term "1,0")) (rule "allLeft" (formula "53") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "53") (term "0,0")) (rule "polySimp_mulComm0" (formula "53") (term "1,0,0,0")) (rule "polySimp_rightDist" (formula "53") (term "1,0,0,0")) @@ -53132,7 +53132,7 @@ (rule "concrete_or_4" (formula "39") (term "0,0,0")) (rule "commute_or_2" (formula "39") (term "0,0")) (rule "allLeft" (formula "40") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "40") (term "1,0,0")) (rule "eqSymm" (formula "40") (term "0,1,0")) (rule "inEqSimp_homoInEq1" (formula "40") (term "1,0,0,0")) @@ -54282,7 +54282,7 @@ (rule "concrete_and_2" (formula "30") (term "0,0")) (rule "concrete_or_2" (formula "30") (term "0")) (rule "allLeft" (formula "36") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "36") (term "0,1,0")) (rule "eqSymm" (formula "36") (term "1,0,0")) (rule "inEqSimp_homoInEq1" (formula "36") (term "1,0,0,0")) @@ -54329,7 +54329,7 @@ (rule "concrete_and_2" (formula "26") (term "0,0")) (rule "concrete_or_2" (formula "26") (term "0")) (rule "allLeft" (formula "54") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "inEqSimp_homoInEq0" (formula "54") (term "0,0")) (rule "polySimp_mulComm0" (formula "54") (term "1,0,0,0")) (rule "polySimp_rightDist" (formula "54") (term "1,0,0,0")) @@ -55220,7 +55220,7 @@ (rule "concrete_and_2" (formula "39") (term "0,0")) (rule "concrete_or_2" (formula "39") (term "0")) (rule "allLeft" (formula "40") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "polySimp_homoEq" (formula "40") (term "1,0,0")) (rule "polySimp_mulComm0" (formula "40") (term "1,0,1,0,0")) (rule "polySimp_rightDist" (formula "40") (term "1,0,1,0,0")) @@ -56981,7 +56981,7 @@ (builtin "One Step Simplification" (formula "31")) (rule "commute_or_2" (formula "31") (term "0,0")) (rule "allLeft" (formula "32") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, LinkedList::$size))")) + select<[int]>(heap, self, LinkedList::$size))")) (rule "eqSymm" (formula "32") (term "1,0,0")) (rule "eqSymm" (formula "32") (term "0,1,0")) (rule "inEqSimp_homoInEq0" (formula "32") (term "1,0,0,0,0")) diff --git a/key.ui/examples/heap/permutedSum/perm.proof b/key.ui/examples/heap/permutedSum/perm.proof index 0f8f97abc2e..e765cc27477 100644 --- a/key.ui/examples/heap/permutedSum/perm.proof +++ b/key.ui/examples/heap/permutedSum/perm.proof @@ -407,8 +407,8 @@ (rule "polySimp_elimOne" (formula "16") (term "1,1")) (rule "polySimp_mulComm0" (formula "16") (term "0,1")) (rule "newSym_eq" (formula "16") (inst "newSymDef=add(mul(result_next, Z(0(#))), - mul(int::seqGet(Seq::select(heap, self, Perm::#c), - int::select(anon_heap_LOOP_0<>, + mul(seqGet<[int]>(select<[Seq]>(heap, self, Perm::#c), + select<[int]>(anon_heap_LOOP_0<>, self, Perm::#pIdx)), Z(0(#))))") (inst "l=l_0")) @@ -1004,10 +1004,10 @@ (builtin "One Step Simplification" (formula "1")) (builtin "One Step Simplification" (formula "15")) (rule "eqTermCut" (formula "2") (term "0") (inst "s=bsum{int i;}(Z(0(#)), - int::select(anon_heap_LOOP_0<>, + select<[int]>(anon_heap_LOOP_0<>, self, Perm::#pIdx), - (int)(any::seqGet(Seq::select(heap, + (int)(seqGet<[any]>(select<[Seq]>(heap, self, Perm::#c), i)))") (userinteraction)) @@ -3065,7 +3065,7 @@ (rule "closeFalse" (formula "1")) ) (branch "Case 2" - (rule "eqTermCut" (formula "32") (term "1,0,1") (inst "s=int::select(anon_heap_LOOP_0<>, + (rule "eqTermCut" (formula "32") (term "1,0,1") (inst "s=select<[int]>(anon_heap_LOOP_0<>, self, Perm::#pIdx)") (userinteraction)) (branch "Assume self.a@heap[anon({(self, Perm::#pIdx)}, anon_heap_LOOP_0<>)].length = self.pIdx@anon_heap_LOOP_0<>" @@ -6723,9 +6723,9 @@ (rule "polySimp_mulLiterals" (formula "28") (term "0")) (rule "mul_literals" (formula "28") (term "1")) (rule "elimGcdEq" (formula "28") (inst "elimGcdRightDiv=Z(0(#))") (inst "elimGcdLeftDiv=bsum{int i;}(Z(0(#)), - length(int[]::select(heap, self, Perm::#a)), + length(select<[int[]]>(heap, self, Perm::#a)), div(add(Z(8(4(6(3(8(4(7(4(1(2(#))))))))))), - int::seqGet(Seq::select(heap, + seqGet<[int]>(select<[Seq]>(heap, self, Perm::#c), i)), @@ -6766,9 +6766,9 @@ (rule "replace_known_left" (formula "29") (term "0") (ifseqformula "13")) (builtin "One Step Simplification" (formula "29")) (rule "elimGcdEq" (formula "29") (inst "elimGcdRightDiv=Z(0(#))") (inst "elimGcdLeftDiv=bsum{int i;}(Z(0(#)), - length(int[]::select(heap, self, Perm::#a)), + length(select<[int[]]>(heap, self, Perm::#a)), div(add(Z(8(4(6(3(8(4(7(4(1(2(#))))))))))), - int::seqGet(Seq::select(heap, + seqGet<[int]>(select<[Seq]>(heap, self, Perm::#c), i)), @@ -6806,7 +6806,7 @@ (rule "polySimp_mulLiterals" (formula "2") (term "0")) (rule "polySimp_elimOne" (formula "2") (term "0")) (rule "elimGcdEq" (formula "31") (inst "elimGcdRightDiv=Z(0(#))") (inst "elimGcdLeftDiv=div(add(Z(8(4(6(3(8(4(7(4(1(2(#))))))))))), - int::seqGet(Seq::select(heap, self, Perm::#c), + seqGet<[int]>(select<[Seq]>(heap, self, Perm::#c), i_1)), Z(6(9(2(7(6(9(4(9(2(4(#))))))))))))") (inst "elimGcd=Z(6(9(2(7(6(9(4(9(2(4(#)))))))))))")) (builtin "One Step Simplification" (formula "31")) @@ -7111,29 +7111,29 @@ (rule "qeq_literals" (formula "38") (term "0,0")) (builtin "One Step Simplification" (formula "38")) (rule "newSym_eq" (formula "38") (inst "l=l_0") (inst "newSymDef=add(add(quotient_2, - mul(int::seqGet(Seq::select(heap, + mul(seqGet<[int]>(select<[Seq]>(heap, self, Perm::#c), j_0), Z(0(#)))), - mul(\\if ( geq(int::seqGet(Seq::select(heap, + mul(\\if ( geq(seqGet<[int]>(select<[Seq]>(heap, self, Perm::#perm), j_0), Z(0(#))) - & leq(int::seqGet(Seq::select(heap, + & leq(seqGet<[int]>(select<[Seq]>(heap, self, Perm::#perm), j_0), add(Z(neglit(1(#))), - length(int[]::select(heap, + length(select<[int[]]>(heap, self, Perm::#a))))) - \\then (int::select(heap, - int[]::select(heap, + \\then (select<[int]>(heap, + select<[int[]]>(heap, self, Perm::#a), - arr(int::seqGet(Seq::select(heap, + arr(seqGet<[int]>(select<[Seq]>(heap, self, Perm::#perm), j_0)))) @@ -7261,29 +7261,29 @@ (rule "qeq_literals" (formula "36") (term "0,0")) (builtin "One Step Simplification" (formula "36")) (rule "newSym_eq" (formula "36") (inst "l=l_1") (inst "newSymDef=add(add(quotient_0, - mul(int::seqGet(Seq::select(heap, + mul(seqGet<[int]>(select<[Seq]>(heap, self, Perm::#c), i_0), Z(0(#)))), - mul(\\if ( geq(int::seqGet(Seq::select(heap, + mul(\\if ( geq(seqGet<[int]>(select<[Seq]>(heap, self, Perm::#perm), i_0), Z(0(#))) - & leq(int::seqGet(Seq::select(heap, + & leq(seqGet<[int]>(select<[Seq]>(heap, self, Perm::#perm), i_0), add(Z(neglit(1(#))), - length(int[]::select(heap, + length(select<[int[]]>(heap, self, Perm::#a))))) - \\then (int::select(heap, - int[]::select(heap, + \\then (select<[int]>(heap, + select<[int[]]>(heap, self, Perm::#a), - arr(int::seqGet(Seq::select(heap, + arr(seqGet<[int]>(select<[Seq]>(heap, self, Perm::#perm), i_0)))) @@ -7455,11 +7455,11 @@ (rule "add_literals" (formula "20") (term "0,0,0")) (rule "leq_literals" (formula "20") (term "0,0")) (builtin "One Step Simplification" (formula "20")) - (rule "newSym_eq" (formula "20") (inst "l=l_2") (inst "newSymDef=add(mul(int::seqGet(Seq::select(heap, self, Perm::#c), + (rule "newSym_eq" (formula "20") (inst "l=l_2") (inst "newSymDef=add(mul(seqGet<[int]>(select<[Seq]>(heap, self, Perm::#c), j_0), Z(0(#))), - mul(int::seqGet(Seq::select(heap, self, Perm::#b), - int::seqGet(Seq::select(heap, + mul(seqGet<[int]>(select<[Seq]>(heap, self, Perm::#b), + seqGet<[int]>(select<[Seq]>(heap, self, Perm::#perm), j_0)), @@ -7537,11 +7537,11 @@ (rule "add_literals" (formula "21") (term "0,0,0")) (rule "leq_literals" (formula "21") (term "0,0")) (builtin "One Step Simplification" (formula "21")) - (rule "newSym_eq" (formula "21") (inst "l=l_3") (inst "newSymDef=add(mul(int::seqGet(Seq::select(heap, self, Perm::#c), + (rule "newSym_eq" (formula "21") (inst "l=l_3") (inst "newSymDef=add(mul(seqGet<[int]>(select<[Seq]>(heap, self, Perm::#c), i_0), Z(0(#))), - mul(int::seqGet(Seq::select(heap, self, Perm::#b), - int::seqGet(Seq::select(heap, + mul(seqGet<[int]>(select<[Seq]>(heap, self, Perm::#b), + seqGet<[int]>(select<[Seq]>(heap, self, Perm::#perm), i_0)), @@ -7603,13 +7603,13 @@ (rule "qeq_literals" (formula "22") (term "0,0")) (builtin "One Step Simplification" (formula "22")) (rule "newSym_eq" (formula "22") (inst "l=l_4") (inst "newSymDef=add(add(quotient_1, - mul(int::seqGet(Seq::select(heap, + mul(seqGet<[int]>(select<[Seq]>(heap, self, Perm::#c), i_1), Z(0(#)))), - mul(int::seqGet(Seq::select(heap, self, Perm::#b), - int::seqGet(Seq::select(heap, + mul(seqGet<[int]>(select<[Seq]>(heap, self, Perm::#b), + seqGet<[int]>(select<[Seq]>(heap, self, Perm::#perm), i_1)), diff --git a/key.ui/examples/heap/quicksort/sort.key.proof.ignore b/key.ui/examples/heap/quicksort/sort.key.proof.ignore index ea9fc24655c..904acf11b63 100644 --- a/key.ui/examples/heap/quicksort/sort.key.proof.ignore +++ b/key.ui/examples/heap/quicksort/sort.key.proof.ignore @@ -12074,7 +12074,7 @@ (rule "add_zero_right" (formula "39") (term "0,0,0,0,0")) (rule "qeq_literals" (formula "39") (term "0,0,0,0")) (builtin "One Step Simplification" (formula "39")) - (rule "allLeft" (formula "42") (inst "t=int::select(heap, array, arr(add(Z(1(#)), to)))")) + (rule "allLeft" (formula "42") (inst "t=select<[int]>(heap, array, arr(add(Z(1(#)), to)))")) (rule "pullOutSelect" (formula "42") (term "0,1") (inst "selectSK=arr_16")) (rule "simplifySelectOfAnonEQ" (formula "42") (ifseqformula "34")) (builtin "One Step Simplification" (formula "42") (ifInst "" (formula "59"))) @@ -12281,7 +12281,7 @@ (builtin "One Step Simplification" (formula "58")) (rule "applyEqReverse" (formula "59") (term "2,0") (ifseqformula "58")) (rule "hideAuxiliaryEq" (formula "58")) - (rule "allLeft" (formula "60") (inst "t=int::select(heap, array, arr(add(Z(1(#)), to)))")) + (rule "allLeft" (formula "60") (inst "t=select<[int]>(heap, array, arr(add(Z(1(#)), to)))")) (rule "pullOutSelect" (formula "60") (term "0,1") (inst "selectSK=arr_24")) (rule "simplifySelectOfAnonEQ" (formula "60") (ifseqformula "54")) (builtin "One Step Simplification" (formula "60") (ifInst "" (formula "67"))) diff --git a/key.ui/examples/heap/quicksort/sort.script b/key.ui/examples/heap/quicksort/sort.script index c2f8153fa2d..4c5dab4f16f 100644 --- a/key.ui/examples/heap/quicksort/sort.script +++ b/key.ui/examples/heap/quicksort/sort.script @@ -3,15 +3,15 @@ macro "autopilot-prep"; // proof obligation for seqPerm after 3 method calls select formula="{heapAtPre:=heap || exc:=null || heap:=heapAfter_sort_0} - seqPerm(seqDef{int u;}(0, array.length, any::select(heap, array, arr(u))), - seqDef{int u;}(0, array.length, any::select(heapAtPre, array, arr(u))))"; + seqPerm(seqDef{int u;}(0, array.length, select<[any]>(heap, array, arr(u))), + seqDef{int u;}(0, array.length, select<[any]>(heapAtPre, array, arr(u))))"; macro "simp-upd"; let @seqPre="seqDef{int u;}(0, array.length, array[u])" - @seqSplit="seqDef{int u;}(0, array.length, any::select(heapAfter_split, array, arr(u)))" - @seqSort="seqDef{int u;}(0, array.length, any::select(heapAfter_sort, array, arr(u)))" - @seqSort0="seqDef{int u;}(0, array.length, any::select(heapAfter_sort_0, array, arr(u)))"; + @seqSplit="seqDef{int u;}(0, array.length, select<[any]>(heapAfter_split, array, arr(u)))" + @seqSort="seqDef{int u;}(0, array.length, select<[any]>(heapAfter_sort, array, arr(u)))" + @seqSort0="seqDef{int u;}(0, array.length, select<[any]>(heapAfter_sort_0, array, arr(u)))"; rule seqPermSym formula="seqPerm(@seqSplit, @seqPre)"; diff --git a/key.ui/examples/heap/simple/anonymise_datagroup.key b/key.ui/examples/heap/simple/anonymise_datagroup.key index b9d0e1e7a37..48fe6bfd9de 100644 --- a/key.ui/examples/heap/simple/anonymise_datagroup.key +++ b/key.ui/examples/heap/simple/anonymise_datagroup.key @@ -15,12 +15,12 @@ //where "o2.*" is disjoint from the data group o.$created = TRUE - & int::select(heap, o, f) = 33 + & select<[int]>(heap, o, f) = 33 & disjoint(allFields(o), dataGroup(heap)) & heap = heapAtPre & modAtPre = dataGroup(heap) -> - ({heap := anon(heap, modAtPre, anonHeap)} int::select(heap, o, f)) = 33 + ({heap := anon(heap, modAtPre, anonHeap)} select<[int]>(heap, o, f)) = 33 } diff --git a/key.ui/examples/heap/simple/constructor_contracts.key b/key.ui/examples/heap/simple/constructor_contracts.key index 63bdd3df2b5..6a2837c5351 100644 --- a/key.ui/examples/heap/simple/constructor_contracts.key +++ b/key.ui/examples/heap/simple/constructor_contracts.key @@ -65,6 +65,6 @@ & \forall java.lang.Object o; \forall Field f; ( elementOf(o, f, freshLocs(heapAtPre)) - | any::select(heap, o, f) = any::select(heapAtPre, o, f))) + | select<[any]>(heap, o, f) = select<[any]>(heapAtPre, o, f))) } diff --git a/key.ui/examples/heap/simple/dependencies.key b/key.ui/examples/heap/simple/dependencies.key index 5ac857e541d..7cdfc3027d0 100644 --- a/key.ui/examples/heap/simple/dependencies.key +++ b/key.ui/examples/heap/simple/dependencies.key @@ -14,7 +14,7 @@ \forall Heap h; \forall Object o; ( \forall Object o2; \forall Field f; ( elementOf(o2, f, dataGroup(heap, o)) - -> any::select(h, o2, f) = any::select(heap, o2, f) + -> select<[any]>(h, o2, f) = select<[any]>(heap, o2, f) ) -> modelField(h, o) = modelField(heap, o) diff --git a/key.ui/examples/heap/simple/dependency_contracts.key b/key.ui/examples/heap/simple/dependency_contracts.key index 1dc6ef2aa0e..bd66d698147 100644 --- a/key.ui/examples/heap/simple/dependency_contracts.key +++ b/key.ui/examples/heap/simple/dependency_contracts.key @@ -51,11 +51,11 @@ \problem { wellFormed(heap) & !self = null - & boolean::select(heap, + & select<[boolean]>(heap, self, java.lang.Object::#$created) = TRUE - & MyClient::exactInstance(self) = TRUE + & exactInstance<[MyClient]>(self) = TRUE & java.lang.Object::$inv(heap, self) -> {heapAtPre:=heap} \[{ @@ -74,7 +74,7 @@ MyClient::#mc), singleton(self, MyClient::#i)), freshLocs(heapAtPre))) - | any::select(heap, o, f) - = any::select(heapAtPre, o, f))) + | select<[any]>(heap, o, f) + = select<[any]>(heapAtPre, o, f))) } diff --git a/key.ui/examples/heap/simple/invariant_preservation.key b/key.ui/examples/heap/simple/invariant_preservation.key index 74f10d44e6d..fdf18509b20 100644 --- a/key.ui/examples/heap/simple/invariant_preservation.key +++ b/key.ui/examples/heap/simple/invariant_preservation.key @@ -49,11 +49,11 @@ \problem { wellFormed(heap) & !self = null - & boolean::select(heap, + & select<[boolean]>(heap, self, java.lang.Object::#$created) = TRUE - & MyClient::exactInstance(self) = TRUE + & exactInstance<[MyClient]>(self) = TRUE & java.lang.Object::$inv(heap, self) -> {heapAtPre:=heap} \[{ @@ -70,7 +70,7 @@ ( elementOf(o, f, union(singleton(self, MyClient::#i), freshLocs(heapAtPre))) - | any::select(heap, o, f) - = any::select(heapAtPre, o, f))) + | select<[any]>(heap, o, f) + = select<[any]>(heapAtPre, o, f))) } diff --git a/key.ui/examples/heap/simple/loop1.key b/key.ui/examples/heap/simple/loop1.key index 14641723668..4c8f7d23afd 100644 --- a/key.ui/examples/heap/simple/loop1.key +++ b/key.ui/examples/heap/simple/loop1.key @@ -20,5 +20,5 @@ self.attr = 27 & \forall Object o; \forall Field f; ((o = self & f = MyClass::#attr) - | any::select(heap,o,f) = any::select(heapAtPre,o,f)) + | select<[any]>(heap,o,f) = select<[any]>(heapAtPre,o,f)) } diff --git a/key.ui/examples/heap/simple/loop2.key b/key.ui/examples/heap/simple/loop2.key index 77af5eee283..5cacc3721f9 100644 --- a/key.ui/examples/heap/simple/loop2.key +++ b/key.ui/examples/heap/simple/loop2.key @@ -26,7 +26,7 @@ -> \<{self.loop2(a)@MyClass;}\> - \forall int x; (0 <= x & x < a.length -> a[x] = int::select(heapAtPre,self,MyClass::#attr2)) + \forall int x; (0 <= x & x < a.length -> a[x] = select<[int]>(heapAtPre,self,MyClass::#attr2)) & \forall Object o; \forall Field f; ((o = a & \exists int i; f = arr(i)) - | any::select(heap,o,f) = any::select(heapAtPre,o,f)) + | select<[any]>(heap,o,f) = select<[any]>(heapAtPre,o,f)) } diff --git a/key.ui/examples/heap/simple/modifiable.key b/key.ui/examples/heap/simple/modifiable.key index cd5ff748c72..b962afd7ccf 100644 --- a/key.ui/examples/heap/simple/modifiable.key +++ b/key.ui/examples/heap/simple/modifiable.key @@ -15,8 +15,8 @@ \problem { //Assignable clause is {self.next, b.next.next, b.next.next.next, self.attr} modAtPre = union(singleton(self, next), - union(singleton(Object::select(heap,b,next), next), - union(singleton(Object::select(heap,Object::select(heap,b,next),next), next), + union(singleton(select<[Object]>(heap,b,next), next), + union(singleton(select<[Object]>(heap,select<[Object]>(heap,b,next),next), next), singleton(self, attr)))) //atPre definitions @@ -27,14 +27,14 @@ // self.next = b.next.next; // b.next.next = b; // self.attr++; - {heap := store(heap, self, next, Object::select(heap, Object::select(heap,b,next), next))} - {heap := store(heap, Object::select(heap, b, next), next, b)} - {heap := store(heap, self, attr, int::select(heap, self, attr) + 1)} + {heap := store(heap, self, next, select<[Object]>(heap, select<[Object]>(heap,b,next), next))} + {heap := store(heap, select<[Object]>(heap, b, next), next, b)} + {heap := store(heap, self, attr, select<[int]>(heap, self, attr) + 1)} //all heap locations must either be unchanged or be in the assignable clause (\forall Object o; \forall Field g; ( - any::select(heap, o, g) = any::select(heapAtPre, o, g) + select<[any]>(heap, o, g) = select<[any]>(heapAtPre, o, g) | elementOf(o, g, modAtPre) )) } diff --git a/key.ui/examples/heap/simple/modifiable_datagroup.key b/key.ui/examples/heap/simple/modifiable_datagroup.key index 2d50a068ae4..20ad0e5dd3b 100644 --- a/key.ui/examples/heap/simple/modifiable_datagroup.key +++ b/key.ui/examples/heap/simple/modifiable_datagroup.key @@ -30,7 +30,7 @@ //all heap locations must either be unchanged or be in the assignable clause (\forall Object o; \forall Field g; ( - any::select(heap, o, g) = any::select(heapAtPre, o, g) + select<[any]>(heap, o, g) = select<[any]>(heapAtPre, o, g) | elementOf(o, g, modAtPre) )) } diff --git a/key.ui/examples/heap/simple/operation_contracts.key b/key.ui/examples/heap/simple/operation_contracts.key index 6703415e52a..1adbc543c49 100644 --- a/key.ui/examples/heap/simple/operation_contracts.key +++ b/key.ui/examples/heap/simple/operation_contracts.key @@ -51,11 +51,11 @@ \problem { wellFormed(heap) & !self = null - & boolean::select(heap, + & select<[boolean]>(heap, self, java.lang.Object::#$created) = TRUE - & MyClient::exactInstance(self) = TRUE + & exactInstance<[MyClient]>(self) = TRUE & java.lang.Object::$inv(heap, self) -> {heapAtPre:=heap} \[{ @@ -73,11 +73,11 @@ ( elementOf(o, f, union(union(singleton(self, MyClient::#i), MyClass::footprint(heapAtPre, - MyClass::select(heapAtPre, + select<[MyClass]>(heapAtPre, self, MyClient::#mc))), freshLocs(heapAtPre))) - | any::select(heap, o, f) - = any::select(heapAtPre, o, f))) + | select<[any]>(heap, o, f) + = select<[any]>(heapAtPre, o, f))) } diff --git a/key.ui/examples/heap/simple/select_store.key b/key.ui/examples/heap/simple/select_store.key index 5e3fac7e0bf..714ea9dc709 100644 --- a/key.ui/examples/heap/simple/select_store.key +++ b/key.ui/examples/heap/simple/select_store.key @@ -8,5 +8,5 @@ } \problem { - {heap:=store(heap,o,f,1)} {heap:=store(heap,o,g,2)} \[{}\] int::select(heap,o,f)=1 + {heap:=store(heap,o,f,1)} {heap:=store(heap,o,g,2)} \[{}\] select<[int]>(heap,o,f)=1 } diff --git a/key.ui/examples/heap/simple/seq.key b/key.ui/examples/heap/simple/seq.key index bcbc99bd034..4d6ed806b75 100644 --- a/key.ui/examples/heap/simple/seq.key +++ b/key.ui/examples/heap/simple/seq.key @@ -8,11 +8,11 @@ s1 = seqConcat(seqConcat(seqSingleton(54), seqSingleton(4)), seqSingleton(100)) & s2 = seqConcat(seqEmpty, seqSub(s1, 1, 3)) -> - \forall int i; (0 <= i & i < seqLen(s1) -> int::seqGet(s1, i) > 0) - & int::seqGet(s1, 1) = 4 + \forall int i; (0 <= i & i < seqLen(s1) -> seqGet<[int]>(s1, i) > 0) + & seqGet<[int]>(s1, 1) = 4 & seqLen(s1) = 3 & seqLen(s2) = 2 - & int::seqGet(s2, 1) = 100 + & seqGet<[int]>(s2, 1) = 100 & seqReverse(s1) = seqConcat(seqConcat(seqSingleton(100), seqSingleton(4)), seqSingleton(54)) & seqConcat(seqEmpty, seqReverse(seqEmpty)) = seqEmpty & \forall Seq s; (seqSub(s, 0, seqLen(s)) = s) diff --git a/key.ui/examples/heap/verifyThis15_3_DLL/doUndo.proof b/key.ui/examples/heap/verifyThis15_3_DLL/doUndo.proof index 9111634e9b9..59cbc85bd8c 100644 --- a/key.ui/examples/heap/verifyThis15_3_DLL/doUndo.proof +++ b/key.ui/examples/heap/verifyThis15_3_DLL/doUndo.proof @@ -742,16 +742,16 @@ (rule "closeTrue" (formula "44")) ) (branch "Case 2" - (rule "eqTermCut" (formula "44") (term "2,0,0,0,1,0") (inst "s=seqLen(seqSub(seqConcat(seqSub(Seq::select(heap, + (rule "eqTermCut" (formula "44") (term "2,0,0,0,1,0") (inst "s=seqLen(seqSub(seqConcat(seqSub(select<[Seq]>(heap, self, DoubleLinkedList::#s), Z(0(#)), k), - seqSub(Seq::select(heap, + seqSub(select<[Seq]>(heap, self, DoubleLinkedList::#s), add(k, Z(1(#))), - int::select(heap, + select<[int]>(heap, self, DoubleLinkedList::#len))), Z(0(#)), diff --git a/key.ui/examples/heap/verifyThis15_3_DLL/remove.proof b/key.ui/examples/heap/verifyThis15_3_DLL/remove.proof index 3121087b2f4..0bb8a23191a 100644 --- a/key.ui/examples/heap/verifyThis15_3_DLL/remove.proof +++ b/key.ui/examples/heap/verifyThis15_3_DLL/remove.proof @@ -1581,7 +1581,7 @@ (rule "hideAuxiliaryEq" (formula "1")) (rule "eqSymm" (formula "25")) (rule "allLeft" (formula "20") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "20") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "20") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "20") (term "1,0,0")) @@ -2083,7 +2083,7 @@ (builtin "One Step Simplification" (formula "1")) (rule "true_left" (formula "1")) (rule "allLeft" (formula "20") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "20") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "20") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "20") (term "1,0,0")) @@ -3291,7 +3291,7 @@ (builtin "One Step Simplification" (formula "18")) (rule "notLeft" (formula "18")) (rule "allLeft" (formula "24") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "24") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "24") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "24") (term "1,0,0")) @@ -3461,7 +3461,7 @@ (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) (rule "allLeft" (formula "24") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "24") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "24") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "24") (term "1,0,0")) @@ -5690,7 +5690,7 @@ (rule "replace_known_left" (formula "4") (term "0,1,0,1") (ifseqformula "3")) (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "3")) (ifInst "" (formula "3"))) (rule "allLeft" (formula "27") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "27") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "27") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "27") (term "1,0,0")) @@ -5937,7 +5937,7 @@ (rule "inEqSimp_sepPosMonomial1" (formula "14")) (rule "mul_literals" (formula "14") (term "1")) (rule "allLeft" (formula "27") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "27") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "27") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "27") (term "1,0,0")) @@ -6776,7 +6776,7 @@ (rule "true_left" (formula "2")) (rule "applyEq" (formula "27") (term "1,0") (ifseqformula "3")) (rule "allLeft" (formula "26") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "26") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "26") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "26") (term "1,0,0")) @@ -7562,7 +7562,7 @@ (rule "leq_literals" (formula "23") (term "0,1")) (builtin "One Step Simplification" (formula "23")) (rule "allLeft" (formula "25") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "25") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "25") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "25") (term "1,0,0")) @@ -7746,7 +7746,7 @@ (builtin "One Step Simplification" (formula "17")) (rule "notLeft" (formula "17")) (rule "allLeft" (formula "24") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "24") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "24") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "24") (term "1,0,0")) @@ -8184,7 +8184,7 @@ (rule "leq_literals" (formula "21") (term "0,1,0,0")) (builtin "One Step Simplification" (formula "21")) (rule "allLeft" (formula "22") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "22") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "22") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "22") (term "1,0,0")) @@ -9023,7 +9023,7 @@ (rule "leq_literals" (formula "22") (term "0,1,0,0")) (builtin "One Step Simplification" (formula "22")) (rule "allLeft" (formula "23") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "23") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "23") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "23") (term "1,0,0")) @@ -9915,7 +9915,7 @@ (rule "applyEq" (formula "37") (term "0") (ifseqformula "23")) (rule "applyEq" (formula "25") (term "1,0") (ifseqformula "23")) (rule "allLeft" (formula "30") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "30") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "30") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "30") (term "1,0,0")) @@ -10054,7 +10054,7 @@ (rule "leq_literals" (formula "35") (term "0,1,0,0")) (builtin "One Step Simplification" (formula "35")) (rule "allLeft" (formula "27") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "polySimp_addAssoc" (formula "27") (term "1,1,0,0")) (rule "add_literals" (formula "27") (term "0,1,1,0,0")) (rule "inEqSimp_homoInEq1" (formula "27") (term "1")) @@ -10081,7 +10081,7 @@ (rule "inEqSimp_sepPosMonomial0" (formula "20") (term "1")) (rule "mul_literals" (formula "20") (term "1,1")) (rule "allLeft" (formula "19") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "19") (term "1")) (rule "polySimp_mulComm0" (formula "19") (term "1,0,1")) (rule "polySimp_rightDist" (formula "19") (term "1,0,1")) @@ -10469,7 +10469,7 @@ (builtin "One Step Simplification" (formula "16")) (rule "notLeft" (formula "16")) (rule "allLeft" (formula "22") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "22") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "22") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "22") (term "1,0,0")) @@ -10543,7 +10543,7 @@ (builtin "One Step Simplification" (formula "15")) (rule "notLeft" (formula "15")) (rule "allLeft" (formula "21") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "21") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "21") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "21") (term "1,0,0")) @@ -10927,7 +10927,7 @@ (rule "leq_literals" (formula "31") (term "0,1,0,0")) (builtin "One Step Simplification" (formula "31")) (rule "allLeft" (formula "32") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "32") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "32") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "32") (term "1,0,0")) @@ -11023,7 +11023,7 @@ (rule "qeq_literals" (formula "18") (term "0,1,0")) (builtin "One Step Simplification" (formula "18")) (rule "allLeft" (formula "27") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "polySimp_addAssoc" (formula "27") (term "1,1,0,0")) (rule "add_literals" (formula "27") (term "0,1,1,0,0")) (rule "inEqSimp_homoInEq1" (formula "27") (term "1")) @@ -11080,7 +11080,7 @@ (rule "inEqSimp_sepPosMonomial0" (formula "19") (term "1")) (rule "mul_literals" (formula "19") (term "1,1")) (rule "allLeft" (formula "17") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "17") (term "1")) (rule "polySimp_mulComm0" (formula "17") (term "1,0,1")) (rule "polySimp_rightDist" (formula "17") (term "1,0,1")) @@ -11235,7 +11235,7 @@ (rule "leq_literals" (formula "24") (term "0,1")) (builtin "One Step Simplification" (formula "24")) (rule "allLeft" (formula "28") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "28") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "28") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "28") (term "1,0,0")) @@ -12160,7 +12160,7 @@ (builtin "One Step Simplification" (formula "18")) (rule "notLeft" (formula "18")) (rule "allLeft" (formula "28") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "28") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "28") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "28") (term "1,0,0")) @@ -12313,7 +12313,7 @@ (rule "inEqSimp_sepPosMonomial0" (formula "29") (term "1")) (rule "mul_literals" (formula "29") (term "1,1")) (rule "allLeft" (formula "17") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "17") (term "1")) (rule "polySimp_mulComm0" (formula "17") (term "1,0,1")) (rule "polySimp_rightDist" (formula "17") (term "1,0,1")) @@ -12362,7 +12362,7 @@ (rule "leq_literals" (formula "37") (term "0,1,0,0")) (builtin "One Step Simplification" (formula "37")) (rule "allLeft" (formula "28") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "polySimp_addAssoc" (formula "28") (term "1,1,0,0")) (rule "add_literals" (formula "28") (term "0,1,1,0,0")) (rule "inEqSimp_homoInEq1" (formula "28") (term "1")) @@ -13033,7 +13033,7 @@ (rule "leq_literals" (formula "24") (term "0,1,0,0")) (builtin "One Step Simplification" (formula "24")) (rule "allLeft" (formula "25") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "25") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "25") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "25") (term "1,0,0")) @@ -13360,7 +13360,7 @@ (rule "leq_literals" (formula "30") (term "0,1,0,0")) (builtin "One Step Simplification" (formula "30")) (rule "allLeft" (formula "31") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "31") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "31") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "31") (term "1,0,0")) @@ -13563,7 +13563,7 @@ (rule "inEqSimp_sepPosMonomial0" (formula "31") (term "1")) (rule "mul_literals" (formula "31") (term "1,1")) (rule "allLeft" (formula "17") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "17") (term "1")) (rule "polySimp_mulComm0" (formula "17") (term "1,0,1")) (rule "polySimp_rightDist" (formula "17") (term "1,0,1")) @@ -13579,7 +13579,7 @@ (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1")) (rule "mul_literals" (formula "17") (term "1,1")) (rule "allLeft" (formula "28") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "polySimp_addAssoc" (formula "28") (term "1,1,0,0")) (rule "add_literals" (formula "28") (term "0,1,1,0,0")) (rule "inEqSimp_homoInEq1" (formula "28") (term "1")) @@ -14372,7 +14372,7 @@ (rule "leq_literals" (formula "23") (term "0,1")) (builtin "One Step Simplification" (formula "23")) (rule "allLeft" (formula "27") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "27") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "27") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "27") (term "1,0,0")) @@ -14833,7 +14833,7 @@ (rule "qeq_literals" (formula "24") (term "0,1")) (builtin "One Step Simplification" (formula "24")) (rule "allLeft" (formula "27") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "27") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "27") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "27") (term "1,0,0")) @@ -15256,7 +15256,7 @@ (rule "qeq_literals" (formula "21") (term "0,1,0")) (builtin "One Step Simplification" (formula "21")) (rule "allLeft" (formula "22") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "22") (term "1")) (rule "polySimp_mulComm0" (formula "22") (term "1,0,1")) (rule "polySimp_rightDist" (formula "22") (term "1,0,1")) @@ -15272,7 +15272,7 @@ (rule "inEqSimp_sepPosMonomial0" (formula "22") (term "1")) (rule "mul_literals" (formula "22") (term "1,1")) (rule "allLeft" (formula "30") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "polySimp_addAssoc" (formula "30") (term "1,1,0,0")) (rule "add_literals" (formula "30") (term "0,1,1,0,0")) (rule "inEqSimp_homoInEq1" (formula "30") (term "1")) @@ -16410,7 +16410,7 @@ (rule "leq_literals" (formula "57") (term "0,1,0,0")) (builtin "One Step Simplification" (formula "57")) (rule "allLeft" (formula "58") (inst "t=add(Z(neglit(2(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "58") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "58") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "58") (term "1,0,0")) @@ -17600,7 +17600,7 @@ (rule "leq_literals" (formula "19") (term "0,1")) (builtin "One Step Simplification" (formula "19")) (rule "allLeft" (formula "23") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "23") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "23") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "23") (term "1,0,0")) diff --git a/key.ui/examples/heap/verifyThis15_3_DLL/unremove.proof b/key.ui/examples/heap/verifyThis15_3_DLL/unremove.proof index b9825464218..cc98f1d6220 100644 --- a/key.ui/examples/heap/verifyThis15_3_DLL/unremove.proof +++ b/key.ui/examples/heap/verifyThis15_3_DLL/unremove.proof @@ -4107,7 +4107,7 @@ (builtin "One Step Simplification" (formula "5")) (rule "true_left" (formula "5")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq0" (formula "14") (term "1,0")) (rule "polySimp_mulComm0" (formula "14") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "14") (term "1,0,1,0")) @@ -4213,7 +4213,7 @@ (builtin "One Step Simplification" (formula "22")) (rule "notLeft" (formula "22")) (rule "allLeft" (formula "28") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "28") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "28") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "28") (term "1,0,0")) @@ -4955,7 +4955,7 @@ (rule "commute_or_2" (formula "28") (term "0,0,0")) (rule "commute_or_2" (formula "28") (term "0,0")) (rule "allLeft" (formula "16") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (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")) @@ -6300,7 +6300,7 @@ (builtin "One Step Simplification" (formula "26")) (rule "true_left" (formula "26")) (rule "allLeft" (formula "16") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "16") (term "1")) (rule "polySimp_mulComm0" (formula "16") (term "1,0,1")) (rule "polySimp_rightDist" (formula "16") (term "1,0,1")) @@ -6379,7 +6379,7 @@ (rule "leq_literals" (formula "29") (term "0,1,0,0")) (builtin "One Step Simplification" (formula "29")) (rule "allLeft" (formula "30") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "30") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "30") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "30") (term "1,0,0")) @@ -6877,7 +6877,7 @@ (rule "true_left" (formula "8")) (rule "commute_and" (formula "35") (term "0,0")) (rule "allLeft" (formula "29") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "29") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "29") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "29") (term "1,0,0")) @@ -8256,7 +8256,7 @@ (rule "hideAuxiliaryEq" (formula "2")) (rule "applyEq" (formula "21") (term "1,0") (ifseqformula "1")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq0" (formula "12") (term "1,0")) (rule "polySimp_mulComm0" (formula "12") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "12") (term "1,0,1,0")) @@ -9396,7 +9396,7 @@ (rule "replace_known_right" (formula "12") (term "0") (ifseqformula "32")) (builtin "One Step Simplification" (formula "12")) (rule "allLeft" (formula "17") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "17") (term "1")) (rule "polySimp_mulComm0" (formula "17") (term "1,0,1")) (rule "polySimp_rightDist" (formula "17") (term "1,0,1")) @@ -9444,7 +9444,7 @@ (rule "leq_literals" (formula "31") (term "0,1,0,0")) (builtin "One Step Simplification" (formula "31")) (rule "allLeft" (formula "32") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "32") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "32") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "32") (term "1,0,0")) @@ -9655,7 +9655,7 @@ (rule "qeq_literals" (formula "38") (term "0,1,0")) (builtin "One Step Simplification" (formula "38")) (rule "allLeft" (formula "33") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "polySimp_addAssoc" (formula "33") (term "1,1,0,0")) (rule "add_literals" (formula "33") (term "0,1,1,0,0")) (rule "inEqSimp_homoInEq1" (formula "33") (term "1")) @@ -9690,7 +9690,7 @@ (rule "leq_literals" (formula "22") (term "0,1")) (builtin "One Step Simplification" (formula "22")) (rule "allLeft" (formula "23") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "23") (term "1")) (rule "polySimp_mulComm0" (formula "23") (term "1,0,1")) (rule "polySimp_rightDist" (formula "23") (term "1,0,1")) @@ -9841,7 +9841,7 @@ (rule "replace_known_right" (formula "11") (term "0") (ifseqformula "30")) (builtin "One Step Simplification" (formula "11")) (rule "allLeft" (formula "16") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (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")) @@ -10006,7 +10006,7 @@ (builtin "One Step Simplification" (formula "16")) (rule "true_left" (formula "16")) (rule "allLeft" (formula "30") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "30") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "30") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "30") (term "1,0,0")) @@ -10575,7 +10575,7 @@ (builtin "One Step Simplification" (formula "22")) (rule "true_left" (formula "22")) (rule "allLeft" (formula "17") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq0" (formula "17") (term "1,0")) (rule "polySimp_mulComm0" (formula "17") (term "1,0,1,0")) (rule "polySimp_rightDist" (formula "17") (term "1,0,1,0")) @@ -10696,7 +10696,7 @@ (rule "leq_literals" (formula "34") (term "0,1,0,0")) (builtin "One Step Simplification" (formula "34")) (rule "allLeft" (formula "35") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "35") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "35") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "35") (term "1,0,0")) @@ -10740,7 +10740,7 @@ (builtin "One Step Simplification" (formula "2")) (rule "true_left" (formula "2")) (rule "allLeft" (formula "30") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "polySimp_addAssoc" (formula "30") (term "1,1,0,0")) (rule "add_literals" (formula "30") (term "0,1,1,0,0")) (rule "inEqSimp_homoInEq1" (formula "30") (term "1")) @@ -10880,7 +10880,7 @@ (rule "leq_literals" (formula "33") (term "0,1")) (builtin "One Step Simplification" (formula "33")) (rule "allLeft" (formula "22") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "22") (term "1")) (rule "polySimp_mulComm0" (formula "22") (term "1,0,1")) (rule "polySimp_rightDist" (formula "22") (term "1,0,1")) @@ -11010,7 +11010,7 @@ (rule "hideAuxiliaryEq" (formula "2")) (rule "eqSymm" (formula "36")) (rule "allLeft" (formula "16") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "16") (term "1")) (rule "polySimp_mulComm0" (formula "16") (term "1,0,1")) (rule "polySimp_rightDist" (formula "16") (term "1,0,1")) @@ -11962,7 +11962,7 @@ (builtin "One Step Simplification" (formula "15")) (rule "notLeft" (formula "15")) (rule "allLeft" (formula "15") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "15") (term "1")) (rule "polySimp_mulComm0" (formula "15") (term "1,0,1")) (rule "polySimp_rightDist" (formula "15") (term "1,0,1")) @@ -12120,7 +12120,7 @@ (builtin "One Step Simplification" (formula "26")) (rule "applyEq" (formula "29") (term "0") (ifseqformula "26")) (rule "allLeft" (formula "28") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "28") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "28") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "28") (term "1,0,0")) @@ -12283,7 +12283,7 @@ (rule "qeq_literals" (formula "24") (term "0,1,0")) (builtin "One Step Simplification" (formula "24")) (rule "allLeft" (formula "22") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "22") (term "1")) (rule "polySimp_mulComm0" (formula "22") (term "1,0,1")) (rule "polySimp_rightDist" (formula "22") (term "1,0,1")) @@ -12354,7 +12354,7 @@ (builtin "One Step Simplification" (formula "38") (ifInst "" (formula "36"))) (rule "true_left" (formula "38")) (rule "allLeft" (formula "33") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "polySimp_addAssoc" (formula "33") (term "1,1,0,0")) (rule "add_literals" (formula "33") (term "0,1,1,0,0")) (rule "inEqSimp_homoInEq1" (formula "33") (term "1")) @@ -12602,7 +12602,7 @@ (builtin "One Step Simplification" (formula "24")) (rule "true_left" (formula "24")) (rule "allLeft" (formula "14") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "14") (term "1")) (rule "polySimp_mulComm0" (formula "14") (term "1,0,1")) (rule "polySimp_rightDist" (formula "14") (term "1,0,1")) @@ -12686,7 +12686,7 @@ (rule "leq_literals" (formula "27") (term "0,1,0,0")) (builtin "One Step Simplification" (formula "27")) (rule "allLeft" (formula "28") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "28") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "28") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "28") (term "1,0,0")) @@ -13099,7 +13099,7 @@ (builtin "One Step Simplification" (formula "15")) (rule "notLeft" (formula "15")) (rule "allLeft" (formula "15") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "15") (term "1")) (rule "polySimp_mulComm0" (formula "15") (term "1,0,1")) (rule "polySimp_rightDist" (formula "15") (term "1,0,1")) @@ -13326,7 +13326,7 @@ (rule "leq_literals" (formula "34") (term "0,1,0,0")) (builtin "One Step Simplification" (formula "34")) (rule "allLeft" (formula "35") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "35") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "35") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "35") (term "1,0,0")) @@ -13462,7 +13462,7 @@ (rule "qeq_literals" (formula "25") (term "0,1,0")) (builtin "One Step Simplification" (formula "25")) (rule "allLeft" (formula "31") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "polySimp_addAssoc" (formula "31") (term "1,1,0,0")) (rule "add_literals" (formula "31") (term "0,1,1,0,0")) (rule "inEqSimp_homoInEq1" (formula "31") (term "1")) @@ -13537,7 +13537,7 @@ (rule "inEqSimp_sepPosMonomial0" (formula "26") (term "1")) (rule "mul_literals" (formula "26") (term "1,1")) (rule "allLeft" (formula "23") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "23") (term "1")) (rule "polySimp_mulComm0" (formula "23") (term "1,0,1")) (rule "polySimp_rightDist" (formula "23") (term "1,0,1")) @@ -14513,7 +14513,7 @@ (builtin "One Step Simplification" (formula "26")) (rule "true_left" (formula "26")) (rule "allLeft" (formula "16") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "16") (term "1")) (rule "polySimp_mulComm0" (formula "16") (term "1,0,1")) (rule "polySimp_rightDist" (formula "16") (term "1,0,1")) @@ -14579,7 +14579,7 @@ (builtin "One Step Simplification" (formula "16")) (rule "notLeft" (formula "16")) (rule "allLeft" (formula "30") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "30") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "30") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "30") (term "1,0,0")) @@ -14773,7 +14773,7 @@ (rule "qeq_literals" (formula "20") (term "0,1,0")) (builtin "One Step Simplification" (formula "20")) (rule "allLeft" (formula "33") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "polySimp_addAssoc" (formula "33") (term "1,1,0,0")) (rule "add_literals" (formula "33") (term "0,1,1,0,0")) (rule "inEqSimp_homoInEq1" (formula "33") (term "1")) @@ -14791,7 +14791,7 @@ (rule "inEqSimp_sepPosMonomial0" (formula "33") (term "1")) (rule "mul_literals" (formula "33") (term "1,1")) (rule "allLeft" (formula "26") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "26") (term "1")) (rule "polySimp_mulComm0" (formula "26") (term "1,0,1")) (rule "polySimp_rightDist" (formula "26") (term "1,0,1")) @@ -16789,7 +16789,7 @@ (builtin "One Step Simplification" (formula "7")) (rule "true_left" (formula "7")) (rule "allLeft" (formula "23") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "23") (term "1")) (rule "polySimp_mulComm0" (formula "23") (term "1,0,1")) (rule "polySimp_rightDist" (formula "23") (term "1,0,1")) @@ -16864,7 +16864,7 @@ (builtin "One Step Simplification" (formula "25")) (rule "true_left" (formula "25")) (rule "allLeft" (formula "30") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "polySimp_addAssoc" (formula "30") (term "1,1,0,0")) (rule "add_literals" (formula "30") (term "0,1,1,0,0")) (rule "inEqSimp_homoInEq1" (formula "30") (term "1")) @@ -17013,7 +17013,7 @@ (rule "inEqSimp_sepPosMonomial0" (formula "28") (term "1")) (rule "mul_literals" (formula "28") (term "1,1")) (rule "allLeft" (formula "26") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "26") (term "1")) (rule "polySimp_mulComm0" (formula "26") (term "1,0,1")) (rule "polySimp_rightDist" (formula "26") (term "1,0,1")) @@ -17093,7 +17093,7 @@ (rule "leq_literals" (formula "36") (term "0,1")) (builtin "One Step Simplification" (formula "36")) (rule "allLeft" (formula "37") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "polySimp_addAssoc" (formula "37") (term "1,1,0,0")) (rule "add_literals" (formula "37") (term "0,1,1,0,0")) (rule "inEqSimp_homoInEq1" (formula "37") (term "1")) @@ -18478,7 +18478,7 @@ (builtin "One Step Simplification" (formula "24")) (rule "notLeft" (formula "24")) (rule "allLeft" (formula "30") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "30") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "30") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "30") (term "1,0,0")) @@ -18494,7 +18494,7 @@ (rule "leq_literals" (formula "30") (term "1,0,0")) (builtin "One Step Simplification" (formula "30")) (rule "allLeft" (formula "18") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "18") (term "1")) (rule "polySimp_mulComm0" (formula "18") (term "1,0,1")) (rule "polySimp_rightDist" (formula "18") (term "1,0,1")) @@ -18797,7 +18797,7 @@ (builtin "One Step Simplification" (formula "12")) (rule "true_left" (formula "12")) (rule "allLeft" (formula "32") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "polySimp_addAssoc" (formula "32") (term "1,1,0,0")) (rule "add_literals" (formula "32") (term "0,1,1,0,0")) (rule "inEqSimp_homoInEq1" (formula "32") (term "1")) @@ -19039,7 +19039,7 @@ (rule "leq_literals" (formula "38") (term "0,1")) (builtin "One Step Simplification" (formula "38")) (rule "allLeft" (formula "27") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "27") (term "1")) (rule "polySimp_mulComm0" (formula "27") (term "1,0,1")) (rule "polySimp_rightDist" (formula "27") (term "1,0,1")) @@ -20106,7 +20106,7 @@ (rule "commute_or_2" (formula "24") (term "0,0,0")) (rule "commute_or_2" (formula "24") (term "0,0")) (rule "allLeft" (formula "12") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "inEqSimp_homoInEq1" (formula "12") (term "1")) (rule "polySimp_mulComm0" (formula "12") (term "1,0,1")) (rule "polySimp_rightDist" (formula "12") (term "1,0,1")) @@ -20135,7 +20135,7 @@ (builtin "One Step Simplification" (formula "12")) (rule "notLeft" (formula "12")) (rule "allLeft" (formula "24") (inst "t=add(Z(neglit(1(#))), - int::select(heap, self, DoubleLinkedList::$len))")) + select<[int]>(heap, self, DoubleLinkedList::$len))")) (rule "eqSymm" (formula "24") (term "0,0,0,0,0")) (rule "inEqSimp_commuteLeq" (formula "24") (term "1,0")) (rule "inEqSimp_homoInEq1" (formula "24") (term "1,0,0")) diff --git a/key.ui/examples/heap/vstte10_04_Queens/Queens_search.proof b/key.ui/examples/heap/vstte10_04_Queens/Queens_search.proof index 0d20edf139e..b88ab44ee5e 100644 --- a/key.ui/examples/heap/vstte10_04_Queens/Queens_search.proof +++ b/key.ui/examples/heap/vstte10_04_Queens/Queens_search.proof @@ -21,7 +21,7 @@ \problem { wellFormed(heap) & ( inInt(pos) - & ( boolean::select(heap, + & ( select<[boolean]>(heap, board, java.lang.Object::#$created) = TRUE @@ -34,8 +34,8 @@ & lt(x, length(board)) & inInt(x) -> leq(Z(0(#)), - int::select(heap, board, arr(x))) - & lt(int::select(heap, board, arr(x)), + select<[int]>(heap, board, arr(x))) + & lt(select<[int]>(heap, board, arr(x)), length(board))) & \forall int p; \forall int x; @@ -43,19 +43,19 @@ & (lt(x, p) & lt(p, pos)) & inInt(p) & inInt(x) - -> ! int::select(heap, board, arr(x)) - = int::select(heap, board, arr(p)) - & ( ! javaSubInt(int::select(heap, + -> ! select<[int]>(heap, board, arr(x)) + = select<[int]>(heap, board, arr(p)) + & ( ! javaSubInt(select<[int]>(heap, board, arr(x)), - int::select(heap, + select<[int]>(heap, board, arr(p))) = javaSubInt(p, x) - & ! javaSubInt(int::select(heap, + & ! javaSubInt(select<[int]>(heap, board, arr(p)), - int::select(heap, + select<[int]>(heap, board, arr(x))) = javaSubInt(p, x))) @@ -72,10 +72,10 @@ & lt(x, length(board)) & inInt(x) -> leq(Z(0(#)), - int::select(heap, + select<[int]>(heap, board, arr(x))) - & lt(int::select(heap, + & lt(select<[int]>(heap, board, arr(x)), length(board))) @@ -87,23 +87,23 @@ & lt(p, length(board))) & inInt(p) & inInt(x) - -> ! int::select(heap, + -> ! select<[int]>(heap, board, arr(x)) - = int::select(heap, + = select<[int]>(heap, board, arr(p)) - & ( ! javaSubInt(int::select(heap, + & ( ! javaSubInt(select<[int]>(heap, board, arr(x)), - int::select(heap, + select<[int]>(heap, board, arr(p))) = javaSubInt(p, x) - & ! javaSubInt(int::select(heap, + & ! javaSubInt(select<[int]>(heap, board, arr(p)), - int::select(heap, + select<[int]>(heap, board, arr(x))) = javaSubInt(p, x)))) @@ -150,7 +150,7 @@ & inInt(x) -> (int)(any::seqGet(s, x)) - = int::select(heapAtPre, + = select<[int]>(heapAtPre, board, arr(x))))))) & exc = null @@ -163,7 +163,7 @@ javaSubInt(length(board), Z(1(#))))) | !o = null - & ! boolean::select(heapAtPre, + & ! select<[boolean]>(heapAtPre, o, java.lang.Object::#$created) = TRUE @@ -1030,7 +1030,7 @@ (rule "tryEmpty" (formula "16") (term "1,1,0,1,0,1")) (rule "emptyModality" (formula "16") (term "1,1,0,1,0,1")) (builtin "One Step Simplification" (formula "16")) - (builtin "Use Operation Contract" (formula "16") (contract "pre: and(and(leq(Z(0(#)),pos),lt(pos,length(board))),not(equals(board,null))); mby: null; post: and(equiv(equals(result,TRUE),all{x:int}(imp(and(and(leq(Z(0(#)),x),lt(x,pos)),inInt(x)),and(not(equals(int::select(heap,board,arr(x)),int::select(heap,board,arr(pos)))),and(not(equals(javaSubInt(int::select(heap,board,arr(x)),int::select(heap,board,arr(pos))),javaSubInt(pos,x))),not(equals(javaSubInt(int::select(heap,board,arr(pos)),int::select(heap,board,arr(x))),javaSubInt(pos,x)))))))),equals(exc,null)); mod: empty; termination: diamond")) + (builtin "Use Operation Contract" (formula "16") (contract "pre: and(and(leq(Z(0(#)),pos),lt(pos,length(board))),not(equals(board,null))); mby: null; post: and(equiv(equals(result,TRUE),all{x:int}(imp(and(and(leq(Z(0(#)),x),lt(x,pos)),inInt(x)),and(not(equals(select<[int]>(heap,board,arr(x)),select<[int]>(heap,board,arr(pos)))),and(not(equals(javaSubInt(select<[int]>(heap,board,arr(x)),select<[int]>(heap,board,arr(pos))),javaSubInt(pos,x))),not(equals(javaSubInt(select<[int]>(heap,board,arr(pos)),select<[int]>(heap,board,arr(x))),javaSubInt(pos,x)))))))),equals(exc,null)); mod: empty; termination: diamond")) (branch " Post" (builtin "One Step Simplification" (formula "16")) (builtin "One Step Simplification" (formula "18")) @@ -1070,7 +1070,7 @@ (rule "variableDeclaration" (formula "20") (term "1,1,1") (newnames "var_1") (userinteraction)) (rule "assignment" (formula "20") (term "1,1,1") (userinteraction)) (builtin "One Step Simplification" (formula "20")) - (builtin "Use Operation Contract" (formula "20") (contract "pre: and(and(and(and(leq(Z(0(#)),pos),lt(pos,length(board))),all{x:int}(imp(and(and(leq(Z(0(#)),x),lt(x,length(board))),inInt(x)),and(leq(Z(0(#)),int::select(heap,board,arr(x))),lt(int::select(heap,board,arr(x)),length(board)))))),all{p:int}(all{x:int}(imp(and(and(and(leq(Z(0(#)),x),and(lt(x,p),lt(p,pos))),inInt(p)),inInt(x)),and(not(equals(int::select(heap,board,arr(x)),int::select(heap,board,arr(p)))),and(not(equals(javaSubInt(int::select(heap,board,arr(x)),int::select(heap,board,arr(p))),javaSubInt(p,x))),not(equals(javaSubInt(int::select(heap,board,arr(p)),int::select(heap,board,arr(x))),javaSubInt(p,x))))))))),not(equals(board,null))); mby: javaSubInt(length(board),pos); post: and(and(and(all{x:int}(imp(and(and(leq(Z(0(#)),x),lt(x,length(board))),inInt(x)),and(leq(Z(0(#)),int::select(heap,board,arr(x))),lt(int::select(heap,board,arr(x)),length(board))))),imp(equals(result,TRUE),all{p:int}(all{x:int}(imp(and(and(and(leq(Z(0(#)),x),and(lt(x,p),lt(p,length(board)))),inInt(p)),inInt(x)),and(not(equals(int::select(heap,board,arr(x)),int::select(heap,board,arr(p)))),and(not(equals(javaSubInt(int::select(heap,board,arr(x)),int::select(heap,board,arr(p))),javaSubInt(p,x))),not(equals(javaSubInt(int::select(heap,board,arr(p)),int::select(heap,board,arr(x))),javaSubInt(p,x)))))))))),imp(not(equals(result,TRUE)),not(exist{s:Seq}(and(equals(seqLen(s),length(board)),and(all{x:int}(imp(and(and(leq(Z(0(#)),x),lt(x,seqLen(s))),inInt(x)),and(leq(Z(0(#)),int::cast(any::seqGet(s,x))),lt(int::cast(any::seqGet(s,x)),seqLen(s))))),and(all{p:int}(all{x:int}(imp(and(and(and(leq(Z(0(#)),x),and(lt(x,p),lt(p,seqLen(s)))),inInt(p)),inInt(x)),and(not(equals(int::cast(any::seqGet(s,x)),int::cast(any::seqGet(s,p)))),and(not(equals(javaSubInt(int::cast(any::seqGet(s,x)),int::cast(any::seqGet(s,p))),javaSubInt(p,x))),not(equals(javaSubInt(int::cast(any::seqGet(s,p)),int::cast(any::seqGet(s,x))),javaSubInt(p,x)))))))),all{x:int}(imp(and(and(leq(Z(0(#)),x),lt(x,pos)),inInt(x)),equals(int::cast(any::seqGet(s,x)),int::select(heapAtPre,board,arr(x)))))))))))),equals(exc,null)); mod: arrayRange(board,pos,javaSubInt(length(board),Z(1(#)))); termination: diamond")) + (builtin "Use Operation Contract" (formula "20") (contract "pre: and(and(and(and(leq(Z(0(#)),pos),lt(pos,length(board))),all{x:int}(imp(and(and(leq(Z(0(#)),x),lt(x,length(board))),inInt(x)),and(leq(Z(0(#)),select<[int]>(heap,board,arr(x))),lt(select<[int]>(heap,board,arr(x)),length(board)))))),all{p:int}(all{x:int}(imp(and(and(and(leq(Z(0(#)),x),and(lt(x,p),lt(p,pos))),inInt(p)),inInt(x)),and(not(equals(select<[int]>(heap,board,arr(x)),select<[int]>(heap,board,arr(p)))),and(not(equals(javaSubInt(select<[int]>(heap,board,arr(x)),select<[int]>(heap,board,arr(p))),javaSubInt(p,x))),not(equals(javaSubInt(select<[int]>(heap,board,arr(p)),select<[int]>(heap,board,arr(x))),javaSubInt(p,x))))))))),not(equals(board,null))); mby: javaSubInt(length(board),pos); post: and(and(and(all{x:int}(imp(and(and(leq(Z(0(#)),x),lt(x,length(board))),inInt(x)),and(leq(Z(0(#)),select<[int]>(heap,board,arr(x))),lt(select<[int]>(heap,board,arr(x)),length(board))))),imp(equals(result,TRUE),all{p:int}(all{x:int}(imp(and(and(and(leq(Z(0(#)),x),and(lt(x,p),lt(p,length(board)))),inInt(p)),inInt(x)),and(not(equals(select<[int]>(heap,board,arr(x)),select<[int]>(heap,board,arr(p)))),and(not(equals(javaSubInt(select<[int]>(heap,board,arr(x)),select<[int]>(heap,board,arr(p))),javaSubInt(p,x))),not(equals(javaSubInt(select<[int]>(heap,board,arr(p)),select<[int]>(heap,board,arr(x))),javaSubInt(p,x)))))))))),imp(not(equals(result,TRUE)),not(exist{s:Seq}(and(equals(seqLen(s),length(board)),and(all{x:int}(imp(and(and(leq(Z(0(#)),x),lt(x,seqLen(s))),inInt(x)),and(leq(Z(0(#)),int::cast(any::seqGet(s,x))),lt(int::cast(any::seqGet(s,x)),seqLen(s))))),and(all{p:int}(all{x:int}(imp(and(and(and(leq(Z(0(#)),x),and(lt(x,p),lt(p,seqLen(s)))),inInt(p)),inInt(x)),and(not(equals(int::cast(any::seqGet(s,x)),int::cast(any::seqGet(s,p)))),and(not(equals(javaSubInt(int::cast(any::seqGet(s,x)),int::cast(any::seqGet(s,p))),javaSubInt(p,x))),not(equals(javaSubInt(int::cast(any::seqGet(s,p)),int::cast(any::seqGet(s,x))),javaSubInt(p,x)))))))),all{x:int}(imp(and(and(leq(Z(0(#)),x),lt(x,pos)),inInt(x)),equals(int::cast(any::seqGet(s,x)),select<[int]>(heapAtPre,board,arr(x)))))))))))),equals(exc,null)); mod: arrayRange(board,pos,javaSubInt(length(board),Z(1(#)))); termination: diamond")) (branch " Post" (builtin "One Step Simplification" (formula "22")) (rule "assignment" (formula "22") (term "1") (userinteraction)) @@ -1488,7 +1488,7 @@ (rule "nnf_notAnd" (formula "18") (term "1,1,0,0,0,1,1,0,1,0")) (builtin "One Step Simplification" (formula "18")) (rule "cut_direct" (formula "29") (term "0")) - (branch " CUT: int::select(heapAfter_search, board, arr(x_14)) >= 0 TRUE" + (branch " CUT: select<[int]>(heapAfter_search, board, arr(x_14)) >= 0 TRUE" (builtin "One Step Simplification" (formula "30")) (rule "inEqSimp_leqRight" (formula "30")) (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) @@ -2967,7 +2967,7 @@ ) ) ) - (branch " CUT: int::select(heapAfter_search, board, arr(x_14)) >= 0 FALSE" + (branch " CUT: select<[int]>(heapAfter_search, board, arr(x_14)) >= 0 FALSE" (builtin "One Step Simplification" (formula "30")) (rule "false_right" (formula "30")) (rule "inEqSimp_geqRight" (formula "29")) @@ -7469,7 +7469,7 @@ (rule "nnf_notAnd" (formula "18") (term "1,1,0,0,0,1,1,0,1,0")) (builtin "One Step Simplification" (formula "18")) (rule "cut_direct" (formula "29") (term "0")) - (branch " CUT: int::select(heapAfter_search, board, arr(x_16)) >= 0 TRUE" + (branch " CUT: select<[int]>(heapAfter_search, board, arr(x_16)) >= 0 TRUE" (builtin "One Step Simplification" (formula "30")) (rule "inEqSimp_leqRight" (formula "30")) (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) @@ -8584,7 +8584,7 @@ ) ) ) - (branch " CUT: int::select(heapAfter_search, board, arr(x_16)) >= 0 FALSE" + (branch " CUT: select<[int]>(heapAfter_search, board, arr(x_16)) >= 0 FALSE" (builtin "One Step Simplification" (formula "30")) (rule "false_right" (formula "30")) (rule "inEqSimp_geqRight" (formula "29")) diff --git a/key.ui/examples/heap/vstte12_01_Swap/JML normal_behavior operation contract (id 2 - TwoWaySwap__twoWaySort).proof b/key.ui/examples/heap/vstte12_01_Swap/JML normal_behavior operation contract (id 2 - TwoWaySwap__twoWaySort).proof index e11ebb1a2cd..8fe876e7f7f 100644 --- a/key.ui/examples/heap/vstte12_01_Swap/JML normal_behavior operation contract (id 2 - TwoWaySwap__twoWaySort).proof +++ b/key.ui/examples/heap/vstte12_01_Swap/JML normal_behavior operation contract (id 2 - TwoWaySwap__twoWaySort).proof @@ -698,7 +698,7 @@ (rule "mul_literals" (formula "18") (term "1,0,1,0,1")) (rule "polySimp_addComm0" (formula "18") (term "0,1,0,1")) (rule "ifthenelse_split_for" (formula "18")) - (branch " boolean::select(anonHeap_loop, self_1.a, arr(j_1_0)) = TRUE TRUE" + (branch " select<[boolean]>(anonHeap_loop, self_1.a, arr(j_1_0)) = TRUE TRUE" (rule "tryEmpty" (formula "19") (term "1")) (rule "methodCallEmpty" (formula "19") (term "1")) (rule "emptyModality" (formula "19") (term "1")) @@ -968,7 +968,7 @@ (rule "closeTrue" (formula "19")) ) ) - (branch " boolean::select(anonHeap_loop, self_1.a, arr(j_1_0)) = TRUE FALSE" + (branch " select<[boolean]>(anonHeap_loop, self_1.a, arr(j_1_0)) = TRUE FALSE" (builtin "Use Operation Contract" (formula "19") (newnames "heapBefore_swap,exc_3,heapAfter_swap,anonHeap_swap") (contract "JML normal_behavior operation contract [id: 1 / TwoWaySwap::swap]")) (branch "Post (swap)" (builtin "One Step Simplification" (formula "21")) diff --git a/key.ui/examples/heap/vstte12_03_RingBuffer/problem3.key b/key.ui/examples/heap/vstte12_03_RingBuffer/problem3.key index 7eae38061e0..4423521453d 100644 --- a/key.ui/examples/heap/vstte12_03_RingBuffer/problem3.key +++ b/key.ui/examples/heap/vstte12_03_RingBuffer/problem3.key @@ -7,11 +7,11 @@ \schemaVar \term Heap h; \schemaVar \term int x; - \assumes (RingBuffer::exactInstance(r)=TRUE ==>) + \assumes (exactInstance<[RingBuffer]>(r)=TRUE ==>) \find(RingBuffer::modulo(h, r, x)) - \replacewith(\if(x < length(int[]::select(h,r,RingBuffer::$data))) + \replacewith(\if(x < length(select<[int[]]>(h,r,RingBuffer::$data))) \then(x) - \else(x-length(int[]::select(h,r,RingBuffer::$data)))) + \else(x-length(select<[int[]]>(h,r,RingBuffer::$data)))) \heuristics ( simplify ) }; diff --git a/key.ui/examples/heap/vstte12_04_TreeReconstruct/JML behavior operation contract (id 3 - Tree__build).proof b/key.ui/examples/heap/vstte12_04_TreeReconstruct/JML behavior operation contract (id 3 - Tree__build).proof index 442dc0357ce..d7522edc3be 100644 --- a/key.ui/examples/heap/vstte12_04_TreeReconstruct/JML behavior operation contract (id 3 - Tree__build).proof +++ b/key.ui/examples/heap/vstte12_04_TreeReconstruct/JML behavior operation contract (id 3 - Tree__build).proof @@ -3327,11 +3327,11 @@ (builtin "One Step Simplification" (formula "37")) (rule "true_left" (formula "37")) (rule "ifthenelse_split" (formula "39") (term "0")) - (branch " if (self_4.$created = TRUE) then (TRUE) else (boolean::select(anonHeap_build, self_4, $created)) = TRUE TRUE" + (branch " if (self_4.$created = TRUE) then (TRUE) else (select<[boolean]>(anonHeap_build, self_4, $created)) = TRUE TRUE" (builtin "One Step Simplification" (formula "40")) (rule "closeTrue" (formula "40")) ) - (branch " if (self_4.$created = TRUE) then (TRUE) else (boolean::select(anonHeap_build, self_4, $created)) = TRUE FALSE" + (branch " if (self_4.$created = TRUE) then (TRUE) else (select<[boolean]>(anonHeap_build, self_4, $created)) = TRUE FALSE" (rule "ifthenelse_split" (formula "41") (term "0")) (branch "result_3.$created = TRUE TRUE" (builtin "One Step Simplification" (formula "42")) @@ -3398,7 +3398,7 @@ (builtin "One Step Simplification" (formula "17") (ifInst "" (formula "16"))) (rule "true_left" (formula "17")) (rule "cut_direct" (formula "47") (term "1,0,0")) - (branch "CUT: int::select(anonHeap_build_0, s, p) >= 1 + s.p TRUE" + (branch "CUT: select<[int]>(anonHeap_build_0, s, p) >= 1 + s.p TRUE" (builtin "One Step Simplification" (formula "48")) (rule "cut_direct" (formula "48") (term "0,0")) (branch "CUT: java.lang.Object::$inv(heapAfter_Tree, s) TRUE" @@ -3440,7 +3440,7 @@ (rule "polySimp_mulLiterals" (formula "1") (term "0")) (rule "polySimp_elimOne" (formula "1") (term "0")) (rule "ifthenelse_split" (formula "51") (term "0")) - (branch "int::select(anonHeap_build, s, p) >= 1 + i_3 + s.p TRUE" + (branch "select<[int]>(anonHeap_build, s, p) >= 1 + i_3 + s.p TRUE" (rule "allLeft" (formula "21") (inst "t=i_3")) (rule "polySimp_homoEq" (formula "21") (term "1")) (rule "polySimp_addComm0" (formula "21") (term "0,2,0,1,0,1")) @@ -3488,7 +3488,7 @@ (builtin "One Step Simplification" (formula "21")) (rule "closeFalse" (formula "21")) ) - (branch "int::select(anonHeap_build, s, p) >= 1 + i_3 + s.p FALSE" + (branch "select<[int]>(anonHeap_build, s, p) >= 1 + i_3 + s.p FALSE" (rule "inEqSimp_geqRight" (formula "51")) (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) (rule "polySimp_rightDist" (formula "1") (term "0,1,0,0")) @@ -3521,8 +3521,8 @@ (rule "leq_literals" (formula "3") (term "0")) (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) - (rule "allLeft" (formula "29") (inst "t=add(add(i_3, int::select(heap, s, List::$p)), - mul(int::select(anonHeap_build, s, List::$p), + (rule "allLeft" (formula "29") (inst "t=add(add(i_3, select<[int]>(heap, s, List::$p)), + mul(select<[int]>(anonHeap_build, s, List::$p), Z(neglit(1(#)))))")) (rule "polySimp_homoEq" (formula "29") (term "1")) (rule "polySimp_addComm1" (formula "29") (term "0,1")) @@ -3839,7 +3839,7 @@ ) ) ) - (branch "CUT: int::select(anonHeap_build_0, s, p) >= 1 + s.p FALSE" + (branch "CUT: select<[int]>(anonHeap_build_0, s, p) >= 1 + s.p FALSE" (builtin "One Step Simplification" (formula "48")) (rule "false_right" (formula "48")) (rule "inEqSimp_geqRight" (formula "47")) @@ -3884,11 +3884,11 @@ (builtin "One Step Simplification" (formula "17")) (rule "true_left" (formula "17")) (rule "cut_direct" (formula "25") (term "0,1,0")) - (branch "CUT: boolean::select(anonHeap_build, null, $created) = TRUE TRUE" + (branch "CUT: select<[boolean]>(anonHeap_build, null, $created) = TRUE TRUE" (builtin "One Step Simplification" (formula "26") (ifInst "" (formula "24"))) (rule "true_left" (formula "26")) (rule "cut_direct" (formula "48") (term "1,0,0")) - (branch "CUT: int::select(anonHeap_build_0, s, p) >= 1 + s.p TRUE" + (branch "CUT: select<[int]>(anonHeap_build_0, s, p) >= 1 + s.p TRUE" (builtin "One Step Simplification" (formula "49")) (rule "cut_direct" (formula "49") (term "0,0")) (branch "CUT: java.lang.Object::$inv(heapAfter_Tree, s) TRUE" @@ -3930,7 +3930,7 @@ (rule "polySimp_mulLiterals" (formula "2") (term "0")) (rule "polySimp_elimOne" (formula "2") (term "0")) (rule "ifthenelse_split" (formula "52") (term "0")) - (branch "int::select(anonHeap_build, s, p) >= 1 + i_2 + s.p TRUE" + (branch "select<[int]>(anonHeap_build, s, p) >= 1 + i_2 + s.p TRUE" (rule "allLeft" (formula "21") (inst "t=i_2")) (rule "polySimp_homoEq" (formula "21") (term "1")) (rule "polySimp_addComm0" (formula "21") (term "0,2,0,1,0,1")) @@ -3978,7 +3978,7 @@ (rule "leq_literals" (formula "21")) (rule "closeFalse" (formula "21")) ) - (branch "int::select(anonHeap_build, s, p) >= 1 + i_2 + s.p FALSE" + (branch "select<[int]>(anonHeap_build, s, p) >= 1 + i_2 + s.p FALSE" (rule "inEqSimp_geqRight" (formula "52")) (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) (rule "polySimp_rightDist" (formula "1") (term "0,1,0,0")) @@ -4011,8 +4011,8 @@ (rule "leq_literals" (formula "2") (term "0")) (builtin "One Step Simplification" (formula "2")) (rule "true_left" (formula "2")) - (rule "allLeft" (formula "29") (inst "t=add(add(i_2, int::select(heap, s, List::$p)), - mul(int::select(anonHeap_build, s, List::$p), + (rule "allLeft" (formula "29") (inst "t=add(add(i_2, select<[int]>(heap, s, List::$p)), + mul(select<[int]>(anonHeap_build, s, List::$p), Z(neglit(1(#)))))")) (rule "polySimp_homoEq" (formula "29") (term "1")) (rule "polySimp_addComm1" (formula "29") (term "0,1")) @@ -4117,11 +4117,11 @@ (rule "replace_known_right" (formula "52") (term "0,0,0,2,0") (ifseqformula "50")) (builtin "One Step Simplification" (formula "52") (ifInst "" (formula "50")) (ifInst "" (formula "51"))) (rule "ifthenelse_split" (formula "52") (term "0,0,1,0,0")) - (branch " if (o_4.$created = TRUE) then (TRUE) else (boolean::select(anonHeap_build, o_4, $created)) = TRUE TRUE" + (branch " if (o_4.$created = TRUE) then (TRUE) else (select<[boolean]>(anonHeap_build, o_4, $created)) = TRUE TRUE" (builtin "One Step Simplification" (formula "53") (ifInst "" (formula "1"))) (rule "closeTrue" (formula "53")) ) - (branch " if (o_4.$created = TRUE) then (TRUE) else (boolean::select(anonHeap_build, o_4, $created)) = TRUE FALSE" + (branch " if (o_4.$created = TRUE) then (TRUE) else (select<[boolean]>(anonHeap_build, o_4, $created)) = TRUE FALSE" (rule "replace_known_right" (formula "53") (term "0,1,0,2,0") (ifseqformula "52")) (builtin "One Step Simplification" (formula "53")) (rule "ifthenelse_negated" (formula "53") (term "2,0")) @@ -4337,7 +4337,7 @@ ) ) ) - (branch "CUT: int::select(anonHeap_build_0, s, p) >= 1 + s.p FALSE" + (branch "CUT: select<[int]>(anonHeap_build_0, s, p) >= 1 + s.p FALSE" (builtin "One Step Simplification" (formula "49")) (rule "false_right" (formula "49")) (rule "inEqSimp_geqRight" (formula "48")) @@ -4373,11 +4373,11 @@ (rule "closeFalse" (formula "23")) ) ) - (branch "CUT: boolean::select(anonHeap_build, null, $created) = TRUE FALSE" + (branch "CUT: select<[boolean]>(anonHeap_build, null, $created) = TRUE FALSE" (builtin "One Step Simplification" (formula "25")) (rule "true_left" (formula "25")) (rule "cut_direct" (formula "48") (term "1,0,0")) - (branch "CUT: int::select(anonHeap_build_0, s, p) >= 1 + s.p TRUE" + (branch "CUT: select<[int]>(anonHeap_build_0, s, p) >= 1 + s.p TRUE" (builtin "One Step Simplification" (formula "49")) (rule "cut_direct" (formula "49") (term "0,0")) (branch "CUT: java.lang.Object::$inv(heapAfter_Tree, s) TRUE" @@ -4419,7 +4419,7 @@ (rule "polySimp_mulLiterals" (formula "1") (term "0")) (rule "polySimp_elimOne" (formula "1") (term "0")) (rule "ifthenelse_split" (formula "52") (term "0")) - (branch "int::select(anonHeap_build, s, p) >= 1 + i_1 + s.p TRUE" + (branch "select<[int]>(anonHeap_build, s, p) >= 1 + i_1 + s.p TRUE" (rule "allLeft" (formula "21") (inst "t=i_1")) (rule "polySimp_homoEq" (formula "21") (term "1")) (rule "polySimp_addComm1" (formula "21") (term "0,1")) @@ -4467,7 +4467,7 @@ (builtin "One Step Simplification" (formula "21")) (rule "closeFalse" (formula "21")) ) - (branch "int::select(anonHeap_build, s, p) >= 1 + i_1 + s.p FALSE" + (branch "select<[int]>(anonHeap_build, s, p) >= 1 + i_1 + s.p FALSE" (rule "inEqSimp_geqRight" (formula "52")) (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) (rule "polySimp_rightDist" (formula "1") (term "0,1,0,0")) @@ -4500,8 +4500,8 @@ (rule "leq_literals" (formula "3") (term "0")) (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) - (rule "allLeft" (formula "29") (inst "t=add(add(i_1, int::select(heap, s, List::$p)), - mul(int::select(anonHeap_build, s, List::$p), + (rule "allLeft" (formula "29") (inst "t=add(add(i_1, select<[int]>(heap, s, List::$p)), + mul(select<[int]>(anonHeap_build, s, List::$p), Z(neglit(1(#)))))")) (rule "polySimp_homoEq" (formula "29") (term "1")) (rule "polySimp_addComm1" (formula "29") (term "0,1")) @@ -4606,7 +4606,7 @@ (rule "replace_known_right" (formula "52") (term "0,0,0,2,0") (ifseqformula "50")) (builtin "One Step Simplification" (formula "52") (ifInst "" (formula "50")) (ifInst "" (formula "51"))) (rule "ifthenelse_split" (formula "52") (term "0")) - (branch " !o_3 = null & ! if ( if (o_3.$created = TRUE) then (TRUE) else (boolean::select(anonHeap_build, o_3, $created)) = TRUE) then (TRUE) else (boolean::select(anonHeap_build_0, o_3, $created)) = TRUE TRUE" + (branch " !o_3 = null & ! if ( if (o_3.$created = TRUE) then (TRUE) else (select<[boolean]>(anonHeap_build, o_3, $created)) = TRUE) then (TRUE) else (select<[boolean]>(anonHeap_build_0, o_3, $created)) = TRUE TRUE" (rule "andLeft" (formula "1")) (rule "notLeft" (formula "1")) (rule "notLeft" (formula "1")) @@ -4617,7 +4617,7 @@ (builtin "One Step Simplification" (formula "38")) (rule "closeTrue" (formula "38")) ) - (branch " !o_3 = null & ! if ( if (o_3.$created = TRUE) then (TRUE) else (boolean::select(anonHeap_build, o_3, $created)) = TRUE) then (TRUE) else (boolean::select(anonHeap_build_0, o_3, $created)) = TRUE FALSE" + (branch " !o_3 = null & ! if ( if (o_3.$created = TRUE) then (TRUE) else (select<[boolean]>(anonHeap_build, o_3, $created)) = TRUE) then (TRUE) else (select<[boolean]>(anonHeap_build_0, o_3, $created)) = TRUE FALSE" (rule "ifthenelse_split" (formula "53") (term "0,0,1,0,0")) (branch "o_3.$created = TRUE TRUE" (builtin "One Step Simplification" (formula "54")) @@ -4830,7 +4830,7 @@ ) ) ) - (branch "CUT: int::select(anonHeap_build_0, s, p) >= 1 + s.p FALSE" + (branch "CUT: select<[int]>(anonHeap_build_0, s, p) >= 1 + s.p FALSE" (builtin "One Step Simplification" (formula "49")) (rule "false_right" (formula "49")) (rule "inEqSimp_geqRight" (formula "48")) @@ -4911,7 +4911,7 @@ (rule "replace_known_right" (formula "47") (term "0,1,0") (ifseqformula "37")) (builtin "One Step Simplification" (formula "47")) (rule "cut_direct" (formula "47") (term "1,0,0")) - (branch "CUT: int::select(anonHeap_build_0, s, p) >= 1 + s.p TRUE" + (branch "CUT: select<[int]>(anonHeap_build_0, s, p) >= 1 + s.p TRUE" (builtin "One Step Simplification" (formula "48")) (rule "cut_direct" (formula "48") (term "0,0")) (branch "CUT: java.lang.Object::$inv(heapAfter_Tree, s) TRUE" @@ -4953,7 +4953,7 @@ (rule "polySimp_mulLiterals" (formula "1") (term "0")) (rule "polySimp_elimOne" (formula "1") (term "0")) (rule "ifthenelse_split" (formula "51") (term "0")) - (branch "int::select(anonHeap_build, s, p) >= 1 + i_0 + s.p TRUE" + (branch "select<[int]>(anonHeap_build, s, p) >= 1 + i_0 + s.p TRUE" (rule "allLeft" (formula "21") (inst "t=i_0")) (rule "polySimp_homoEq" (formula "21") (term "1")) (rule "polySimp_addComm0" (formula "21") (term "0,2,0,1,0,1")) @@ -5001,7 +5001,7 @@ (builtin "One Step Simplification" (formula "21")) (rule "closeFalse" (formula "21")) ) - (branch "int::select(anonHeap_build, s, p) >= 1 + i_0 + s.p FALSE" + (branch "select<[int]>(anonHeap_build, s, p) >= 1 + i_0 + s.p FALSE" (rule "inEqSimp_geqRight" (formula "51")) (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) (rule "polySimp_rightDist" (formula "1") (term "0,1,0,0")) @@ -5034,8 +5034,8 @@ (rule "leq_literals" (formula "3") (term "0")) (builtin "One Step Simplification" (formula "3")) (rule "true_left" (formula "3")) - (rule "allLeft" (formula "29") (inst "t=add(add(i_0, int::select(heap, s, List::$p)), - mul(int::select(anonHeap_build, s, List::$p), + (rule "allLeft" (formula "29") (inst "t=add(add(i_0, select<[int]>(heap, s, List::$p)), + mul(select<[int]>(anonHeap_build, s, List::$p), Z(neglit(1(#)))))")) (rule "polySimp_homoEq" (formula "29") (term "1")) (rule "polySimp_addComm1" (formula "29") (term "0,1")) @@ -5140,11 +5140,11 @@ (rule "replace_known_right" (formula "51") (term "0,0,0,2,2,0") (ifseqformula "49")) (builtin "One Step Simplification" (formula "51") (ifInst "" (formula "49")) (ifInst "" (formula "50"))) (rule "ifthenelse_split" (formula "51") (term "0,0,1,0,0")) - (branch " if (o_2.$created = TRUE) then (TRUE) else (boolean::select(anonHeap_build, o_2, $created)) = TRUE TRUE" + (branch " if (o_2.$created = TRUE) then (TRUE) else (select<[boolean]>(anonHeap_build, o_2, $created)) = TRUE TRUE" (builtin "One Step Simplification" (formula "52") (ifInst "" (formula "1"))) (rule "closeTrue" (formula "52")) ) - (branch " if (o_2.$created = TRUE) then (TRUE) else (boolean::select(anonHeap_build, o_2, $created)) = TRUE FALSE" + (branch " if (o_2.$created = TRUE) then (TRUE) else (select<[boolean]>(anonHeap_build, o_2, $created)) = TRUE FALSE" (rule "replace_known_right" (formula "52") (term "0,1,0,2,0") (ifseqformula "51")) (builtin "One Step Simplification" (formula "52")) (rule "ifthenelse_negated" (formula "52") (term "2,0")) @@ -5335,7 +5335,7 @@ ) ) ) - (branch "CUT: int::select(anonHeap_build_0, s, p) >= 1 + s.p FALSE" + (branch "CUT: select<[int]>(anonHeap_build_0, s, p) >= 1 + s.p FALSE" (builtin "One Step Simplification" (formula "48")) (rule "false_right" (formula "48")) (rule "inEqSimp_geqRight" (formula "47")) @@ -5900,7 +5900,7 @@ (rule "inEqSimp_sepPosMonomial1" (formula "11") (term "1,0,0")) (rule "polySimp_mulLiterals" (formula "11") (term "1,1,0,0")) (rule "polySimp_elimOne" (formula "11") (term "1,1,0,0")) - (rule "allLeft" (formula "11") (inst "t=int::select(heap, s, List::$p)")) + (rule "allLeft" (formula "11") (inst "t=select<[int]>(heap, s, List::$p)")) (rule "cut_direct" (formula "11") (term "1,0")) (branch "CUT: s.p >= null.length TRUE" (builtin "One Step Simplification" (formula "12")) @@ -6075,7 +6075,7 @@ (rule "inEqSimp_sepPosMonomial1" (formula "11") (term "1,0,0")) (rule "polySimp_mulLiterals" (formula "11") (term "1,1,0,0")) (rule "polySimp_elimOne" (formula "11") (term "1,1,0,0")) - (rule "allLeft" (formula "11") (inst "t=int::select(heap, s, List::$p)")) + (rule "allLeft" (formula "11") (inst "t=select<[int]>(heap, s, List::$p)")) (rule "cut_direct" (formula "11") (term "1,0")) (branch "CUT: s.p >= null.length TRUE" (builtin "One Step Simplification" (formula "12")) @@ -6271,7 +6271,7 @@ (rule "inEqSimp_sepPosMonomial1" (formula "11") (term "1,0,0")) (rule "polySimp_mulLiterals" (formula "11") (term "1,1,0,0")) (rule "polySimp_elimOne" (formula "11") (term "1,1,0,0")) - (rule "allLeft" (formula "11") (inst "t=int::select(heap, s, List::$p)")) + (rule "allLeft" (formula "11") (inst "t=select<[int]>(heap, s, List::$p)")) (rule "cut_direct" (formula "11") (term "0,0")) (branch "CUT: s.p <= -1 TRUE" (builtin "One Step Simplification" (formula "12")) @@ -6454,7 +6454,7 @@ (rule "add_zero_right" (formula "15") (term "0,0,0,0,0")) (rule "inEqSimp_sepPosMonomial0" (formula "15") (term "0,0,0")) (rule "mul_literals" (formula "15") (term "1,0,0,0")) - (rule "allLeft" (formula "15") (inst "t=int::select(heap, s, List::$p)")) + (rule "allLeft" (formula "15") (inst "t=select<[int]>(heap, s, List::$p)")) (rule "inEqSimp_contradInEq0" (formula "15") (term "1,0") (ifseqformula "1")) (rule "inEqSimp_homoInEq1" (formula "15") (term "0,1,0")) (rule "polySimp_mulComm0" (formula "15") (term "1,0,0,1,0")) @@ -6668,7 +6668,7 @@ (rule "inEqSimp_sepPosMonomial1" (formula "8") (term "1,0,0")) (rule "polySimp_mulLiterals" (formula "8") (term "1,1,0,0")) (rule "polySimp_elimOne" (formula "8") (term "1,1,0,0")) - (rule "allLeft" (formula "8") (inst "t=int::select(heap, s, List::$p)")) + (rule "allLeft" (formula "8") (inst "t=select<[int]>(heap, s, List::$p)")) (rule "cut_direct" (formula "8") (term "1,0")) (branch "CUT: s.p >= null.length TRUE" (builtin "One Step Simplification" (formula "9")) @@ -6804,7 +6804,7 @@ (rule "add_literals" (formula "8") (term "0,0,0,0,0")) (rule "inEqSimp_sepPosMonomial0" (formula "8") (term "0,0,0")) (rule "mul_literals" (formula "8") (term "1,0,0,0")) - (rule "allLeft" (formula "8") (inst "t=int::select(heap, s, List::$p)")) + (rule "allLeft" (formula "8") (inst "t=select<[int]>(heap, s, List::$p)")) (rule "cut_direct" (formula "8") (term "0,0")) (branch "CUT: s.p <= -1 TRUE" (builtin "One Step Simplification" (formula "9")) @@ -6987,7 +6987,7 @@ (rule "add_literals" (formula "12") (term "0,0,0,0,0")) (rule "inEqSimp_sepPosMonomial0" (formula "12") (term "0,0,0")) (rule "mul_literals" (formula "12") (term "1,0,0,0")) - (rule "allLeft" (formula "12") (inst "t=int::select(heap, s, List::$p)")) + (rule "allLeft" (formula "12") (inst "t=select<[int]>(heap, s, List::$p)")) (rule "inEqSimp_contradInEq1" (formula "12") (term "0,0") (ifseqformula "3")) (rule "qeq_literals" (formula "12") (term "0,0,0")) (builtin "One Step Simplification" (formula "12")) diff --git a/key.ui/examples/heap/vstte12_04_TreeReconstruct/JML behavior operation contract (id 4 - Tree__build).proof b/key.ui/examples/heap/vstte12_04_TreeReconstruct/JML behavior operation contract (id 4 - Tree__build).proof index e48e5874558..f7ed1e88497 100644 --- a/key.ui/examples/heap/vstte12_04_TreeReconstruct/JML behavior operation contract (id 4 - Tree__build).proof +++ b/key.ui/examples/heap/vstte12_04_TreeReconstruct/JML behavior operation contract (id 4 - Tree__build).proof @@ -399,7 +399,7 @@ (builtin "One Step Simplification" (formula "27")) (rule "ifthenelse_negated_for" (formula "27")) (rule "ifthenelse_split_for" (formula "27")) - (branch "int::select(anonHeap_build, self_4, p) = array_0.length TRUE" + (branch "select<[int]>(anonHeap_build, self_4, p) = array_0.length TRUE" (rule "applyEq" (formula "22") (term "1,1,0,0") (ifseqformula "1")) (rule "applyEq" (formula "20") (term "0") (ifseqformula "1")) (rule "applyEq" (formula "21") (term "1") (ifseqformula "1")) @@ -503,7 +503,7 @@ (rule "closeFalse" (formula "1")) ) ) - (branch "int::select(anonHeap_build, self_4, p) = array_0.length FALSE" + (branch "select<[int]>(anonHeap_build, self_4, p) = array_0.length FALSE" (rule "methodCallReturn" (formula "28") (term "1")) (rule "assignment" (formula "28") (term "1")) (builtin "One Step Simplification" (formula "28")) diff --git a/key.ui/examples/smt/casestudy/SumAndMaxProof.key b/key.ui/examples/smt/casestudy/SumAndMaxProof.key index 9c8ac751165..409ba7fecc4 100644 --- a/key.ui/examples/smt/casestudy/SumAndMaxProof.key +++ b/key.ui/examples/smt/casestudy/SumAndMaxProof.key @@ -584,7 +584,7 @@ (rule "mul_literals" (formula "17") (term "0,1,0")) (rule "polySimp_elimOne" (formula "17") (term "1,1,0")) (rule "ifthenelse_split_for" (formula "17")) - (branch "int::select(anon_heap_loop, self, max) <= -1 + a[k_0] TRUE" + (branch "select<[int]>(anon_heap_loop, self, max) <= -1 + a[k_0] TRUE" (rule "ifSplit" (formula "18")) (branch "if x_7 true" (builtin "One Step Simplification" (formula "1")) @@ -1636,7 +1636,7 @@ (rule "closeFalse" (formula "1")) ) ) - (branch "int::select(anon_heap_loop, self, max) <= -1 + a[k_0] FALSE" + (branch "select<[int]>(anon_heap_loop, self, max) <= -1 + a[k_0] FALSE" (rule "inEqSimp_leqRight" (formula "17")) (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) (rule "mul_literals" (formula "1") (term "0,1,0,0")) diff --git a/key.ui/examples/smt/taclettranslation/castOperators.key b/key.ui/examples/smt/taclettranslation/castOperators.key index 816070929a2..cd9f54f2ed1 100644 --- a/key.ui/examples/smt/taclettranslation/castOperators.key +++ b/key.ui/examples/smt/taclettranslation/castOperators.key @@ -29,8 +29,8 @@ Options: f = (MySort) f - & (java.util.List::instance(o)=TRUE - -> java.util.Collection::instance(o)=TRUE) + & (instance<[java.util.List]>(o)=TRUE + -> instance<[java.util.Collection]>(o)=TRUE) diff --git a/key.ui/examples/smt/taclettranslation/complexProblem.key b/key.ui/examples/smt/taclettranslation/complexProblem.key index 6be0ed47fef..181e1a9b796 100644 --- a/key.ui/examples/smt/taclettranslation/complexProblem.key +++ b/key.ui/examples/smt/taclettranslation/complexProblem.key @@ -45,7 +45,7 @@ Options: & ((A.$created=TRUE & wellFormed(heap) & !(A.F@(Test)=null))-> (A.F.F@(Test).$created=TRUE | A.F.F@(Test)=null)) & - (java.lang.Object::exactInstance(o) = TRUE & wellFormed(heap) & o.$created=TRUE -> + (exactInstance<[java.lang.Object]>(o) = TRUE & wellFormed(heap) & o.$created=TRUE -> \exists int iv; java.lang.Object::(iv) = o) & (java.lang.Object::(5) = o & wellFormed(heap) & o.$created=TRUE -> diff --git a/key.ui/examples/smt/taclettranslation/complexProblem2.key b/key.ui/examples/smt/taclettranslation/complexProblem2.key index 11103fec169..627e8f23258 100644 --- a/key.ui/examples/smt/taclettranslation/complexProblem2.key +++ b/key.ui/examples/smt/taclettranslation/complexProblem2.key @@ -38,8 +38,8 @@ Options: & (wellFormed(heap) & java.lang.Object.$classInitializationInProgress=TRUE -> java.lang.Object.$classPrepared=TRUE) // (5) - & (java.util.List::instance(o)=TRUE - -> java.util.Collection::instance(o)=TRUE) // (6) + & (instance<[java.util.List]>(o)=TRUE + -> instance<[java.util.Collection]>(o)=TRUE) // (6) & (wellFormed(heap) -> java.lang.Object. >=0) // (7) diff --git a/key.ui/examples/standard_key/BookExamples/02FirstOrderLogic/Ex2.56.key b/key.ui/examples/standard_key/BookExamples/02FirstOrderLogic/Ex2.56.key index 1b035dc5817..14e8dba65e8 100644 --- a/key.ui/examples/standard_key/BookExamples/02FirstOrderLogic/Ex2.56.key +++ b/key.ui/examples/standard_key/BookExamples/02FirstOrderLogic/Ex2.56.key @@ -3,5 +3,5 @@ } \problem { - \forall A x; ( (A)x = x -> A::instance(x) = TRUE) + \forall A x; ( (A)x = x -> instance<[A]>(x) = TRUE) } diff --git a/key.ui/examples/standard_key/BookExamples/02FirstOrderLogic/Ex2.57.key b/key.ui/examples/standard_key/BookExamples/02FirstOrderLogic/Ex2.57.key index aa96df7e083..7dad09961c9 100644 --- a/key.ui/examples/standard_key/BookExamples/02FirstOrderLogic/Ex2.57.key +++ b/key.ui/examples/standard_key/BookExamples/02FirstOrderLogic/Ex2.57.key @@ -3,5 +3,5 @@ } \problem { - \forall A x; ( A::instance(x) = TRUE -> (A)x = x ) + \forall A x; ( instance<[A]>(x) = TRUE -> (A)x = x ) } diff --git a/key.ui/examples/standard_key/BookExamples/08ProofObligations/Sect8.1.4.key.proof b/key.ui/examples/standard_key/BookExamples/08ProofObligations/Sect8.1.4.key.proof index fca153fb62c..b76538f8a00 100644 --- a/key.ui/examples/standard_key/BookExamples/08ProofObligations/Sect8.1.4.key.proof +++ b/key.ui/examples/standard_key/BookExamples/08ProofObligations/Sect8.1.4.key.proof @@ -60,47 +60,47 @@ \problem { \forall PayCard pc; balanceAtpre(pc) - = int::select(heap, pc, PayCard::$balance) - & lt(add(int::select(heap, self, PayCard::$balance), + = select<[int]>(heap, pc, PayCard::$balance) + & lt(add(select<[int]>(heap, self, PayCard::$balance), amount), - int::select(heap, self, PayCard::$limit)) + select<[int]>(heap, self, PayCard::$limit)) & geq(amount, Z(0(#))) & \forall PayCard pc; - ( boolean::select(heap, + ( select<[boolean]>(heap, pc, java.lang.Object::#$created) = TRUE -> leq(Z(0(#)), - int::select(heap, + select<[int]>(heap, pc, PayCard::$balance)) - & leq(int::select(heap, + & leq(select<[int]>(heap, pc, PayCard::$balance), - int::select(heap, pc, PayCard::$limit))) + select<[int]>(heap, pc, PayCard::$limit))) & {heap:=store(heap, self, PayCard::$balance, l_balance(self))} - int::select(heap, self, PayCard::$balance) + select<[int]>(heap, self, PayCard::$balance) = add(balanceAtpre(self), amount) -> {heap:=store(heap, self, PayCard::$balance, l_balance(self))} \forall PayCard pc; - ( boolean::select(heap, + ( select<[boolean]>(heap, pc, java.lang.Object::#$created) = TRUE -> leq(Z(0(#)), - int::select(heap, + select<[int]>(heap, pc, PayCard::$balance)) - & leq(int::select(heap, + & leq(select<[int]>(heap, pc, PayCard::$balance), - int::select(heap, pc, PayCard::$limit))) + select<[int]>(heap, pc, PayCard::$limit))) } diff --git a/key.ui/examples/standard_key/instanceCreation/instanceof.key b/key.ui/examples/standard_key/instanceCreation/instanceof.key index 77b84263389..cc48bd241b6 100644 --- a/key.ui/examples/standard_key/instanceCreation/instanceof.key +++ b/key.ui/examples/standard_key/instanceCreation/instanceof.key @@ -12,11 +12,11 @@ \problem { java.lang.RuntimeException:: instance(java.lang.NullPointerException::(0)) = TRUE & - java.lang.NullPointerException::instance + instance<[java.lang.NullPointerException]> (java.lang.RuntimeException::(0)) = FALSE & - java.lang.Error::instance + instance<[java.lang.Error]> (java.lang.RuntimeException::(0)) = FALSE & - java.lang.RuntimeException::instance + instance<[java.lang.RuntimeException]> (java.lang.Error::(0)) = FALSE } diff --git a/key.ui/examples/standard_key/instanceCreation/interfacesAndAbstractClassesHaveNoInstances.key b/key.ui/examples/standard_key/instanceCreation/interfacesAndAbstractClassesHaveNoInstances.key index f0e1b8fb88a..a1d94876df4 100644 --- a/key.ui/examples/standard_key/instanceCreation/interfacesAndAbstractClassesHaveNoInstances.key +++ b/key.ui/examples/standard_key/instanceCreation/interfacesAndAbstractClassesHaveNoInstances.key @@ -12,9 +12,9 @@ } \problem { - Interface::exactInstance(inter) = FALSE & - !(Interface::exactInstance(inter) = TRUE) & - Abstract::exactInstance(abst) = FALSE & - !(Abstract::exactInstance(abst) = TRUE) + exactInstance<[Interface]>(inter) = FALSE & + !(exactInstance<[Interface]>(inter) = TRUE) & + exactInstance<[Abstract]>(abst) = FALSE & + !(exactInstance<[Abstract]>(abst) = TRUE) } diff --git a/key.ui/examples/standard_key/java_dl/DLContractChooser/example.key b/key.ui/examples/standard_key/java_dl/DLContractChooser/example.key index 6c7a99fc87c..d5975d2dd7f 100644 --- a/key.ui/examples/standard_key/java_dl/DLContractChooser/example.key +++ b/key.ui/examples/standard_key/java_dl/DLContractChooser/example.key @@ -24,7 +24,7 @@ specification. Both methods have been proveable. {heapAtPre := heap} \<{ mc.addTwenty(); - }\> (mc.a = int::select(heapAtPre, mc, MyClass::$a) + 20) + }\> (mc.a = select<[int]>(heapAtPre, mc, MyClass::$a) + 20) \modifiable singleton(mc, MyClass::$a) }; @@ -38,7 +38,7 @@ specification. Both methods have been proveable. {heapAtPre := heap} \<{ mc.addTen(); - }\> (mc.a = int::select(heapAtPre, mc, MyClass::$a) + 10) + }\> (mc.a = select<[int]>(heapAtPre, mc, MyClass::$a) + 10) \modifiable singleton(mc, MyClass::$a) }; diff --git a/key.ui/examples/standard_key/java_dl/innerClasses/inner.key b/key.ui/examples/standard_key/java_dl/innerClasses/inner.key index 5979820bfb1..5f4fa188377 100644 --- a/key.ui/examples/standard_key/java_dl/innerClasses/inner.key +++ b/key.ui/examples/standard_key/java_dl/innerClasses/inner.key @@ -83,7 +83,7 @@ \<{ ic = new InnerClasses(); ic.anonClass(); - }\> int::select(heap, ic, InnerClasses::#privField) + }\> select<[int]>(heap, ic, InnerClasses::#privField) = Z(2(#)) } diff --git a/key.ui/examples/standard_key/java_dl/jml-information-flow.key b/key.ui/examples/standard_key/java_dl/jml-information-flow.key index 9bc9e504718..8145683f852 100644 --- a/key.ui/examples/standard_key/java_dl/jml-information-flow.key +++ b/key.ui/examples/standard_key/java_dl/jml-information-flow.key @@ -53,7 +53,7 @@ Avg self_Avg; < self_Avg.(Avg::num_Instances) -> ! self_Avg.(Avg::m_Tab)[i] = null - & ( int[]::instance(self_Avg.(Avg::m_Tab)[i]) + & ( instance<[int[]]>(self_Avg.(Avg::m_Tab)[i]) = TRUE & ! self_Avg.(Avg::m_Tab)[i] = null @@ -65,7 +65,7 @@ Avg self_Avg; < self_Avg.(Avg::num_Instances) -> ! self_Avg.(Avg::m_Tab2)[i] = null - & ( int[]::instance(self_Avg.(Avg::m_Tab2)[i]) + & ( instance<[int[]]>(self_Avg.(Avg::m_Tab2)[i]) = TRUE & ! self_Avg.(Avg::m_Tab2)[i] = null diff --git a/key.ui/examples/standard_key/staticInitialisation/objectOfErroneousClass.key b/key.ui/examples/standard_key/staticInitialisation/objectOfErroneousClass.key index 42fad5d1d2c..2564a1a8184 100644 --- a/key.ui/examples/standard_key/staticInitialisation/objectOfErroneousClass.key +++ b/key.ui/examples/standard_key/staticInitialisation/objectOfErroneousClass.key @@ -41,45 +41,45 @@ \problem { wellFormed(heap) - & boolean::select(heap, + & select<[boolean]>(heap, null, - java.lang.NoClassDefFoundError::#$classInitialized) + $classInitialized<[java.lang.NoClassDefFoundError]>) = TRUE - & boolean::select(heap, + & select<[boolean]>(heap, null, - java.lang.ArithmeticException::#$classInitialized) + $classInitialized<[java.lang.ArithmeticException]>) = TRUE - & boolean::select(heap, + & select<[boolean]>(heap, null, - java.lang.NullPointerException::#$classInitialized) + $classInitialized<[java.lang.NullPointerException]>) = TRUE - & boolean::select(heap, + & select<[boolean]>(heap, null, - A::#$classInitialized) + $classInitialized<[A]>) = FALSE - & boolean::select(heap, null, A::#$classPrepared) + & select<[boolean]>(heap, null, $classPrepared<[A]>) = FALSE - & boolean::select(heap, + & select<[boolean]>(heap, null, - A::#$classInitializationInProgress) + $classInitializationInProgress<[A]>) = FALSE - & boolean::select(heap, null, A::#$classErroneous) + & select<[boolean]>(heap, null, $classErroneous<[A]>) = FALSE - & boolean::select(heap, + & select<[boolean]>(heap, null, - FailedStaticInit::#$classInitialized) + $classInitialized<[FailedStaticInit]>) = FALSE - & boolean::select(heap, + & select<[boolean]>(heap, null, - FailedStaticInit::#$classPrepared) + $classPrepared<[FailedStaticInit]>) = FALSE - & boolean::select(heap, + & select<[boolean]>(heap, null, - FailedStaticInit::#$classInitializationInProgress) + $classInitializationInProgress<[FailedStaticInit]>) = FALSE - & boolean::select(heap, + & select<[boolean]>(heap, null, - FailedStaticInit::#$classErroneous) + $classErroneous<[FailedStaticInit]>) = FALSE -> \<{ errorWhileProcessingMethod=false;try { @@ -89,11 +89,11 @@ }catch (Error e) { errorWhileProcessingMethod=true; } - }\> ( boolean::select(heap, + }\> ( select<[boolean]>(heap, null, - FailedStaticInit::#$classErroneous) + $classErroneous<[FailedStaticInit]>) = TRUE - & int::select(heap, + & select<[int]>(heap, fsi, FailedStaticInit::#objectVar) = Z(3(#)) diff --git a/key.ui/examples/standard_key/strings/charAt0.key b/key.ui/examples/standard_key/strings/charAt0.key index f2153235031..d7835976a29 100644 --- a/key.ui/examples/standard_key/strings/charAt0.key +++ b/key.ui/examples/standard_key/strings/charAt0.key @@ -6,7 +6,7 @@ \forall Seq l; \forall int start; \forall int end; \forall int pos; ( start >= 0 & start <= end & end <= seqLen(l) & start <= pos & pos < start-end -> - int::seqGet(l, pos + start) = int::seqGet(seqSub(l, start, end), pos) + seqGet<[int]>(l, pos + start) = seqGet<[int]>(seqSub(l, start, end), pos) ) diff --git a/key.ui/examples/standard_key/strings/charAt1.key b/key.ui/examples/standard_key/strings/charAt1.key index 8b0776a9e5b..4b2c64cd24b 100644 --- a/key.ui/examples/standard_key/strings/charAt1.key +++ b/key.ui/examples/standard_key/strings/charAt1.key @@ -5,7 +5,7 @@ \forall Seq l; \forall Seq subL; \forall int start; \forall int end; \forall int pos; ( start >= 0 & start <= end & end <= seqLen(l) & start <= pos & pos < start - end & subL = seqSub(l, start, end) -> - int::seqGet(l, pos + start) = int::seqGet(subL, pos) + seqGet<[int]>(l, pos + start) = seqGet<[int]>(subL, pos) ) diff --git a/key.ui/examples/standard_key/strings/replace1.key b/key.ui/examples/standard_key/strings/replace1.key index fb5c6623030..3e84d463fab 100644 --- a/key.ui/examples/standard_key/strings/replace1.key +++ b/key.ui/examples/standard_key/strings/replace1.key @@ -4,6 +4,6 @@ \forall Seq str; \forall int c; \forall int d; \forall int pos; - (pos >= 0 & pos < seqLen(str) -> (int::seqGet(clReplace(str, c, d), pos) = c -> c = d)) + (pos >= 0 & pos < seqLen(str) -> (seqGet<[int]>(clReplace(str, c, d), pos) = c -> c = d)) } \ No newline at end of file diff --git a/key.ui/examples/standard_key/strings/stringIntern.key b/key.ui/examples/standard_key/strings/stringIntern.key index 7cd02c583c0..866b207927a 100644 --- a/key.ui/examples/standard_key/strings/stringIntern.key +++ b/key.ui/examples/standard_key/strings/stringIntern.key @@ -5,6 +5,6 @@ \problem { - wellFormed(heap) & boolean::select(heap, strPool(""), java.lang.Object::#$created) = TRUE -> \<{ s = new String(); b1 = (s == ""); s = s.intern(); b2 = (s == ""); }\> (b1 = FALSE & b2 = TRUE) + wellFormed(heap) & select<[boolean]>(heap, strPool(""), java.lang.Object::#$created) = TRUE -> \<{ s = new String(); b1 = (s == ""); s = s.intern(); b2 = (s == ""); }\> (b1 = FALSE & b2 = TRUE) } \ No newline at end of file diff --git a/key.ui/examples/standard_key/types/disjoint.key b/key.ui/examples/standard_key/types/disjoint.key index edd1cfe302c..4f1ad2a148a 100644 --- a/key.ui/examples/standard_key/types/disjoint.key +++ b/key.ui/examples/standard_key/types/disjoint.key @@ -1,6 +1,6 @@ \functions { java.lang.Throwable e; } -\problem { ( java.lang.Exception::instance(e) = TRUE - & java.lang.Error::instance(e) = TRUE ) +\problem { ( instance<[java.lang.Exception]>(e) = TRUE + & instance<[java.lang.Error]>(e) = TRUE ) -> e = null } diff --git a/key.ui/examples/standard_key/types/finalTypes.key b/key.ui/examples/standard_key/types/finalTypes.key index 8ef3c0370bb..d18ed9b0cde 100644 --- a/key.ui/examples/standard_key/types/finalTypes.key +++ b/key.ui/examples/standard_key/types/finalTypes.key @@ -5,7 +5,7 @@ } \problem { - (Final::instance(o) = TRUE -> o = null | Final::exactInstance(o) = TRUE) - & (Final[]::instance(o) = TRUE -> o = null | Final[]::exactInstance(o) = TRUE) - & (int[]::instance(o) = TRUE -> o = null | int[]::exactInstance(o) = TRUE) + (instance<[Final]>(o) = TRUE -> o = null | exactInstance<[Final]>(o) = TRUE) + & (instance<[Final[]]>(o) = TRUE -> o = null | exactInstance<[Final[]]>(o) = TRUE) + & (instance<[int[]]>(o) = TRUE -> o = null | exactInstance<[int[]]>(o) = TRUE) } \ No newline at end of file diff --git a/key.ui/examples/standard_key/types/finalTypes_unprovable.key b/key.ui/examples/standard_key/types/finalTypes_unprovable.key index 9bf7507cb61..8803276d24e 100644 --- a/key.ui/examples/standard_key/types/finalTypes_unprovable.key +++ b/key.ui/examples/standard_key/types/finalTypes_unprovable.key @@ -5,5 +5,5 @@ } \problem { - FinalSuper[]::instance(o) = TRUE ==> o = null | FinalSuper[]::exactInstance(o) = TRUE + instance<[java.lang.NullPointerException]>(o) = TRUE ==> o = null | exactInstance<[FinalSuper[]]>(o) = TRUE } diff --git a/key.ui/examples/theories/map.key b/key.ui/examples/theories/map.key index 8b19d90a964..ed979863918 100644 --- a/key.ui/examples/theories/map.key +++ b/key.ui/examples/theories/map.key @@ -44,7 +44,7 @@ getOfMapForeach { \find(mapGet(mapForeach{v;}(b,y),x)) \sameUpdateLevel - \replacewith({\subst v; alpha::cast(x)} + \replacewith({\subst v; cast<[alpha]>(x)} \if(b=TRUE)\then(y)\else(mapUndef)) \heuristics(simplify_enlarging) }; @@ -55,8 +55,8 @@ inDomainOfMapForeach { \find(inDomain(mapForeach{v;}(b,y),x)) - \replacewith({\subst v; alpha::cast(x)}b = TRUE - & alpha::instance(x)=TRUE ) + \replacewith({\subst v; cast<[alpha]>(x)}b = TRUE + & instance<[alpha]>(x)=TRUE ) \heuristics(simplify) }; @@ -69,7 +69,7 @@ \find(mapSingleton(xa, y)) \varcond(\notFreeIn(vy,xa,y)) \replacewith(mapForeach{vy;}( - \if(vy=any::cast(xa))\then(TRUE)\else(FALSE),y) + \if(vy=cast<[any]>(xa))\then(TRUE)\else(FALSE),y) ) }; @@ -90,7 +90,7 @@ \varcond(\notFreeIn(ix,s)) \replacewith(mapForeach{ix;}( \if(0 <= ix & ix < seqLen(s))\then(TRUE)\else(FALSE), - any::seqGet(s,ix) + seqGet<[any]>(s,ix) )) }; @@ -119,8 +119,8 @@ inDomainOfSeq2Map { \schemaVar \term Seq s; \find(inDomain(seq2map(s),x)) - \replacewith(int::instance(x) = TRUE & - 0 <= int::cast(x) & int::cast(x) < seqLen(s)) + \replacewith(instance<[int]>(x) = TRUE & + 0 <= cast<[int]>(x) & cast<[int]>(x) < seqLen(s)) \heuristics(simplify) }; @@ -145,7 +145,7 @@ \find(mapGet(seq2map(s),n)) \sameUpdateLevel \replacewith(\if(0 <= n & n < seqLen(s)) - \then(any::seqGet(s,n))\else(mapUndef)) + \then(seqGet<[any]>(s,n))\else(mapUndef)) \heuristics(simplify_enlarging) }; diff --git a/key.ui/src/main/resources/de/uka/ilkd/key/gui/help/functionExplanations.xml b/key.ui/src/main/resources/de/uka/ilkd/key/gui/help/functionExplanations.xml index 7fafa339ec6..03aa437e123 100644 --- a/key.ui/src/main/resources/de/uka/ilkd/key/gui/help/functionExplanations.xml +++ b/key.ui/src/main/resources/de/uka/ilkd/key/gui/help/functionExplanations.xml @@ -21,7 +21,7 @@ Java has the peculiarity of covariant array types. They allow an array assignmen Integers are used to access the entries of entries within arrays stored on the heap. This function provides the injection of the integer domain into that of the type Field. It is ensured that this image of arr is disjoint from any defined field constant. -The array access a[i], for instance for an int-array a, becomes int::select(heap, a, arr(i)). +The array access a[i], for instance for an int-array a, becomes select<[int]>(heap, a, arr(i)). tbd tbd diff --git a/keyext.isabelletranslation/src/main/java/org/key_project/isabelletranslation/translation/DefinedSymbolsHandler.java b/keyext.isabelletranslation/src/main/java/org/key_project/isabelletranslation/translation/DefinedSymbolsHandler.java index 0a4b2ba31e6..5578ad35318 100644 --- a/keyext.isabelletranslation/src/main/java/org/key_project/isabelletranslation/translation/DefinedSymbolsHandler.java +++ b/keyext.isabelletranslation/src/main/java/org/key_project/isabelletranslation/translation/DefinedSymbolsHandler.java @@ -14,7 +14,7 @@ import de.uka.ilkd.key.ldt.JavaDLTheory; import de.uka.ilkd.key.ldt.LocSetLDT; import de.uka.ilkd.key.ldt.SeqLDT; -import de.uka.ilkd.key.logic.op.SortDependingFunction; +import de.uka.ilkd.key.logic.op.ParametricFunctionInstance; import org.key_project.logic.Name; import org.key_project.logic.Namespace; @@ -67,10 +67,10 @@ public void init(IsabelleMasterHandler masterHandler, Services services, Namespace<@NonNull Function> functionNamespace = services.getNamespaces().functions(); Map definedFunctions = getDefinedFunctions(); - Map definedSortDependingFunctions = new HashMap<>(); - definedSortDependingFunctions.put("select", "select"); - definedSortDependingFunctions.put("cast", "cast"); - definedSortDependingFunctions.put("seqGet", "seqGet"); + Map definedParametricFunctions = new HashMap<>(); + definedParametricFunctions.put("select", "select"); + definedParametricFunctions.put("cast", "cast"); + definedParametricFunctions.put("seqGet", "seqGet"); for (String name : definedFunctions.keySet()) { Function function = functionNamespace.lookup(name); @@ -79,12 +79,12 @@ public void init(IsabelleMasterHandler masterHandler, Services services, } for (Function function : functionNamespace.elements()) { - if (!(function instanceof SortDependingFunction)) + if (!(function instanceof ParametricFunctionInstance)) continue; String funName = function.name().toString().split("::")[1]; - for (String name : definedSortDependingFunctions.keySet()) { + for (String name : definedParametricFunctions.keySet()) { if (funName.equals(name)) { - supportedOperators.put(function, definedSortDependingFunctions.get(name)); + supportedOperators.put(function, definedParametricFunctions.get(name)); } } } @@ -143,9 +143,9 @@ public boolean canHandle(Operator op) { @Override public StringBuilder handle(IsabelleMasterHandler trans, Term term) { - if (term.op() instanceof SortDependingFunction) { - return SortDependingFunctionHandler.getSortDependingFunctionRef(trans, term, - (SortDependingFunction) term.op(), + if (term.op() instanceof ParametricFunctionInstance pfi) { + return ParametricFunctionHandler.getParametricFunctionRef(trans, term, + pfi, supportedOperators.get(term.op())); } return UninterpretedSymbolsHandler.getFunctionRef(trans, term, (SortedOperator) term.op(), diff --git a/keyext.isabelletranslation/src/main/java/org/key_project/isabelletranslation/translation/InstanceOperatorHandler.java b/keyext.isabelletranslation/src/main/java/org/key_project/isabelletranslation/translation/InstanceOperatorHandler.java index a17cba1b152..b6e401f2579 100644 --- a/keyext.isabelletranslation/src/main/java/org/key_project/isabelletranslation/translation/InstanceOperatorHandler.java +++ b/keyext.isabelletranslation/src/main/java/org/key_project/isabelletranslation/translation/InstanceOperatorHandler.java @@ -9,7 +9,7 @@ import java.util.Properties; import de.uka.ilkd.key.java.Services; -import de.uka.ilkd.key.logic.op.SortDependingFunction; +import de.uka.ilkd.key.logic.op.ParametricFunctionInstance; import org.key_project.logic.Namespace; import org.key_project.logic.Term; @@ -39,7 +39,7 @@ public void init(IsabelleMasterHandler masterHandler, Services services, definedSortDependingFunctions.put("exactInstance", "exactInstance"); for (Function function : functionNamespace.elements()) { - if (!(function instanceof SortDependingFunction)) + if (!(function instanceof ParametricFunctionInstance)) continue; String funName = function.name().toString().split("::")[1]; for (String name : definedSortDependingFunctions.keySet()) { @@ -57,9 +57,10 @@ public boolean canHandle(Operator op) { @Override public StringBuilder handle(IsabelleMasterHandler trans, Term term) { - SortDependingFunction op = (SortDependingFunction) term.op(); + var op = (ParametricFunctionInstance) term.op(); String functionName = supportedOperators.get(op); - String dependingSortTypeName = trans.translateSortName(op.getSortDependingOn()) + "_type"; + String dependingSortTypeName = + trans.translateSortName(op.getArgs().head().sort()) + "_type"; StringBuilder result = new StringBuilder("("); result.append("(").append(functionName).append(") "); diff --git a/keyext.isabelletranslation/src/main/java/org/key_project/isabelletranslation/translation/SortDependingFunctionHandler.java b/keyext.isabelletranslation/src/main/java/org/key_project/isabelletranslation/translation/ParametricFunctionHandler.java similarity index 69% rename from keyext.isabelletranslation/src/main/java/org/key_project/isabelletranslation/translation/SortDependingFunctionHandler.java rename to keyext.isabelletranslation/src/main/java/org/key_project/isabelletranslation/translation/ParametricFunctionHandler.java index a02f7a17d10..5ce0cdbb8e1 100644 --- a/keyext.isabelletranslation/src/main/java/org/key_project/isabelletranslation/translation/SortDependingFunctionHandler.java +++ b/keyext.isabelletranslation/src/main/java/org/key_project/isabelletranslation/translation/ParametricFunctionHandler.java @@ -8,16 +8,16 @@ import java.util.stream.Collectors; import de.uka.ilkd.key.java.Services; -import de.uka.ilkd.key.logic.op.SortDependingFunction; +import de.uka.ilkd.key.logic.op.ParametricFunctionInstance; import org.key_project.logic.Term; import org.key_project.logic.op.Operator; import org.key_project.logic.sort.Sort; /** - * Handles translation of sort depending functions + * Handles translation of parametric functions */ -public class SortDependingFunctionHandler implements IsabelleHandler { +public class ParametricFunctionHandler implements IsabelleHandler { @Override public void init(IsabelleMasterHandler masterHandler, Services services, @@ -27,14 +27,15 @@ public void init(IsabelleMasterHandler masterHandler, Services services, @Override public boolean canHandle(Operator op) { - return (op instanceof SortDependingFunction); + return (op instanceof ParametricFunctionInstance); } @Override public StringBuilder handle(IsabelleMasterHandler trans, Term term) { - assert term.op() instanceof SortDependingFunction; - SortDependingFunction op = (SortDependingFunction) term.op(); - Sort dependentSort = op.getSortDependingOn(); + assert term.op() instanceof ParametricFunctionInstance; + var op = (ParametricFunctionInstance) term.op(); + // TODO(DD): Handle more complex parametric functions + Sort dependentSort = op.getArgs().head().sort(); if (trans.isNewSort(dependentSort)) { trans.addGenericSort(dependentSort); @@ -48,20 +49,20 @@ public StringBuilder handle(IsabelleMasterHandler trans, Term term) { name = trans.getKnownSymbol(term); } - return getSortDependingFunctionRef(trans, term, op, name.toString()); + return getParametricFunctionRef(trans, term, op, name.toString()); } /** - * Creates a reference to a sort depending function + * Creates a reference to a parametric function * * @param trans master handler used for translation * @param term term the function occurs in * @param op the function * @param name the name of the function in translation - * @return reference to a sort depending function for use in translation + * @return reference to a parametric function for use in translation */ - static StringBuilder getSortDependingFunctionRef(IsabelleMasterHandler trans, Term term, - SortDependingFunction op, String name) { + static StringBuilder getParametricFunctionRef(IsabelleMasterHandler trans, Term term, + ParametricFunctionInstance op, String name) { StringBuilder ref = new StringBuilder("(").append(name).append("::"); String parameterTypesDecl = op.argSorts().stream().map(trans::translateSortName).collect(Collectors.joining("=>")); 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 index 78d9b5afe75..c74b00841f5 100644 --- 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 @@ -89,6 +89,6 @@ name=Newnames[Newnames\\:\\:createArray()].JML normal_behavior operation contrac (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::$inv(heap, self)<>)<> -> ({heapAtPre:=heap} (\\<{ exc = null; try { self.createArray()@Newnames; } catch (java.lang.Throwable e) { exc = e; } }\\> (( (java.lang.Object::$inv(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)]\")>>") + (opengoal "==> ( ( ((((wellFormed(heap)<> & (!( self<> = null)<>)<>)<> & ( select<[boolean]>(heap, self, java.lang.Object::#$created) = TRUE)<>)<> & (Newnames::exactInstance(self) = TRUE)<>)<> & measuredByEmpty<>)<> & java.lang.Object::$inv(heap, self)<>)<> -> ({heapAtPre:=heap} (\\<{ exc = null; try { self.createArray()@Newnames; } catch (java.lang.Throwable e) { exc = e; } }\\> (( (java.lang.Object::$inv(heap, self)<> & ( exc<> = null)<>)<> & (\\forall Field f; (\\forall java.lang.Object o; (( (elementOf(o, f, allLocs)<> | ((!(o = null)<>)<> & (!( select<[boolean]>(heapAtPre, o, java.lang.Object::#$created) = 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)]\")>>") ) }